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