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