Files
haikuports/games-engines/exult/exult-1.12.1.recipe
2026-01-12 07:18:41 +01:00

203 lines
6.0 KiB
Bash

SUMMARY="Ultima 7 game engine that runs on modern operating systems"
DESCRIPTION="As computers evolve, we risk losing classic games from the not-so-distant past. One \
of these, Ultima VII, a two part RPG from the early 1990's, still has a huge following, and many \
consider it to be one of the most immersive games ever produced.
Exult is a project to recreate Ultima VII for modern operating systems, using the game's original \
plot, data, and graphics files.
For Haiku:
Users should install the game data to ~/config/non-packaged/data/exult to be able to play the game."
HOMEPAGE="https://exult.sourceforge.io/"
COPYRIGHT="2026 The Exult Team"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="http://prdownloads.sourceforge.net/exult/exult-$portVersion.tar.gz"
CHECKSUM_SHA256="5e5113e31dd8010b8dfd00b6b08f76681dc1e88254d357c92f15c202f7ed7e1f"
SOURCE_URI_2="http://downloads.sourceforge.net/exult/exult_audio.zip"
CHECKSUM_SHA256_2="72e10efa8664a645470ceb99f6b749ce99c3d5fd1c8387c63640499cfcdbbc68"
ADDITIONAL_FILES="exult.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
exult$secondaryArchSuffix = $portVersion
cmd:exult = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libfluidsynth$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libSDL2_2.0$secondaryArchSuffix
lib:libogg$secondaryArchSuffix
lib:libvorbis$secondaryArchSuffix
lib:libvorbisfile$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
SUMMARY_studio="Ultima VII game data editor"
DESCRIPTION_studio="Exult Studio is an Ultima VII game data editor based on the Exult project."
PROVIDES_studio="
exult_studio$secondaryArchSuffix = $portVersion
cmd:exult_studio = $portVersion
"
REQUIRES_studio="
exult$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libatk_1.0$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libcairo_gobject$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgdk_3$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libgio_2.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
SUMMARY_tools="Command-line tools bundled with Exult"
DESCRIPTION_tools="A collection of command-line tools bundled with Exult."
PROVIDES_tools="
exult_tools$secondaryArchSuffix = $portVersion
cmd:cmanip = $portVersion
cmd:expack = $portVersion
cmd:ipack = $portVersion
cmd:mklink = $portVersion
cmd:rip = $portVersion
cmd:shp2pcx = $portVersion
cmd:splitshp = $portVersion
cmd:textpack = $portVersion
cmd:u7voice2syx = $portVersion
cmd:ucxt = $portVersion
cmd:wuc = $portVersion
"
REQUIRES_tools="
exult$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libfluidsynth$secondaryArchSuffix
devel:libgdk_3$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libSDL2_2.0$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
devel:libvorbis$secondaryArchSuffix
devel:libvorbisfile$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
autoconf_archive
cmd:autoconf
cmd:automake
cmd:gcc$secondaryArchSuffix
cmd:gettext$secondaryArchSuffix
cmd:libtool$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
export LDFLAGS="-lnetwork"
autoreconf --install
runConfigure --omit-dirs binDir ./configure \
--bindir=$prefix/bin --enable-exult-studio
make $jobArgs
}
INSTALL()
{
make install
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local APP_NAME="Exult"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.exult"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/exult.rdef.in > exult.rdef
APP_NAME="Exult Studio"
LONG_INFO="$SUMMARY_studio"
APP_SIGNATURE="application/x-vnd.exult_studio"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/exult.rdef.in > exult_studio.rdef
addResourcesToBinaries exult.rdef $prefix/bin/exult
addResourcesToBinaries exult_studio.rdef $prefix/bin/exult_studio
# install music pack
mkdir -p $dataDir/exult/music
cp $sourceDir2/*.flx $dataDir/exult
cp $sourceDir2/*.txt $dataDir/exult
cp $sourceDir2/music/*.ogg $dataDir/exult/music
# we are not linux
rm -rf $dataDir/{applications,icons,metainfo}
# Make the app names uppercase then link them back in lowercase for cmd
mkdir -p $appsDir && mv $prefix/bin/exult $appsDir/Exult
ln -s $appsDir/Exult $prefix/bin/exult
mv $prefix/bin/exult_studio $appsDir/"Exult Studio"
ln -s $appsDir/"Exult Studio" $prefix/bin/exult_studio
# create Deskbar links
addAppDeskbarSymlink $appsDir/Exult
addAppDeskbarSymlink $appsDir/"Exult Studio"
packageEntries studio \
$appsDir/"Exult Studio" \
$prefix/bin/exult_studio \
$dataDir/deskbar/menu/Applications/"Exult Studio" \
$dataDir/exult/exult_studio.glade \
$dataDir/exult/estudio \
$docDir/images/studio* \
$docDir/exult_studio.html \
$manDir/man1/exult_studio.1
packageEntries tools \
$prefix/bin/cmanip \
$prefix/bin/expack \
$prefix/bin/ipack \
$prefix/bin/mklink \
$prefix/bin/rip \
$prefix/bin/shp2pcx \
$prefix/bin/splitshp \
$prefix/bin/textpack \
$prefix/bin/u7voice2syx \
$prefix/bin/ucxt \
$prefix/bin/wuc \
$manDir/man1
}