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