xenocara/lib/mesa/Makefile.bsd-wrapper
jsg c1c03dc65d Build Mesa with LLVM support on amd64 and i386 now that libelf and
shared libLLVM are in base.  And now we can finally build the radeonsi
Mesa driver adding accelerated support for radeon parts based on the
Graphics Core Next (GCN) architecture which is everything since
GFX6 / Southern Islands.

This can later be expanded to other architectures which build libLLVM
and have clang as the default compiler (to handle LLVM's c++11 headers).
2019-03-06 10:39:52 +00:00

82 lines
2.5 KiB
Makefile

# $OpenBSD: Makefile.bsd-wrapper,v 1.24 2019/03/06 10:39:52 jsg Exp $
.include <bsd.own.mk>
.include <bsd.xconf.mk>
SHARED_LIBS= EGL 1.1 gbm 0.3 glapi 0.2 GL 17.1 GLESv1_CM 1.0 GLESv2 1.2 \
OSMesa 11.0
DRI_DRIVERS= swrast
GALLIUM_DRIVERS= swrast
WITH_LLVM= --disable-llvm
.if ${MACHINE} == i386 || ${MACHINE} == amd64
DRI_DRIVERS=swrast,radeon,r200,i915,i965
GALLIUM_DRIVERS=swrast,r300,r600,radeonsi
WITH_LLVM= --enable-llvm
.endif
.if ${MACHINE} == arm64 || ${MACHINE} == loongson || \
${MACHINE} == macppc || ${MACHINE} == sparc64
DRI_DRIVERS=swrast,radeon,r200
GALLIUM_DRIVERS=swrast,r300,r600
.endif
CONFIGURE_ARGS= --with-dri-drivers=${DRI_DRIVERS} \
--with-gallium-drivers=${GALLIUM_DRIVERS} \
--disable-silent-rules \
${WITH_LLVM} \
--disable-glx-tls \
--disable-regen-sources \
--enable-gles1 --enable-gles2 \
--enable-shared-glapi \
--enable-osmesa \
--enable-gbm \
--enable-texture-float \
--with-platforms="x11,drm" \
--prefix=${X11BASE} \
--with-dri-driverdir=${X11BASE}/lib/modules/dri \
--with-dri-searchpath=${X11BASE}/lib/modules/dri
.if ${XENOCARA_BUILD_DRI3:L} == "yes"
CONFIGURE_ARGS+= --enable-dri3
.endif
# The i965 driver uses the cmpxchg8b instruction
.if ${MACHINE} == i386
CONFIGURE_ARGS+= USER_CFLAGS="-march=i586" USER_CXXFLAGS="-march=i586"
.endif
.if ${MACHINE} == alpha
# -O2 causes gcc ICE on main/format_pack.c and program/prog_execute.c
O1= -fdefer-pop -fguess-branch-probability -fcprop-registers \
-fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce \
-ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra \
-ftree-copyrename -ftree-fre -ftree-ch -funit-at-a-time \
-fmerge-constants -fomit-frame-pointer
O2= ${O1} -fthread-jumps -fcrossjumping -foptimize-sibling-calls \
-fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm \
-fexpensive-optimizations -frerun-cse-after-loop \
-fcaller-saves -fpeephole2 -fschedule-insns -fschedule-insns2 \
-fsched-interblock -fsched-spec -fregmove \
-fdelete-null-pointer-checks -freorder-blocks \
-freorder-functions -falign-functions -falign-jumps -falign-loops \
-falign-labels -ftree-pre
CONFIGURE_ARGS+= USER_CFLAGS="-O0 ${O2}"
.endif
.if ${MACHINE_ARCH} == sh
CONFIGURE_ARGS+= USER_CFLAGS="-O0"
.endif
${.OBJDIR}/src/util/format_srgb.c:
lndir -s -e obj -e obj.${MACHINE_ARCH} -e Makefile.bsd-wrapper ${.CURDIR}
.include <bsd.xorg.mk>
# XXX needs to come after bsd.xorg.mk, because .if !target(config.status)
# won't trigger otherwise.
config.status: ${.OBJDIR}/src/util/format_srgb.c