From 6ecf785e221c38940d29a6d477774892b4bc4b95 Mon Sep 17 00:00:00 2001 From: Michael Sterrett Date: Sat, 9 Feb 2008 06:18:35 +0000 Subject: version bump (bug #139347) with lots of patch work from Justin Blanchard Package-Manager: portage-2.1.3.19 --- games-emulation/snes9x/ChangeLog | 12 +- games-emulation/snes9x/Manifest | 9 +- .../snes9x/files/snes9x-1.51-build.patch | 18 +++ .../snes9x/files/snes9x-1.51-config.patch | 13 ++ .../snes9x/files/snes9x-1.51-opengl.patch | 103 ++++++++++++ games-emulation/snes9x/files/snes9x-1.51-x11.patch | 176 +++++++++++++++++++++ games-emulation/snes9x/snes9x-1.43-r1.ebuild | 109 ------------- games-emulation/snes9x/snes9x-1.51.ebuild | 108 +++++++++++++ 8 files changed, 435 insertions(+), 113 deletions(-) create mode 100644 games-emulation/snes9x/files/snes9x-1.51-build.patch create mode 100644 games-emulation/snes9x/files/snes9x-1.51-config.patch create mode 100644 games-emulation/snes9x/files/snes9x-1.51-opengl.patch create mode 100644 games-emulation/snes9x/files/snes9x-1.51-x11.patch delete mode 100644 games-emulation/snes9x/snes9x-1.43-r1.ebuild create mode 100644 games-emulation/snes9x/snes9x-1.51.ebuild (limited to 'games-emulation') diff --git a/games-emulation/snes9x/ChangeLog b/games-emulation/snes9x/ChangeLog index 380eb55a00ac..45127847f764 100644 --- a/games-emulation/snes9x/ChangeLog +++ b/games-emulation/snes9x/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for games-emulation/snes9x -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-emulation/snes9x/ChangeLog,v 1.29 2007/10/09 14:40:41 angelos Exp $ +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/games-emulation/snes9x/ChangeLog,v 1.30 2008/02/09 06:18:35 mr_bones_ Exp $ + +*snes9x-1.51 (09 Feb 2008) + + 09 Feb 2008; Michael Sterrett + +files/snes9x-1.51-build.patch, +files/snes9x-1.51-config.patch, + +files/snes9x-1.51-opengl.patch, +files/snes9x-1.51-x11.patch, + -snes9x-1.43-r1.ebuild, +snes9x-1.51.ebuild: + version bump (bug #139347) with lots of patch work from Justin Blanchard 09 Oct 2007; Christoph Mende snes9x-1.43-r2.ebuild: Stable on amd64 wrt bug #193120 diff --git a/games-emulation/snes9x/Manifest b/games-emulation/snes9x/Manifest index e5861a6b9fed..ad59f10193b1 100644 --- a/games-emulation/snes9x/Manifest +++ b/games-emulation/snes9x/Manifest @@ -4,8 +4,13 @@ AUX snes9x-1.43-config.patch 371 RMD160 9d16c5ca51901b6c5abbdf1b025dfced4a9e96a7 AUX snes9x-1.43-gcc412.patch 627 RMD160 9dc49ebfb8f212633f672acf803f905e0fd9b475 SHA1 97ba7a8474c6d6b55ffe15892358c523378090e4 SHA256 e41de369da57997b1163d79af87d1e27b62aad389184887721b39554969c37e9 AUX snes9x-1.43-key-bindings-fix.patch 2526 RMD160 d1dd054cf8f7f637c759ed7cd82dfb7511a0629d SHA1 e9992f6550d9420d9e6da74be78828f366025ed8 SHA256 22a6df46d15438aaaeddc5f86564474988f810037d2810da4773ff365f907b77 AUX snes9x-1.43-porting.patch 1903 RMD160 b95939f656e669dcca1df0fb5bd584e40ba6eba2 SHA1 a057eb6493ee81d4720ee343b11e3aa17dfb76dd SHA256 a38fedbd355487ac0ff28a79a39e108bd0063446befc4d5081a707f944bed286 +AUX snes9x-1.51-build.patch 497 RMD160 6db003d87d71392e45aaf8388b89068f545af3f7 SHA1 a448d6ae07ce9455b069f5d269c07a4ef15f7853 SHA256 2e1c87802b9022c901f6ee7c940e767ddbcbdb300e532e75e77a6a02a6dfd6c8 +AUX snes9x-1.51-config.patch 299 RMD160 6e9c32e668e69625747e09149209f5aafd226ca8 SHA1 ecc4edd9d81d1f5c60043602ca235f96eb72e90f SHA256 9a9b0ebcb45ab9ca9aae1eaf81cee7503f534fb78d64796aefb3491fd325366d +AUX snes9x-1.51-opengl.patch 3265 RMD160 372edbbdcad3091c7f3dbdc43bfa661da11df9ec SHA1 8ba87226b5e271768fd9e1f5d6106d7eef1df838 SHA256 3006fe29f027b8be2a8f0a9c8cd41392bfd1ae6999333edb0e4d1b5b9ada2a64 +AUX snes9x-1.51-x11.patch 4297 RMD160 40998bbd623779dd6160ebd98a542f7e1d3c97cb SHA1 464066c638d80168fb904544256150f66b6ec1df SHA256 edc568083e20ba99698f500f60bcb6f0ffe4c84dd772d6ec9aa0c47918ed8787 DIST snes9x-1.43-src.tar.gz 1016251 RMD160 d2003f7afb208109405b41f4eec586b93518f9b2 SHA1 c6883c451aeb442030862ec19a8dca25ee02d82c SHA256 cb60baaeabc28b68f7dfc8fd54453f6268b66aae33ea64eb1788c19df09be6f1 -EBUILD snes9x-1.43-r1.ebuild 2777 RMD160 dc12d299a38bbc323173a1b6120650d9ccd0f2f0 SHA1 6588770714f83967d20a019c30bbb6049fd7f20f SHA256 be5645335daa099731d31ad5bde356a0ea7d16c8ca482492b29a7b03ae49c3ba +DIST snes9x-1.51-src.tar.bz2 1707256 RMD160 5813405b05f181224614f95e8ba3c309f79e1b36 SHA1 a0de23fb376463d27f4e8fc7f11424bd3c598585 SHA256 70c8f41fc7f1e000605127e0f4261e3eb52c72019b3cbf9bc8061b0b8ccdf687 EBUILD snes9x-1.43-r2.ebuild 2815 RMD160 153c03c36cef9511ea5b8db00a539e5bb8efc01b SHA1 94aa63240996daa48d10814d755f9de9348f9255 SHA256 8ed82e408ae0c49f52ac05a911c85ce7db11f52f0027062497a7445e10370144 -MISC ChangeLog 5401 RMD160 e06721b1923a5f297cb75e7dfbf9611d24f3ebc3 SHA1 a0aa9e492f84180351b0c93e77c26f5d6a6551b6 SHA256 9deb9437bf43b6ff3a5413d16003cc12cb4d781e0c79348d53de9644eeee0af0 +EBUILD snes9x-1.51.ebuild 2781 RMD160 86e25faae673c7bb4bf8afc59e334c7c66dc49f8 SHA1 35fe535328604a245d28a2d2f7013fa3a633913c SHA256 5f91e5f3f61de44d8556a6cba6f2c21434f3187d79b2a98af35a2adf2ab4adfe +MISC ChangeLog 5741 RMD160 364985f3a2d4fb418cc264465868a41045ef0525 SHA1 5ad6efac68562a91ad470cfd5b40e44bba749927 SHA256 9ad2b9d920cef621e44f9f03fd4809ef251ece5227e770fc2a95237b78bc079b MISC metadata.xml 158 RMD160 cbd9984bb6b426c8c9cee5022fe0a26261612fea SHA1 be5251fa1dacef5c41b74761bb1c8c54fb633b9e SHA256 1423a4fdd4a79b1728a2056d9e300f7e1074253095d82726218d9e9b953888a3 diff --git a/games-emulation/snes9x/files/snes9x-1.51-build.patch b/games-emulation/snes9x/files/snes9x-1.51-build.patch new file mode 100644 index 000000000000..d3bde6661559 --- /dev/null +++ b/games-emulation/snes9x/files/snes9x-1.51-build.patch @@ -0,0 +1,18 @@ +Make sure the build process respects our LDFLAGS (so we can slip in -m32) +and that the stupid custom OPTIMIZE flags arent used in favor of our own +CFLAGS (so we can slip in -m32). + +--- snes9x-1.51-src/Makefile.in ++++ snes9x-1.51-src/Makefile.in +@@ -17,4 +17,5 @@ + CHEATS=1 + 2XSAI=1 ++EXTRALIBS=@LDFLAGS@ + + #Fairly good and special-char-safe descriptor of the os being built on. +@@ -183,5 +184,5 @@ + CPUFLAGS=-ml -m4-single-only + else +-OPTIMISE = @OPTIMIZE@ ++OPTIMISE = @OPTIMIZE@ @CFLAGS@ + endif diff --git a/games-emulation/snes9x/files/snes9x-1.51-config.patch b/games-emulation/snes9x/files/snes9x-1.51-config.patch new file mode 100644 index 000000000000..1dd18a5446da --- /dev/null +++ b/games-emulation/snes9x/files/snes9x-1.51-config.patch @@ -0,0 +1,13 @@ +--- configure.in.old ++++ configure.in +@@ -506,9 +506,9 @@ + fi + ]) + ++AC_CHECK_HEADERS(zlib.h) + if test x$with_zlib = xyes ; then + SNES9X_FEATURE_NODEP(Gz) +- AC_CHECK_HEADERS(zlib.h) + if test $ac_cv_header_zlib_h = yes ; then + AC_MSG_CHECKING([if zlib.h is new enough]) + AC_TRY_LINK([ diff --git a/games-emulation/snes9x/files/snes9x-1.51-opengl.patch b/games-emulation/snes9x/files/snes9x-1.51-opengl.patch new file mode 100644 index 000000000000..d451f34a544e --- /dev/null +++ b/games-emulation/snes9x/files/snes9x-1.51-opengl.patch @@ -0,0 +1,103 @@ +--- snes9x-1.51-src/gfx.h ++++ snes9x-1.51-src/gfx.h +@@ -331,7 +331,7 @@ + + inline uint16 COLOR_SUB(uint16 C1, uint16 C2) + { +- uint16 mC1, mC2, v = 0; ++ uint16 mC1, mC2, v = ALPHA_BITS_MASK; + + mC1 = C1 & FIRST_COLOR_MASK; + mC2 = C2 & FIRST_COLOR_MASK; +--- snes9x-1.51-src/unix/opengl.cpp ++++ snes9x-1.51-src/unix/opengl.cpp +@@ -233,14 +233,14 @@ + + // Strip dots from the version string + char *ptr; +- while (ptr = strchr (ver, '.')) ++ while ( (ptr = strchr (ver, '.')) != 0) + memmove (ptr, ptr + 1, strlen (ptr + 1) + 1); + +- // Pad the string with zeros to 4 digits +- while (strlen (ver) < 4) +- strcat (ver, "0"); +- + OpenGL.version = atoi (ver); ++ ++ // Pad the number with zeros to 4 digits ++ while (OpenGL.version < 1000) ++ OpenGL.version *= 10; + } + else + OpenGL.version = 1100; +@@ -400,7 +400,7 @@ + int i = 0; + for (uint32 y = 0; y < pheight; y++) + { +- uint16 *ptr = (uint16 *) (GFX.Screen + (y + startl) * GFX.Pitch) + startx; ++ uint16 *ptr = (uint16 *) (GFX.Screen + (y + startl) * GFX.Pitch/2) + startx; + for (uint32 x = 0; x < pwidth; x++) + { + int color = *ptr++; +@@ -418,7 +418,7 @@ + for (uint32 y = 0; y < pheight; y++) + { + memmove (basetexbuffer + sizeof (uint16) * texture_size * y, +- (GFX.Screen + (y + startl) * GFX.Pitch) + startx, ++ (GFX.Screen + (y + startl) * GFX.Pitch/2) + startx, + sizeof (uint16) * texture_size); + } + data = basetexbuffer; +--- snes9x-1.51-src/unix/x11.cpp ++++ snes9x-1.51-src/unix/x11.cpp +@@ -572,15 +572,29 @@ + } + delete[] color_diff; + ++ GUI.cmap = XCreateColormap (GUI.display, RootWindowOfScreen (GUI.screen), ++ GUI.visual, GUI.pseudo ? AllocAll : AllocNone); ++ if (GUI.pseudo) ++ { ++ for (i = 0; i < 256; i++) ++ { ++ GUI.colors[i].red = GUI.colors[i].green = GUI.colors[i].blue = 0; ++ GUI.colors[i].pixel = i; ++ GUI.colors[i].flags = DoRed | DoGreen | DoBlue; ++ } ++ XStoreColors (GUI.display, GUI.cmap, GUI.colors, 256); ++ } ++ + XSetWindowAttributes attrib; + + attrib.background_pixel = BlackPixelOfScreen (GUI.screen); ++ attrib.colormap = GUI.cmap; + GUI.window = XCreateWindow (GUI.display, RootWindowOfScreen (GUI.screen), + (WidthOfScreen(GUI.screen) - GUI.window_width) / 2, + (HeightOfScreen(GUI.screen) - GUI.window_height) / 2, + GUI.window_width, GUI.window_height, 0, + GUI.depth, InputOutput, GUI.visual, +- CWBackPixel, &attrib); ++ CWBackPixel | CWColormap, &attrib); + + #ifdef USE_DGA_EXTENSION + CreateFullScreenWindow (); +@@ -625,18 +639,6 @@ + ButtonPressMask | ButtonReleaseMask); + #endif + +- if (GUI.pseudo) +- { +- GUI.cmap = XCreateColormap (GUI.display, GUI.window, GUI.visual, True); +- XSetWindowColormap (GUI.display, GUI.window, GUI.cmap); +- for (i = 0; i < 256; i++) +- { +- GUI.colors[i].red = GUI.colors[i].green = GUI.colors[i].blue = 0; +- GUI.colors[i].pixel = i; +- GUI.colors[i].flags = DoRed | DoGreen | DoBlue; +- } +- XStoreColors (GUI.display, GUI.cmap, GUI.colors, 256); +- } + XMapRaised (GUI.display, GUI.window); + XClearWindow (GUI.display, GUI.window); + SetupImage (); diff --git a/games-emulation/snes9x/files/snes9x-1.51-x11.patch b/games-emulation/snes9x/files/snes9x-1.51-x11.patch new file mode 100644 index 000000000000..5dae40cf4594 --- /dev/null +++ b/games-emulation/snes9x/files/snes9x-1.51-x11.patch @@ -0,0 +1,176 @@ +diff -Naur snes9x-1.51-src/unix/unix.cpp snes9x-1.51-src/unix/unix.cpp +--- snes9x-1.51-src/unix/unix.cpp 2007-05-11 01:51:58.000000000 -0700 ++++ snes9x-1.51-src/unix/unix.cpp 2007-05-11 01:52:09.000000000 -0700 +@@ -574,8 +574,6 @@ + S9xInitInputDevices (); + + S9xInitDisplay (argc, argv); +- if (!S9xGraphicsInit ()) +- OutOfMemory (); + S9xSetupDefaultKeymap(); + + S9xTextMode (); +@@ -748,6 +746,7 @@ + (*CleanUp7110)(); + + S9xSetSoundMute (TRUE); ++ S9xUnmapAllControls (); + S9xDeinitDisplay (); + Memory.SaveSRAM (S9xGetFilename (".srm", SRAM_DIR)); + S9xSaveCheatFile (S9xGetFilename (".cht", PATCH_DIR)); +diff -Naur snes9x-1.51-src/unix/x11.cpp snes9x-1.51-src/unix/x11.cpp +--- snes9x-1.51-src/unix/x11.cpp 2007-05-11 02:10:22.000000000 -0700 ++++ snes9x-1.51-src/unix/x11.cpp 2007-05-11 02:10:31.000000000 -0700 +@@ -275,6 +275,7 @@ + void Convert16To24 (int width, int height); + void Convert16To24Packed (int width, int height); + void SetupImage (); ++void TakedownImage (); + int ErrorHandler (Display *, XErrorEvent *); + void TVMode (int width, int height); + +@@ -314,36 +315,7 @@ + #endif + + S9xTextMode (); +- uint32 i; +- +- for (i = 0; i < sizeof (GUI.to_free) / sizeof (GUI.to_free [0]); i++) +- if (GUI.to_free [i]) +- { +- free (GUI.to_free [i]); +- GUI.to_free [i] = NULL; +- } +- +- if (GUI.image) +- { +-#ifdef MITSHM +- if (GUI.use_shared_memory) +- { +- XShmDetach (GUI.display, &GUI.sm_info); +- GUI.image->data = NULL; +- XDestroyImage (GUI.image); +- if (GUI.sm_info.shmaddr) +- shmdt (GUI.sm_info.shmaddr); +- if (GUI.sm_info.shmid >= 0) +- shmctl (GUI.sm_info.shmid, IPC_RMID, 0); +- GUI.image = NULL; +- } +- else +-#endif +- { +- XDestroyImage (GUI.image); +- GUI.image = NULL; +- } +- } ++ TakedownImage (); + XSync (GUI.display, False); + XCloseDisplay (GUI.display); + } +@@ -715,36 +687,7 @@ + ; + } + +- uint32 i; +- +- for (i = 0; i < sizeof (GUI.to_free) / sizeof (GUI.to_free [0]); i++) +- if (GUI.to_free [i]) +- { +- free (GUI.to_free [i]); +- GUI.to_free [i] = NULL; +- } +- +- if (GUI.image) +- { +-#ifdef MITSHM +- if (GUI.use_shared_memory) +- { +- XShmDetach (GUI.display, &GUI.sm_info); +- GUI.image->data = NULL; +- XDestroyImage (GUI.image); +- if (GUI.sm_info.shmaddr) +- shmdt (GUI.sm_info.shmaddr); +- if (GUI.sm_info.shmid >= 0) +- shmctl (GUI.sm_info.shmid, IPC_RMID, 0); +- GUI.image = NULL; +- } +- else +-#endif +- { +- XDestroyImage (GUI.image); +- GUI.image = NULL; +- } +- } ++ TakedownImage (); + + #ifdef MITSHM + GUI.use_shared_memory = 1; +@@ -884,8 +827,47 @@ + } + GUI.image_date = (uint8 *) GUI.image->data; + GUI.bytes_per_line = GUI.image->bytes_per_line; ++ ++ S9xGraphicsInit (); ++} ++ ++void TakedownImage () ++{ ++ uint32 i; ++ ++ for (i = 0; i < sizeof (GUI.to_free) / sizeof (GUI.to_free [0]); i++) ++ if (GUI.to_free [i]) ++ { ++ free (GUI.to_free [i]); ++ GUI.to_free [i] = NULL; ++ } ++ ++ if (GUI.image) ++ { ++#ifdef MITSHM ++ if (GUI.use_shared_memory) ++ { ++ XShmDetach (GUI.display, &GUI.sm_info); ++ GUI.image->data = NULL; ++ XDestroyImage (GUI.image); ++ if (GUI.sm_info.shmaddr) ++ shmdt (GUI.sm_info.shmaddr); ++ if (GUI.sm_info.shmid >= 0) ++ shmctl (GUI.sm_info.shmid, IPC_RMID, 0); ++ GUI.image = NULL; ++ } ++ else ++#endif ++ { ++ XDestroyImage (GUI.image); ++ GUI.image = NULL; ++ } ++ } ++ ++ S9xGraphicsDeinit (); + } + ++ + int ErrorHandler (Display *, XErrorEvent *) + { + #ifdef MITSHM +@@ -1002,6 +984,8 @@ + IPPU.RenderThisFrame = TRUE; + IPPU.FrameSkip = Settings.SkipFrames; + SetupImage (); ++ extern void S9xReRefresh(); ++ S9xReRefresh (); + } + #ifdef USE_DGA_EXTENSION + if (XF86.start_full_screen) +diff -Naur snes9x-1.51-src/unix/xf86.cpp snes9x-1.51-src/unix/xf86.cpp +--- snes9x-1.51-src/unix/xf86.cpp 2007-05-11 01:51:58.000000000 -0700 ++++ snes9x-1.51-src/unix/xf86.cpp 2007-05-11 01:52:09.000000000 -0700 +@@ -404,6 +404,8 @@ + break; + } + ourvideo.scrnBegin = ourvideo.vidMemBegin + (320 - IMAGE_WIDTH) * ourvideo.screendepth / 2 + ourvideo.width * ourvideo.screendepth * 8; ++ ++ S9xGraphicsInit (); + } + + void S9xGraphicsMode () diff --git a/games-emulation/snes9x/snes9x-1.43-r1.ebuild b/games-emulation/snes9x/snes9x-1.43-r1.ebuild deleted file mode 100644 index afd819811a62..000000000000 --- a/games-emulation/snes9x/snes9x-1.43-r1.ebuild +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright 1999-2006 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/games-emulation/snes9x/snes9x-1.43-r1.ebuild,v 1.11 2006/11/01 22:50:44 nyhm Exp $ - -# 3dfx support (glide) is disabled because it requires -# glide-v2 while we only provide glide-v3 in portage -# http://bugs.gentoo.org/show_bug.cgi?id=93097 - -WANT_AUTOCONF=latest -inherit autotools eutils flag-o-matic multilib games - -DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator" -HOMEPAGE="http://www.snes9x.com/" -SRC_URI="http://www.lysator.liu.se/snes9x/${PV}/snes9x-${PV}-src.tar.gz" - -LICENSE="as-is" -SLOT="0" -KEYWORDS="amd64 ppc x86" -IUSE="debug dga joystick opengl zlib" - -RDEPEND="x11-libs/libXext - dga? ( x11-libs/libXxf86dga - x11-libs/libXxf86vm ) - media-libs/libpng - amd64? ( app-emulation/emul-linux-x86-xlibs ) - opengl? ( virtual/opengl - virtual/glu )" -DEPEND="${RDEPEND} - x86? ( dev-lang/nasm ) - x11-proto/xextproto - x11-proto/xproto - dga? ( x11-proto/xf86dgaproto - x11-proto/xf86vidmodeproto )" - -S=${WORKDIR}/${P}-src - -src_unpack() { - unpack ${A} - cd "${S}"/snes9x - rm offsets # stupid prebuilt file - sed -i \ - -e 's:-lXext -lX11::' Makefile.in \ - || die "sed failed" - epatch \ - "${FILESDIR}"/nojoy.patch \ - "${FILESDIR}"/${P}-porting.patch \ - "${FILESDIR}"/${P}-key-bindings-fix.patch \ - "${FILESDIR}"/${P}-build.patch \ - "${FILESDIR}"/${P}-config.patch - - sed -i \ - -e 's:png_jmpbuf:png_write_info:g' \ - -e '/X_LDFLAGS=/d' \ - configure.in || die "sed failed" - - eautoconf -} - -src_compile() { - [[ -z ${NATIVE_AMD64_BUILD_PLZ} ]] && use amd64 && multilib_toolchain_setup x86 - - local vidconf= - local target= - local vid= - - append-ldflags -Wl,-z,noexecstack - - mkdir mybins - for vid in opengl fallback ; do - if [[ ${vid} != "fallback" ]] ; then - use ${vid} || continue - fi - cd "${S}"/snes9x - case ${vid} in -# 3dfx) -# vidconf="--with-glide --without-opengl --without-x" -# target=gsnes9x;; - opengl) - vidconf="--with-opengl --without-glide --without-x" - target=osnes9x;; - fallback) - vidconf="--with-x --without-glide --without-opengl" - target=snes9x;; - esac - # this stuff is ugly but hey the build process sucks ;) - egamesconf \ - ${vidconf} \ - $(use_with x86 assembler) \ - $(use_with joystick) \ - $(use_with debug debugger) \ - $(use_with zlib) \ - --with-screenshot \ - $(use_with dga extensions) \ - || die - # Makefile doesnt quite support parallel builds - emake -j1 offsets || die "making offsets" - emake ${target} || die "making ${target}" - mv ${target} "${S}"/mybins/ - cd "${WORKDIR}" - rm -r "${S}"/snes9x - src_unpack - done -} - -src_install() { - dogamesbin mybins/* || die "dogamesbin failed" - dodoc faqs.txt readme.txt readme.unix snes9x/*.txt - prepgamesdirs -} diff --git a/games-emulation/snes9x/snes9x-1.51.ebuild b/games-emulation/snes9x/snes9x-1.51.ebuild new file mode 100644 index 000000000000..5101d98964c1 --- /dev/null +++ b/games-emulation/snes9x/snes9x-1.51.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-emulation/snes9x/snes9x-1.51.ebuild,v 1.1 2008/02/09 06:18:35 mr_bones_ Exp $ + +# 3dfx support (glide) is disabled because it requires +# glide-v2 while we only provide glide-v3 in portage +# http://bugs.gentoo.org/show_bug.cgi?id=93097 + +inherit autotools eutils flag-o-matic multilib games + +DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator" +HOMEPAGE="http://www.snes9x.com/" +SRC_URI="http://files.ipherswipsite.com/snes9x/${P}-src.tar.bz2 + http://vincent.grigorieff.free.fr/snes9x/${P}-src.tar.bz2" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~amd64 ~ppc64 ~x86" +IUSE="debug dga joystick netplay opengl zlib" + +RDEPEND="x11-libs/libXext + dga? ( x11-libs/libXxf86dga + x11-libs/libXxf86vm ) + media-libs/libpng + amd64? ( app-emulation/emul-linux-x86-xlibs ) + opengl? ( virtual/opengl + virtual/glu )" +DEPEND="${RDEPEND} + x86? ( dev-lang/nasm ) + x11-proto/xextproto + x11-proto/xproto + dga? ( x11-proto/xf86dgaproto + x11-proto/xf86vidmodeproto )" + +S=${WORKDIR}/${P}-src + +pkg_setup() { + use amd64 && [[ -z ${NATIVE_AMD64_BUILD_PLZ} ]] && has_multilib_profile && ABI=x86 + games_pkg_setup +} + +src_unpack() { + unpack ${A} + cd "${S}" + sed -i \ + -e 's:-lXext -lX11::' Makefile.in \ + || die "sed failed" + epatch \ + "${FILESDIR}"/${P}-build.patch \ + "${FILESDIR}"/${P}-config.patch \ + "${FILESDIR}"/${P}-opengl.patch \ + "${FILESDIR}"/${P}-x11.patch + + eautoconf +} + +src_compile() { + local vidconf + local target + local vid + local nooffset + + append-ldflags -Wl,-z,noexecstack + + mkdir "${WORKDIR}"/mybins + for vid in opengl fallback ; do + if [[ ${vid} != "fallback" ]] ; then + use ${vid} || continue + fi + cd "${S}" + case ${vid} in +# 3dfx) +# vidconf="--with-glide --without-opengl" +# target=gsnes9x;; + opengl) + vidconf="--with-opengl --without-glide" + target=osnes9x;; + fallback) + vidconf="--without-glide --without-opengl" + target=snes9x;; + esac + # this stuff is ugly but hey the build process sucks ;) + egamesconf \ + ${vidconf} \ + $(use_with x86 assembler) \ + $(use_with joystick) \ + $(use_with debug debugger) \ + $(use_with zlib) \ + $(use_with dga extensions) \ + $(use_with netplay) \ + || die + # Makefile doesn't quite support parallel builds + emake ${target} || die "making ${target}" + mv ${target} "${WORKDIR}"/mybins/ + cd "${WORKDIR}" + rm -r "${S}" + src_unpack + done +} + +src_install() { + dogamesbin "${WORKDIR}"/mybins/* || die "dogamesbin failed" + dodoc doc/* unix/docs/* + prepgamesdirs + elog "Starting with version 1.50, snes9x's behavior is determined by a" + elog "configuration file. See readme_unix.txt and snes9x.conf.default" + elog "in /usr/share/doc/${PF} for details." +} -- cgit v1.2.3-65-gdbad