1#         $NetBSD: Makefile,v 1.35 2024/04/22 03:38:49 maya 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
53
54BUILDSYMLINKS+=     ${X11SRCDIR.Mesa}/../src/mapi/glapi/gen/indirect_init.c MESAindirect_init.c
55BUILDSYMLINKS+=     ${X11SRCDIR.Mesa}/src/glx/indirect_window_pos.c MESAindirect_window_pos.c
56BUILDSYMLINKS+=     ${X11SRCDIR.Mesa}/../src/mapi/glapi/gen/indirect.c MESAindirect.c
57BUILDSYMLINKS+=     ${X11SRCDIR.Mesa}/../src/mapi/glapi/gen/indirect_size.c MESAindirect_size.c
58BUILDSYMLINKS+=     ${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
69SRCS.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
85SRCS.x86_64.glx=    xform4.S
86SRCS.sparc.glx=               xform.S norm.S sparc_clip.S
87
88.if !empty(SRCS.${MACHINE_ARCH}.glx)
89SRCS.glx += ${SRCS.${XORG_MACHINE_ARCH:U${MACHINE_ARCH}}.glx}
90.endif
91SRCS.glapi+=                            entry.c
92
93.for _f in ${SRCS.glx}
94CPPFLAGS.${_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}
102CPPFLAGS.${_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
111SRCS.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}
121CPPFLAGS.${fn}= \
122          -I${X11SRCDIR.Mesa}/src \
123          -DGL_LIB_NAME="\"libGL.so.${SHLIB_MAJOR}\""
124.endfor
125.endif
126
127SRCS.util+= \
128          ralloc.c \
129          os_file.c \
130          mesa-sha1.c \
131          u_printf.cpp \
132          u_process.c
133
134CPPFLAGS.ralloc.c += -I${X11SRCDIR.Mesa}/src
135CPPFLAGS.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
142INCS=     gl.h glcorearb.h glext.h \
143          glx.h glxext.h \
144          osmesa.h wglext.h
145INCSDIR=${X11INCDIR}/GL
146
147
148SRCS+=    ${SRCS.dri} ${SRCS.util} ${SRCS.glx} ${SRCS.glapi}
149
150CPPFLAGS+= \
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
163CPPFLAGS+=          ${X11FLAGS.THREADLIB}
164
165#                   -D_NETBSD_SOURCE \
166
167# old
168CPPFLAGS+=          -D__GLX_ALIGN64 \
169                    -DXF86VIDMODE \
170                    -DGLX_SHARED_GLAPI
171
172# new
173CPPFLAGS+=          \
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
197CPPFLAGS+=          \
198          -DHAVE_LIBDRM -DGLX_USE_DRM \
199          -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING \
200          -DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS
201
202CPPFLAGS+=          \
203          -DUSE_EXTERNAL_DXTN_LIB=1 \
204          -DYYTEXT_POINTER=1
205
206CFLAGS+=  -fvisibility=hidden -fno-strict-aliasing -fno-builtin-memcmp
207CFLAGS+=  -pthread
208
209LIBDPLIBS=          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                    xcb-sync  ${.CURDIR}/../libxcb/sync \
221                    expat               ${NETBSDSRCDIR}/external/mit/expat/lib/libexpat \
222                    m                   ${NETBSDSRCDIR}/lib/libm \
223                    pthread             ${NETBSDSRCDIR}/lib/libpthread
224
225MKLINT=no
226
227PKGCONFIG=          gl
228PKGDIST.gl=         ${X11SRCDIR.Mesa}/../src/pkgconfig
229.include "${.CURDIR}/../libGL${OLD_SUFFIX}/mesa-ver.mk"
230PKGCONFIG_VERSION.gl=         ${MESA_VER}
231
232# XXX remove these from bsd.x11.mk
233
234PKGCONFIG_SED_FLAGS= \
235          -e "s,@GL_PC_REQ_PRIV@,libdrm x11 xext xdamage xfixes xcb-glx xcb-dri2 xxf86vm,; \
236              s,@GL_PKGCONF_LIB@,GL,; \
237              s,@GL_PC_LIB_PRIV@,-lm -lpthread -pthread,; \
238              s,@GL_PC_CFLAGS@,,; \
239              s,@GLX_TLS@,yes,"
240
241
242CWARNFLAGS.clang+=  -Wno-tautological-compare -Wno-format -Wno-constant-conversion \
243                              -Wno-error=incompatible-pointer-types -Wno-error=atomic-alignment
244CWARNFLAGS.gcc+=    ${CC_WNO_STRINGOP_OVERFLOW}
245
246.include <bsd.x11.mk>
247.include <bsd.lib.mk>
248.include <bsd.subdir.mk>
249