#	$NetBSD: $

.include <bsd.own.mk>

.include "../mesa-which.mk"

LIB=		GLESv2
LIBISCXX=	yes

# glapi
.PATH:		${X11SRCDIR.Mesa}/src/mapi
.PATH:		${X11SRCDIR.Mesa}/src/mapi/glapi

SRCS.glapi+=			entry.c

.for _f in ${SRCS.glapi}
CPPFLAGS.${_f}= -DMAPI_MODE_BRIDGE \
		-DMAPI_ABI_HEADER=\"es2api/glapi_mapi_tmp.h\" \
		-I${X11SRCDIR.Mesa}/src \
		-I${X11SRCDIR.Mesa}/../src/mapi
.endfor

SRCS.util+= \
	ralloc.c \
	os_file.c \
	mesa-sha1.c \
	u_printf.cpp \
	u_process.c 

CPPFLAGS.ralloc.c += -I${X11SRCDIR.Mesa}/src
CPPFLAGS.u_printf.cpp += -I${X11SRCDIR.Mesa}/src

.include "../libloader.mk"

.PATH:		${X11SRCDIR.Mesa}/include/GLES2
INCS=	gl2.h gl2ext.h gl2platform.h
INCSDIR=${X11INCDIR}/GLES2

SRCS+=	${SRCS.util} ${SRCS.glapi}

CPPFLAGS+= \
	-I${X11SRCDIR.Mesa}/include \
	-I${X11SRCDIR.Mesa}/src/loader \
	-I${X11SRCDIR.Mesa}/src/mapi \
	-I${X11SRCDIR.Mesa}/src/mapi/glapi \
	-I${X11SRCDIR.Mesa}/../src/mapi/glapi \
	-I${X11SRCDIR.Mesa}/src/glx \
	-I${DESTDIR}${X11INCDIR}/libdrm \
	-I${DESTDIR}${X11INCDIR}/GLES2 \
	-I${DESTDIR}${X11INCDIR}/X11 \
	-I${DESTDIR}${X11INCDIR}/X11/extensions

CPPFLAGS+=	${X11FLAGS.THREADLIB}

#		-D_NETBSD_SOURCE \

# old
CPPFLAGS+=	-D__GLX_ALIGN64 \
		-DXF86VIDMODE \
		-DGLX_SHARED_GLAPI

# new
CPPFLAGS+=	\
	-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 \
	-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 \
	-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 \
	-DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DYYTEXT_POINTER=1 \
	-DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 \
	-DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 \
	-DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 \
	-DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 \
	-DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 \
	-DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 \
	-DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 \
	-DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 \
	-DHAVE_FUNC_ATTRIBUTE_PURE=1 -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 \
	-DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 \
	-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 \
	-DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 \
	-DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_ENDIAN_H=1 -DHAVE_DLADDR=1 \
	-DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 \
	-DHAVE_PTHREAD=1 -DENABLE_ST_OMX_BELLAGIO=0 -DENABLE_ST_OMX_TIZONIA=0 \
	-DHAVE_TIMESPEC_GET -DGLX_USE_TLS

.include "../asm.mk"

CPPFLAGS+=	\
	-DHAVE_LIBDRM -DGLX_USE_DRM \
	-DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING \
	-DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS

CPPFLAGS+=	\
	-DUSE_EXTERNAL_DXTN_LIB=1 \
	-DYYTEXT_POINTER=1

CFLAGS+=	-fvisibility=hidden -fno-strict-aliasing -fno-builtin-memcmp
CFLAGS+=	-pthread

LIBDPLIBS=	glapi		${.CURDIR}/../libglapi${OLD_SUFFIX} \
		drm		${.CURDIR}/../libdrm \
		m		${NETBSDSRCDIR}/lib/libm \
		pthread		${NETBSDSRCDIR}/lib/libpthread

MKLINT=no

PKGCONFIG=	glesv2
PKGDIST.glesv2=	${X11SRCDIR.Mesa}/../src/pkgconfig
.include "${.CURDIR}/../libGL${OLD_SUFFIX}/mesa-ver.mk"
PKGCONFIG_VERSION.gl=	${MESA_VER}

CWARNFLAGS.clang+=	-Wno-tautological-compare -Wno-format -Wno-constant-conversion \
			-Wno-error=incompatible-pointer-types -Wno-error=atomic-alignment
CWARNFLAGS.gcc+=	${CC_WNO_STRINGOP_OVERFLOW}

.include <bsd.x11.mk>
.include <bsd.lib.mk>
.include <bsd.subdir.mk>
