6 2

[alpine-aports] [PATCH] testing/mame: new aport

Taner Tas
Details
Message ID
<20180302172909.24694-1-taner76@gmail.com>
Sender timestamp
1520011749
DKIM signature
missing
Download raw message
Patch: +352 -0
---
 testing/mame/APKBUILD                    | 214 +++++++++++++++++++++++++++++++
 testing/mame/m68000_archopts.patch       |  17 +++
 testing/mame/mame-musl-workaraound.patch |  22 ++++
 testing/mame/mame.ini                    |  61 +++++++++
 testing/mame/midi.conf                   |   1 +
 testing/mame/nonag.diff                  |  37 ++++++
 6 files changed, 352 insertions(+)
 create mode 100644 testing/mame/APKBUILD
 create mode 100644 testing/mame/m68000_archopts.patch
 create mode 100644 testing/mame/mame-musl-workaraound.patch
 create mode 100644 testing/mame/mame.ini
 create mode 100644 testing/mame/midi.conf
 create mode 100644 testing/mame/nonag.diff

diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
new file mode 100644
index 0000000..aa87424
--- /dev/null
+++ b/testing/mame/APKBUILD
@@ -0,0 +1,214 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=mame
+pkgver=0.195
+pkgrel=0
+pkgdesc="Multi Arcade Machine Emulator."
+url="http://mamedev.org"
+arch="x86 x86_64 ppc64le armhf aarch64"
+license="GPL-2.0-or-later"
+makedepends="coreutils p7zip nasm dos2unix subversion \
+	clang-dev libxrandr-dev libxinerama-dev alsa-lib-dev python2-dev qt5-qtbase-dev \
+	py3-sphinx sdl2-dev sdl2_ttf-dev expat-dev zlib-dev mesa-dev libxinerama-dev \
+	fontconfig-dev libjpeg-turbo-dev flac-dev lua5.3-dev sqlite-dev portaudio-dev \
+	rapidjson-dev glm-dev qt5-qtbase-dev portmidi-dev"
+subpackages="$pkgname-data::noarch $pkgname-doc $pkgname-common::noarch $pkgname-lang::noarch \
+	$pkgname-tools $pkgname-plugins::noarch $pkgname-arcade $pkgname-mess groovymame \
+	groovymame-arcade:groovyarcade groovymame-mess:groovymess"
+_groovymame_patch="groovymame-${pkgver}.diff"
+_asio_git="https://github.com/chriskohlhoff/asio.git"
+source="https://github.com/mamedev/mame/releases/download/${pkgname}${pkgver/.}/${pkgname}${pkgver/.}s.zip
+	$_groovymame_patch::https://drive.google.com/uc?export=download&id=1OdjvKB2B_vTJKONjjW9rqZ-XZC26vP0k
+	mame.ini
+	midi.conf
+	mame-musl-workaraound.patch
+	nonag.diff
+	m68000_archopts.patch"
+builddir="${srcdir}/${pkgname}-${pkgver}"
+options="!check"
+
+prepare() {
+	cd "$srcdir"
+	if [ ! -d ${pkgname}-${pkgver} ]; then
+		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
+	fi
+	cd "$builddir"
+	if [ ! -d 3rdparty/asio.git ]; then
+		rm -rf 3rdparty/asio
+		git clone --depth=1 ${_asio_git} 3rdparty/asio.git
+		ln -sf asio.git/asio/ 3rdparty/
+	fi
+	cd "$builddir"
+	cp -n ${srcdir}/$_groovymame_patch .
+	echo "Converting all non-binary files to Unix format.."
+	find  . -type f -exec dos2unix -s -q {} \;
+	#clang workaraound
+	sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
+	mkdir -p vanilla
+	default_prepare
+}
+
+build() {
+	export OVERRIDE_CC=clang
+	export OVERRIDE_CXX=clang++
+	export CFLAGS="$CFLAGS -I/usr/include/lua5.3"
+	export CXXFLAGS="$CFLAGS"
+	export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
+
+	case "$CARCH" in
+		x86|armhf|ppc) _PTR64= ;;
+		*) _PTR64=1 ;;
+	esac
+	case "$CARCH" in
+		x86_64|x86) _NOASM= ;;
+		*) _NOASM=1 ;;
+	esac
+
+_build="make
+	TARGETOS=linux
+	NOWERROR=1
+	DEBUG=
+	VERBOSE=1
+	REGENIE=1
+	OSD=sdl
+	FORCE_DRC_C_BACKEND=
+	PTR64=$_PTR64
+	NOASM=$_NOASM
+	TOOLS=
+	SDL_INI_PATH=/etc/mame
+	USE_SYSTEM_LIB_EXPAT=1
+	USE_SYSTEM_LIB_ZLIB=1
+	USE_SYSTEM_LIB_JPEG=1
+	USE_SYSTEM_LIB_FLAC=1
+	USE_SYSTEM_LIB_LUA=1
+	USE_SYSTEM_LIB_SQLITE3=1
+	USE_SYSTEM_LIB_PORTAUDIO=1
+	USE_SYSTEM_LIB_UV=1
+	USE_SYSTEM_LIB_GLM=1
+	USE_SYSTEM_LIB_RAPIDJSON=1
+	USE_SYSTEM_LIB_PORTMIDI=1
+	USE_SYSTEM_LIB_ASIO="
+
+	cd "$builddir"
+
+	if [ -d src/emu/switchres ]; then
+		patch -p0 -R < $_groovymame_patch
+		patch -p0 -R < "$srcdir"/nonag.diff
+	fi
+
+	$_build TOOLS=1 SUBTARGET=mame
+	mv -f mame vanilla/ || mv -f mame64 vanilla/mame
+	$_build SUBTARGET=arcade
+	mv -f mamearcade vanilla/ || mv -f mamearcade64 vanilla/mamearcade
+	$_build SUBTARGET=mess
+	mv -f mess vanilla/ || mv -f mess64 vanilla/mess
+
+	if [ ! -d src/emu/switchres ]; then
+		patch -p0 < $_groovymame_patch
+		patch -p0 < "$srcdir"/nonag.diff
+		$_build USE_QTDEBUG=0 SUBTARGET=mame
+		$_build USE_QTDEBUG=0 SUBTARGET=arcade
+		$_build USE_QTDEBUG=0 SUBTARGET=mess
+	fi
+}
+
+package() {
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mame "$pkgdir"/usr/bin/mame
+}
+
+common() {
+	cd "$builddir"
+	install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
+	install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
+	install -d -m755 "$subpkgdir"/usr/share/"$pkgname/roms"
+}
+
+arcade() {
+	pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mamearcade "$subpkgdir"/usr/bin/mamearcade
+}
+
+mess() {
+	pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mess "$subpkgdir"/usr/bin/mess
+}
+
+groovymame() {
+	pkgdesc="Multi Arcade Machine Emulator with Groovymame/Switchres & No-Nag patchset."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mame "$subpkgdir"/usr/bin/groovymame || install -D -m755 mame64 "$subpkgdir"/usr/bin/groovymame
+}
+
+groovyarcade() {
+	desc="Groovymame - Arcade specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mamearcade "$subpkgdir"/usr/bin/groovyarcade || install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/groovyarcade
+	cd "$subpkgdir"/usr/bin/
+	ln -sf groovyarcade arcade
+}
+
+groovymess() {
+	desc="Groovymame - Mess specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mess "$subpkgdir"/usr/bin/groovymess || install -D -m755 mess64 "$subpkgdir"/usr/bin/groovymess
+}
+
+data() {
+	pkgdesc="Distribution files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	for i in artwork bgfx hash hlsl ini keymaps samples; do
+		cp -r $i "$subpkgdir"/usr/share/"$pkgname"
+	done
+}
+
+plugins() {
+	pkgdesc="Distribution plugins for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	cp -r plugins "$subpkgdir"/usr/share/"$pkgname"
+}
+
+tools() {
+	pkgdesc="Tools for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/bin
+	for i in castool chdman floptool imgtool jedutil ldresample ldverify romcmp; do
+		install -sm755 $i "$subpkgdir"/usr/bin
+	done
+}
+
+lang() {
+	pkgdesc="Localization files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	cp -r language "$subpkgdir"/usr/share/"$pkgname"/
+}
+
+doc() {
+	pkgdesc="Man pages for ${pkgname} and tools"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/man/man6
+	mkdir -p "$subpkgdir"/usr/share/man/man1
+	gzip -c docs/man/mame.6 > docs/man/mame.6.gz
+	cp docs/man/mame.6.gz "$subpkgdir"/usr/share/man/man6/
+	for i in castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 romcmp.1; do
+		gzip -c docs/man/$i > "$subpkgdir"/usr/share/man/man1/${i}.gz
+	done
+}
+sha512sums="cf39b0785aedbab596f232cceaa2cfbae9c4ac45a9c89a0badc1e619d7965d972f02fc9203c40a4c9aa8c0852fdcc91d6b50528b007885afb2e3f83f4da90589  mame0195s.zip
+3916a2a955716135ebf225c8e5433a07593db1b68e0f24162e08a7b2e03b6f7db6fa600bfe19110209506fc5cbdf9dbf3639451fed7551c4fbc7d3c7a84c745a  groovymame-0.195.diff
+b05e953b7c4be26eaa4ab192279fa62dd2b006069cd963e997295afe6e64b3ba04e5a257c69b008d5bc4b509274646d10b9499970b5c3c36cc86fb4ce18f9266  mame.ini
+8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2  midi.conf
+9335bb200f5026e7a368a52a40ee83cc81848905e9483bfbe0611a935ed7bd7c99fa0eaa80746194e76e4b641e6b7e0bc32b41906a60c2f9ea77e4ba8c8c7d43  mame-musl-workaraound.patch
+fdc84311a74c85d184c796aa61a772c24f583de98f0202d9884c276f58bae7f6125dc86f95395dc783b39493ef99bd221c08ae9fab472bf3526228d06143e000  nonag.diff
+a4d628d4648d28b9ae95f27ecba4a70b999ef11ffde31b31ca3ce2ed2fd4cfcab82ec78e2602309952518fac8c549d0b8b4294f6aa34c1acaa77f012ea13de9e  m68000_archopts.patch"
diff --git a/testing/mame/m68000_archopts.patch b/testing/mame/m68000_archopts.patch
new file mode 100644
index 0000000..46fd4a6
--- /dev/null
+++ b/testing/mame/m68000_archopts.patch
@@ -0,0 +1,17 @@
+Author: Jordi Mallach <jordi@debian.org>
+Description: Pass $(ARCHOPTS) to standalone m68000 makefile.
+Forwarded: no
+
+Index: mame/src/devices/cpu/m68000/makefile
+===================================================================
+--- mame.orig/src/devices/cpu/m68000/makefile
+@@ -25,7 +25,7 @@ clean:
+ 	-@rm -f m68kops.*
+ 
+ m68kmake.o: m68kmake.cpp
+-	$(SILENT) $(CC) -x c++ -std=c++11 -o "$@" -c "$<"
++	$(SILENT) $(CC) -x c++ -std=c++11 $(ARCHOPTS) -o "$@" -c "$<"
+ 
+ m68kmake$(EXE) : m68kmake.o
+ 	@echo Linking $@...
diff --git a/testing/mame/mame-musl-workaraound.patch b/testing/mame/mame-musl-workaraound.patch
new file mode 100644
index 0000000..b4573da
--- /dev/null
+++ b/testing/mame/mame-musl-workaraound.patch
@@ -0,0 +1,22 @@
+--- a/src/lib/netlist/plib/pexception.cpp
+@@ -11,7 +11,7 @@
+ #include <cfenv>
+ 
+ #if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
+-#define HAS_FEENABLE_EXCEPT     (1)
++#define HAS_FEENABLE_EXCEPT     (0)
+ #else
+ #define HAS_FEENABLE_EXCEPT     (0)
+ #endif
+--- a/3rdparty/bx/include/bx/platform.h
+@@ -37,7 +37,7 @@
+ #define BX_CRT_NEWLIB 0
+ 
+ #ifndef BX_CRT_MUSL
+-#	define BX_CRT_MUSL 0
++#	define BX_CRT_MUSL 1
+ #endif // BX_CRT_MUSL
+ 
+ #ifndef BX_CRT_NONE
diff --git a/testing/mame/mame.ini b/testing/mame/mame.ini
new file mode 100644
index 0000000..795634a
--- /dev/null
+++ b/testing/mame/mame.ini
@@ -0,0 +1,61 @@
+#Run "mame -cc" to generate a custom mame.ini file.Then put it into ~/.mame folder. 
+#To see all available options, run "mame -showusage"
+homepath                  .
+rompath                   $HOME/.mame/roms;/usr/share/mame/roms
+hashpath                  /usr/share/mame/hash
+samplepath                $HOME/.mame/samples;/usr/share/mame/samples
+artpath                   $HOME/.mame/artwork;/usr/share/mame/artwork
+ctrlrpath                 /usr/share/mame/ctrlr
+inipath                   $HOME/.mame;/etc/mame
+fontpath                  $HOME/.mame/fonts;/usr/share/mame/fonts
+cheatpath                 $HOME/.mame/cheat;/usr/share/mame/cheat
+crosshairpath             $HOME/.mame/crosshair;/usr/share/mame/crosshair
+pluginspath               $HOME/.mame/plugins/;/usr/share/mame/plugins
+languagepath              /usr/share/mame/language
+swpath                    software
+
+cfg_directory             $HOME/.mame/cfg
+nvram_directory           $HOME/.mame/nvram
+input_directory           $HOME/.mame/inp
+state_directory           $HOME/.mame/sta
+snapshot_directory        $HOME/.mame/snap
+diff_directory            $HOME/.mame/diff
+comment_directory         $HOME/.mame/comments
+
+#Video output method: none, soft, bgfx, opengl
+video                     opengl
+
+#GROOVYMAME SPECIFIC
+#Automatic generation of modelines based on the specified monitor type
+modeline_generation       0
+#Predefined monitor type (http://forum.arcadecontrols.com/index.php/topic,116023.0.html)
+monitor                   arcade_31
+orientation               horizontal
+connector                 auto
+interlace                 1
+doublescan                1
+super_width               2560
+changeres                 1
+powerstrip                0
+lock_system_modes         1
+lock_unsupported_modes    1
+refresh_dont_care         0
+dotclock_min              0
+sync_refresh_tolerance    2.0
+frame_delay               0
+vsync_offset              0
+black_frame_insertion     0
+modeline                  auto
+ps_timing                 auto
+lcd_range                 auto
+crt_range0                auto
+crt_range1                auto
+crt_range2                auto
+crt_range3                auto
+crt_range4                auto
+crt_range5                auto
+crt_range6                auto
+crt_range7                auto
+crt_range8                auto
+crt_range9                auto
+#END OF GROOVYMAME SPECIFIC
diff --git a/testing/mame/midi.conf b/testing/mame/midi.conf
new file mode 100644
index 0000000..30a8665
--- /dev/null
+++ b/testing/mame/midi.conf
@@ -0,0 +1 @@
+snd_virmidi
diff --git a/testing/mame/nonag.diff b/testing/mame/nonag.diff
new file mode 100644
index 0000000..2a7518c
--- /dev/null
+++ b/testing/mame/nonag.diff
@@ -0,0 +1,37 @@
+diff -Nru oldsrc/emu/render.cpp src/emu/render.cpp
+--- oldsrc/emu/render.cpp	2017-08-30 11:43:29.000000000 +1000
+@@ -1399,7 +1399,8 @@
+ 		}
+ 
+ 	// if we are not in the running stage, draw an outer box
+-	else
++	// DISABLE WHITE BORDER
++	else if ( !m_manager.machine().options().skip_gameinfo() )
+ 	{
+ 		render_primitive *prim = list.alloc(render_primitive::QUAD);
+ 		set_render_bounds_xy(prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
+diff -Nru oldsrc/frontend/mame/ui/ui.cpp src/frontend/mame/ui/ui.cpp
+--- oldsrc/frontend/mame/ui/ui.cpp	2017-08-30 11:43:30.000000000 +1000
+@@ -313,7 +313,8 @@
+ 		switch (state)
+ 		{
+ 		case 0:
+-			if (show_warnings)
++			// DISABLE INTERACTIVE WARNING MESSAGES
++			if (show_gameinfo)
+ 				messagebox_text = machine_info().warnings_string();
+ 			if (!messagebox_text.empty())
+ 			{
+@@ -770,6 +771,10 @@
+ 
+ uint32_t mame_ui_manager::handler_messagebox(render_container &container)
+ {
++	// DISABLE INITIALIZING, LOADING & DECRYPTING MESSAGES
++	if (machine().options().skip_gameinfo())
++		return 0;
++
+ 	draw_text_box(container, messagebox_text.c_str(), ui::text_layout::LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ 	return 0;
+ }
-- 
2.16.2



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v2] testing/mame: new aport

Taner Tas
Details
Message ID
<20180303221209.1833-1-taner76@gmail.com>
In-Reply-To
<20180302172909.24694-1-taner76@gmail.com> (view parent)
Sender timestamp
1520115129
DKIM signature
missing
Download raw message
Patch: +357 -0
http://mamedev.org
Multi Arcade Machine Emulator.

Please discard previous patch.
---
 testing/mame/APKBUILD                    | 219 +++++++++++++++++++++++++++++++
 testing/mame/m68000_archopts.patch       |  17 +++
 testing/mame/mame-musl-workaraound.patch |  22 ++++
 testing/mame/mame.ini                    |  61 +++++++++
 testing/mame/midi.conf                   |   1 +
 testing/mame/nonag.diff                  |  37 ++++++
 6 files changed, 357 insertions(+)
 create mode 100644 testing/mame/APKBUILD
 create mode 100644 testing/mame/m68000_archopts.patch
 create mode 100644 testing/mame/mame-musl-workaraound.patch
 create mode 100644 testing/mame/mame.ini
 create mode 100644 testing/mame/midi.conf
 create mode 100644 testing/mame/nonag.diff

diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
new file mode 100644
index 0000000..b6a5896
--- /dev/null
+++ b/testing/mame/APKBUILD
@@ -0,0 +1,219 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=mame
+pkgver=0.195
+pkgrel=0
+pkgdesc="Multi Arcade Machine Emulator."
+url="http://mamedev.org"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="coreutils p7zip nasm dos2unix \
+	clang-dev libxrandr-dev libxinerama-dev alsa-lib-dev python2-dev qt5-qtbase-dev \
+	py3-sphinx sdl2-dev sdl2_ttf-dev expat-dev zlib-dev mesa-dev libxinerama-dev \
+	fontconfig-dev libjpeg-turbo-dev flac-dev lua5.3-dev sqlite-dev portaudio-dev \
+	rapidjson-dev glm-dev qt5-qtbase-dev portmidi-dev"
+subpackages="$pkgname-data::noarch $pkgname-doc $pkgname-common::noarch $pkgname-lang \
+	$pkgname-tools $pkgname-plugins::noarch $pkgname-arcade $pkgname-mess groovymame \
+	groovymame-arcade:groovyarcade groovymame-mess:groovymess"
+_groovymame_patch="groovymame-${pkgver}.diff"
+_asio_git="https://github.com/chriskohlhoff/asio.git"
+source="https://github.com/mamedev/mame/releases/download/${pkgname}${pkgver/.}/${pkgname}${pkgver/.}s.zip
+	$_groovymame_patch::https://drive.google.com/uc?export=download&id=1OdjvKB2B_vTJKONjjW9rqZ-XZC26vP0k
+	mame.ini
+	midi.conf
+	mame-musl-workaraound.patch
+	nonag.diff
+	m68000_archopts.patch"
+builddir="${srcdir}/${pkgname}-${pkgver}"
+options="!check"
+
+prepare() {
+	cd "$srcdir"
+	if [ ! -d ${pkgname}-${pkgver} ]; then
+		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
+	fi
+	cd "$builddir"
+	if [ ! -d 3rdparty/asio.git ]; then
+		rm -rf 3rdparty/asio
+		git clone --depth=1 ${_asio_git} 3rdparty/asio.git
+		ln -sf asio.git/asio/ 3rdparty/
+	fi
+	cd "$builddir"
+	cp -n ${srcdir}/$_groovymame_patch .
+	echo "Converting all non-binary files to Unix format.."
+	find  . -type f -exec dos2unix -s -q {} \;
+	#clang workaraound
+	sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
+	mkdir -p vanilla
+	default_prepare
+}
+
+build() {
+	export OVERRIDE_CC=clang
+	export OVERRIDE_CXX=clang++
+	export CFLAGS="$CFLAGS -I/usr/include/lua5.3"
+	export CXXFLAGS="$CFLAGS"
+	export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
+
+	case "$CARCH" in
+		x86|armhf) _PTR64= ;;
+		*) _PTR64=1 ;;
+	esac
+	case "$CARCH" in
+		x86_64|x86) _NOASM= ;;
+		*) _NOASM=1 ;;
+	esac
+	case "$CARCH" in
+		s390x) _BIGENDIAN=1 ;;
+		*) _BIGENDIAN= ;;
+	esac
+
+_build="make
+	TARGETOS=linux
+	NOWERROR=1
+	DEBUG=
+	VERBOSE=1
+	REGENIE=1
+	OSD=sdl
+	FORCE_DRC_C_BACKEND=
+	PTR64=$_PTR64
+	NOASM=$_NOASM
+	BIGENDIAN=$_BIGENDIAN
+	TOOLS=
+	SDL_INI_PATH=/etc/mame
+	USE_SYSTEM_LIB_EXPAT=1
+	USE_SYSTEM_LIB_ZLIB=1
+	USE_SYSTEM_LIB_JPEG=1
+	USE_SYSTEM_LIB_FLAC=1
+	USE_SYSTEM_LIB_LUA=1
+	USE_SYSTEM_LIB_SQLITE3=1
+	USE_SYSTEM_LIB_PORTAUDIO=1
+	USE_SYSTEM_LIB_UV=1
+	USE_SYSTEM_LIB_GLM=1
+	USE_SYSTEM_LIB_RAPIDJSON=1
+	USE_SYSTEM_LIB_PORTMIDI=1
+	USE_SYSTEM_LIB_ASIO="
+
+	cd "$builddir"
+
+	if [ -d src/emu/switchres ]; then
+		patch -p0 -R < $_groovymame_patch
+		patch -p0 -R < "$srcdir"/nonag.diff
+	fi
+
+	$_build TOOLS=1 SUBTARGET=mame
+	mv -f mame vanilla/ || mv -f mame64 vanilla/mame
+	$_build SUBTARGET=arcade
+	mv -f mamearcade vanilla/ || mv -f mamearcade64 vanilla/mamearcade
+	$_build SUBTARGET=mess
+	mv -f mess vanilla/ || mv -f mess64 vanilla/mess
+
+	if [ ! -d src/emu/switchres ]; then
+		patch -p0 < $_groovymame_patch
+		patch -p0 < "$srcdir"/nonag.diff
+		$_build USE_QTDEBUG=0 SUBTARGET=mame
+		$_build USE_QTDEBUG=0 SUBTARGET=arcade
+		$_build USE_QTDEBUG=0 SUBTARGET=mess
+	fi
+}
+
+package() {
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mame "$pkgdir"/usr/bin/mame
+}
+
+common() {
+	cd "$builddir"
+	install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
+	install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
+	install -d -m755 "$subpkgdir"/usr/share/"$pkgname/roms"
+}
+
+arcade() {
+	pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mamearcade "$subpkgdir"/usr/bin/mamearcade
+}
+
+mess() {
+	pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 vanilla/mess "$subpkgdir"/usr/bin/mess
+}
+
+groovymame() {
+	pkgdesc="Multi Arcade Machine Emulator with Groovymame/Switchres & No-Nag patchset."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mame "$subpkgdir"/usr/bin/groovymame || install -D -m755 mame64 "$subpkgdir"/usr/bin/groovymame
+}
+
+groovyarcade() {
+	desc="Groovymame - Arcade specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mamearcade "$subpkgdir"/usr/bin/groovyarcade || install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/groovyarcade
+	cd "$subpkgdir"/usr/bin/
+	ln -sf groovyarcade arcade
+}
+
+groovymess() {
+	desc="Groovymame - Mess specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mess "$subpkgdir"/usr/bin/groovymess || install -D -m755 mess64 "$subpkgdir"/usr/bin/groovymess
+}
+
+data() {
+	pkgdesc="Distribution files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	for i in artwork bgfx hash hlsl ini keymaps samples; do
+		cp -r $i "$subpkgdir"/usr/share/"$pkgname"
+	done
+}
+
+plugins() {
+	pkgdesc="Distribution plugins for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	cp -r plugins "$subpkgdir"/usr/share/"$pkgname"
+}
+
+tools() {
+	pkgdesc="Tools for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/bin
+	for i in castool chdman floptool imgtool jedutil ldresample ldverify romcmp; do
+		install -sm755 $i "$subpkgdir"/usr/bin
+	done
+}
+
+lang() {
+	pkgdesc="Localization files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	cp -r language "$subpkgdir"/usr/share/"$pkgname"/
+}
+
+doc() {
+	pkgdesc="Man pages for ${pkgname} and tools"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/man/man6
+	mkdir -p "$subpkgdir"/usr/share/man/man1
+	gzip -c docs/man/mame.6 > docs/man/mame.6.gz
+	cp docs/man/mame.6.gz "$subpkgdir"/usr/share/man/man6/
+	for i in castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 romcmp.1; do
+		gzip -c docs/man/$i > "$subpkgdir"/usr/share/man/man1/${i}.gz
+	done
+}
+sha512sums="cf39b0785aedbab596f232cceaa2cfbae9c4ac45a9c89a0badc1e619d7965d972f02fc9203c40a4c9aa8c0852fdcc91d6b50528b007885afb2e3f83f4da90589  mame0195s.zip
+3916a2a955716135ebf225c8e5433a07593db1b68e0f24162e08a7b2e03b6f7db6fa600bfe19110209506fc5cbdf9dbf3639451fed7551c4fbc7d3c7a84c745a  groovymame-0.195.diff
+b05e953b7c4be26eaa4ab192279fa62dd2b006069cd963e997295afe6e64b3ba04e5a257c69b008d5bc4b509274646d10b9499970b5c3c36cc86fb4ce18f9266  mame.ini
+8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2  midi.conf
+9335bb200f5026e7a368a52a40ee83cc81848905e9483bfbe0611a935ed7bd7c99fa0eaa80746194e76e4b641e6b7e0bc32b41906a60c2f9ea77e4ba8c8c7d43  mame-musl-workaraound.patch
+fdc84311a74c85d184c796aa61a772c24f583de98f0202d9884c276f58bae7f6125dc86f95395dc783b39493ef99bd221c08ae9fab472bf3526228d06143e000  nonag.diff
+a4d628d4648d28b9ae95f27ecba4a70b999ef11ffde31b31ca3ce2ed2fd4cfcab82ec78e2602309952518fac8c549d0b8b4294f6aa34c1acaa77f012ea13de9e  m68000_archopts.patch"
diff --git a/testing/mame/m68000_archopts.patch b/testing/mame/m68000_archopts.patch
new file mode 100644
index 0000000..46fd4a6
--- /dev/null
+++ b/testing/mame/m68000_archopts.patch
@@ -0,0 +1,17 @@
+Author: Jordi Mallach <jordi@debian.org>
+Description: Pass $(ARCHOPTS) to standalone m68000 makefile.
+Forwarded: no
+
+Index: mame/src/devices/cpu/m68000/makefile
+===================================================================
+--- mame.orig/src/devices/cpu/m68000/makefile
+@@ -25,7 +25,7 @@ clean:
+ 	-@rm -f m68kops.*
+ 
+ m68kmake.o: m68kmake.cpp
+-	$(SILENT) $(CC) -x c++ -std=c++11 -o "$@" -c "$<"
++	$(SILENT) $(CC) -x c++ -std=c++11 $(ARCHOPTS) -o "$@" -c "$<"
+ 
+ m68kmake$(EXE) : m68kmake.o
+ 	@echo Linking $@...
diff --git a/testing/mame/mame-musl-workaraound.patch b/testing/mame/mame-musl-workaraound.patch
new file mode 100644
index 0000000..b4573da
--- /dev/null
+++ b/testing/mame/mame-musl-workaraound.patch
@@ -0,0 +1,22 @@
+--- a/src/lib/netlist/plib/pexception.cpp
+@@ -11,7 +11,7 @@
+ #include <cfenv>
+ 
+ #if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
+-#define HAS_FEENABLE_EXCEPT     (1)
++#define HAS_FEENABLE_EXCEPT     (0)
+ #else
+ #define HAS_FEENABLE_EXCEPT     (0)
+ #endif
+--- a/3rdparty/bx/include/bx/platform.h
+@@ -37,7 +37,7 @@
+ #define BX_CRT_NEWLIB 0
+ 
+ #ifndef BX_CRT_MUSL
+-#	define BX_CRT_MUSL 0
++#	define BX_CRT_MUSL 1
+ #endif // BX_CRT_MUSL
+ 
+ #ifndef BX_CRT_NONE
diff --git a/testing/mame/mame.ini b/testing/mame/mame.ini
new file mode 100644
index 0000000..795634a
--- /dev/null
+++ b/testing/mame/mame.ini
@@ -0,0 +1,61 @@
+#Run "mame -cc" to generate a custom mame.ini file.Then put it into ~/.mame folder. 
+#To see all available options, run "mame -showusage"
+homepath                  .
+rompath                   $HOME/.mame/roms;/usr/share/mame/roms
+hashpath                  /usr/share/mame/hash
+samplepath                $HOME/.mame/samples;/usr/share/mame/samples
+artpath                   $HOME/.mame/artwork;/usr/share/mame/artwork
+ctrlrpath                 /usr/share/mame/ctrlr
+inipath                   $HOME/.mame;/etc/mame
+fontpath                  $HOME/.mame/fonts;/usr/share/mame/fonts
+cheatpath                 $HOME/.mame/cheat;/usr/share/mame/cheat
+crosshairpath             $HOME/.mame/crosshair;/usr/share/mame/crosshair
+pluginspath               $HOME/.mame/plugins/;/usr/share/mame/plugins
+languagepath              /usr/share/mame/language
+swpath                    software
+
+cfg_directory             $HOME/.mame/cfg
+nvram_directory           $HOME/.mame/nvram
+input_directory           $HOME/.mame/inp
+state_directory           $HOME/.mame/sta
+snapshot_directory        $HOME/.mame/snap
+diff_directory            $HOME/.mame/diff
+comment_directory         $HOME/.mame/comments
+
+#Video output method: none, soft, bgfx, opengl
+video                     opengl
+
+#GROOVYMAME SPECIFIC
+#Automatic generation of modelines based on the specified monitor type
+modeline_generation       0
+#Predefined monitor type (http://forum.arcadecontrols.com/index.php/topic,116023.0.html)
+monitor                   arcade_31
+orientation               horizontal
+connector                 auto
+interlace                 1
+doublescan                1
+super_width               2560
+changeres                 1
+powerstrip                0
+lock_system_modes         1
+lock_unsupported_modes    1
+refresh_dont_care         0
+dotclock_min              0
+sync_refresh_tolerance    2.0
+frame_delay               0
+vsync_offset              0
+black_frame_insertion     0
+modeline                  auto
+ps_timing                 auto
+lcd_range                 auto
+crt_range0                auto
+crt_range1                auto
+crt_range2                auto
+crt_range3                auto
+crt_range4                auto
+crt_range5                auto
+crt_range6                auto
+crt_range7                auto
+crt_range8                auto
+crt_range9                auto
+#END OF GROOVYMAME SPECIFIC
diff --git a/testing/mame/midi.conf b/testing/mame/midi.conf
new file mode 100644
index 0000000..30a8665
--- /dev/null
+++ b/testing/mame/midi.conf
@@ -0,0 +1 @@
+snd_virmidi
diff --git a/testing/mame/nonag.diff b/testing/mame/nonag.diff
new file mode 100644
index 0000000..2a7518c
--- /dev/null
+++ b/testing/mame/nonag.diff
@@ -0,0 +1,37 @@
+diff -Nru oldsrc/emu/render.cpp src/emu/render.cpp
+--- oldsrc/emu/render.cpp	2017-08-30 11:43:29.000000000 +1000
+@@ -1399,7 +1399,8 @@
+ 		}
+ 
+ 	// if we are not in the running stage, draw an outer box
+-	else
++	// DISABLE WHITE BORDER
++	else if ( !m_manager.machine().options().skip_gameinfo() )
+ 	{
+ 		render_primitive *prim = list.alloc(render_primitive::QUAD);
+ 		set_render_bounds_xy(prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
+diff -Nru oldsrc/frontend/mame/ui/ui.cpp src/frontend/mame/ui/ui.cpp
+--- oldsrc/frontend/mame/ui/ui.cpp	2017-08-30 11:43:30.000000000 +1000
+@@ -313,7 +313,8 @@
+ 		switch (state)
+ 		{
+ 		case 0:
+-			if (show_warnings)
++			// DISABLE INTERACTIVE WARNING MESSAGES
++			if (show_gameinfo)
+ 				messagebox_text = machine_info().warnings_string();
+ 			if (!messagebox_text.empty())
+ 			{
+@@ -770,6 +771,10 @@
+ 
+ uint32_t mame_ui_manager::handler_messagebox(render_container &container)
+ {
++	// DISABLE INITIALIZING, LOADING & DECRYPTING MESSAGES
++	if (machine().options().skip_gameinfo())
++		return 0;
++
+ 	draw_text_box(container, messagebox_text.c_str(), ui::text_layout::LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ 	return 0;
+ }
-- 
2.16.2



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v3] testing/mame: new aport

Taner Tas
Details
Message ID
<20180416182936.20794-1-taner76@gmail.com>
In-Reply-To
<20180302172909.24694-1-taner76@gmail.com> (view parent)
Sender timestamp
1523903376
DKIM signature
missing
Download raw message
Patch: +275 -0
http://mamedev.org
Multi Arcade Machine Emulator.
---
 testing/mame/APKBUILD              | 165 +++++++++++++++++++++++++++++
 testing/mame/fix-musl.patch        |  21 ++++
 testing/mame/m68000_archopts.patch |  17 +++
 testing/mame/mame.ini              |  61 +++++++++++
 testing/mame/midi.conf             |   1 +
 testing/mame/musl-time_t.patch     |  10 ++
 6 files changed, 275 insertions(+)
 create mode 100644 testing/mame/APKBUILD
 create mode 100644 testing/mame/fix-musl.patch
 create mode 100644 testing/mame/m68000_archopts.patch
 create mode 100644 testing/mame/mame.ini
 create mode 100644 testing/mame/midi.conf
 create mode 100644 testing/mame/musl-time_t.patch

diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
new file mode 100644
index 00000000..618f8513
--- /dev/null
+++ b/testing/mame/APKBUILD
@@ -0,0 +1,165 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=mame
+pkgver=0.196
+pkgrel=0
+pkgdesc="Multi Arcade Machine Emulator."
+url="http://mamedev.org"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="coreutils p7zip nasm dos2unix clang-dev libxrandr-dev libxinerama-dev
+	alsa-lib-dev python2-dev py3-sphinx sdl2-dev sdl2_ttf-dev expat-dev zlib-dev
+	mesa-dev libxinerama-dev fontconfig-dev libjpeg-turbo-dev flac-dev lua5.3-dev
+	sqlite-dev portaudio-dev rapidjson-dev glm-dev portmidi-dev asio-dev"
+subpackages="$pkgname-data::noarch $pkgname-doc $pkgname-common::noarch $pkgname-lang
+	$pkgname-tools $pkgname-plugins::noarch $pkgname-arcade $pkgname-mess"
+source="https://github.com/mamedev/mame/releases/download/${pkgname}${pkgver/.}/${pkgname}${pkgver/.}s.zip
+	mame.ini
+	midi.conf
+	fix-musl.patch
+	m68000_archopts.patch
+	"
+options="!check"
+
+prepare() {
+	cd "$srcdir"
+	if [ ! -d ${pkgname}-${pkgver} ]; then
+		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
+	fi
+	cd "$builddir"
+	echo "Converting all non-binary files to Unix format.."
+	find  . -type f -exec dos2unix -s -q {} \;
+	#clang workaraound
+	sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
+	default_prepare
+}
+
+build() {
+	export OVERRIDE_CC=clang
+	export OVERRIDE_CXX=clang++
+	export CFLAGS="$CFLAGS -I/usr/include/lua5.3 -DBX_CRT_MUSL"
+	export CXXFLAGS="$CFLAGS"
+	export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
+
+	case "$CARCH" in
+		x86|armhf) _PTR64=0 SYMBOLS=0;;
+		*) _PTR64=1 ;;
+	esac
+	case "$CARCH" in
+		x86_64|x86) _NOASM=0 ;;
+		*) _NOASM=1 ;;
+	esac
+	case "$CARCH" in
+		s390x) _BIGENDIAN=1 ;;
+		*) _BIGENDIAN=0 ;;
+	esac
+
+_build="make
+	TARGETOS=linux
+	NOWERROR=1
+	DEBUG=0
+	USE_QTDEBUG=0
+	VERBOSE=1
+	REGENIE=1
+	OSD=sdl
+	FORCE_DRC_C_BACKEND=
+	PTR64=$_PTR64
+	NOASM=$_NOASM
+	BIGENDIAN=$_BIGENDIAN
+	TOOLS=
+	SDL_INI_PATH=/etc/mame
+	USE_SYSTEM_LIB_EXPAT=1
+	USE_SYSTEM_LIB_ZLIB=1
+	USE_SYSTEM_LIB_JPEG=1
+	USE_SYSTEM_LIB_FLAC=1
+	USE_SYSTEM_LIB_LUA=1
+	USE_SYSTEM_LIB_SQLITE3=1
+	USE_SYSTEM_LIB_PORTAUDIO=1
+	USE_SYSTEM_LIB_UV=1
+	USE_SYSTEM_LIB_GLM=1
+	USE_SYSTEM_LIB_RAPIDJSON=1
+	USE_SYSTEM_LIB_PORTMIDI=1
+	USE_SYSTEM_LIB_ASIO=1"
+
+	cd "$builddir"
+
+	$_build TOOLS=1 SUBTARGET=mame
+	$_build SUBTARGET=arcade
+	$_build SUBTARGET=mess
+}
+
+package() {
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mame "$pkgdir"/usr/bin/mame || install -D -m755 mame64 "$pkgdir"/usr/bin/mame
+}
+
+common() {
+	cd "$builddir"
+	install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
+	install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
+	install -d -m755 "$subpkgdir"/usr/share/"$pkgname/roms"
+}
+
+arcade() {
+	pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mamearcade "$subpkgdir"/usr/bin/mamearcade || install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/mamearcade
+}
+
+mess() {
+	pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
+	depends="$pkgname-common"
+	cd "$builddir"
+	install -D -m755 mess "$subpkgdir"/usr/bin/mess || install -D -m755 mess64 "$subpkgdir"/usr/bin/mess
+}
+
+data() {
+	pkgdesc="Distribution files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	for i in artwork bgfx hash hlsl ini keymaps samples; do
+		cp -r $i "$subpkgdir"/usr/share/"$pkgname"
+	done
+}
+
+plugins() {
+	pkgdesc="Distribution plugins for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
+	cp -r plugins "$subpkgdir"/usr/share/"$pkgname"
+}
+
+tools() {
+	pkgdesc="Tools for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/bin
+	for i in castool chdman floptool imgtool jedutil ldresample ldverify romcmp; do
+		install -sm755 $i "$subpkgdir"/usr/bin
+	done
+}
+
+lang() {
+	pkgdesc="Localization files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	cp -r language "$subpkgdir"/usr/share/"$pkgname"/
+}
+
+doc() {
+	pkgdesc="Man pages for ${pkgname} and tools"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/man/man6
+	mkdir -p "$subpkgdir"/usr/share/man/man1
+	gzip -c docs/man/mame.6 > docs/man/mame.6.gz
+	cp docs/man/mame.6.gz "$subpkgdir"/usr/share/man/man6/
+	for i in castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 romcmp.1; do
+		gzip -c docs/man/$i > "$subpkgdir"/usr/share/man/man1/${i}.gz
+	done
+}
+sha512sums="dfff1f1d0c8fd11e49a0d4d554a229e13c3e10fcb90da54c8b4945bc05ebe936ad31ed96cd5c320a831500db58a48f7ea25b97312f29c94c970c808e64af595d  mame0196s.zip
+b05e953b7c4be26eaa4ab192279fa62dd2b006069cd963e997295afe6e64b3ba04e5a257c69b008d5bc4b509274646d10b9499970b5c3c36cc86fb4ce18f9266  mame.ini
+8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2  midi.conf
+75bba366aebb37de7758368fbf7418194a18d535e61c1768e6c2c5cf4b3b7a2f625ef687cb8278c03daa9e308951df4c0bdcc944dfcc4ce5305f5ac83e5e049b  fix-musl.patch
+a4d628d4648d28b9ae95f27ecba4a70b999ef11ffde31b31ca3ce2ed2fd4cfcab82ec78e2602309952518fac8c549d0b8b4294f6aa34c1acaa77f012ea13de9e  m68000_archopts.patch"
diff --git a/testing/mame/fix-musl.patch b/testing/mame/fix-musl.patch
new file mode 100644
index 00000000..cda91419
--- /dev/null
+++ b/testing/mame/fix-musl.patch
@@ -0,0 +1,21 @@
+--- a/src/lib/netlist/plib/pexception.cpp
+@@ -10,7 +10,7 @@
+ 
+ #include <cfenv>
+ 
+-#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
++#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__) && defined(__GLIBC__)
+ #define HAS_FEENABLE_EXCEPT     (1)
+ #else
+ #define HAS_FEENABLE_EXCEPT     (0)
+--- a/3rdparty/bx/include/bx/bx.h
+@@ -11,6 +11,7 @@
+ #include <stdint.h> // uint32_t
+ #include <stdlib.h> // size_t
+ #include <stddef.h> // ptrdiff_t
++#include <time.h>   // time_t
+ 
+ #include "platform.h"
+ #include "config.h"
diff --git a/testing/mame/m68000_archopts.patch b/testing/mame/m68000_archopts.patch
new file mode 100644
index 00000000..46fd4a66
--- /dev/null
+++ b/testing/mame/m68000_archopts.patch
@@ -0,0 +1,17 @@
+Author: Jordi Mallach <jordi@debian.org>
+Description: Pass $(ARCHOPTS) to standalone m68000 makefile.
+Forwarded: no
+
+Index: mame/src/devices/cpu/m68000/makefile
+===================================================================
+--- mame.orig/src/devices/cpu/m68000/makefile
+@@ -25,7 +25,7 @@ clean:
+ 	-@rm -f m68kops.*
+ 
+ m68kmake.o: m68kmake.cpp
+-	$(SILENT) $(CC) -x c++ -std=c++11 -o "$@" -c "$<"
++	$(SILENT) $(CC) -x c++ -std=c++11 $(ARCHOPTS) -o "$@" -c "$<"
+ 
+ m68kmake$(EXE) : m68kmake.o
+ 	@echo Linking $@...
diff --git a/testing/mame/mame.ini b/testing/mame/mame.ini
new file mode 100644
index 00000000..795634a8
--- /dev/null
+++ b/testing/mame/mame.ini
@@ -0,0 +1,61 @@
+#Run "mame -cc" to generate a custom mame.ini file.Then put it into ~/.mame folder. 
+#To see all available options, run "mame -showusage"
+homepath                  .
+rompath                   $HOME/.mame/roms;/usr/share/mame/roms
+hashpath                  /usr/share/mame/hash
+samplepath                $HOME/.mame/samples;/usr/share/mame/samples
+artpath                   $HOME/.mame/artwork;/usr/share/mame/artwork
+ctrlrpath                 /usr/share/mame/ctrlr
+inipath                   $HOME/.mame;/etc/mame
+fontpath                  $HOME/.mame/fonts;/usr/share/mame/fonts
+cheatpath                 $HOME/.mame/cheat;/usr/share/mame/cheat
+crosshairpath             $HOME/.mame/crosshair;/usr/share/mame/crosshair
+pluginspath               $HOME/.mame/plugins/;/usr/share/mame/plugins
+languagepath              /usr/share/mame/language
+swpath                    software
+
+cfg_directory             $HOME/.mame/cfg
+nvram_directory           $HOME/.mame/nvram
+input_directory           $HOME/.mame/inp
+state_directory           $HOME/.mame/sta
+snapshot_directory        $HOME/.mame/snap
+diff_directory            $HOME/.mame/diff
+comment_directory         $HOME/.mame/comments
+
+#Video output method: none, soft, bgfx, opengl
+video                     opengl
+
+#GROOVYMAME SPECIFIC
+#Automatic generation of modelines based on the specified monitor type
+modeline_generation       0
+#Predefined monitor type (http://forum.arcadecontrols.com/index.php/topic,116023.0.html)
+monitor                   arcade_31
+orientation               horizontal
+connector                 auto
+interlace                 1
+doublescan                1
+super_width               2560
+changeres                 1
+powerstrip                0
+lock_system_modes         1
+lock_unsupported_modes    1
+refresh_dont_care         0
+dotclock_min              0
+sync_refresh_tolerance    2.0
+frame_delay               0
+vsync_offset              0
+black_frame_insertion     0
+modeline                  auto
+ps_timing                 auto
+lcd_range                 auto
+crt_range0                auto
+crt_range1                auto
+crt_range2                auto
+crt_range3                auto
+crt_range4                auto
+crt_range5                auto
+crt_range6                auto
+crt_range7                auto
+crt_range8                auto
+crt_range9                auto
+#END OF GROOVYMAME SPECIFIC
diff --git a/testing/mame/midi.conf b/testing/mame/midi.conf
new file mode 100644
index 00000000..30a86650
--- /dev/null
+++ b/testing/mame/midi.conf
@@ -0,0 +1 @@
+snd_virmidi
diff --git a/testing/mame/musl-time_t.patch b/testing/mame/musl-time_t.patch
new file mode 100644
index 00000000..02c11cf0
--- /dev/null
+++ b/testing/mame/musl-time_t.patch
@@ -0,0 +1,10 @@
+--- 3rdparty/bx/include/bx/bx.h	2017-12-27 02:45:37.000000000 +0100
+@@ -11,6 +11,7 @@
+ #include <stdint.h> // uint32_t
+ #include <stdlib.h> // size_t
+ #include <stddef.h> // ptrdiff_t
++#include <time.h>   // time_t
+ 
+ #include "platform.h"
+ #include "config.h"
-- 
2.17.0



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

