From 08d6a68a44a0a63aba6292d0debbc81b01e2ea56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Thu, 1 Oct 2020 22:27:37 +0200 Subject: [PATCH] mame: update to 0.225; enable cross Also switch to python3. Remove obsolete files/mess.sh and install check. When cross compiling build genie for the host and in do_build() now override the CC, CXX, LD with the target compilers. --- srcpkgs/mame/files/mess.sh | 45 -------------- srcpkgs/mame/template | 121 ++++++++++++++++++++----------------- 2 files changed, 65 insertions(+), 101 deletions(-) delete mode 100644 srcpkgs/mame/files/mess.sh diff --git a/srcpkgs/mame/files/mess.sh b/srcpkgs/mame/files/mess.sh deleted file mode 100644 index 2cf56d9b32..0000000000 --- a/srcpkgs/mame/files/mess.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -exec_mess() { - /usr/libexec/mame/mess \ - -artpath "$HOME/.mess/artwork;artwork" \ - -ctrlrpath "$HOME/.mess/ctrlr;ctrlr" \ - -inipath $HOME/.mess/ini \ - -rompath $HOME/.mess/roms \ - -samplepath "$HOME/.mess/samples;samples" \ - -cfg_directory $HOME/.mess/cfg \ - -comment_directory $HOME/.mess/comments \ - -diff_directory $HOME/.mess/diff \ - -input_directory $HOME/.mess/inp \ - -nvram_directory $HOME/.mess/nvram \ - -snapshot_directory $HOME/.mess/snap \ - -state_directory $HOME/.mess/sta \ - -video opengl \ - -createconfig -} - -if [ "$1" = "--newini" ]; then - echo "Rebuilding the ini file at $HOME/.mess/mame.ini" - echo "Modify this file for permanent changes to your MESS" - echo "options and paths before running MESS again." - cd $HOME/.mess - if [ -e mame.ini ]; then - echo "Your old ini file has been renamed to mame.ini.bak" - mv mame.ini mame.ini.bak - fi - exec_mess -elif [ ! -e $HOME/.mess ]; then - echo "Running MESS for the first time..." - echo "Creating an ini file for MESS at $HOME/.mess/mame.ini" - echo "Modify this file for permanent changes to your MAME" - echo "options and paths before running MAME again." - mkdir $HOME/.mess - for f in artwork cfg comments ctrlr diff ini ip nvram \ - samples snap sta roms; do - mkdir $HOME/.mess/${f} - done - cd $HOME/.mess && exec_mess -else - cd /usr/share/mame - /usr/libexec/mame/mess "$@" -fi diff --git a/srcpkgs/mame/template b/srcpkgs/mame/template index a48759e2dd..60cc4c273a 100644 --- a/srcpkgs/mame/template +++ b/srcpkgs/mame/template @@ -1,73 +1,85 @@ # Template file for 'mame' pkgname=mame -version=0224 +version=0225 revision=1 wrksrc="mame-mame${version}" +hostmakedepends="pkg-config python3 qt5-host-tools tar xz which" +makedepends="SDL2_ttf-devel fontconfig-devel glm libgomp-devel libjpeg-turbo-devel + lua-devel libutf8proc-devel libuv-devel portaudio-devel portmidi-devel + pugixml-devel rapidjson $(vopt_if qt 'qt5-devel')" +depends="liberation-fonts-ttf" short_desc="Multiple Arcade Machine Emulator" maintainer="Jürgen Buchmüller " license="GPL-2.0-or-later" homepage="http://mamedev.org" distfiles="https://github.com/mamedev/mame/archive/mame${version}.tar.gz" -checksum=3518e71ec20fbeac8ebe93f8ec856078b8288e19f0d7cb38959d4bde30cd2810 - -hostmakedepends="pkg-config python tar xz which" -makedepends="SDL2_ttf-devel glm libgomp-devel libjpeg-turbo-devel - libutf8proc-devel libuv-devel lua53-devel portaudio-devel portmidi-devel - pugixml-devel rapidjson $(vopt_if qt 'qt5-devel')" -depends="liberation-fonts-ttf" -nocross=yes +checksum=ca4d5a429d72b30fd2bdf60350e490c7de4ac64b1e0dafcf38450f8ba84a1a95 nodebug=yes replaces="sdlmame>=0 sdlmess>=0" CFLAGS="-I${XBPS_CROSS_BASE}/usr/include/lua5.3 -I${XBPS_CROSS_BASE}/usr/include/libutf8proc" -CXXFLAGS="${CFLAGS}" -case "$XBPS_TARGET_MACHINE" in - *-musl) CXXFLAGS+=" -DBX_CRT_MUSL=1" ;; -esac +CXXFLAGS="$CFLAGS" +[ "$XBPS_TARGET_LIBC" = musl ] && CXXFLAGS+=" -DBX_CRT_MUSL=1" build_options="qt" -if [ -z "$CROSS_BUILD" ]; then - build_options_default="qt" +build_options_default="qt" + +_options="REGENIE=1 TARGETOS=linux NOWERROR=1 OPENMP=1 OPTIMIZE=3 + TOOLS=1 LTO=0 USE_SYSTEM_LIB_ASIO=0 USE_SYSTEM_LIB_EXPAT=1 + USE_SYSTEM_LIB_ZLIB=1 USE_SYSTEM_LIB_JPEG=1 USE_SYSTEM_LIB_FLAC=1 + USE_SYSTEM_LIB_LUA=0 USE_SYSTEM_LIB_SQLITE3=1 + USE_SYSTEM_LIB_PORTMIDI=1 USE_SYSTEM_LIB_PORTAUDIO=1 + USE_SYSTEM_LIB_UTF8PROC=1 USE_SYSTEM_LIB_GLM=1 + USE_SYSTEM_LIB_RAPIDJSON=1 USE_SYSTEM_LIB_PUGIXML=1" +if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then + _options+=" BIGENDIAN=1" +else + _options+=" BIGENDIAN=0" +fi +if [ "${CROSS_BUILD}" ]; then + _options+=" NOASM=1" +fi +if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then + # Overcome linker memory exhaustion + _options+=" SYMBOLS=0" + LDFLAGS+=" -Wl,--no-keep-memory" +else + _options+=" PTR64=1" +fi +if [ "$build_option_qt" ]; then + _options+=" USE_QTDEBUG=1" fi -do_build() { - local opts="REGENIE=1" - opts+=" TARGETOS=linux" - opts+=" NOWERROR=1" - opts+=" OPENMP=1" - opts+=" OPTIMIZE=3" - opts+=" TOOLS=1" - opts+=" LTO=0" - 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" - opts+=" USE_SYSTEM_LIB_PUGIXML=1" - [ "$build_option_qt" ] && opts+=" USE_QTDEBUG=1" - case "$XBPS_TARGET_MACHINE" in - i686*) # Overcome linker memory exhaustion - opts+=" SYMBOLS=0" - ;; - x86_64*|aarch64*|ppc64*) - opts+=" PTR64=1" - ;; - esac +# To test flags with a tiny build remove hash (#) on the following line +#_options+=" TARGET=mame SUBTARGET=tiny VERBOSE=1" + +do_configure() { + # When linking mame expects liblua.so but we have liblua5.3.so + ln -sf liblua5.3.so ${XBPS_CROSS_BASE}/usr/lib/liblua.so if [ "${CROSS_BUILD}" ]; then - # Doesn't work yet - opts+=" TOOLCHAIN=${XBPS_CROSS_TRIPLET}" + case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*) ;; + *) # Cross compilers don't need/use -m32 or -m64 + grep -rlw -- -m32 | xargs sed -i "s;-m32;;" + grep -rlw -- -m64 | xargs sed -i "s;-m64;;" + ;; + esac + make ${makejobs} ${_options} \ + CC="$CC_host" \ + CXX="$CXX_host" \ + LD="$CXX_host" \ + CFLAGS="$CFLAGS_host" \ + CXXFLAGS="$CXXFLAGS_host" \ + LDFLAGS="$LDFLAGS_host" \ + genie + else + make ${makejobs} ${_options} genie fi - make ${opts} genie - cd 3rdparty/genie - bin/linux/genie embed - cd ${wrksrc} - make ${opts} ${makejobs} +} + +do_build() { + make OVERRIDE_CC="$CC" OVERRIDE_CXX="$CXX" OVERRIDE_LD="$CXX" \ + ${makejobs} ${_options} } do_install() { @@ -76,11 +88,6 @@ do_install() { # 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 @@ -113,4 +120,6 @@ do_install() { for f in artwork bgfx docs hash hlsl keymaps plugins samples; do vcopy ${f} usr/share/${pkgname} done + # Remove temporary liblua.so symlink + rm -f ${XBPS_CROSS_BASE}/usr/lib/liblua.so }