You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
248 lines
5.9 KiB
248 lines
5.9 KiB
# Copyright 1999-2018 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=6
|
|
|
|
inherit desktop eapi7-ver gnome2-utils toolchain-funcs
|
|
|
|
MY_BUILD="$(ver_cut 2)"
|
|
MY_DATE="$(ver_cut 1)"
|
|
|
|
MY_PN_HRP="duke3d_hrp"
|
|
MY_PN_OPL="duke3d_musopl"
|
|
MY_PN_PSX="duke3d_psx"
|
|
MY_PN_SC55="duke3d_music-sc55"
|
|
MY_PN_VOXELS="duke3d_voxels"
|
|
MY_PN_XXX="duke3d_xxx"
|
|
|
|
MY_PV_HRP="5.4"
|
|
MY_PV_OPL="2.01"
|
|
MY_PV_PSX="1.11"
|
|
MY_PV_SC55="4.02"
|
|
MY_PV_VOXELS="1.21"
|
|
MY_PV_XXX="1.33"
|
|
|
|
DESCRIPTION="An open source engine port of the classic PC first person shooter Duke Nukem 3D"
|
|
HOMEPAGE="http://www.eduke32.com/"
|
|
SRC_URI="http://dukeworld.com/eduke32/synthesis/${MY_DATE}-${MY_BUILD}/${PN}_src_${MY_DATE}-${MY_BUILD}.tar.xz
|
|
http://www.eduke32.com/images/eduke32_classic.png
|
|
hrp? ( http://www.duke4.org/files/nightfright/hrp/duke3d_hrp.zip -> ${MY_PN_HRP}-${MY_PV_HRP}.zip )
|
|
offensive? ( http://www.duke4.org/files/nightfright/related/${MY_PN_XXX}.zip -> ${MY_PN_XXX}-${MY_PV_XXX}.zip )
|
|
opl? ( http://www.moddb.com/downloads/mirror/95750/102/ce9e8f422c6cccdb297852426e96740a -> ${MY_PN_OPL}-${MY_PV_OPL}.zip )
|
|
psx? ( http://www.duke4.org/files/nightfright/related/duke3d_psx.zip -> ${MY_PN_PSX}-${MY_PV_PSX}.zip )
|
|
sc-55? ( http://www.duke4.org/files/nightfright/music/${MY_PN_SC55}.zip -> ${MY_PN_SC55}-${MY_PV_SC55}.zip )
|
|
voxels? ( https://www.dropbox.com/s/yaxfahyvskyvt4r/duke3d_voxels.zip -> ${MY_PN_VOXELS}-${MY_PV_VOXELS}.zip )"
|
|
|
|
KEYWORDS="~amd64 ~hppa ~x86"
|
|
LICENSE="BUILDLIC GPL-2 HRP"
|
|
SLOT="0"
|
|
IUSE="cdinstall demo flac fluidsynth gtk hrp offensive opengl opl png psx sc-55 server sdk timidity tools vorbis voxels vpx xmp"
|
|
REQUIRED_USE="cdinstall? ( !demo )
|
|
demo? ( !cdinstall )
|
|
hrp? ( ^^ ( demo cdinstall )
|
|
!voxels )
|
|
offensive? ( ^^ ( demo cdinstall ) )
|
|
opl? ( ^^ ( demo cdinstall )
|
|
!sc-55 )
|
|
psx? ( ^^ ( demo cdinstall ) )
|
|
sc-55? ( ^^ ( demo cdinstall )
|
|
!opl )
|
|
voxels? ( !hrp )
|
|
vpx? ( opengl )"
|
|
|
|
S="${WORKDIR}/${PN}_${MY_DATE}-${MY_BUILD}"
|
|
|
|
MY_DEPEND_RDEPEND="media-libs/libsdl2[joystick,opengl?,sound,video,X]
|
|
media-libs/sdl2-mixer[flac?,fluidsynth?,midi,timidity?,vorbis?]
|
|
sys-libs/zlib:=
|
|
flac? ( media-libs/flac )
|
|
gtk? ( x11-libs/gtk+:2 )
|
|
opengl? ( virtual/glu
|
|
virtual/opengl )
|
|
png? ( media-libs/libpng:0= )
|
|
timidity? ( media-sound/timidity-freepats )
|
|
vpx? ( media-libs/libvpx:= )
|
|
vorbis? ( media-libs/libogg
|
|
media-libs/libvorbis )
|
|
xmp? ( media-libs/exempi:= )"
|
|
|
|
RDEPEND="${MY_DEPEND_RDEPEND}
|
|
cdinstall? ( games-fps/duke3d-data )
|
|
demo? ( games-fps/duke3d-demodata )"
|
|
|
|
DEPEND="${MY_DEPEND_RDEPEND}
|
|
app-arch/unzip
|
|
x86? ( dev-lang/nasm )"
|
|
|
|
PATCHES=( "${FILESDIR}/log-to-tmpdir.patch" "${FILESDIR}/search-duke3d-path.patch" )
|
|
|
|
src_unpack() {
|
|
# Extract only the eduke32 archive
|
|
unpack ${PN}_src_${MY_DATE}-${MY_BUILD}.tar.xz
|
|
|
|
# Unpack only the documentation
|
|
if use hrp; then
|
|
unzip -q "${DISTDIR}"/${MY_PN_HRP}-${MY_PV_HRP}.zip hrp_readme.txt hrp_todo.txt || die
|
|
fi
|
|
if use offensive; then
|
|
unzip -q "${DISTDIR}"/${MY_PN_XXX}-${MY_PV_XXX}.zip xxx_readme.txt || die
|
|
fi
|
|
if use opl; then
|
|
unzip -q "${DISTDIR}"/${MY_PN_OPL}-${MY_PV_OPL}.zip readme.txt || die
|
|
fi
|
|
if use sc-55; then
|
|
unzip -q "${DISTDIR}"/${MY_PN_SC55}-${MY_PV_SC55}.zip readme/music_readme.txt || die
|
|
fi
|
|
if use voxels; then
|
|
unzip -q "${DISTDIR}"/${MY_PN_VOXELS}-${MY_PV_VOXELS}.zip voxelpack_readme.txt || die
|
|
fi
|
|
}
|
|
|
|
src_compile() {
|
|
local myemakeopts=(
|
|
ALLOCACHE_AS_MALLOC=0
|
|
AS=$(tc-getAS)
|
|
CC=$(tc-getCC)
|
|
CXX=$(tc-getCXX)
|
|
CLANG=0
|
|
CPLUSPLUS=1
|
|
CUSTOMOPT=""
|
|
DEBUGANYWAY=0
|
|
F_JUMP_TABLES=""
|
|
FORCEDEBUG=0
|
|
HAVE_FLAC=$(usex flac 1 0)
|
|
HAVE_GTK2=$(usex gtk 1 0)
|
|
HAVE_VORBIS=$(usex vorbis 1 0)
|
|
HAVE_XMP=$(usex xmp 1 0)
|
|
LINKED_GTK=$(usex gtk 1 0)
|
|
LTO=1
|
|
LUNATIC=0
|
|
KRANDDEBUG=0
|
|
MEMMAP=0
|
|
MIXERTYPE=SDL
|
|
NETCODE=$(usex server 1 0)
|
|
NOASM=0
|
|
OPTLEVEL=0
|
|
OPTOPT=""
|
|
PACKAGE_REPOSITORY=1
|
|
POLYMER=$(usex opengl 1 0)
|
|
PRETTY_OUTPUT=0
|
|
PROFILER=0
|
|
RELEASE=1
|
|
RENDERTYPE=SDL
|
|
SDL_TARGET=2
|
|
SIMPLE_MENU=0
|
|
STRIP=""
|
|
TANDALONE=0
|
|
STARTUP_WINDOW=$(usex gtk 1 0)
|
|
USE_OPENGL=$(usex opengl 1 0)
|
|
USE_LIBVPX=$(usex vpx 1 0)
|
|
USE_LIBPNG=$(usex png 1 0)
|
|
USE_LUAJIT_2_1=0
|
|
WITHOUT_GTK=$(usex gtk 0 1)
|
|
)
|
|
|
|
emake "${myemakeopts[@]}"
|
|
|
|
if use tools; then
|
|
emake utils "${myemakeopts[@]}"
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
local binary
|
|
local binaries=(
|
|
eduke32
|
|
mapster32
|
|
"${FILESDIR}"/eduke32-bin
|
|
)
|
|
for binary in "${binaries[@]}"; do
|
|
dobin "${binary}"
|
|
done
|
|
|
|
if use tools; then
|
|
local tool
|
|
local tools=(
|
|
arttool
|
|
bsuite
|
|
cacheinfo
|
|
generateicon
|
|
givedepth
|
|
ivfrate
|
|
kextract
|
|
kgroup
|
|
kmd2tool
|
|
makesdlkeytrans
|
|
map2stl
|
|
md2tool
|
|
mkpalette
|
|
transpal
|
|
unpackssi
|
|
wad2art
|
|
wad2map
|
|
)
|
|
for tool in "${tools[@]}"; do
|
|
dobin ${tool}
|
|
done
|
|
fi
|
|
|
|
keepdir /usr/share/games/eduke32
|
|
insinto /usr/share/games/eduke32
|
|
if use hrp; then
|
|
doins "${DISTDIR}"/${MY_PN_HRP}-${MY_PV_HRP}.zip
|
|
fi
|
|
if use offensive; then
|
|
doins "${DISTDIR}"/${MY_PN_XXX}-${MY_PV_XXX}.zip
|
|
fi
|
|
if use opl; then
|
|
doins "${DISTDIR}"/${MY_PN_OPL}-${MY_PV_OPL}.zip
|
|
fi
|
|
if use psx; then
|
|
doins "${DISTDIR}"/${MY_PN_PSX}-${MY_PV_PSX}.zip
|
|
fi
|
|
if use sc-55; then
|
|
doins "${DISTDIR}"/${MY_PN_SC55}-${MY_PV_SC55}.zip
|
|
fi
|
|
if use sdk; then
|
|
doins -r package/sdk
|
|
fi
|
|
if use voxels; then
|
|
doins "${DISTDIR}"/${MY_PN_VOXELS}-${MY_PV_VOXELS}.zip
|
|
fi
|
|
|
|
newicon "${DISTDIR}"/eduke32_classic.png eduke32.png
|
|
|
|
make_desktop_entry eduke32-bin EDuke32 eduke32 Game
|
|
make_desktop_entry mapster32 Mapster32 eduke32 Game
|
|
|
|
local DOCS=( package/sdk/samples/*.txt source/build/doc/*.txt source/duke3d/src/lunatic/doc/*.txt )
|
|
if use hrp; then
|
|
DOCS+=( "${WORKDIR}"/hrp_readme.txt "${WORKDIR}"/hrp_todo.txt )
|
|
fi
|
|
if use offensive; then
|
|
DOCS+=( "${WORKDIR}"/xxx_readme.txt )
|
|
fi
|
|
if use opl; then
|
|
DOCS+=( "${WORKDIR}"/readme.txt )
|
|
fi
|
|
if use sc-55; then
|
|
DOCS+=( "${WORKDIR}"/readme/music_readme.txt )
|
|
fi
|
|
if use voxels; then
|
|
DOCS+=( "${WORKDIR}"/voxelpack_readme.txt )
|
|
fi
|
|
einstalldocs
|
|
}
|
|
|
|
pkg_preinst() {
|
|
gnome2_icon_savelist
|
|
}
|
|
|
|
pkg_postinst() {
|
|
gnome2_icon_cache_update
|
|
}
|
|
|
|
pkg_postrm() {
|
|
gnome2_icon_cache_update
|
|
}
|