Re: [alpine-aports] [PATCH v3] testing/mame: new aport

Natanael Copa
Details
Message ID
<20180419154718.183542c7@ncopa-desktop.copa.dup.pw>
In-Reply-To
<20180416182936.20794-1-taner76@gmail.com> (view parent)
Sender timestamp
1524145638
DKIM signature
missing
Download raw message
On Mon, 16 Apr 2018 21:29:36 +0300
Taner Tas <taner76@gmail.com> wrote:

> http://mamedev.org
> Multi Arcade Machine Emulator.
> ---
>  testing/mame/APKBUILD              | 165 +++++++++++++++++++++++++++++
>  testing/mame/fix-musl.patch        |  21 ++++
>  testing/mame/m68000_archopts.patch |  17 +++
>  testing/mame/mame.ini              |  61 +++++++++++
>  testing/mame/midi.conf             |   1 +
>  testing/mame/musl-time_t.patch     |  10 ++
>  6 files changed, 275 insertions(+)
>  create mode 100644 testing/mame/APKBUILD
>  create mode 100644 testing/mame/fix-musl.patch
>  create mode 100644 testing/mame/m68000_archopts.patch
>  create mode 100644 testing/mame/mame.ini
>  create mode 100644 testing/mame/midi.conf
>  create mode 100644 testing/mame/musl-time_t.patch
> 
> diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
> new file mode 100644
> index 00000000..618f8513
> --- /dev/null
> +++ b/testing/mame/APKBUILD
> @@ -0,0 +1,165 @@
> +# Contributor: Taner Tas <taner76@gmail.com>
> +# Maintainer: Taner Tas <taner76@gmail.com>
> +pkgname=mame
> +pkgver=0.196
> +pkgrel=0
> +pkgdesc="Multi Arcade Machine Emulator."
> +url="http://mamedev.org"
> +arch="all"
> +license="GPL-2.0-or-later"
> +makedepends="coreutils p7zip nasm dos2unix clang-dev libxrandr-dev libxinerama-dev
> +	alsa-lib-dev python2-dev py3-sphinx sdl2-dev sdl2_ttf-dev expat-dev zlib-dev
> +	mesa-dev libxinerama-dev fontconfig-dev libjpeg-turbo-dev flac-dev lua5.3-dev
> +	sqlite-dev portaudio-dev rapidjson-dev glm-dev portmidi-dev asio-dev"
> +subpackages="$pkgname-data::noarch $pkgname-doc $pkgname-common::noarch $pkgname-lang
> +	$pkgname-tools $pkgname-plugins::noarch $pkgname-arcade $pkgname-mess"
> +source="https://github.com/mamedev/mame/releases/download/${pkgname}${pkgver/.}/${pkgname}${pkgver/.}s.zip
> +	mame.ini
> +	midi.conf
> +	fix-musl.patch
> +	m68000_archopts.patch
> +	"
> +options="!check"
> +
> +prepare() {
> +	cd "$srcdir"
> +	if [ ! -d ${pkgname}-${pkgver} ]; then
> +		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
> +	fi

Is it necessary to extract it with 7z? I though abuild will extract .zip for us.

> +	cd "$builddir"
> +	echo "Converting all non-binary files to Unix format.."
> +	find  . -type f -exec dos2unix -s -q {} \;
> +	#clang workaraound
> +	sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
> +	default_prepare
> +}
> +
> +build() {
> +	export OVERRIDE_CC=clang
> +	export OVERRIDE_CXX=clang++

Does it require clang? Can it not be built with gcc?

> +	export CFLAGS="$CFLAGS -I/usr/include/lua5.3 -DBX_CRT_MUSL"
> +	export CXXFLAGS="$CFLAGS"
> +	export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
> +
> +	case "$CARCH" in
> +		x86|armhf) _PTR64=0 SYMBOLS=0;;
> +		*) _PTR64=1 ;;
> +	esac
> +	case "$CARCH" in
> +		x86_64|x86) _NOASM=0 ;;
> +		*) _NOASM=1 ;;
> +	esac
> +	case "$CARCH" in
> +		s390x) _BIGENDIAN=1 ;;
> +		*) _BIGENDIAN=0 ;;
> +	esac
> +
> +_build="make
> +	TARGETOS=linux
> +	NOWERROR=1
> +	DEBUG=0
> +	USE_QTDEBUG=0
> +	VERBOSE=1
> +	REGENIE=1
> +	OSD=sdl
> +	FORCE_DRC_C_BACKEND=
> +	PTR64=$_PTR64
> +	NOASM=$_NOASM
> +	BIGENDIAN=$_BIGENDIAN
> +	TOOLS=
> +	SDL_INI_PATH=/etc/mame
> +	USE_SYSTEM_LIB_EXPAT=1
> +	USE_SYSTEM_LIB_ZLIB=1
> +	USE_SYSTEM_LIB_JPEG=1
> +	USE_SYSTEM_LIB_FLAC=1
> +	USE_SYSTEM_LIB_LUA=1
> +	USE_SYSTEM_LIB_SQLITE3=1
> +	USE_SYSTEM_LIB_PORTAUDIO=1
> +	USE_SYSTEM_LIB_UV=1
> +	USE_SYSTEM_LIB_GLM=1
> +	USE_SYSTEM_LIB_RAPIDJSON=1
> +	USE_SYSTEM_LIB_PORTMIDI=1
> +	USE_SYSTEM_LIB_ASIO=1"
> +
> +	cd "$builddir"
> +
> +	$_build TOOLS=1 SUBTARGET=mame
> +	$_build SUBTARGET=arcade
> +	$_build SUBTARGET=mess
> +}
> +
> +package() {
> +	depends="$pkgname-common"

I think the depends need to be in global scope.

> +	cd "$builddir"
> +	install -D -m755 mame "$pkgdir"/usr/bin/mame || install -D -m755 mame64 "$pkgdir"/usr/bin/mame
> +}
> +
> +common() {
> +	cd "$builddir"
> +	install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
> +	install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
> +	install -d -m755 "$subpkgdir"/usr/share/"$pkgname/roms"
> +}
> +
> +arcade() {
> +	pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
> +	depends="$pkgname-common"
> +	cd "$builddir"
> +	install -D -m755 mamearcade "$subpkgdir"/usr/bin/mamearcade || install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/mamearcade
> +}
> +
> +mess() {
> +	pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
> +	depends="$pkgname-common"
> +	cd "$builddir"
> +	install -D -m755 mess "$subpkgdir"/usr/bin/mess || install -D -m755 mess64 "$subpkgdir"/usr/bin/mess
> +}
> +
> +data() {
> +	pkgdesc="Distribution files for ${pkgname}"
> +	cd "$builddir"
> +	mkdir -p "$subpkgdir"/usr/share/"$pakgname"

pakgname looks like a typo.

> +	for i in artwork bgfx hash hlsl ini keymaps samples; do
> +		cp -r $i "$subpkgdir"/usr/share/"$pkgname"
> +	done
> +}
> +
> +plugins() {
> +	pkgdesc="Distribution plugins for ${pkgname}"
> +	cd "$builddir"
> +	mkdir -p "$subpkgdir"/usr/share/"$pakgname"

pakgname looks like a typo

> +	cp -r plugins "$subpkgdir"/usr/share/"$pkgname"
> +}
> +
> +tools() {
> +	pkgdesc="Tools for ${pkgname}"
> +	cd "$builddir"
> +	mkdir -p "$subpkgdir"/usr/bin
> +	for i in castool chdman floptool imgtool jedutil ldresample ldverify romcmp; do
> +		install -sm755 $i "$subpkgdir"/usr/bin
> +	done
> +}
> +
> +lang() {
> +	pkgdesc="Localization files for ${pkgname}"
> +	cd "$builddir"
> +	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
> +	cp -r language "$subpkgdir"/usr/share/"$pkgname"/
> +}
> +
> +doc() {

Normally we install the files in $pkgdir from package() and let the
default doc function move and compress the manpages to the -doc
subpackage.

> +	pkgdesc="Man pages for ${pkgname} and tools"
> +	cd "$builddir"
> +	mkdir -p "$subpkgdir"/usr/share/man/man6
> +	mkdir -p "$subpkgdir"/usr/share/man/man1
> +	gzip -c docs/man/mame.6 > docs/man/mame.6.gz
> +	cp docs/man/mame.6.gz "$subpkgdir"/usr/share/man/man6/
> +	for i in castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 romcmp.1; do
> +		gzip -c docs/man/$i > "$subpkgdir"/usr/share/man/man1/${i}.gz
> +	done
> +}
> +sha512sums="dfff1f1d0c8fd11e49a0d4d554a229e13c3e10fcb90da54c8b4945bc05ebe936ad31ed96cd5c320a831500db58a48f7ea25b97312f29c94c970c808e64af595d  mame0196s.zip
> +b05e953b7c4be26eaa4ab192279fa62dd2b006069cd963e997295afe6e64b3ba04e5a257c69b008d5bc4b509274646d10b9499970b5c3c36cc86fb4ce18f9266  mame.ini
> +8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2  midi.conf
> +75bba366aebb37de7758368fbf7418194a18d535e61c1768e6c2c5cf4b3b7a2f625ef687cb8278c03daa9e308951df4c0bdcc944dfcc4ce5305f5ac83e5e049b  fix-musl.patch
> +a4d628d4648d28b9ae95f27ecba4a70b999ef11ffde31b31ca3ce2ed2fd4cfcab82ec78e2602309952518fac8c549d0b8b4294f6aa34c1acaa77f012ea13de9e  m68000_archopts.patch"
> diff --git a/testing/mame/fix-musl.patch b/testing/mame/fix-musl.patch
> new file mode 100644
> index 00000000..cda91419
> --- /dev/null
> +++ b/testing/mame/fix-musl.patch
> @@ -0,0 +1,21 @@
> +--- a/src/lib/netlist/plib/pexception.cpp
> ++++ b/src/lib/netlist/plib/pexception.cpp
> +@@ -10,7 +10,7 @@
> + 
> + #include <cfenv>
> + 
> +-#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
> ++#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__) && defined(__GLIBC__)
> + #define HAS_FEENABLE_EXCEPT     (1)
> + #else
> + #define HAS_FEENABLE_EXCEPT     (0)
> +--- a/3rdparty/bx/include/bx/bx.h
> ++++ b/3rdparty/bx/include/bx/bx.h
> +@@ -11,6 +11,7 @@
> + #include <stdint.h> // uint32_t
> + #include <stdlib.h> // size_t
> + #include <stddef.h> // ptrdiff_t
> ++#include <time.h>   // time_t
> + 
> + #include "platform.h"
> + #include "config.h"
> diff --git a/testing/mame/m68000_archopts.patch b/testing/mame/m68000_archopts.patch
> new file mode 100644
> index 00000000..46fd4a66
> --- /dev/null
> +++ b/testing/mame/m68000_archopts.patch
> @@ -0,0 +1,17 @@
> +Author: Jordi Mallach <jordi@debian.org>
> +Description: Pass $(ARCHOPTS) to standalone m68000 makefile.
> +Forwarded: no
> +
> +Index: mame/src/devices/cpu/m68000/makefile
> +===================================================================
> +--- mame.orig/src/devices/cpu/m68000/makefile
> ++++ mame/src/devices/cpu/m68000/makefile
> +@@ -25,7 +25,7 @@ clean:
> + 	-@rm -f m68kops.*
> + 
> + m68kmake.o: m68kmake.cpp
> +-	$(SILENT) $(CC) -x c++ -std=c++11 -o "$@" -c "$<"
> ++	$(SILENT) $(CC) -x c++ -std=c++11 $(ARCHOPTS) -o "$@" -c "$<"
> + 
> + m68kmake$(EXE) : m68kmake.o
> + 	@echo Linking $@...
> diff --git a/testing/mame/mame.ini b/testing/mame/mame.ini
> new file mode 100644
> index 00000000..795634a8
> --- /dev/null
> +++ b/testing/mame/mame.ini
> @@ -0,0 +1,61 @@
> +#Run "mame -cc" to generate a custom mame.ini file.Then put it into ~/.mame folder. 
> +#To see all available options, run "mame -showusage"
> +homepath                  .
> +rompath                   $HOME/.mame/roms;/usr/share/mame/roms
> +hashpath                  /usr/share/mame/hash
> +samplepath                $HOME/.mame/samples;/usr/share/mame/samples
> +artpath                   $HOME/.mame/artwork;/usr/share/mame/artwork
> +ctrlrpath                 /usr/share/mame/ctrlr
> +inipath                   $HOME/.mame;/etc/mame
> +fontpath                  $HOME/.mame/fonts;/usr/share/mame/fonts
> +cheatpath                 $HOME/.mame/cheat;/usr/share/mame/cheat
> +crosshairpath             $HOME/.mame/crosshair;/usr/share/mame/crosshair
> +pluginspath               $HOME/.mame/plugins/;/usr/share/mame/plugins
> +languagepath              /usr/share/mame/language
> +swpath                    software
> +
> +cfg_directory             $HOME/.mame/cfg
> +nvram_directory           $HOME/.mame/nvram
> +input_directory           $HOME/.mame/inp
> +state_directory           $HOME/.mame/sta
> +snapshot_directory        $HOME/.mame/snap
> +diff_directory            $HOME/.mame/diff
> +comment_directory         $HOME/.mame/comments
> +
> +#Video output method: none, soft, bgfx, opengl
> +video                     opengl
> +
> +#GROOVYMAME SPECIFIC
> +#Automatic generation of modelines based on the specified monitor type
> +modeline_generation       0
> +#Predefined monitor type (http://forum.arcadecontrols.com/index.php/topic,116023.0.html)
> +monitor                   arcade_31
> +orientation               horizontal
> +connector                 auto
> +interlace                 1
> +doublescan                1
> +super_width               2560
> +changeres                 1
> +powerstrip                0
> +lock_system_modes         1
> +lock_unsupported_modes    1
> +refresh_dont_care         0
> +dotclock_min              0
> +sync_refresh_tolerance    2.0
> +frame_delay               0
> +vsync_offset              0
> +black_frame_insertion     0
> +modeline                  auto
> +ps_timing                 auto
> +lcd_range                 auto
> +crt_range0                auto
> +crt_range1                auto
> +crt_range2                auto
> +crt_range3                auto
> +crt_range4                auto
> +crt_range5                auto
> +crt_range6                auto
> +crt_range7                auto
> +crt_range8                auto
> +crt_range9                auto
> +#END OF GROOVYMAME SPECIFIC
> diff --git a/testing/mame/midi.conf b/testing/mame/midi.conf
> new file mode 100644
> index 00000000..30a86650
> --- /dev/null
> +++ b/testing/mame/midi.conf
> @@ -0,0 +1 @@
> +snd_virmidi
> diff --git a/testing/mame/musl-time_t.patch b/testing/mame/musl-time_t.patch
> new file mode 100644
> index 00000000..02c11cf0
> --- /dev/null
> +++ b/testing/mame/musl-time_t.patch
> @@ -0,0 +1,10 @@
> +--- 3rdparty/bx/include/bx/bx.h	2017-12-27 02:45:37.000000000 +0100
> ++++ 3rdparty/bx/include/bx/bx.h	2017-12-28 10:58:30.254932880 +0100
> +@@ -11,6 +11,7 @@
> + #include <stdint.h> // uint32_t
> + #include <stdlib.h> // size_t
> + #include <stddef.h> // ptrdiff_t
> ++#include <time.h>   // time_t
> + 
> + #include "platform.h"
> + #include "config.h"



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

