void-packages/srcpkgs/mame/template
Jürgen Buchmüller 12ea8fb467
mame: update to 0.200 (i686 will probably fail)
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>
2018-07-26 00:26:01 +02:00

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
}