mirror of
https://github.com/gryf/gryf-overlay.git
synced 2026-01-06 13:54:23 +01:00
162 lines
3.7 KiB
Bash
162 lines
3.7 KiB
Bash
# Copyright 1999-2007 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: $
|
|
|
|
inherit eutils autotools games
|
|
|
|
MY_PV=${PV/_rc/-RC}
|
|
MY_P="ufoai-${MY_PV}"
|
|
MY_SF="mirror://sourceforge/ufoai"
|
|
|
|
DESCRIPTION="UFO: Alien Invasion - X-COM inspired strategy game"
|
|
HOMEPAGE="http://www.ufoai.net/"
|
|
SRC_URI="${MY_SF}/music.tar.bz2
|
|
${MY_SF}/${MY_P}-data.tar
|
|
${MY_SF}/${MY_P}-source.tar.bz2
|
|
${MY_SF}/${MY_P}-i18n.tar.bz2"
|
|
# Map data is already in the main data tarball
|
|
# ${MY_SF}/${MY_P}-mapsource.tar.bz2
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~x86"
|
|
IUSE="alsa arts debug dedicated dga doc ipv6 jack master oss paranoid"
|
|
|
|
# Info at http://ufoai.ninex.info/wiki/index.php/Compile_for_Linux
|
|
UIRDEPEND="virtual/opengl
|
|
virtual/glu
|
|
>=media-libs/libsdl-1.2.7
|
|
>=media-libs/sdl-ttf-2.0.7
|
|
dga? ( x11-libs/libXxf86dga )
|
|
x11-libs/libX11"
|
|
UIDEPEND="x11-proto/xf86vidmodeproto
|
|
x11-proto/xproto"
|
|
RDEPEND="${UIRDEPEND}
|
|
alsa? ( media-libs/alsa-lib )
|
|
arts? ( kde-base/arts )
|
|
>=media-libs/jpeg-6b-r7
|
|
media-libs/libpng
|
|
>=media-libs/libogg-1.1
|
|
>=media-libs/libvorbis-1.1
|
|
jack? ( >=media-sound/jack-0.100.0 )
|
|
sys-devel/gettext
|
|
>=sys-libs/glibc-2.4
|
|
>=sys-libs/zlib-1.2.3"
|
|
DEPEND="${RDEPEND}
|
|
${UIDEPEND}
|
|
doc? ( app-doc/doxygen )"
|
|
|
|
S=${WORKDIR}/${MY_P}-source
|
|
dir=${GAMES_DATADIR}/${PN}
|
|
|
|
src_unpack() {
|
|
unpack ${A}
|
|
cd "${S}"
|
|
|
|
local libdir=$(games_get_libdir)/${PN}
|
|
# Set libdir
|
|
sed -i \
|
|
-e "s:libPath, \"\.\":libPath, \"${libdir}\":" \
|
|
src/{client,ports/linux}/*.c || die "sed *.c failed"
|
|
|
|
sed -i \
|
|
-e "s:\"s_libdir\", \"\":\"s_libdir\", \"${libdir}\":" \
|
|
src/client/snd_ref.c || die "sed snd_ref.c failed"
|
|
|
|
sed -i \
|
|
-e "s:game\.so\", path:game\.so\", \"${libdir}\":" \
|
|
src/ports/linux/sys_linux.c || die "sed sys_linux.c failed"
|
|
|
|
# Set basedir
|
|
sed -i \
|
|
-e "s:\"fs_basedir\", \"\.\":\"fs_basedir\", \"${dir}\":" \
|
|
src/qcommon/files.c || die "sed files.c failed"
|
|
|
|
sed -i \
|
|
-e "s:/usr/local/games/ufoai:${dir}:" \
|
|
src/tools/gtkradiant/games/ufoai.game || die "sed ufoai.game failed"
|
|
|
|
# Fixes bug in finding text files - it should use fs_basedir
|
|
sed -i \
|
|
-e "s:FS_GetCwd():\"${dir}\":" \
|
|
src/qcommon/common.c || die "sed common.c failed"
|
|
|
|
eautoreconf
|
|
}
|
|
|
|
src_compile() {
|
|
yesno() { useq $1 && echo yes || echo no ; }
|
|
|
|
# Forces building of client.
|
|
# gettext is required to show the intro text.
|
|
# egamesconf fails with openal.
|
|
# $(use_with openal)
|
|
egamesconf \
|
|
$(use_enable dedicated) \
|
|
$(use_enable master) \
|
|
$(use_enable !debug release) \
|
|
$(use_enable paranoid) \
|
|
--with-vid-glx \
|
|
--with-vid-vidmode \
|
|
--with-sdl \
|
|
--with-snd-sdl \
|
|
$(use_with alsa snd-alsa) \
|
|
$(use_with arts snd-arts) \
|
|
$(use_with jack snd-jack) \
|
|
$(use_with oss snd-oss) \
|
|
$(use_with dga vid-dga) \
|
|
$(use_with ipv6) \
|
|
--with-gettext \
|
|
--without-openal \
|
|
|| die "egamesconf failed"
|
|
|
|
emake || die "emake failed"
|
|
|
|
if use doc ; then
|
|
emake docs || die "emake docs failed"
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
# ufo is usually started by a "ufoai" wrapper script.
|
|
# Might as well standardize on the ebuild name, for minimum confusion.
|
|
newgamesbin ufo ${PN} || die
|
|
newicon src/ports/linux/installer/data/ufo.xpm ${PN}.xpm || die
|
|
make_desktop_entry ${PN} "UFO: Alien Invasion" ${PN}.xpm
|
|
|
|
if use dedicated ; then
|
|
dogamesbin ufoded || die
|
|
fi
|
|
|
|
if use master ; then
|
|
dogamesbin ufomaster || die
|
|
fi
|
|
|
|
if [[ -f ufo2map ]] ; then
|
|
dogamesbin ufo2map || die
|
|
fi
|
|
|
|
local libdir=$(games_get_libdir)/${PN}
|
|
exeinto "${libdir}"
|
|
local f
|
|
for f in *.so base/game.so ; do
|
|
doexe "${f}" || die "doexe ${f} failed"
|
|
done
|
|
|
|
insinto "${dir}"
|
|
doins -r "${WORKDIR}"/{base,music} \
|
|
|| die "doins -r failed"
|
|
|
|
if use doc ; then
|
|
dohtml -r "${WORKDIR}"/docs/html/*
|
|
fi
|
|
|
|
prepgamesdirs
|
|
}
|
|
|
|
pkg_postinst() {
|
|
games_pkg_postinst
|
|
|
|
elog "To play the game, run: ${PN}"
|
|
}
|