aboutsummaryrefslogtreecommitdiff
path: root/games/tremulous/Makefile
blob: 6246a38d153b13d91bcb5bc2693e6510713e3f7a (plain) (blame)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Created by: Alejandro Pulver <alepulver@FreeBSD.org>
# $FreeBSD$

PORTNAME=	tremulous
PORTVERSION=	1.1.0
PORTREVISION=	10
CATEGORIES=	games
MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTVERSION:R}

MAINTAINER=	games@FreeBSD.org
COMMENT=	Free FPS game featuring two opposing teams: humans and aliens

LICENSE=	GPLv2

USES=		gmake zip
MAKE_ENV=	DEFAULT_BASEDIR="${DATADIR}" PTHREAD_LIBS="${PTHREAD_LIBS}"

WRKSRC=		${WRKDIR}/${PORTNAME}
BUILD_WRKSRC=	${WRKSRC}/${DISTNAME}-src

VM_ARCHS=	amd64 i386

OPTIONS_DEFINE=		GAMELIBS OPENAL OPENAL_DLOPEN OPTIMIZED_CFLAGS \
			SDL_AUDIO SDL_VIDEO VORBIS
OPTIONS_MULTI=		FLAVOR
OPTIONS_MULTI_FLAVOR=	CLIENT DEDICATED SMP_CLIENT MASTER_SERVER
OPTIONS_DEFAULT=	CLIENT DEDICATED OPTIMIZED_CFLAGS SMP_CLIENT

FLAVOR_DESC=		Clients and servers
CLIENT_DESC=		Build client
GAMELIBS_DESC=		Force building game libraries
DEDICATED_DESC=		Build dedicated server
MASTER_SERVER_DESC=	Build master server
OPENAL_DLOPEN_DESC=	Enable dinamic loading of OpenAL
SDL_AUDIO_DESC=		Use SDL for audio
SDL_VIDEO_DESC=		Use SDL for video
SMP_CLIENT_DESC=	Build SMP (threaded) client

.include <bsd.port.options.mk>

.for arch in ${ARCH}
.  if ${VM_ARCHS:M${arch}}
HAVE_VM_COMPILED=	yes
.  endif
.endfor

.if defined(HAVE_VM_COMPILED)
MAKE_ENV+=	HAVE_VM_COMPILED=true
.endif

.if ${PORT_OPTIONS:MCLIENT} || ${PORT_OPTIONS:MSMP_CLIENT}
# OpenAL
.  if ${PORT_OPTIONS:MOPENAL}
USES+=		openal:al
MAKE_ENV+=	USE_OPENAL=1
.    if ${PORT_OPTIONS:MOPENAL_DLOPEN}
MAKE_ENV+=	USE_OPENAL_DLOPEN=1
.    endif
.  endif
# SDL
.  if ${PORT_OPTIONS:MSDL_AUDIO}
USE_SDL=	sdl
MAKE_ENV+=	USE_SDL_AUDIO=1
.  endif
.  if ${PORT_OPTIONS:MSDL_VIDEO}
USE_SDL=	sdl
MAKE_ENV+=	USE_SDL_VIDEO=1
.  else
USE_GL=		gl
USE_XORG=	x11 xxf86dga
.  endif
# Vorbis
.  if ${PORT_OPTIONS:MVORBIS}
LIB_DEPENDS+=	libvorbis.so:${PORTSDIR}/audio/libvorbis
MAKE_ENV+=	USE_CODEC_VORBIS=1
.  endif
.endif

.if ${PORT_OPTIONS:MCLIENT}
MAKE_ENV+=	BUILD_CLIENT=1
PLIST_SUB+=	CLIENT=""
TRBIN+=		tremulous
.else
PLIST_SUB+=	CLIENT="@comment "
.endif

.if ${PORT_OPTIONS:MDEDICATED}
MAKE_ENV+=	BUILD_SERVER=1
PLIST_SUB+=	DEDICATED=""
TRBIN+=		tremded
.else
PLIST_SUB+=	DEDICATED="@comment "
.endif

.if ${PORT_OPTIONS:MGAMELIBS} || !defined(HAVE_VM_COMPILED)
MAKE_ENV+=	BUILD_GAME_SO=1
PLIST_SUB+=	GAMELIBS=""
.else
PLIST_SUB+=	GAMELIBS="@comment "
.endif

.if ${PORT_OPTIONS:MMASTER_SERVER}
LIB_DEPENDS+=	libtdb.so:${PORTSDIR}/databases/tdb
MAKE_ENV+=	BUILD_MASTER_SERVER=1
PLIST_SUB+=	MASTER_SERVER=""
.else
PLIST_SUB+=	MASTER_SERVER="@comment "
.endif

.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
MAKE_ENV+=	USE_OPTIMIZED_CFLAGS=1
.endif

.if ${PORT_OPTIONS:MSMP_CLIENT}
MAKE_ENV+=	BUILD_CLIENT_SMP=1
PLIST_SUB+=	SMP=""
TRBIN+=		tremulous-smp
.else
PLIST_SUB+=	SMP="@comment "
.endif

post-extract:
	@cd ${WRKSRC} && ${TAR} zxf ${DISTNAME}-src.tar.gz

post-patch:
	@${REINPLACE_CMD} -e 's|botlib\.log|/dev/null|' \
		${BUILD_WRKSRC}/src/botlib/be_interface.c
	@${REINPLACE_CMD} -e '/callMask = 0/s|^static||' \
		${BUILD_WRKSRC}/src/qcommon/vm_x86.c

do-install:
.for bin in ${TRBIN}
	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/build/release/${bin} \
		${STAGEDIR}${PREFIX}/bin
.endfor
.if ${PORT_OPTIONS:MMASTER_SERVER}
	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/src/master/release/tremmaster \
		${STAGEDIR}${PREFIX}/bin
.endif
	@${MKDIR} ${STAGEDIR}${DATADIR}/base
	${INSTALL_DATA} ${WRKSRC}/base/* ${STAGEDIR}${DATADIR}/base
	${INSTALL_DATA} ${WRKSRC}/tremulous.xpm \
		${STAGEDIR}${PREFIX}/share/pixmaps

.include <bsd.port.mk>