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.

108 lines
2.4 KiB

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic optfeature prefix toolchain-funcs xdg
DESCRIPTION="An enhanced version of the game engine from the classic Mac game, Marathon"
HOMEPAGE="https://alephone.lhowon.org/"
if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/Aleph-One-Marathon/alephone/"
EGIT_SUBMODULES=() # Upstream includes game data as submodules, we only want the engine
else
SRC_URI="https://github.com/Aleph-One-Marathon/alephone/archive/refs/tags/release-${PV}.tar.gz"
S="${WORKDIR}/${PN}-release-${PV}"
KEYWORDS="~amd64"
fi
LICENSE="GPL-3+ BitstreamVera OFL-1.1"
SLOT="0"
IUSE="alsa curl speex upnp"
# ffmpeg covers most audio/video use cases and the package doesn't configure
# with alternatives enabled (media-libs/smpeg)
# When resolved upstream,
# !ffmpeg ( media-libs/libmad media-libs/libsndfile media-libs/libvorbis media-libs/smpeg )
# with an appropriate REQUIRED_USE may be added.
# See https://github.com/Aleph-One-Marathon/alephone/issues/85
RDEPEND="
dev-libs/boost:=
dev-libs/zziplib:=
media-libs/libpng
media-libs/libsdl2
media-libs/sdl2-image[png]
media-libs/sdl2-net
media-libs/sdl2-ttf
media-video/ffmpeg:=[mp3,vorbis]
sys-libs/zlib
virtual/opengl
virtual/glu
alsa? ( media-libs/alsa-lib )
curl? ( net-misc/curl )
speex? (
media-libs/speex
media-libs/speexdsp
)
upnp? ( net-libs/miniupnpc )
"
DEPEND="
${RDEPEND}
"
BDEPEND="
virtual/pkgconfig
"
PATCHES=( "${FILESDIR}/${P}-c99.patch" )
src_prepare() {
default
eautoreconf
}
src_configure() {
# -Werror=odr
# https://bugs.gentoo.org/873298
# https://github.com/Aleph-One-Marathon/alephone/issues/475
filter-lto
econf \
--enable-lua \
--enable-opengl \
--with-ffmpeg \
--without-mad \
--without-smpeg \
--without-sndfile \
--without-vorbis \
$(use_with alsa) \
$(use_with curl) \
$(use_with speex) \
$(use_with upnp miniupnpc)
}
src_compile() {
tc-export AR
default
}
src_install() {
default
prefixify_ro "${FILESDIR}"/${PN}.sh
dobin "${T}"/${PN}.sh
doman docs/${PN}.6
docinto html/
dodoc docs/*.html
}
pkg_postinst() {
xdg_pkg_postinst
optfeature_header "Install game data:"
optfeature "Marathon data files" games-fps/alephone-marathon
optfeature "Marathon 2 Durandal data files" games-fps/alephone-durandal
optfeature "Marathon: Infinity data files" games-fps/alephone-infinity
}