summaryrefslogtreecommitdiff
blob: 8db54d55f9ab28e986b2b18fb383a2dc07470e10 (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
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/armagetronad/Attic/armagetronad-0.2.8.1.ebuild,v 1.3 2006/05/01 02:51:37 mr_bones_ Exp $

inherit flag-o-matic eutils games

DESCRIPTION="\"A Tron clone in 3D\""
HOMEPAGE="http://armagetronad.net/"
SRC_URI="mirror://sourceforge/armagetronad/${P}.src.tar.bz2
	moviesounds? (
		http://beta.armagetronad.net/fetch.php/PreResource/moviesounds_fq.zip
		linguas_es? ( !linguas_en? (
			http://beta.armagetronad.net/fetch.php/PreResource/spanishvoices.zip
		) )
	)
	moviepack? (
		http://beta.armagetronad.net/fetch.php/PreResource/moviepack.zip
	)
"

LICENSE="GPL-2"
SLOT="0"
GameSLOT="" #GameSLOT="-${SLOT}"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="debug dedicated krawall opengl moviepack moviesounds"

GLDEPS="|| (
			x11-libs/libX11
			virtual/x11
		)
		virtual/glu
		virtual/opengl
		media-libs/libsdl
		media-libs/sdl-image
		media-libs/jpeg
		media-libs/libpng"
RDEPEND=">=dev-libs/libxml2-2.6.12
		sys-libs/zlib
		opengl? ( ${GLDEPS} )
		!dedicated? ( ${GLDEPS} )"
DEPEND="${RDEPEND}
	moviepack? ( app-arch/unzip )
	moviesounds? ( app-arch/unzip )
	linguas_es? ( !linguas_en? ( app-arch/unzip ) )"

aabuild() {
	mkdir "${S}/$1"
	cd "${S}/$1"

	ln -s "${S}/configure" .

	use debug && DEBUGLEVEL=3 || DEBUGLEVEL=0
	export DEBUGLEVEL CODELEVEL=0
	[ "$SLOT" == "0" ] && myconf="--disable-multiver" || myconf="--enable-multiver=${SLOT}"
	
	egamesconf ${myconf} \
		--srcdir="${S}" \
		--disable-binreloc \
		--disable-master \
		--enable-main \
		$(use_enable krawall) \
		--enable-sysinstall \
		--disable-useradd \
		--enable-etc \
		--disable-restoreold \
		--disable-games \
		--enable-uninstall="emerge --clean =${CATEGORY}/${PF}" \
		"${@:2}" || die "egamesconf $1 failed"

	[ "$1" == "server" ] && ded='-dedicated' || ded=''
	cat >>"config.h" <<EOF
#define DATA_DIR "${GAMES_DATADIR}/${PN}${ded}${GameSLOT}"
#define CONFIG_DIR "${GAMES_SYSCONFDIR}/${PN}${ded}${GameSLOT}"
#define RESOURCE_DIR "${GAMES_DATADIR}/${PN}${ded}${GameSLOT}/resource"
#define USER_DATA_DIR "~/.${PN}"
#define AUTORESOURCE_DIR "~/.${PN}/resource/automatic"
#define INCLUDEDRESOURCE_DIR "${GAMES_DATADIR}/${PN}${ded}${GameSLOT}/resource/included"
EOF

	emake armabindir="${GAMES_BINDIR}" || die "emake $1 failed"
}

src_compile() {
	filter-flags -fno-exceptions

	# Assume client if they don't want a server
	if use opengl || ! use dedicated; then
		aabuild client --enable-glout --disable-initscripts --enable-desktop
	fi
	if use dedicated; then
		aabuild server --disable-glout --enable-initscripts --disable-desktop
	fi
}

src_install() {
	if [ -d "${S}/client" ] && [ -d "${S}/server" ]; then
		# Setup symlink so both client and server share their common data
		for i in ${GAMES_DATADIR} ${GAMES_SYSCONFDIR}; do
			dodir ${i}
			dosym ${PN}${GameSLOT} ${i}/${PN}-dedicated${GameSLOT}
		done
	fi
	if [ -d "${S}/client" ]; then
		cd "${S}/client"

		emake DESTDIR="${D}" armabindir=${GAMES_BINDIR} install || die "emake client install failed"

		# copy moviepacks/sounds
		cd "${WORKDIR}"
		insinto ${GAMES_DATADIR}/${PN}${GameSLOT}
		if use moviepack; then
			einfo 'Installing moviepack'
			doins -r moviepack || die "copying moviepack"
		fi
		if use moviesounds; then
			einfo 'Installing moviesounds'
			doins -r moviesounds || die "copying moviesounds"
			if use linguas_es && ! use linguas_en; then
				einfo 'Installing Spanish moviesounds'
				doins -r ArmageTRON/moviesounds || die "copying spanish moviesounds"
			fi
		fi
	fi
	if [ -d "${S}/server" ]; then
		cd "${S}/server"

		emake DESTDIR="${D}" armabindir=${GAMES_BINDIR} install || die "emake server install failed"

		einfo 'Adjusting dedicated server configuration'
		dosed "s,^\(user=\).*$,\1${GAMES_USER_DED},; s,^#\(VARDIR=/.*\)$,\\1," "${GAMES_SYSCONFDIR}/${PN}-dedicated${GameSLOT}/rc.config" || ewarn 'adjustments for rc.config FAILED; the defaults may not be suited for your system!'
		DedHOME="$(eval echo ~${GAMES_USER_DED})"
		dodir "${DedHOME}"
		dosym "${GAMES_STATEDIR}/${PN}-dedicated${GameSLOT}" "${DedHOME}/.${PN}"
	fi
	# Ok, so we screwed up on doc installation... so for now, the ebuild does this manually
	dohtml -r "${D}${GAMES_PREFIX}/share/doc"/*/html/*
	dodoc "${D}${GAMES_PREFIX}/share/doc"/*/html/*.txt
	rm -r "${D}${GAMES_PREFIX}/share/doc"
	rmdir "${D}${GAMES_PREFIX}/share"
	prepgamesdirs
}