Re: [alpine-aports] [PATCH v3] testing/mame: new aport

Taner Tas
Details
Message ID
<20180419194036.1483851d46d63f41d09d86d0@gmail.com>
In-Reply-To
<20180419154718.183542c7@ncopa-desktop.copa.dup.pw> (view parent)
Sender timestamp
1524156036
DKIM signature
missing
Download raw message
On Thu, 19 Apr 2018 15:47:18 +0200
Natanael Copa <ncopa@alpinelinux.org> wrote:

> > +prepare() {
> > +	cd "$srcdir"
> > +	if [ ! -d ${pkgname}-${pkgver} ]; then
> > +		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
> > +	fi
> 
> Is it necessary to extract it with 7z? I though abuild will extract .zip for us.

Distribution file contains another zip file inside. Don't know why.
Actual zip file requires manual intervention and can't be extracted via "unzip". 


> > +	export OVERRIDE_CC=clang
> > +	export OVERRIDE_CXX=clang++
> 
> Does it require clang? Can it not be built with gcc?

Package actually builds with gcc. Clang compiles faster.
Also benchmarked both clang and gcc binaries.
Clang binary was smaller and performance is 10% better.


> 
> I think the depends need to be in global scope.
> 
fixed.


> > +	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
> 
> pakgname looks like a typo.
yes. fixed.


> > +	mkdir -p "$subpkgdir"/usr/share/"$pakgname"
> 
> pakgname looks like a typo
yes.fixed.


> > +doc() {
> 
> Normally we install the files in $pkgdir from package() and let the
> default doc function move and compress the manpages to the -doc
> subpackage.
> 
I was having some issues with -doc package and decided to use this approach.
Now reverted to normal method.

I'm rebuilding package now. After successfull build I'll send v4.
Thanks for review.

-- 
Taner Tas <taner76@gmail.com>


---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v4] testing/mame: new aport

Taner Tas
Details
Message ID
<20180420054038.28302-1-taner76@gmail.com>
In-Reply-To
<20180302172909.24694-1-taner76@gmail.com> (view parent)
Sender timestamp
1524202838
DKIM signature
missing
Download raw message
Patch: +260 -0
http://mamedev.org
Multi Arcade Machine Emulator.
---
 testing/mame/APKBUILD              | 160 +++++++++++++++++++++++++++++
 testing/mame/fix-musl.patch        |  21 ++++
 testing/mame/m68000_archopts.patch |  17 +++
 testing/mame/mame.ini              |  61 +++++++++++
 testing/mame/midi.conf             |   1 +
 5 files changed, 260 insertions(+)
 create mode 100644 testing/mame/APKBUILD
 create mode 100644 testing/mame/fix-musl.patch
 create mode 100644 testing/mame/m68000_archopts.patch
 create mode 100644 testing/mame/mame.ini
 create mode 100644 testing/mame/midi.conf

diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
new file mode 100644
index 0000000000..2691c547a7
--- /dev/null
+++ b/testing/mame/APKBUILD
@@ -0,0 +1,160 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=mame
+pkgver=0.196
+pkgrel=0
+pkgdesc="Multi Arcade Machine Emulator."
+url="http://mamedev.org"
+arch="all"
+license="GPL-2.0-or-later"
+depends="$pkgname-common"
+makedepends="coreutils p7zip nasm dos2unix clang-dev libxrandr-dev libxinerama-dev
+	alsa-lib-dev python2-dev py3-sphinx sdl2-dev sdl2_ttf-dev expat-dev zlib-dev
+	mesa-dev libxinerama-dev fontconfig-dev libjpeg-turbo-dev flac-dev lua5.3-dev
+	sqlite-dev portaudio-dev rapidjson-dev glm-dev portmidi-dev asio-dev"
+subpackages="$pkgname-data::noarch $pkgname-doc $pkgname-common::noarch $pkgname-lang
+	$pkgname-tools $pkgname-plugins::noarch $pkgname-arcade $pkgname-mess"
+source="https://github.com/mamedev/mame/releases/download/${pkgname}${pkgver/.}/${pkgname}${pkgver/.}s.zip
+	mame.ini
+	midi.conf
+	fix-musl.patch
+	m68000_archopts.patch
+	"
+options="!check"
+
+prepare() {
+	cd "$srcdir"
+	if [ ! -d ${pkgname}-${pkgver} ]; then
+		7z x -o"${pkgname}-${pkgver}" ${pkgname}.zip
+	fi
+	cd "$builddir"
+	echo "Converting all non-binary files to Unix format.."
+	find  . -type f -exec dos2unix -s -q {} \;
+	#clang workaraound
+	sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
+	default_prepare
+}
+
+build() {
+	export OVERRIDE_CC=clang
+	export OVERRIDE_CXX=clang++
+	export CFLAGS="$CFLAGS -I/usr/include/lua5.3 -DBX_CRT_MUSL"
+	export CXXFLAGS="$CFLAGS"
+	export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
+
+	case "$CARCH" in
+		x86|armhf) _PTR64=0 _SYMBOLS=0;;
+		*) _PTR64=1 _SYMBOLS=1;;
+	esac
+	case "$CARCH" in
+		x86_64|x86) _NOASM=0 ;;
+		*) _NOASM=1 ;;
+	esac
+	case "$CARCH" in
+		s390x) _BIGENDIAN=1 ;;
+		*) _BIGENDIAN=0 ;;
+	esac
+
+_build="make
+	TARGETOS=linux
+	NOWERROR=1
+	DEBUG=0
+	USE_QTDEBUG=0
+	VERBOSE=1
+	REGENIE=1
+	OSD=sdl
+	SYMBOLS=$_SYMBOLS
+	FORCE_DRC_C_BACKEND=
+	PTR64=$_PTR64
+	NOASM=$_NOASM
+	BIGENDIAN=$_BIGENDIAN
+	TOOLS=
+	SDL_INI_PATH=/etc/mame
+	USE_SYSTEM_LIB_EXPAT=1
+	USE_SYSTEM_LIB_ZLIB=1
+	USE_SYSTEM_LIB_JPEG=1
+	USE_SYSTEM_LIB_FLAC=1
+	USE_SYSTEM_LIB_LUA=1
+	USE_SYSTEM_LIB_SQLITE3=1
+	USE_SYSTEM_LIB_PORTAUDIO=1
+	USE_SYSTEM_LIB_UV=1
+	USE_SYSTEM_LIB_GLM=1
+	USE_SYSTEM_LIB_RAPIDJSON=1
+	USE_SYSTEM_LIB_PORTMIDI=1
+	USE_SYSTEM_LIB_ASIO=1"
+
+	cd "$builddir"
+
+	$_build TOOLS=1 SUBTARGET=mame
+	$_build SUBTARGET=arcade
+	$_build SUBTARGET=mess
+}
+
+package() {
+	cd "$builddir"
+	install -D -m755 mame "$pkgdir"/usr/bin/mame || install -D -m755 mame64 "$pkgdir"/usr/bin/mame
+	install -D -m644  docs/man/mame.6  "$pkgdir"/usr/share/man/man6/mame.6
+	for i in castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 romcmp.1; do
+		install -D -m644 "docs/man/$i"  "$pkgdir"/usr/share/man/man1/"$i"
+	done
+}
+
+common() {
+	cd "$builddir"
+	pkgdesc="MAME - Common configuration files"
+	install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
+	install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
+	install -d -m755 "$subpkgdir"/usr/share/"$pkgname/roms"
+}
+
+arcade() {
+	pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
+	cd "$builddir"
+	install -D -m755 mamearcade "$subpkgdir"/usr/bin/mamearcade || install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/mamearcade
+}
+
+mess() {
+	pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
+	cd "$builddir"
+	install -D -m755 mess "$subpkgdir"/usr/bin/mess || install -D -m755 mess64 "$subpkgdir"/usr/bin/mess
+}
+
+data() {
+	pkgdesc="Distribution files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	for i in artwork bgfx hash hlsl ini keymaps samples; do
+		cp -r $i "$subpkgdir"/usr/share/"$pkgname"
+	done
+	rm -rf "$subpkgdir"/usr/share/"$pkgname"/bgfx/shaders/dx11
+	rm -rf "$subpkgdir"/usr/share/"$pkgname"/bgfx/shaders/dx9
+	rm -rf "$subpkgdir"/usr/share/"$pkgname"/bgfx/shaders/metal
+}
+
+plugins() {
+	pkgdesc="Distribution plugins for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	cp -r plugins "$subpkgdir"/usr/share/"$pkgname"
+}
+
+tools() {
+	pkgdesc="Tools for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/bin
+	for i in castool chdman floptool imgtool jedutil ldresample ldverify romcmp; do
+		install -sm755 $i "$subpkgdir"/usr/bin
+	done
+}
+
+lang() {
+	pkgdesc="Localization files for ${pkgname}"
+	cd "$builddir"
+	mkdir -p "$subpkgdir"/usr/share/"$pkgname"
+	cp -r language "$subpkgdir"/usr/share/"$pkgname"/
+}
+sha512sums="dfff1f1d0c8fd11e49a0d4d554a229e13c3e10fcb90da54c8b4945bc05ebe936ad31ed96cd5c320a831500db58a48f7ea25b97312f29c94c970c808e64af595d  mame0196s.zip
+8b7915eb8bd030d4840942ee2a89b01ba52558d47dc44d51c887c5fe6b704a1e9174f767364b7b1e01889fc0e62066804d23ca742a2a6c572ca792e4f1214a9a  mame.ini
+8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2  midi.conf
+75bba366aebb37de7758368fbf7418194a18d535e61c1768e6c2c5cf4b3b7a2f625ef687cb8278c03daa9e308951df4c0bdcc944dfcc4ce5305f5ac83e5e049b  fix-musl.patch
+a4d628d4648d28b9ae95f27ecba4a70b999ef11ffde31b31ca3ce2ed2fd4cfcab82ec78e2602309952518fac8c549d0b8b4294f6aa34c1acaa77f012ea13de9e  m68000_archopts.patch"
diff --git a/testing/mame/fix-musl.patch b/testing/mame/fix-musl.patch
new file mode 100644
index 0000000000..cda914196c
--- /dev/null
+++ b/testing/mame/fix-musl.patch
@@ -0,0 +1,21 @@
+--- a/src/lib/netlist/plib/pexception.cpp
+@@ -10,7 +10,7 @@
+ 
+ #include <cfenv>
+ 
+-#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
++#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__) && defined(__GLIBC__)
+ #define HAS_FEENABLE_EXCEPT     (1)
+ #else
+ #define HAS_FEENABLE_EXCEPT     (0)
+--- a/3rdparty/bx/include/bx/bx.h
+@@ -11,6 +11,7 @@
+ #include <stdint.h> // uint32_t
+ #include <stdlib.h> // size_t
+ #include <stddef.h> // ptrdiff_t
++#include <time.h>   // time_t
+ 
+ #include "platform.h"
+ #include "config.h"
diff --git a/testing/mame/m68000_archopts.patch b/testing/mame/m68000_archopts.patch
new file mode 100644
index 0000000000..46fd4a6630
--- /dev/null
+++ b/testing/mame/m68000_archopts.patch
@@ -0,0 +1,17 @@
+Author: Jordi Mallach <jordi@debian.org>
+Description: Pass $(ARCHOPTS) to standalone m68000 makefile.
+Forwarded: no
+
+Index: mame/src/devices/cpu/m68000/makefile
+===================================================================
+--- mame.orig/src/devices/cpu/m68000/makefile
+@@ -25,7 +25,7 @@ clean:
+ 	-@rm -f m68kops.*
+ 
+ m68kmake.o: m68kmake.cpp
+-	$(SILENT) $(CC) -x c++ -std=c++11 -o "$@" -c "$<"
++	$(SILENT) $(CC) -x c++ -std=c++11 $(ARCHOPTS) -o "$@" -c "$<"
+ 
+ m68kmake$(EXE) : m68kmake.o
+ 	@echo Linking $@...
diff --git a/testing/mame/mame.ini b/testing/mame/mame.ini
new file mode 100644
index 0000000000..1fdd79d901
--- /dev/null
+++ b/testing/mame/mame.ini
@@ -0,0 +1,61 @@
+#Run "mame -cc" to generate a custom mame.ini file.Then put it into ~/.mame folder. 
+#To see all available options, run "mame -showusage"
+homepath                  .
+rompath                   $HOME/.mame/roms;/usr/share/mame/roms
+hashpath                  /usr/share/mame/hash
+samplepath                $HOME/.mame/samples;/usr/share/mame/samples
+artpath                   $HOME/.mame/artwork;/usr/share/mame/artwork
+ctrlrpath                 /usr/share/mame/ctrlr
+inipath                   $HOME/.mame;/etc/mame
+fontpath                  $HOME/.mame/fonts;/usr/share/mame/fonts
+cheatpath                 $HOME/.mame/cheat;/usr/share/mame/cheat
+crosshairpath             $HOME/.mame/crosshair;/usr/share/mame/crosshair
+pluginspath               $HOME/.mame/plugins/;/usr/share/mame/plugins
+languagepath              /usr/share/mame/language
+swpath                    software
+
+cfg_directory             $HOME/.mame/cfg
+nvram_directory           $HOME/.mame/nvram
+input_directory           $HOME/.mame/inp
+state_directory           $HOME/.mame/sta
+snapshot_directory        $HOME/.mame/snap
+diff_directory            $HOME/.mame/diff
+comment_directory         $HOME/.mame/comments
+
+#Video output method: none, soft, bgfx, opengl
+video                     opengl
+
+#GROOVYMAME SPECIFIC
+#Automatic generation of modelines based on the specified monitor type
+modeline_generation       1
+#Predefined monitor type (http://forum.arcadecontrols.com/index.php/topic,116023.0.html)
+monitor                   lcd
+orientation               horizontal
+connector                 auto
+interlace                 1
+doublescan                1
+super_width               2560
+changeres                 1
+powerstrip                0
+lock_system_modes         1
+lock_unsupported_modes    1
+refresh_dont_care         0
+dotclock_min              0
+sync_refresh_tolerance    2.0
+frame_delay               0
+vsync_offset              0
+black_frame_insertion     0
+modeline                  auto
+ps_timing                 auto
+lcd_range                 auto
+crt_range0                auto
+crt_range1                auto
+crt_range2                auto
+crt_range3                auto
+crt_range4                auto
+crt_range5                auto
+crt_range6                auto
+crt_range7                auto
+crt_range8                auto
+crt_range9                auto
+#END OF GROOVYMAME SPECIFIC
diff --git a/testing/mame/midi.conf b/testing/mame/midi.conf
new file mode 100644
index 0000000000..30a866501c
--- /dev/null
+++ b/testing/mame/midi.conf
@@ -0,0 +1 @@
+snd_virmidi
-- 
2.17.0



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v5] testing/mame: new aport

Taner Tas
Details
Message ID
<20180423135455.aa34f66c1cb2dc292f89a88d@gmail.com>
In-Reply-To
<20180420054038.28302-1-taner76@gmail.com> (view parent)
Sender timestamp
1524480895
DKIM signature
missing
Download raw message
Hi,

I prepared a new v5 patch and submitted as github PR.
Pleae refer to: https://github.com/alpinelinux/aports/pull/4088

Thanks
-- 
Taner


---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---