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