summaryrefslogtreecommitdiff
path: root/lib/mesa/Makefile.bsd-wrapper
blob: 27dba709e56cd370ea2e2d562c5c4c7f623313d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# $OpenBSD: Makefile.bsd-wrapper,v 1.21 2018/10/23 06:35:32 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

.if ${MACHINE} == i386 || ${MACHINE} == amd64
DRI_DRIVERS=swrast,radeon,r200,i915,i965
GALLIUM_DRIVERS=swrast,r300,r600
.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 \
			--disable-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

# -O2 gives "cc1: out of memory allocating 488 bytes"
# on src/mesa/main/marshal_generated.c
.if ${MACHINE} == sparc64
CONFIGURE_ARGS+=       USER_CFLAGS="-fno-tree-pre"
.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

${.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