summaryrefslogtreecommitdiff
path: root/games-emulation/sdlmame
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /games-emulation/sdlmame
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'games-emulation/sdlmame')
-rw-r--r--games-emulation/sdlmame/Manifest4
-rw-r--r--games-emulation/sdlmame/files/mame-0.139.ini.in270
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.144-makefile.patch79
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.144-no-opengl.patch11
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.148_p1-makefile.patch177
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.148_p1-no-opengl.patch12
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.149-QA.patch191
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.149-debugger-linking.patch28
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.149-no-opengl.patch19
-rw-r--r--games-emulation/sdlmame/files/sdlmame-0.149-system-lua.patch33
-rw-r--r--games-emulation/sdlmame/files/vector.ini9
-rw-r--r--games-emulation/sdlmame/metadata.xml19
-rw-r--r--games-emulation/sdlmame/sdlmame-0.148_p1-r1.ebuild186
-rw-r--r--games-emulation/sdlmame/sdlmame-0.149.ebuild194
14 files changed, 1232 insertions, 0 deletions
diff --git a/games-emulation/sdlmame/Manifest b/games-emulation/sdlmame/Manifest
new file mode 100644
index 00000000000..0bb3d4b4399
--- /dev/null
+++ b/games-emulation/sdlmame/Manifest
@@ -0,0 +1,4 @@
+DIST mame0148s.zip 33822494 SHA256 78d8a68ba53934fdfc895f450c08682dada81f7ec3e74a98fb042539506d9321 SHA512 a520115e2e82b2da3200ffa1fa56f668f95c3e26a927bcdb30a34e73053e55d26a6a6c1ec95eae1237bce1d2d0cd276b84466705fd5f53ac77827d06ea04bc03 WHIRLPOOL c6de71c198396977475110ab5840b7eaa6e5074519adffc286dd539ab916ea951fa1c307218b0d144cdc8aeeb096216106a3c21a6d53b42c04dc75e8103be04a
+DIST mame0149s.zip 35160585 SHA256 0e41b5773bea217d3ca04002903ac5ef569e6f5b67c05c72496d2cd7993b0a6b SHA512 4b8bd72e93f71fdb52c643776ecefb87fe605effe3f8c1724156cf7fafb8107330d92914eb14208a170cd5a0ee2775e7ea8d8edd0b525a35bbb0d5514172c1c3 WHIRLPOOL c5821ffc0f640e93986cd88f9e530be36e5ba0405a5dbc69a5021c828248dc74541340d5d9d49ece19635b5239bbaeeeb93bad2800fc46e9f441d8ffd3751ca5
+DIST sdlmame-ui.bdf.gz 114727 SHA256 f2ec11dd926bbeae8647e68607107516a30790239464939f3e99a0f62fc7f17e SHA512 67ba1bc632c1ac51b97acf8c1061477edd3519fea3d1233951723741c926ff72e259c274babb036abf4db92f217db507c58a6fc6e438db4b14c5fe5789b2ed64 WHIRLPOOL 2150053b38d8318804bf40cdcd9cdefdd2976c4cfab563c90021f0d9be0a0a57174166ece8b51658d9f2192e07343f198358299667a1db32f146c9fb9c528956
+DIST sdlmame0148u1_diff.zip 3386949 SHA256 27378d09e50f31ca0dd4f39df4c474016671946657eb7af9ea5aa0ffbae1d9bb SHA512 f62aa8ebfc3cfa96d2fd5e58c921cc2adfbe3704a745ef49bc247060ecd3333ecc12e1a3add810c6237f3f7a1946cf1b9d46e6d72aeb87baffebadb933de44de WHIRLPOOL 550f2e777363f307b8e56b4ec31f4852abe89434af5ce596bd6e6023f35a728e4078033b1edc4b302e0cf50fa646a190ec02be9329127379405aec2e9b591531
diff --git a/games-emulation/sdlmame/files/mame-0.139.ini.in b/games-emulation/sdlmame/files/mame-0.139.ini.in
new file mode 100644
index 00000000000..7b69f182a35
--- /dev/null
+++ b/games-emulation/sdlmame/files/mame-0.139.ini.in
@@ -0,0 +1,270 @@
+#
+# CORE CONFIGURATION OPTIONS
+#
+readconfig 1
+writeconfig 0
+
+#
+# CORE SEARCH PATH OPTIONS
+#
+rompath $HOME/.sdlmame/roms;@GAMES_DATADIR@/sdlmame/roms
+samplepath $HOME/.sdlmame/samples;@GAMES_DATADIR@/sdlmame/samples
+artpath $HOME/.sdlmame/artwork;@GAMES_DATADIR@/sdlmame/artwork
+ctrlrpath $HOME/.sdlmame/ctrlr;@GAMES_SYSCONFDIR@/sdlmame/ctrlr;@GAMES_DATADIR@/sdlmame/ctrlr
+inipath $HOME/.sdlmame;@GAMES_SYSCONFDIR@/sdlmame
+fontpath $HOME/.sdlmame;@GAMES_DATADIR@/sdlmame
+cheatpath $HOME/.sdlmame/cheats;@GAMES_SYSCONFDIR@/sdlmame/cheats;@GAMES_DATADIR@/sdlmame/cheats
+crosshairpath $HOME/.sdlmame/crosshair;@GAMES_DATADIR@/sdlmame/crosshair
+
+#
+# CORE OUTPUT DIRECTORY OPTIONS
+#
+cfg_directory $HOME/.sdlmame/cfg
+nvram_directory $HOME/.sdlmame/nvram
+memcard_directory $HOME/.sdlmame/memcard
+input_directory $HOME/.sdlmame/inp
+state_directory $HOME/.sdlmame/sta
+snapshot_directory $HOME/.sdlmame/snap
+diff_directory $HOME/.sdlmame/diff
+comment_directory $HOME/.sdlmame/comments
+
+#
+# CORE STATE/PLAYBACK OPTIONS
+#
+state
+autosave 0
+playback
+record
+mngwrite
+aviwrite
+wavwrite
+snapname %g/%i
+snapsize auto
+snapview internal
+burnin 0
+
+#
+# CORE PERFORMANCE OPTIONS
+#
+autoframeskip 0
+frameskip 0
+seconds_to_run 0
+throttle 1
+sleep 1
+speed 1.0
+refreshspeed 0
+
+#
+# CORE ROTATION OPTIONS
+#
+rotate 1
+ror 0
+rol 0
+autoror 0
+autorol 0
+flipx 0
+flipy 0
+
+#
+# CORE ARTWORK OPTIONS
+#
+artwork_crop 0
+use_backdrops 1
+use_overlays 1
+use_bezels 1
+
+#
+# CORE SCREEN OPTIONS
+#
+brightness 1.0
+contrast 1.0
+gamma 1.0
+pause_brightness 0.65
+
+#
+# CORE VECTOR OPTIONS
+#
+antialias 1
+beam 1.0
+flicker 0
+
+#
+# CORE SOUND OPTIONS
+#
+sound 1
+samplerate 48000
+samples 1
+volume 0
+
+#
+# CORE INPUT OPTIONS
+#
+coin_lockout 1
+ctrlr
+mouse 0
+joystick 1
+lightgun 0
+multikeyboard 0
+multimouse 0
+steadykey 0
+offscreen_reload 0
+joystick_map auto
+joystick_deadzone 0.3
+joystick_saturation 0.85
+natural 0
+uimodekey auto
+
+#
+# CORE INPUT AUTOMATIC ENABLE OPTIONS
+#
+paddle_device keyboard
+adstick_device keyboard
+pedal_device keyboard
+dial_device keyboard
+trackball_device keyboard
+lightgun_device keyboard
+positional_device keyboard
+mouse_device mouse
+
+#
+# CORE DEBUGGING OPTIONS
+#
+log 0
+verbose 0
+update_in_pause 0
+debug 0
+debugscript
+debug_internal 0
+
+#
+# CORE MISC OPTIONS
+#
+bios
+cheat 0
+skip_gameinfo 0
+
+#
+# DEBUGGING OPTIONS
+#
+oslog 0
+
+#
+# PERFORMANCE OPTIONS
+#
+multithreading 0
+numprocessors auto
+sdlvideofps 0
+
+#
+# VIDEO OPTIONS
+#
+video soft
+numscreens 1
+window 0
+maximize 1
+keepaspect 1
+unevenstretch 1
+effect none
+centerh 1
+centerv 1
+waitvsync 0
+scalemode none
+
+#
+# OpenGL-SPECIFIC OPTIONS
+#
+filter 1
+prescale 1
+gl_forcepow2texture 0
+gl_notexturerect 0
+gl_vbo 1
+gl_pbo 1
+gl_glsl 0
+gl_glsl_filter 1
+glsl_shader_mame0 none
+glsl_shader_mame1 none
+glsl_shader_mame2 none
+glsl_shader_mame3 none
+glsl_shader_mame4 none
+glsl_shader_mame5 none
+glsl_shader_mame6 none
+glsl_shader_mame7 none
+glsl_shader_mame8 none
+glsl_shader_mame9 none
+glsl_shader_screen0 none
+glsl_shader_screen1 none
+glsl_shader_screen2 none
+glsl_shader_screen3 none
+glsl_shader_screen4 none
+glsl_shader_screen5 none
+glsl_shader_screen6 none
+glsl_shader_screen7 none
+glsl_shader_screen8 none
+glsl_shader_screen9 none
+gl_glsl_vid_attr 1
+
+#
+# PER-WINDOW VIDEO OPTIONS
+#
+screen auto
+aspect auto
+resolution auto
+view auto
+screen0 auto
+aspect0 auto
+resolution0 auto
+view0 auto
+screen1 auto
+aspect1 auto
+resolution1 auto
+view1 auto
+screen2 auto
+aspect2 auto
+resolution2 auto
+view2 auto
+screen3 auto
+aspect3 auto
+resolution3 auto
+view3 auto
+
+#
+# FULL SCREEN OPTIONS
+#
+switchres 0
+useallheads 0
+
+#
+# SOUND OPTIONS
+#
+audio_latency 3
+
+#
+# SDL KEYBOARD MAPPING
+#
+keymap 0
+keymap_file $HOME/.sdlmame/keymap.dat
+#keymap_file @GAMES_DATADIR@/sdlmame/keymaps/km-be.txt
+#keymap_file @GAMES_DATADIR@/sdlmame/keymaps/km-ch.txt
+#keymap_file @GAMES_DATADIR@/sdlmame/keymaps/km-de.txt
+#keymap_file @GAMES_DATADIR@/sdlmame/keymaps/km-fr.txt
+#keymap_file @GAMES_DATADIR@/sdlmame/keymaps/km_it.txt
+
+#
+# SDL JOYSTICK MAPPING
+#
+joy_idx1 auto
+joy_idx2 auto
+joy_idx3 auto
+joy_idx4 auto
+joy_idx5 auto
+joy_idx6 auto
+joy_idx7 auto
+joy_idx8 auto
+sixaxis 0
+
+#
+# SDL LOWLEVEL DRIVER OPTIONS
+#
+videodriver auto
+audiodriver auto
+gl_lib auto
diff --git a/games-emulation/sdlmame/files/sdlmame-0.144-makefile.patch b/games-emulation/sdlmame/files/sdlmame-0.144-makefile.patch
new file mode 100644
index 00000000000..f69cfe43744
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.144-makefile.patch
@@ -0,0 +1,79 @@
+--- work.orig/makefile 2011-11-09 22:40:30.000000000 -0500
++++ work/makefile 2011-11-16 19:24:24.615419949 -0500
+@@ -435,9 +435,6 @@
+ CPPONLYFLAGS += -x c++ -std=gnu++98
+ COBJFLAGS += -x objective-c++
+
+-# this speeds it up a bit by piping between the preprocessor/compiler/assembler
+-CCOMFLAGS += -pipe
+-
+ # add -g if we need symbols, and ensure we have frame pointers
+ ifdef SYMBOLS
+ CCOMFLAGS += -g$(SYMLEVEL) -fno-omit-frame-pointer
+@@ -442,7 +442,6 @@
+
+ # add -v if we need verbose build information
+ ifdef VERBOSE
+-CCOMFLAGS += -v
+ endif
+
+ # add profiling information for the compiler
+@@ -453,23 +450,6 @@
+ CCOMFLAGS += -pg
+ endif
+
+-# add the optimization flag
+-CCOMFLAGS += -O$(OPTIMIZE)
+-
+-# if we are optimizing, include optimization options
+-# and make all errors into warnings
+-ifneq ($(OPTIMIZE),0)
+-ifneq ($(TARGETOS),os2)
+-ifndef NOWERROR
+-CCOMFLAGS += -Werror -fno-strict-aliasing $(ARCHOPTS)
+-else
+-CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
+-endif
+-else
+-CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
+-endif
+-endif
+-
+ # add a basic set of warnings
+ CCOMFLAGS += \
+ -Wall \
+@@ -524,20 +504,6 @@
+ endif
+
+
+-#-------------------------------------------------
+-# linking flags
+-#-------------------------------------------------
+-
+-# LDFLAGS are used generally; LDFLAGSEMULATOR are additional
+-# flags only used when linking the core emulator
+-LDFLAGS =
+-ifneq ($(TARGETOS),macosx)
+-ifneq ($(TARGETOS),os2)
+-ifneq ($(TARGETOS),solaris)
+-LDFLAGS = -Wl,--warn-common
+-endif
+-endif
+-endif
+ LDFLAGSEMULATOR =
+
+ # add profiling information for the linker
+@@ -545,13 +511,6 @@
+ LDFLAGS += -pg
+ endif
+
+-# strip symbols and other metadata in non-symbols and non profiling builds
+-ifndef SYMBOLS
+-ifneq ($(TARGETOS),macosx)
+-LDFLAGS += -s
+-endif
+-endif
+-
+ # output a map file (emulator only)
+ ifdef MAP
+ LDFLAGSEMULATOR += -Wl,-Map,$(FULLNAME).map
diff --git a/games-emulation/sdlmame/files/sdlmame-0.144-no-opengl.patch b/games-emulation/sdlmame/files/sdlmame-0.144-no-opengl.patch
new file mode 100644
index 00000000000..87eeae5b50c
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.144-no-opengl.patch
@@ -0,0 +1,11 @@
+--- ./src/osd/sdl/osdsdl.h.orig
++++ ./src/osd/sdl/osdsdl.h
+@@ -225,6 +225,8 @@
+ const char *audio_driver() const { return value(SDLOPTION_AUDIODRIVER); }
+ #if USE_OPENGL
+ const char *gl_lib() const { return value(SDLOPTION_GL_LIB); }
++#else
++ const char *gl_lib() const { return NULL; }
+ #endif
+
+ private:
diff --git a/games-emulation/sdlmame/files/sdlmame-0.148_p1-makefile.patch b/games-emulation/sdlmame/files/sdlmame-0.148_p1-makefile.patch
new file mode 100644
index 00000000000..7ba59692f2e
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.148_p1-makefile.patch
@@ -0,0 +1,177 @@
+--- makefile
++++ makefile
+@@ -314,13 +314,14 @@
+ endif
+
+ # compiler, linker and utilities
+-AR = @ar
+-CC = @gcc
+-LD = @g++
++AR ?= @ar
++CC ?= @gcc
++CXX ?= @g++
++LD = $(CXX)
+ MD = -mkdir$(EXE)
+ RM = @rm -f
+ OBJDUMP = @objdump
+-PYTHON = @python
++PYTHON ?= @python
+
+
+ #-------------------------------------------------
+@@ -455,7 +456,7 @@
+
+ # CFLAGS is defined based on C or C++ targets
+ # (remember, expansion only happens when used, so doing it here is ok)
+-CFLAGS = $(CCOMFLAGS) $(CPPONLYFLAGS)
++CFLAGS += $(CCOMFLAGS) $(CPPONLYFLAGS)
+
+ # we compile C-only to C89 standard with GNU extensions
+ # we compile C++ code to C++98 standard with GNU extensions
+@@ -463,9 +464,6 @@
+ CPPONLYFLAGS += -x c++ -std=gnu++98
+ COBJFLAGS += -x objective-c++
+
+-# this speeds it up a bit by piping between the preprocessor/compiler/assembler
+-CCOMFLAGS += -pipe
+-
+ # add -g if we need symbols, and ensure we have frame pointers
+ ifdef SYMBOLS
+ CCOMFLAGS += -g$(SYMLEVEL) -fno-omit-frame-pointer
+@@ -479,19 +477,6 @@
+ # add profiling information for the compiler
+ ifdef PROFILE
+ CCOMFLAGS += -pg
+-endif
+-
+-# add the optimization flag
+-CCOMFLAGS += -O$(OPTIMIZE)
+-
+-# add the error warning flag
+-ifndef NOWERROR
+-CCOMFLAGS += -Werror
+-endif
+-
+-# if we are optimizing, include optimization options
+-ifneq ($(OPTIMIZE),0)
+-CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
+ endif
+
+ # add a basic set of warnings
+@@ -565,26 +550,11 @@
+
+ # LDFLAGS are used generally; LDFLAGSEMULATOR are additional
+ # flags only used when linking the core emulator
+-LDFLAGS =
+-ifneq ($(TARGETOS),macosx)
+-ifneq ($(TARGETOS),os2)
+-ifneq ($(TARGETOS),solaris)
+-LDFLAGS = -Wl,--warn-common
+-endif
+-endif
+-endif
+ LDFLAGSEMULATOR =
+
+ # add profiling information for the linker
+ ifdef PROFILE
+ LDFLAGS += -pg
+-endif
+-
+-# strip symbols and other metadata in non-symbols and non profiling builds
+-ifndef SYMBOLS
+-ifneq ($(TARGETOS),macosx)
+-LDFLAGS += -s
+-endif
+ endif
+
+ # output a map file (emulator only)
+--- src/osd/sdl/sdl.mak
++++ src/osd/sdl/sdl.mak
+@@ -24,6 +24,8 @@
+ # uncomment and edit next line to specify a distribution
+ # supported debian-stable, ubuntu-intrepid
+
++PKG_CONFIG ?= pkg-config
++
+ # DISTRO = debian-stable
+ # DISTRO = ubuntu-intrepid
+ # DISTRO = gcc44-generic
+@@ -91,9 +93,9 @@
+ endif
+
+ ifdef SDL_INSTALL_ROOT
+-SDL_CONFIG = $(SDL_INSTALL_ROOT)/bin/$(SDL_LIBVER)-config
++SDL_CONFIG ?= $(SDL_INSTALL_ROOT)/bin/$(SDL_LIBVER)-config
+ else
+-SDL_CONFIG = $(SDL_LIBVER)-config
++SDL_CONFIG ?= $(SDL_LIBVER)-config
+ endif
+
+ ifeq ($(SDL_LIBVER),sdl2)
+@@ -190,8 +192,8 @@
+ SDL_NETWORK = taptun
+
+ ifndef NO_USE_MIDI
+-INCPATH += `pkg-config --cflags alsa`
+-LIBS += `pkg-config --libs alsa`
++INCPATH += $(shell $(PKG_CONFIG) --cflags alsa)
++LIBS += $(shell $(PKG_CONFIG) --libs alsa)
+ endif
+
+ endif
+@@ -476,10 +478,10 @@
+ # Remove the "/SDL" component from the include path so that we can compile
+ # files (header files are #include "SDL/something.h", so the extra "/SDL"
+ # causes a significant problem)
+-INCPATH += `sdl-config --cflags | sed 's:/SDL::'`
++INCPATH += $(shell $(SDL_CONFIG) --cflags | sed 's:/SDL::')
+ CCOMFLAGS += -DNO_SDL_GLEXT
+ # Remove libSDLmain, as its symbols conflict with SDLMain_tmpl.m
+-LIBS += `sdl-config --libs | sed 's/-lSDLmain//'` -lpthread
++LIBS += $(shell $(SDL_CONFIG) --libs | sed 's/-lSDLmain//') -lpthread
+ DEFS += -DMACOSX_USE_LIBSDL
+ endif # MACOSX_USE_LIBSDL
+
+@@ -532,8 +534,8 @@
+ endif
+ endif
+
+-INCPATH += `pkg-config --cflags fontconfig`
+-LIBS += `pkg-config --libs fontconfig`
++INCPATH += $(shell $(PKG_CONFIG) --cflags fontconfig)
++LIBS += $(shell $(PKG_CONFIG) --libs fontconfig)
+
+ ifeq ($(SDL_LIBVER),sdl2)
+ LIBS += -lSDL2_ttf
+@@ -616,8 +618,8 @@
+
+ ifeq ($(BASE_TARGETOS),os2)
+
+-INCPATH += `sdl-config --cflags`
+-LIBS += `sdl-config --libs`
++INCPATH += $(shell $(SDL_CONFIG) --cflags)
++LIBS += $(shell $(SDL_CONFIG) --libs)
+
+ endif # OS2
+
+@@ -690,15 +692,15 @@
+
+ # the new debugger relies on GTK+ in addition to the base SDLMAME needs
+ # Non-X11 builds can not use the debugger
+-INCPATH += `pkg-config --cflags-only-I gtk+-2.0` `pkg-config --cflags-only-I gconf-2.0`
+-CCOMFLAGS += `pkg-config --cflags-only-other gtk+-2.0` `pkg-config --cflags-only-other gconf-2.0`
+-LIBS += `pkg-config --libs gtk+-2.0` `pkg-config --libs gconf-2.0`
++INCPATH += $(shell $(PKG_CONFIG) --cflags-only-I gtk+-2.0 gconf-2.0)
++CCOMFLAGS += $(shell $(PKG_CONFIG) --cflags-only-other gtk+-2.0 gconf-2.0)
++LIBS += $(shell $(PKG_CONFIG) --libs gtk+-2.0 gconf-2.0)
+ #CCOMFLAGS += -DGTK_DISABLE_DEPRECATED
+
+ # The newer debugger uses QT
+ ifdef USE_QTDEBUG
+-INCPATH += `pkg-config QtGui --cflags`
+-LIBS += `pkg-config QtGui --libs`
++INCPATH += $(shell $(PKG_CONFIG) QtGui --cflags)
++LIBS += $(shell $(PKG_CONFIG) QtGui --libs)
+ endif
+
+ # some systems still put important things in a different prefix
diff --git a/games-emulation/sdlmame/files/sdlmame-0.148_p1-no-opengl.patch b/games-emulation/sdlmame/files/sdlmame-0.148_p1-no-opengl.patch
new file mode 100644
index 00000000000..7b339ba71a5
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.148_p1-no-opengl.patch
@@ -0,0 +1,12 @@
+diff -Naur a/src/osd/sdl/osdsdl.h b/src/osd/sdl/osdsdl.h
+--- a/src/osd/sdl/osdsdl.h 2012-07-11 20:49:55.070264487 +0200
++++ b/src/osd/sdl/osdsdl.h 2012-07-11 20:51:45.976264395 +0200
+@@ -216,6 +216,8 @@
+ const char *audio_driver() const { return value(SDLOPTION_AUDIODRIVER); }
+ #if USE_OPENGL
+ const char *gl_lib() const { return value(SDLOPTION_GL_LIB); }
++#else
++ const char *gl_lib() const { return NULL; }
+ #endif
+
+ private:
diff --git a/games-emulation/sdlmame/files/sdlmame-0.149-QA.patch b/games-emulation/sdlmame/files/sdlmame-0.149-QA.patch
new file mode 100644
index 00000000000..97e4b8f41c1
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.149-QA.patch
@@ -0,0 +1,191 @@
+commit 938cfdf1f01bcc9ac736249ee6458a774d560738
+Author: hasufell <hasufell@gentoo.org>
+Date: Tue Jun 25 23:48:02 2013 +0200
+
+ QA: respect several environment variables
+
+ such as CC,CFLAGS,PKG_CONFIG...
+
+diff --git a/makefile b/makefile
+index ad6ae2d..dd4598d 100644
+--- a/makefile
++++ b/makefile
+@@ -317,13 +317,15 @@ BUILD_EXE = $(EXE)
+ endif
+
+ # compiler, linker and utilities
+-AR = @ar
+-CC = @gcc
+-LD = @g++
++AR ?= @ar
++CC ?= @gcc
++CXX ?= @g++
++LD = $(CXX)
+ MD = -mkdir$(EXE)
+ RM = @rm -f
+ OBJDUMP = @objdump
+-PYTHON = @python
++PYTHON ?= @python
++PKG_CONFIG ?= pkg-config
+
+
+ #-------------------------------------------------
+@@ -458,7 +460,7 @@ CPPONLYFLAGS =
+
+ # CFLAGS is defined based on C or C++ targets
+ # (remember, expansion only happens when used, so doing it here is ok)
+-CFLAGS = $(CCOMFLAGS) $(CPPONLYFLAGS)
++CFLAGS += $(CCOMFLAGS) $(CPPONLYFLAGS)
+
+ # we compile C-only to C89 standard with GNU extensions
+ # we compile C++ code to C++98 standard with GNU extensions
+@@ -466,9 +468,6 @@ CONLYFLAGS += -std=gnu89
+ CPPONLYFLAGS += -x c++ -std=gnu++98
+ COBJFLAGS += -x objective-c++
+
+-# this speeds it up a bit by piping between the preprocessor/compiler/assembler
+-CCOMFLAGS += -pipe
+-
+ # add -g if we need symbols, and ensure we have frame pointers
+ ifdef SYMBOLS
+ CCOMFLAGS += -g$(SYMLEVEL) -fno-omit-frame-pointer
+@@ -484,19 +483,6 @@ ifdef PROFILE
+ CCOMFLAGS += -pg
+ endif
+
+-# add the optimization flag
+-CCOMFLAGS += -O$(OPTIMIZE)
+-
+-# add the error warning flag
+-ifndef NOWERROR
+-CCOMFLAGS += -Werror
+-endif
+-
+-# if we are optimizing, include optimization options
+-ifneq ($(OPTIMIZE),0)
+-CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
+-endif
+-
+ # add a basic set of warnings
+ CCOMFLAGS += \
+ -Wall \
+@@ -576,14 +562,6 @@ endif
+
+ # LDFLAGS are used generally; LDFLAGSEMULATOR are additional
+ # flags only used when linking the core emulator
+-LDFLAGS =
+-ifneq ($(TARGETOS),macosx)
+-ifneq ($(TARGETOS),os2)
+-ifneq ($(TARGETOS),solaris)
+-LDFLAGS = -Wl,--warn-common
+-endif
+-endif
+-endif
+ LDFLAGSEMULATOR =
+
+ # add profiling information for the linker
+@@ -591,13 +569,6 @@ ifdef PROFILE
+ LDFLAGS += -pg
+ endif
+
+-# strip symbols and other metadata in non-symbols and non profiling builds
+-ifndef SYMBOLS
+-ifneq ($(TARGETOS),macosx)
+-LDFLAGS += -s
+-endif
+-endif
+-
+ # output a map file (emulator only)
+ ifdef MAP
+ LDFLAGSEMULATOR += -Wl,-Map,$(FULLNAME).map
+diff --git a/src/osd/sdl/sdl.mak b/src/osd/sdl/sdl.mak
+index 84332ef..36655d3 100644
+--- a/src/osd/sdl/sdl.mak
++++ b/src/osd/sdl/sdl.mak
+@@ -24,6 +24,8 @@
+ # uncomment and edit next line to specify a distribution
+ # supported debian-stable, ubuntu-intrepid
+
++PKG_CONFIG ?= pkg-config
++
+ # DISTRO = debian-stable
+ # DISTRO = ubuntu-intrepid
+ # DISTRO = gcc44-generic
+@@ -88,9 +90,9 @@ SDL_LIBVER = sdl
+ endif
+
+ ifdef SDL_INSTALL_ROOT
+-SDL_CONFIG = $(SDL_INSTALL_ROOT)/bin/$(SDL_LIBVER)-config
++SDL_CONFIG ?= $(SDL_INSTALL_ROOT)/bin/$(SDL_LIBVER)-config
+ else
+-SDL_CONFIG = $(SDL_LIBVER)-config
++SDL_CONFIG ?= $(SDL_LIBVER)-config
+ endif
+
+ ifeq ($(SDL_LIBVER),sdl2)
+@@ -187,8 +189,8 @@ SYNC_IMPLEMENTATION = tc
+ SDL_NETWORK = taptun
+
+ ifndef NO_USE_MIDI
+-INCPATH += `pkg-config --cflags alsa`
+-LIBS += `pkg-config --libs alsa`
++INCPATH += $(shell $(PKG_CONFIG) --cflags alsa)
++LIBS += $(shell $(PKG_CONFIG) --libs alsa)
+ endif
+
+ endif
+@@ -478,10 +480,10 @@ else
+ # Remove the "/SDL" component from the include path so that we can compile
+ # files (header files are #include "SDL/something.h", so the extra "/SDL"
+ # causes a significant problem)
+-INCPATH += `sdl-config --cflags | sed 's:/SDL::'`
++INCPATH += $(shell $(SDL_CONFIG) --cflags | sed 's:/SDL::')
+ CCOMFLAGS += -DNO_SDL_GLEXT
+ # Remove libSDLmain, as its symbols conflict with SDLMain_tmpl.m
+-LIBS += `sdl-config --libs | sed 's/-lSDLmain//'` -lpthread
++LIBS += $(shell $(SDL_CONFIG) --libs | sed 's/-lSDLmain//') -lpthread
+ DEFS += -DMACOSX_USE_LIBSDL
+ endif # MACOSX_USE_LIBSDL
+
+@@ -534,8 +536,8 @@ INCPATH += -I$(SDL_INSTALL_ROOT)/include/directfb
+ endif
+ endif
+
+-INCPATH += `pkg-config --cflags fontconfig`
+-LIBS += `pkg-config --libs fontconfig`
++INCPATH += $(shell $(PKG_CONFIG) --cflags fontconfig)
++LIBS += $(shell $(PKG_CONFIG) --libs fontconfig)
+
+ ifeq ($(SDL_LIBVER),sdl2)
+ LIBS += -lSDL2_ttf
+@@ -620,8 +622,8 @@ endif # Win32
+
+ ifeq ($(BASE_TARGETOS),os2)
+
+-INCPATH += `sdl-config --cflags`
+-LIBS += `sdl-config --libs`
++INCPATH += $(shell $(SDL_CONFIG) --cflags)
++LIBS += $(shell $(SDL_CONFIG) --libs)
+
+ endif # OS2
+
+@@ -696,14 +698,14 @@ LIBS += -lX11 -lXinerama
+
+ # The newer debugger uses QT
+ ifndef NO_USE_QTDEBUG
+-INCPATH += `pkg-config QtGui --cflags`
+-LIBS += `pkg-config QtGui --libs`
++INCPATH += $(shell $(PKG_CONFIG) QtGui --cflags)
++LIBS += $(shell $(PKG_CONFIG) QtGui --libs)
+ else
+ # the old-new debugger relies on GTK+ in addition to the base SDLMAME needs
+ # Non-X11 builds can not use the debugger
+-INCPATH += `pkg-config --cflags-only-I gtk+-2.0` `pkg-config --cflags-only-I gconf-2.0`
+-CCOMFLAGS += `pkg-config --cflags-only-other gtk+-2.0` `pkg-config --cflags-only-other gconf-2.0`
+-LIBS += `pkg-config --libs gtk+-2.0` `pkg-config --libs gconf-2.0`
++INCPATH += $(shell $(PKG_CONFIG) --cflags-only-I gtk+-2.0 gconf-2.0)
++CCOMFLAGS += $(shell $(PKG_CONFIG) --cflags-only-other gtk+-2.0 gconf-2.0)
++LIBS += $(shell $(PKG_CONFIG) --libs gtk+-2.0 gconf-2.0)
+ endif
+
+ # some systems still put important things in a different prefix
diff --git a/games-emulation/sdlmame/files/sdlmame-0.149-debugger-linking.patch b/games-emulation/sdlmame/files/sdlmame-0.149-debugger-linking.patch
new file mode 100644
index 00000000000..6c7cd5d6419
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.149-debugger-linking.patch
@@ -0,0 +1,28 @@
+commit ec92ac2b0180b101c30748e62eb8b76cdf0cb439
+Author: hasufell <hasufell@gentoo.org>
+Date: Wed Jun 26 14:33:01 2013 +0200
+
+ remove unneeded linking
+
+ if we don't build the debugger, we don't want gtk+ linking
+
+diff --git a/src/osd/sdl/sdl.mak b/src/osd/sdl/sdl.mak
+index 36655d3..2089707 100644
+--- a/src/osd/sdl/sdl.mak
++++ b/src/osd/sdl/sdl.mak
+@@ -696,6 +696,7 @@ else
+ DEFS += -DSDLMAME_X11
+ LIBS += -lX11 -lXinerama
+
++ifneq ($(NO_DEBUGGER),1)
+ # The newer debugger uses QT
+ ifndef NO_USE_QTDEBUG
+ INCPATH += $(shell $(PKG_CONFIG) QtGui --cflags)
+@@ -707,6 +708,7 @@ INCPATH += $(shell $(PKG_CONFIG) --cflags-only-I gtk+-2.0 gconf-2.0)
+ CCOMFLAGS += $(shell $(PKG_CONFIG) --cflags-only-other gtk+-2.0 gconf-2.0)
+ LIBS += $(shell $(PKG_CONFIG) --libs gtk+-2.0 gconf-2.0)
+ endif
++endif # NO_DEBUGGER
+
+ # some systems still put important things in a different prefix
+ LIBS += -L/usr/X11/lib -L/usr/X11R6/lib -L/usr/openwin/lib
diff --git a/games-emulation/sdlmame/files/sdlmame-0.149-no-opengl.patch b/games-emulation/sdlmame/files/sdlmame-0.149-no-opengl.patch
new file mode 100644
index 00000000000..cd32cd35d07
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.149-no-opengl.patch
@@ -0,0 +1,19 @@
+commit 6ee372b3693857372a7b4855039ad1a94d3aebca
+Author: hasufell <hasufell@gentoo.org>
+Date: Tue Jun 25 23:51:12 2013 +0200
+
+ fix for disabled opengl
+
+diff --git a/src/osd/sdl/osdsdl.h b/src/osd/sdl/osdsdl.h
+index ed0b66b..03d68f9 100644
+--- a/src/osd/sdl/osdsdl.h
++++ b/src/osd/sdl/osdsdl.h
+@@ -219,6 +219,8 @@ public:
+ const char *audio_driver() const { return value(SDLOPTION_AUDIODRIVER); }
+ #if USE_OPENGL
+ const char *gl_lib() const { return value(SDLOPTION_GL_LIB); }
++#else
++ const char *gl_lib() const { return NULL; }
+ #endif
+
+ private:
diff --git a/games-emulation/sdlmame/files/sdlmame-0.149-system-lua.patch b/games-emulation/sdlmame/files/sdlmame-0.149-system-lua.patch
new file mode 100644
index 00000000000..8460497f1d6
--- /dev/null
+++ b/games-emulation/sdlmame/files/sdlmame-0.149-system-lua.patch
@@ -0,0 +1,33 @@
+commit ea514c9ded266aa365976649d88fa5593ef7ebf5
+Author: hasufell <hasufell@gentoo.org>
+Date: Tue Jun 25 23:48:26 2013 +0200
+
+ add switch to use system lua
+
+diff --git a/makefile b/makefile
+index dd4598d..bdf22d2 100644
+--- a/makefile
++++ b/makefile
+@@ -228,6 +228,9 @@ BUILD_JPEGLIB = 1
+ # uncomment next line to build PortMidi as part of MAME/MESS build
+ BUILD_MIDILIB = 1
+
++# uncomment next line to build Lua-5.2 as part of MAME/MESS build
++BUILD_LUA = 1
++
+ # uncomment next line to include the symbols
+ # SYMBOLS = 1
+
+@@ -664,7 +667,12 @@ SOFTFLOAT = $(OBJ)/libsoftfloat.a
+ FORMATS_LIB = $(OBJ)/libformats.a
+
+ # add LUA library
++ifeq ($(BUILD_LUA),1)
+ LUA_LIB = $(OBJ)/liblua.a
++else
++LIBS += $(shell $(PKG_CONFIG) --libs lua)
++INCPATH += $(shell $(PKG_CONFIG) --cflags lua)
++endif
+
+ # add PortMidi MIDI library
+ ifeq ($(BUILD_MIDILIB),1)
diff --git a/games-emulation/sdlmame/files/vector.ini b/games-emulation/sdlmame/files/vector.ini
new file mode 100644
index 00000000000..d4906e34ccd
--- /dev/null
+++ b/games-emulation/sdlmame/files/vector.ini
@@ -0,0 +1,9 @@
+#
+# Specific options file for vector games
+#
+
+#
+# VIDEO OPTIONS
+#
+video soft
+yuvmode yv12
diff --git a/games-emulation/sdlmame/metadata.xml b/games-emulation/sdlmame/metadata.xml
new file mode 100644
index 00000000000..f8f417e8c63
--- /dev/null
+++ b/games-emulation/sdlmame/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+<longdescription>
+SDLMAME is a port of the popular MAME[tm]. There are a few principles that guide it's development:
+
+1) run on Linux/Unix, Mac OS X, and other SDL supported operating systems with as few changes as
+possible to the base Win32 code. This means we can track changes faster than larger more conventional
+ports such as MacMAME, and we also maintain what I call "Firefox compatibilty" where learning a major
+app only needs to be done once per application, and it then applies across many operating systems. If
+you can use the command-line Win32 MAME, you already know how to use SDLMAME on any platform you may
+encounter it on.
+
+2) MAME developers are important. By keeping quickly up to date, we make it easy for people on
+non-Windows platforms to make and submit changes to the core MAME code, and we offer native
+implementations of MAME's multi-window GUI debugger on both Linux/Unix and Mac OS X.
+</longdescription>
+</pkgmetadata>
diff --git a/games-emulation/sdlmame/sdlmame-0.148_p1-r1.ebuild b/games-emulation/sdlmame/sdlmame-0.148_p1-r1.ebuild
new file mode 100644
index 00000000000..efc1b52ad28
--- /dev/null
+++ b/games-emulation/sdlmame/sdlmame-0.148_p1-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit eutils flag-o-matic python-any-r1 games
+
+MY_PV=${PV/.}
+MY_CONF_PN=${PN/sdl}
+MY_P=sdlmame${MY_PV}
+MY_P=${MY_P%%_p*}
+MY_CONF_VER="0.139"
+
+# patches
+SRC_URI="$(for PATCH_VER in $(seq 1 ${PV##*_p}) ; do echo "http://dev.gentoo.org/~hasufell/distfiles/${MY_P}u${PATCH_VER}_diff.zip"; done)"
+
+DESCRIPTION="Multiple Arcade Machine Emulator (SDL)"
+HOMEPAGE="http://mamedev.org/"
+# Upstream doesn't allow fetching with unknown User-Agent such as wget
+SRC_URI="$SRC_URI http://dev.gentoo.org/~hasufell/distfiles/${MY_P/sdl}s.zip"
+if [[ ${PN} == "sdlmame" ]] ; then
+ SRC_URI="$SRC_URI http://www.netswarm.net/misc/sdlmame-ui.bdf.gz"
+fi
+
+LICENSE="XMAME"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="X alsa debug opengl"
+REQUIRED_USE="debug? ( X )"
+
+RDEPEND="dev-libs/expat
+ media-libs/fontconfig
+ media-libs/flac
+ >=media-libs/libsdl-1.2.10[X,sound,joystick,opengl?,video]
+ media-libs/sdl-ttf
+ sys-libs/zlib
+ virtual/jpeg
+ alsa? ( media-libs/alsa-lib )
+ X? (
+ gnome-base/gconf
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/libXinerama
+ )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ app-arch/unzip
+ media-libs/alsa-lib
+ virtual/pkgconfig
+ X? ( x11-proto/xineramaproto )"
+
+S=${WORKDIR}
+
+# Function to disable a makefile option
+disable_feature() {
+ sed -i \
+ -e "/$1.*=/s:^:# :" \
+ "${S}"/makefile \
+ || die "sed failed"
+}
+
+# Function to enable a makefile option
+enable_feature() {
+ sed -i \
+ -e "/^#.*$1.*=/s:^#::" \
+ "${S}"/${2:-makefile} \
+ || die "sed failed"
+}
+
+pkg_setup() {
+ games_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+ unpack ./mame.zip
+ rm -f mame.zip
+}
+
+src_prepare() {
+ if [[ $PV == *_p* ]] ; then
+ edos2unix $(find $(grep +++ *diff | awk '{ print $2 }' | sort -u) 2>/dev/null) *diff
+ einfo "Patching release with source updates"
+ epatch ${MY_PV%%_p*}*.diff
+ fi
+ edos2unix src/osd/sdl/osdsdl.h
+
+ epatch \
+ "${FILESDIR}"/${P}-makefile.patch \
+ "${FILESDIR}"/${P}-no-opengl.patch
+
+ # Don't compile zlib and expat
+ einfo "Disabling embedded libraries: expat, flac, jpeg, zlib"
+ disable_feature BUILD_EXPAT
+ disable_feature BUILD_FLAC
+ disable_feature BUILD_JPEG
+ disable_feature BUILD_ZLIB
+
+ if use amd64; then
+ einfo "Enabling 64-bit support"
+ enable_feature PTR64
+ fi
+
+ if use ppc; then
+ einfo "Enabling PPC support"
+ enable_feature BIGENDIAN
+ fi
+
+ if use debug; then
+ einfo "Enabling debug support"
+ enable_feature DEBUG
+ fi
+
+ if ! use opengl ; then
+ einfo "Disabling opengl support"
+ enable_feature NO_OPENGL src/osd/sdl/sdl.mak
+ fi
+
+ if ! use alsa ; then
+ einfo "Disabling alsa midi support"
+ enable_feature NO_USE_MIDI src/osd/sdl/sdl.mak
+ fi
+
+ if ! use X ; then
+ einfo "Disabling X support"
+ enable_feature NO_X11 src/osd/sdl/sdl.mak
+ fi
+}
+
+src_compile() {
+ emake \
+ TARGET="${PN#sdl}" \
+ NAME="${PN}" \
+ OPT_FLAGS='-DINI_PATH=\"\$$HOME/.'${PN}'\;'"${GAMES_SYSCONFDIR}/${PN}"'\"' \
+ NO_DEBUGGER=$(usex debug "0" "1") default
+}
+
+src_install() {
+ newgamesbin ${PN}$(use amd64 && echo 64)$(use debug && echo d) ${PN}
+
+ newman src/osd/sdl/man/${PN#sdl}.6 ${PN}.6
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r src/osd/sdl/keymaps
+ [[ ${PN} == "sdlmame" ]] && newins sdlmame-ui.bdf ui.bdf
+
+ insinto "${GAMES_SYSCONFDIR}/${PN}"
+ doins "${FILESDIR}"/vector.ini
+
+ sed \
+ -e "s:@GAMES_SYSCONFDIR@:${GAMES_SYSCONFDIR}:" \
+ -e "s:@GAMES_DATADIR@:${GAMES_DATADIR}:" \
+ "${FILESDIR}/${MY_CONF_PN}-${MY_CONF_VER}".ini.in > "${D}/${GAMES_SYSCONFDIR}/${PN}/${MY_CONF_PN}".ini \
+ || die "sed failed"
+
+ dodoc docs/{config,mame,newvideo}.txt
+ if [[ ${PN} == "sdlmame" ]] ; then
+ dodoc whatsnew*.txt
+ else
+ dodoc messnew*.txt
+ fi
+
+ keepdir \
+ "${GAMES_DATADIR}/${PN}"/{ctrlr,cheats,roms,samples,artwork,crosshair} \
+ "${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheats}
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+
+ elog "optional dependencies:"
+ elog " games-emulation/sdlmametools (development tools)"
+ echo
+ elog "It's strongly recommended that you change either the system-wide"
+ elog "${MY_CONF_PN}.ini at \"${GAMES_SYSCONFDIR}/${PN}\" or use a per-user setup at \$HOME/.${PN}"
+
+ if use opengl; then
+ echo
+ elog "You built ${PN} with opengl support and should set"
+ elog "\"video\" to \"opengl\" in ${MY_CONF_PN}.ini to take advantage of that"
+ fi
+}
diff --git a/games-emulation/sdlmame/sdlmame-0.149.ebuild b/games-emulation/sdlmame/sdlmame-0.149.ebuild
new file mode 100644
index 00000000000..b5d95f52a2c
--- /dev/null
+++ b/games-emulation/sdlmame/sdlmame-0.149.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit eutils flag-o-matic python-any-r1 games
+
+MY_PV=${PV/.}
+MY_CONF_PN=${PN/sdl}
+MY_P=sdlmame${MY_PV}
+MY_P=${MY_P%%_p*}
+MY_CONF_VER="0.139"
+
+# patches
+SRC_URI="$(for PATCH_VER in $(seq 1 ${PV##*_p}) ; do echo "http://dev.gentoo.org/~hasufell/distfiles/${MY_P}u${PATCH_VER}_diff.zip"; done)"
+
+DESCRIPTION="Multiple Arcade Machine Emulator (SDL)"
+HOMEPAGE="http://mamedev.org/"
+# Upstream doesn't allow fetching with unknown User-Agent such as wget
+SRC_URI="$SRC_URI http://dev.gentoo.org/~hasufell/distfiles/${MY_P/sdl}s.zip"
+if [[ ${PN} == "sdlmame" ]] ; then
+ SRC_URI="$SRC_URI http://www.netswarm.net/misc/sdlmame-ui.bdf.gz"
+fi
+
+LICENSE="XMAME"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="X alsa debug opengl"
+REQUIRED_USE="debug? ( X )"
+
+RDEPEND=">=dev-lang/lua-5.2
+ dev-libs/expat
+ media-libs/fontconfig
+ media-libs/flac
+ >=media-libs/libsdl-1.2.10[sound,joystick,opengl?,video]
+ media-libs/sdl-ttf
+ sys-libs/zlib
+ virtual/jpeg
+ alsa? ( media-libs/alsa-lib )
+ debug? (
+ x11-libs/gtk+:2
+ gnome-base/gconf
+ )
+ X? (
+ x11-libs/libX11
+ x11-libs/libXinerama
+ )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ app-arch/unzip
+ virtual/pkgconfig
+ X? ( x11-proto/xineramaproto )"
+
+S=${WORKDIR}
+
+# Function to disable a makefile option
+disable_feature() {
+ sed -i \
+ -e "/$1.*=/s:^:# :" \
+ "${S}"/${2:-makefile} \
+ || die "sed failed"
+}
+
+# Function to enable a makefile option
+enable_feature() {
+ sed -i \
+ -e "/^#.*$1.*=/s:^#::" \
+ "${S}"/${2:-makefile} \
+ || die "sed failed"
+}
+
+pkg_setup() {
+ games_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+ unpack ./mame.zip
+ rm -f mame.zip
+}
+
+src_prepare() {
+ if [[ $PV == *_p* ]] ; then
+ edos2unix $(find $(grep +++ *diff | awk '{ print $2 }' | sort -u) 2>/dev/null) *diff
+ einfo "Patching release with source updates"
+ epatch ${MY_PV%%_p*}*.diff
+ fi
+ edos2unix makefile src/osd/sdl/{osdsdl.h,sdl.mak}
+
+ epatch \
+ "${FILESDIR}"/${P}-QA.patch \
+ "${FILESDIR}"/${P}-system-lua.patch \
+ "${FILESDIR}"/${P}-no-opengl.patch \
+ "${FILESDIR}"/${P}-debugger-linking.patch
+
+ # Don't compile zlib and expat
+ einfo "Disabling embedded libraries: expat, flac, jpeg, zlib, lua"
+ disable_feature BUILD_EXPAT
+ disable_feature BUILD_FLAC
+ disable_feature BUILD_JPEG
+ disable_feature BUILD_ZLIB
+ disable_feature BUILD_LUA
+
+ if use amd64; then
+ einfo "Enabling 64-bit support"
+ enable_feature PTR64
+ fi
+
+ if use ppc; then
+ einfo "Enabling PPC support"
+ enable_feature BIGENDIAN
+ fi
+
+ if use debug; then
+ einfo "Enabling debug support"
+ enable_feature DEBUG
+ enable_feature DEBUG src/osd/sdl/sdl.mak
+ fi
+
+ enable_feature NO_USE_QTDEBUG src/osd/sdl/sdl.mak
+
+ if ! use opengl ; then
+ einfo "Disabling opengl support"
+ enable_feature NO_OPENGL src/osd/sdl/sdl.mak
+ fi
+
+ if ! use alsa ; then
+ einfo "Disabling alsa midi support"
+ enable_feature NO_USE_MIDI src/osd/sdl/sdl.mak
+ fi
+
+ if ! use X ; then
+ einfo "Disabling X support"
+ enable_feature NO_X11 src/osd/sdl/sdl.mak
+ fi
+}
+
+src_compile() {
+ emake \
+ TARGET="${PN#sdl}" \
+ NAME="${PN}" \
+ OPT_FLAGS='-DINI_PATH=\"\$$HOME/.'${PN}'\;'"${GAMES_SYSCONFDIR}/${PN}"'\"' \
+ NO_DEBUGGER=$(usex debug "0" "1") default
+}
+
+src_install() {
+ newgamesbin ${PN}$(use amd64 && echo 64)$(use debug && echo d) ${PN}
+
+ newman src/osd/sdl/man/${PN#sdl}.6 ${PN}.6
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r src/osd/sdl/keymaps
+ [[ ${PN} == "sdlmame" ]] && newins sdlmame-ui.bdf ui.bdf
+
+ insinto "${GAMES_SYSCONFDIR}/${PN}"
+ doins "${FILESDIR}"/vector.ini
+
+ sed \
+ -e "s:@GAMES_SYSCONFDIR@:${GAMES_SYSCONFDIR}:" \
+ -e "s:@GAMES_DATADIR@:${GAMES_DATADIR}:" \
+ "${FILESDIR}/${MY_CONF_PN}-${MY_CONF_VER}".ini.in > "${D}/${GAMES_SYSCONFDIR}/${PN}/${MY_CONF_PN}".ini \
+ || die "sed failed"
+
+ dodoc docs/{config,mame,newvideo}.txt
+ if [[ ${PN} == "sdlmame" ]] ; then
+ dodoc whatsnew*.txt
+ else
+ dodoc messnew*.txt
+ fi
+
+ keepdir \
+ "${GAMES_DATADIR}/${PN}"/{ctrlr,cheats,roms,samples,artwork,crosshair} \
+ "${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheats}
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+
+ elog "optional dependencies:"
+ elog " games-emulation/sdlmametools (development tools)"
+ echo
+ elog "It's strongly recommended that you change either the system-wide"
+ elog "${MY_CONF_PN}.ini at \"${GAMES_SYSCONFDIR}/${PN}\" or use a per-user setup at \$HOME/.${PN}"
+
+ if use opengl; then
+ echo
+ elog "You built ${PN} with opengl support and should set"
+ elog "\"video\" to \"opengl\" in ${MY_CONF_PN}.ini to take advantage of that"
+ fi
+}