blob: f916ca17d77a4524e82fbcfcf300e76610808328 (
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
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
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-fps/nexuiz/nexuiz-2.1.ebuild,v 1.4 2006/11/27 18:01:51 nyhm Exp $
inherit eutils flag-o-matic games
MY_PV=${PV//./}
MY_PN="Nexuiz"
MY_P=${PN}-${MY_PV}
DESCRIPTION="Deathmatch FPS based on DarkPlaces, an advanced Quake 1 engine"
HOMEPAGE="http://www.nexuiz.com"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip
http://www.alientrap.org/Releases/${MY_P}.zip"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc x86"
IUSE="alsa dedicated opengl oss sdl"
UIRDEPEND="alsa? ( media-libs/alsa-lib )
media-libs/libogg
media-libs/libvorbis
x11-libs/libX11
x11-libs/libXau
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXxf86dga
x11-libs/libXxf86vm"
UIDEPEND="x11-proto/xextproto
x11-proto/xf86dgaproto
x11-proto/xf86vidmodeproto
x11-proto/xproto"
RDEPEND="media-libs/jpeg
net-misc/curl
sdl? ( media-libs/libsdl ${UIRDEPEND} )
opengl? ( virtual/opengl ${UIRDEPEND} )
!dedicated? ( !sdl? ( !opengl? ( virtual/opengl ${UIRDEPEND} ) ) )"
DEPEND="${RDEPEND}
dev-util/pkgconfig
app-arch/unzip
sdl? ( media-libs/libsdl ${UIDEPEND} )
opengl? ( virtual/opengl ${UIDEPEND} )
!dedicated? ( !sdl? ( !opengl? ( virtual/opengl ${UIDEPEND} ) ) )"
S=${WORKDIR}/darkplaces
# This is the right dir, so that e.g. "darkplaces -game nexuiz" will work
dir=${GAMES_DATADIR}/quake1
exe=${PN}
default_client() {
if use opengl || $( ! use dedicated && ! use sdl ) ; then
# Build default client
return 0
fi
return 1
}
pkg_setup() {
games_pkg_setup
if default_client && ! use opengl ; then
einfo "Defaulting to OpenGL client"
fi
}
src_unpack() {
unpack ${A}
local f
for f in "${MY_PN}"/sources/*.zip ; do
unpack ./"${f}"
done
rm "${MY_PN}"/Docs/server/{*_mac.*,*.bat}
cd "${S}"
# Make the game automatically look in the correct data directory
sed -i fs.c \
-e "s:strlcpy(fs_basedir, \"\"):strlcpy(fs_basedir, \"${dir}\"):" \
-e "s:gamedirname1:\"${PN}\":" \
|| die "sed fs.c failed"
# Only additional CFLAGS optimization is the -march flag
local march=$(get-flag -march)
sed -i makefile.inc \
-e '/^CC=/d' \
-e "s:-lasound:$(pkg-config --libs alsa):" \
-e "s:CPUOPTIMIZATIONS=:CPUOPTIMIZATIONS=${march}:" \
-e "s:strip:#strip:" \
|| die "sed makefile.inc failed"
# Reduce SDL audio buffer, to fix latency
sed -i "s:requested->speed / 20.0:512:" snd_sdl.c \
|| die "sed snd_sdl.c failed"
# Default sound is alsa.
if ! use alsa ; then
if use oss ; then
sed -i "s:DEFAULT_SNDAPI=ALSA:DEFAULT_SNDAPI=OSS:" makefile \
|| die "sed oss failed"
else
sed -i "s:DEFAULT_SNDAPI=ALSA:DEFAULT_SNDAPI=NULL:" makefile \
|| die "sed null failed"
fi
fi
}
src_compile() {
if default_client ; then
emake cl-${PN} DP_FS_BASEDIR=${GAMES_DATADIR}/quake1 \
|| die "emake cl-${PN} failed"
fi
if use sdl ; then
emake sdl-${PN} DP_FS_BASEDIR=${GAMES_DATADIR}/quake1 \
|| die "emake sdl-${PN} failed"
fi
if use dedicated ; then
emake sv-${PN} DP_FS_BASEDIR=${GAMES_DATADIR}/quake1 \
|| die "emake sv-${PN} failed"
fi
}
src_install() {
if default_client || use sdl ; then
newicon darkplaces72x72.png ${PN}.png
fi
if default_client ; then
newgamesbin ${PN}-glx ${PN} \
|| die "newgamesbin opengl failed"
make_desktop_entry ${PN} Nexuiz ${PN}.png
fi
if use sdl ; then
dogamesbin ${PN}-sdl \
|| die "dogamesbin sdl failed"
make_desktop_entry ${PN}-sdl "Nexuiz (SDL)" ${PN}.png
fi
if use dedicated ; then
newgamesbin ${PN}-dedicated ${PN}-ded \
|| die "newgamesbin ded failed"
games_make_wrapper ${PN}-ded ./${PN}-ded "${dir}"
fi
cd "${WORKDIR}/${MY_PN}"
insinto "${dir}/${PN}"
doins -r data/* || die "doins data failed"
dodoc Docs/*.txt
dohtml Docs/*.{htm,html}
docinto server
dodoc Docs/server/*
prepgamesdirs
}
|