12ea8fb467
The subtargets arcade and mess don't work any longer. If building the mame congolmerate for i686 fails, we need to mark i686 as broken from now on - or give the i686 builder more memory to finish linking this beast. It builds here with sufficient RAM. Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
115 lines
3 KiB
Bash
115 lines
3 KiB
Bash
# Template file for 'mame'
|
|
pkgname=mame
|
|
version=0200
|
|
revision=1
|
|
wrksrc="mame-mame${version}"
|
|
homepage="http://mamedev.org"
|
|
distfiles="https://github.com/mamedev/mame/archive/mame${version}.tar.gz"
|
|
short_desc="The Multiple Arcade Machine Emulator"
|
|
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
|
|
license="GPL-2.0-or-later"
|
|
checksum=a6c43323e120f55b32c072726bdda357aa221a599070989b6e3406ee4e3983fe
|
|
|
|
hostmakedepends="automoc4 perl pkg-config python"
|
|
makedepends="SDL2_ttf-devel glm libjpeg-turbo-devel libutf8proc-devel
|
|
libuv-devel lua-devel portaudio-devel portmidi-devel rapidjson
|
|
$(vopt_if qt 'qt5-devel')"
|
|
depends="liberation-fonts-ttf"
|
|
nocross=yes
|
|
replaces="sdlmame>=0 sdlmess>=0"
|
|
|
|
CXXFLAGS="-I${XBPS_CROSS_BASE}/usr/include/lua5.3 -I${XBPS_CROSS_BASE}/usr/include/libutf8proc"
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
i686*) # Can no longer build separate arcade and mess targets for i686
|
|
# If the builder can't handle linking for i686 due to memory
|
|
# constraints, mame will be broken for i686 from now on
|
|
nodebug=yes
|
|
;;
|
|
esac
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
*-musl) CXXFLAGS+=" -DBX_CRT_MUSL=1" ;;
|
|
esac
|
|
|
|
build_options="qt"
|
|
if [ -z "$CROSS_BUILD" ]; then
|
|
build_options_default="qt"
|
|
fi
|
|
|
|
do_build() {
|
|
local opts="REGENIE=1"
|
|
opts+=" TARGETOS=linux"
|
|
opts+=" NOWERROR=1"
|
|
opts+=" OPTIMIZE=3"
|
|
opts+=" TOOLS=1"
|
|
opts+=" USE_SYSTEM_LIB_EXPAT=1"
|
|
opts+=" USE_SYSTEM_LIB_ZLIB=1"
|
|
opts+=" USE_SYSTEM_LIB_JPEG=1"
|
|
opts+=" USE_SYSTEM_LIB_FLAC=1"
|
|
opts+=" USE_SYSTEM_LIB_LUA=1"
|
|
opts+=" USE_SYSTEM_LIB_SQLITE3=1"
|
|
opts+=" USE_SYSTEM_LIB_PORTMIDI=1"
|
|
opts+=" USE_SYSTEM_LIB_PORTAUDIO=1"
|
|
opts+=" USE_SYSTEM_LIB_UTF8PROC=1"
|
|
opts+=" USE_SYSTEM_LIB_GLM=1"
|
|
opts+=" USE_SYSTEM_LIB_RAPIDJSON=1"
|
|
[ "$build_option_qt" ] && opts+=" USE_QTDEBUG=1"
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
i686*) # Overcome linker memory exhaustion
|
|
opts+=" SYMBOLS=0"
|
|
;;
|
|
x86_64*|aarch64*)
|
|
opts+=" PTR64=1"
|
|
;;
|
|
esac
|
|
if [ "${CROSS_BUILD}" ]; then
|
|
# Doesn't work yet
|
|
opts+=" CROSS_BUILD=1 TOOLCHAIN=${XBPS_CROSS_TRIPLET}"
|
|
opts+=" OVERRIDE_CC=gcc OVERRIDE_CXX=g++ OVERRIDE_LD=g++"
|
|
fi
|
|
make ${opts} ${makejobs}
|
|
}
|
|
|
|
do_install() {
|
|
local f
|
|
|
|
# Install the mame script
|
|
vbin ${FILESDIR}/mame.sh mame
|
|
|
|
# If mess is a separate binary, also install the mess script
|
|
if [ "${XBPS_TARGET_MACHINE%-musl}" != "x86_64" ]; then
|
|
vbin ${FILESDIR}/mess.sh mess
|
|
fi
|
|
|
|
# Install the main application(s)
|
|
for f in mame mame64 mamearcade mamearcade64; do
|
|
if [ -r ${f} ]; then
|
|
vinstall ${f} 755 usr/share/${pkgname} mame
|
|
break
|
|
fi
|
|
done
|
|
for f in mess mess64; do
|
|
if [ -r ${f} ]; then
|
|
vinstall ${f} 755 usr/share/${pkgname} mess
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Install the tools
|
|
for f in chdman jedutil regrep pngcmp romcmp src2html srcclean \
|
|
ldverify ldresample unidasm castool floptool imgtool; do
|
|
vbin ${f}
|
|
if [ -f docs/man/${f}.1 ]; then
|
|
vman docs/man/${f}.1
|
|
fi
|
|
done
|
|
for f in mame mess; do
|
|
if [ -r docs/man/${f}.6 ]; then
|
|
vman docs/man/${f}.6
|
|
fi
|
|
done
|
|
|
|
# Install the extra bits
|
|
for f in artwork bgfx docs hash hlsl keymaps plugins samples; do
|
|
vcopy ${f} usr/share/${pkgname}
|
|
done
|
|
}
|