xref: /netbsd-src/external/mit/xorg/lib/libGL/Makefile (revision d3d2abdc28a790079ac0d9b337b15bd97b65d751)
1#	$NetBSD: Makefile,v 1.27 2019/05/16 01:22:36 christos Exp $
2
3.include <bsd.own.mk>
4
5LIB=		GL
6LIBISCXX=	yes
7
8SUBDIR=		internal
9
10# glx
11.PATH:		${X11SRCDIR.Mesa}/src/glx
12SRCS.glx=	\
13	clientattrib.c \
14	clientinfo.c \
15	compsize.c \
16	create_context.c \
17	eval.c \
18	glx_error.c \
19	glx_pbuffer.c \
20	glx_query.c \
21	glxcmds.c \
22	glxconfig.c \
23	MESAindirect.c \
24	MESAindirect_init.c \
25	MESAindirect_size.c \
26	MESAindirect_window_pos.c \
27	glxcurrent.c \
28	glxext.c \
29	glxextensions.c \
30	glxhash.c \
31	indirect_glx.c \
32	indirect_texture_compression.c \
33	indirect_transpose_matrix.c \
34	indirect_vertex_array.c \
35	indirect_vertex_program.c \
36	pixel.c \
37	pixelstore.c \
38	query_renderer.c \
39	render2.c \
40	renderpix.c \
41	single2.c \
42	singlepix.c \
43	vertarr.c \
44
45SRCS+=	UTILdebug.c
46CPPFLAGS.UTILdebug.c+=	-I${X11SRCDIR.Mesa}/src/util \
47			-I${X11SRCDIR.Mesa}/src/mesa \
48			-I${X11SRCDIR.Mesa}/src \
49			-I${X11SRCDIR.Mesa}/src/gallium/include
50
51BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/glx/indirect_init.c MESAindirect_init.c
52BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/glx/indirect_window_pos.c MESAindirect_window_pos.c
53BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/glx/indirect.c MESAindirect.c
54BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/glx/indirect_size.c MESAindirect_size.c
55BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/util/debug.c UTILdebug.c
56
57# glapi
58.PATH:		${X11SRCDIR.Mesa}/src/mapi
59.PATH:		${X11SRCDIR.Mesa}/src/mapi/glapi
60SRCS.glapi=	glapi_gentable.c
61
62.PATH:		${X11SRCDIR.Mesa}/src/mapi/glapi
63
64SRCS.i386.glx=		glapi_x86.S
65SRCS.x86_64.glx=	glapi_x86-64.S
66SRCS.sparc.glx=		glapi_sparc.S
67
68.if !empty(SRCS.${MACHINE_ARCH}.glx)
69SRCS.glx += ${SRCS.${XORG_MACHINE_ARCH:U${MACHINE_ARCH}}.glx}
70.else
71SRCS.glapi+=			entry.c
72.endif
73
74.for _f in ${SRCS.glx}
75CPPFLAGS.${_f}= -I${X11SRCDIR.Mesa}/../src/mapi/glapi \
76		-I${X11SRCDIR.Mesa}/src \
77		-I${X11SRCDIR.Mesa}/src/mesa \
78		-DGLX_SHARED_GLAPI
79.endfor
80
81.for _f in ${SRCS.glapi}
82CPPFLAGS.${_f}= -DMAPI_MODE_BRIDGE \
83		-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\" \
84		-I${X11SRCDIR.Mesa}/src \
85		-I${X11SRCDIR.Mesa}/src/mesa
86.endfor
87
88
89.if ${X11DRI} != "no"
90# dri
91SRCS.dri=	\
92	dri_common.c \
93	dri_common_query_renderer.c \
94	dri_common_interop.c \
95	xfont.c \
96	drisw_glx.c \
97	dri2.c \
98	dri2_glx.c \
99	dri_glx.c \
100	XF86dri.c
101
102.for fn in ${SRCS.dri}
103CPPFLAGS.${fn}= \
104	-DGL_LIB_NAME=\"libGL.so.3\" \
105	-DDEFAULT_DRIVER_DIR=\"${X11USRLIBDIR}/modules/dri\" \
106	-I${X11SRCDIR.Mesa}/src
107.endfor
108.endif
109
110SRCS.util+=	u_process.c
111
112.include "../libloader.mk"
113
114.PATH:		${X11SRCDIR.Mesa}/src/glw
115.PATH:		${X11SRCDIR.Mesa}/include/GL
116.PATH:		${X11SRCDIR.Mesa}/src/mesa/drivers/x11
117INCS=	gl.h gl_mangle.h glcorearb.h glext.h \
118	glx.h glx_mangle.h glxext.h \
119	osmesa.h wglext.h
120INCSDIR=${X11INCDIR}/GL
121
122
123SRCS+=	${SRCS.dri} ${SRCS.util} ${SRCS.glx} ${SRCS.glapi}
124
125CPPFLAGS+= \
126	-I${X11SRCDIR.Mesa}/include \
127	-I${X11SRCDIR.Mesa}/include/GL/internal \
128	-I${X11SRCDIR.Mesa}/src/loader \
129	-I${X11SRCDIR.Mesa}/src/mapi \
130	-I${X11SRCDIR.Mesa}/src/mapi/glapi \
131	-I${X11SRCDIR.Mesa}/../src/mapi/glapi \
132	-I${X11SRCDIR.Mesa}/src/glx \
133	-I${DESTDIR}${X11INCDIR}/libdrm \
134	-I${DESTDIR}${X11INCDIR}/GL \
135	-I${DESTDIR}${X11INCDIR}/X11 \
136	-I${DESTDIR}${X11INCDIR}/X11/extensions
137
138CPPFLAGS+=	${X11FLAGS.THREADLIB}
139
140#		-D_NETBSD_SOURCE \
141
142# old
143CPPFLAGS+=	-D__GLX_ALIGN64 \
144		-DXF86VIDMODE \
145		-DGLX_SHARED_GLAPI
146
147# new
148CPPFLAGS+=	\
149	-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 \
150	-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 \
151	-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 \
152	-DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DYYTEXT_POINTER=1 \
153	-DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 \
154	-DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 \
155	-DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 \
156	-DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 \
157	-DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 \
158	-DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 \
159	-DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 \
160	-DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 \
161	-DHAVE_FUNC_ATTRIBUTE_PURE=1 -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 \
162	-DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 \
163	-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 \
164	-DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 \
165	-DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_ENDIAN_H=1 -DHAVE_DLADDR=1 \
166	-DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 \
167	-DHAVE_PTHREAD=1 -DENABLE_ST_OMX_BELLAGIO=0 -DENABLE_ST_OMX_TIZONIA=0 \
168	-DHAVE_TIMESPEC_GET -DGLX_USE_TLS
169
170.include "../asm.mk"
171
172CPPFLAGS+=	\
173	-DHAVE_LIBDRM -DGLX_USE_DRM \
174	-DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING \
175	-DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS
176
177CPPFLAGS+=	\
178	-DUSE_EXTERNAL_DXTN_LIB=1 \
179	-DYYTEXT_POINTER=1
180
181CFLAGS+=	-fvisibility=hidden -fno-strict-aliasing -fno-builtin-memcmp
182CFLAGS+=	-pthread
183
184LIBDPLIBS=	Xext		${.CURDIR}/../libXext \
185		X11		${.CURDIR}/../libX11/dynamic \
186		Xxf86vm		${.CURDIR}/../libXxf86vm \
187		Xfixes		${.CURDIR}/../libXfixes \
188		Xdamage		${.CURDIR}/../libXdamage \
189		glapi		${.CURDIR}/../libglapi \
190		drm		${.CURDIR}/../libdrm \
191		X11-xcb		${.CURDIR}/../libX11/libX11-xcb \
192		xcb-dri2	${.CURDIR}/../libxcb/dri2 \
193		xcb-glx		${.CURDIR}/../libxcb/glx \
194		expat		${NETBSDSRCDIR}/external/mit/expat/lib/libexpat \
195		m		${NETBSDSRCDIR}/lib/libm \
196		pthread		${NETBSDSRCDIR}/lib/libpthread
197
198MKLINT=no
199
200PKGCONFIG=	gl
201PKGDIST.gl=	${X11SRCDIR.Mesa}/src/mesa
202.include "${.CURDIR}/../libGL/mesa-ver.mk"
203PKGCONFIG_VERSION.gl=	${MESA_VER}
204
205# XXX remove these from bsd.x11.mk
206
207PKGCONFIG_SED_FLAGS= \
208	-e "s,@GL_PC_REQ_PRIV@,libdrm x11 xext xdamage xfixes xcb-glx xcb-dri2 xxf86vm,; \
209	    s,@GL_PKGCONF_LIB@,GL,; \
210	    s,@GL_PC_LIB_PRIV@,-lm -lpthread -pthread,; \
211	    s,@GL_PC_CFLAGS@,,; \
212	    s,@GLX_TLS@,yes,"
213
214
215CWARNFLAGS.clang+=	-Wno-tautological-compare -Wno-format -Wno-constant-conversion \
216			-Wno-error=incompatible-pointer-types -Wno-error=atomic-alignment
217.if ${HAVE_GCC:U0} >= 7
218CWARNFLAGS.gcc+=	-Wno-error=stringop-overflow
219.endif
220
221.include <bsd.x11.mk>
222.include <bsd.lib.mk>
223.include <bsd.subdir.mk>
224