xenocara/lib/mesa/Makefile.bsd-wrapper
stsp cd197cfa4b Disable the shader cache in Mesa on powerpc. Its implementation uses gcc
atomic builtins on a 64 bit integer which is not supported on 32 bit powerpc.
Makes 3D work again on a PowerBook G4 with an ATI RV350 video card.
tweak and ok jsg@
2017-01-21 11:23:09 +00:00

73 lines
2.3 KiB
Makefile

# $OpenBSD: Makefile.bsd-wrapper,v 1.8 2017/01/21 11:23:09 stsp Exp $
.include <bsd.own.mk>
SHARED_LIBS= EGL 1.1 gbm 0.1 glapi 0.2 GL 17.1 GLESv1_CM 1.0 GLESv2 1.2 \
OSMesa 10.1
DRI_DRIVERS= swrast
GALLIUM_DRIVERS= swrast
.if ${MACHINE} == i386 || ${MACHINE} == amd64
DRI_DRIVERS=swrast,radeon,r200,i915,i965
GALLIUM_DRIVERS=swrast,r300,r600
.endif
.if ${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 \
--disable-gallium-llvm \
--disable-llvm-shared-libs \
--enable-gles1 --enable-gles2 \
--enable-shared-glapi \
--enable-osmesa \
--enable-gbm \
--enable-texture-float \
--with-egl-platforms="x11,drm" \
--prefix=${X11BASE} \
--with-dri-driverdir=${X11BASE}/lib/modules/dri \
--with-dri-searchpath=${X11BASE}/lib/modules/dri
# The i965 driver uses the cmpxchg8b instruction
.if ${MACHINE} == i386
CONFIGURE_ARGS+= USER_CFLAGS="-march=i586" USER_CXXFLAGS="-march=i586"
.endif
# powerpc lacks the __sync_add_and_fetch8 gcc atomic builtin
# which is used by the shader cache implementation
.if ${MACHINE_ARCH} == powerpc
CONFIGURE_ARGS+= --disable-shader-cache
.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
depend:
.if !exists(${.OBJDIR}/src/util/format_srgb.c)
lndir -s -e obj -e obj.${MACHINE_ARCH} -e Makefile.bsd-wrapper ${.CURDIR}
.endif
.include <bsd.xorg.mk>