diff options
author | Christian Birchinger <joker@gentoo.org> | 2009-08-28 07:50:00 +0000 |
---|---|---|
committer | Christian Birchinger <joker@gentoo.org> | 2009-08-28 07:50:00 +0000 |
commit | 8bb5512d1cc9b04af91f60b8eb5eb746d72723fd (patch) | |
tree | 9a27e8b945cb4dd1bd228f0e64bf5569c33cdf77 /games-emulation | |
parent | Version bump (diff) | |
download | gentoo-2-8bb5512d1cc9b04af91f60b8eb5eb746d72723fd.tar.gz gentoo-2-8bb5512d1cc9b04af91f60b8eb5eb746d72723fd.tar.bz2 gentoo-2-8bb5512d1cc9b04af91f60b8eb5eb746d72723fd.zip |
Initial import.
(Portage version: 2.1.6.13/cvs/Linux x86_64)
Diffstat (limited to 'games-emulation')
7 files changed, 284 insertions, 0 deletions
diff --git a/games-emulation/mupen64plus/ChangeLog b/games-emulation/mupen64plus/ChangeLog new file mode 100644 index 000000000000..d084578f5184 --- /dev/null +++ b/games-emulation/mupen64plus/ChangeLog @@ -0,0 +1,22 @@ +# ChangeLog for games-emulation/mupen64plus +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/games-emulation/mupen64plus/ChangeLog,v 1.1 2009/08/28 07:50:00 joker Exp $ + +*mupen64plus-1.5 (28 Aug 2009) + + 28 Aug 2009; Christian Birchinger <joker@gentoo.org> + Initial import. Thanks alot to Michał Górny (sedzimir) <gentoo@mgorny.alt.pl> + and all the other contributors of this ebuild. + + 01 Aug 2009; Michał Górny (sedzimir) <gentoo@mgorny.alt.pl> + mupen64plus-1.5.ebuild, +files/mupen64plus-1.5-flags.patch: + Drop custom-cflags and add a patch to drop default CFLAGS/STRIP instead of + using sed. Thanks to Tommy[D] for suggestions. + + 27 Jul 2009; Michał Górny (sedzimir) <gentoo@mgorny.alt.pl> + +mupen64plus-1.5.ebuild, +files/mupen64plus-1.5-glide64-gcc44.patch, + +files/mupen64plus-1.5-plugindir.patch, + +files/mupen64plus-1.5-unbundle-bzip2.patch, +metadata.xml: + Ebuild for games-emulation/mupen64plus (bug #215426). Thanks to all Bugzilla + thread contributors. + diff --git a/games-emulation/mupen64plus/files/mupen64plus-1.5-flags.patch b/games-emulation/mupen64plus/files/mupen64plus-1.5-flags.patch new file mode 100644 index 000000000000..d9f5bcbb34ac --- /dev/null +++ b/games-emulation/mupen64plus/files/mupen64plus-1.5-flags.patch @@ -0,0 +1,45 @@ +diff -dupr Mupen64Plus-1-5-src.orig/pre.mk Mupen64Plus-1-5-src/pre.mk +--- Mupen64Plus-1-5-src.orig/pre.mk 2009-08-01 17:27:41.415292353 +0200 ++++ Mupen64Plus-1-5-src/pre.mk 2009-08-01 17:32:29.038293121 +0200 +@@ -151,10 +151,10 @@ CC = gcc + CXX = g++ + LD = g++ + ifeq ($(OS),LINUX) +-STRIP = strip -s ++STRIP = true + endif + ifeq ($(OS),OSX) +-STRIP = strip -x ++STRIP = true + endif + RM = rm + RM_F = rm -f +@@ -185,19 +185,10 @@ else + endif + + # set base CFLAGS and LDFLAGS +-CFLAGS += -pipe -O3 -ffast-math -funroll-loops -fexpensive-optimizations -fno-strict-aliasing + CORE_LDFLAGS += -lz -lm -lpng -lfreetype -ldl + + # set special flags per-system + ifeq ($(CPU), X86) +- ifeq ($(ARCH), 64BITS) +- CFLAGS += -march=athlon64 +- else +- CFLAGS += -march=i686 -mtune=pentium-m -mmmx -msse +- ifneq ($(PROFILE), 1) +- CFLAGS += -fomit-frame-pointer +- endif +- endif + # tweak flags for 32-bit build on 64-bit system + ifeq ($(ARCH), 64BITS_32) + CFLAGS += -m32 +@@ -205,7 +196,7 @@ ifeq ($(CPU), X86) + endif + endif + ifeq ($(CPU), PPC) +- CFLAGS += -mcpu=powerpc -D_BIG_ENDIAN ++ CFLAGS += -D_BIG_ENDIAN + endif + + # set CFLAGS, LIBS, and LDFLAGS for external dependencies diff --git a/games-emulation/mupen64plus/files/mupen64plus-1.5-glide64-gcc44.patch b/games-emulation/mupen64plus/files/mupen64plus-1.5-glide64-gcc44.patch new file mode 100644 index 000000000000..c11f103c6b4e --- /dev/null +++ b/games-emulation/mupen64plus/files/mupen64plus-1.5-glide64-gcc44.patch @@ -0,0 +1,24 @@ +diff -dupr Mupen64Plus-1-5-src.old/glide64/Combine.cpp Mupen64Plus-1-5-src/glide64/Combine.cpp +--- Mupen64Plus-1-5-src.old/glide64/Combine.cpp 2009-01-04 19:47:08.000000000 +0100 ++++ Mupen64Plus-1-5-src/glide64/Combine.cpp 2009-07-27 16:54:40.737065400 +0200 +@@ -11873,7 +11873,7 @@ void InitCombine () + LOG ("InitCombine() "); + memset(&cmb, 0, sizeof(cmb)); + const char *extensions = grGetString (GR_EXTENSION); +- if (char * extstr = strstr(extensions, "COMBINE")) { ++ if (const char * extstr = strstr(extensions, "COMBINE")) { + if (!strncmp(extstr, "COMBINE", 7)) { + LOG ("extensions "); + cmb.grColorCombineExt = (GRCOLORCOMBINEEXT) grGetProcAddress("grColorCombineExt"); +diff -dupr Mupen64Plus-1-5-src.old/glide64/Main.cpp Mupen64Plus-1-5-src/glide64/Main.cpp +--- Mupen64Plus-1-5-src.old/glide64/Main.cpp 2009-07-27 16:49:30.596192066 +0200 ++++ Mupen64Plus-1-5-src/glide64/Main.cpp 2009-07-27 16:49:42.492067819 +0200 +@@ -784,7 +784,7 @@ BOOL InitGfx (BOOL evoodoo_using_window) + printf("bebefore2\n"); + if (settings.fb_hires) + { +- if (char * extstr = strstr(extensions, "TEXTUREBUFFER")) ++ if (const char * extstr = strstr(extensions, "TEXTUREBUFFER")) + { + if (!strncmp(extstr, "TEXTUREBUFFER", 13)) + { diff --git a/games-emulation/mupen64plus/files/mupen64plus-1.5-plugindir.patch b/games-emulation/mupen64plus/files/mupen64plus-1.5-plugindir.patch new file mode 100644 index 000000000000..96363547a128 --- /dev/null +++ b/games-emulation/mupen64plus/files/mupen64plus-1.5-plugindir.patch @@ -0,0 +1,13 @@ +diff -dupr Mupen64Plus-1-5-src.orig/main/main.c Mupen64Plus-1-5-src/main/main.c +--- Mupen64Plus-1-5-src.orig/main/main.c 2009-05-01 09:18:21.387785870 +0200 ++++ Mupen64Plus-1-5-src/main/main.c 2009-05-01 09:20:10.998784906 +0200 +@@ -1476,8 +1476,7 @@ int main(int argc, char *argv[]) + // if it's not set in the config file, use the /plugins/ sub-folder of the installation directory + if (strlen(dirpath) < 2) + { +- strncpy(dirpath, l_InstallDir, PATH_MAX); +- strncat(dirpath, "plugins/", PATH_MAX - strlen(dirpath)); ++ strncpy(dirpath, "%PUT_PLUGIN_PATH_HERE%", PATH_MAX); + dirpath[PATH_MAX-1] = '\0'; + } + // scan the plugin directory and set the config dir for the plugins diff --git a/games-emulation/mupen64plus/files/mupen64plus-1.5-unbundle-bzip2.patch b/games-emulation/mupen64plus/files/mupen64plus-1.5-unbundle-bzip2.patch new file mode 100644 index 000000000000..9ed10be85c61 --- /dev/null +++ b/games-emulation/mupen64plus/files/mupen64plus-1.5-unbundle-bzip2.patch @@ -0,0 +1,38 @@ +diff -dupr Mupen64Plus-1-5-src.old/Makefile Mupen64Plus-1-5-src/Makefile +--- Mupen64Plus-1-5-src.old/Makefile 2009-01-04 19:47:07.000000000 +0100 ++++ Mupen64Plus-1-5-src/Makefile 2009-07-27 17:12:55.984193344 +0200 +@@ -111,13 +111,6 @@ OBJ_CORE = \ + main/savestates.o \ + main/zip/ioapi.o \ + main/zip/unzip.o \ +- main/bzip2/bzlib.o \ +- main/bzip2/crctable.o \ +- main/bzip2/decompress.o \ +- main/bzip2/compress.o \ +- main/bzip2/randtable.o \ +- main/bzip2/huffman.o \ +- main/bzip2/blocksort.o \ + main/lzma/buffer.o \ + main/lzma/io.o \ + main/lzma/main.o \ +@@ -246,7 +239,7 @@ SHARE = $(shell grep CONFIG_PATH config. + # set primary objects and libraries for all outputs + ALL = mupen64plus $(PLUGINS) + OBJECTS = $(OBJ_CORE) $(OBJ_DYNAREC) $(OBJ_OPENGL) +-LIBS = $(SDL_LIBS) $(LIBGL_LIBS) ++LIBS = $(SDL_LIBS) $(LIBGL_LIBS) -lbz2 + + # add extra objects and libraries for selected options + ifeq ($(DBG), 1) +diff -dupr Mupen64Plus-1-5-src.old/main/rom.c Mupen64Plus-1-5-src/main/rom.c +--- Mupen64Plus-1-5-src.old/main/rom.c 2009-01-04 19:47:07.000000000 +0100 ++++ Mupen64Plus-1-5-src/main/rom.c 2009-07-27 17:29:55.918067662 +0200 +@@ -28,7 +28,7 @@ + #include <zlib.h> + + #include "zip/unzip.h" +-#include "bzip2/bzlib.h" ++#include <bzlib.h> + #include "lzma/lzmadec.h" + #include "7zip/7zExtract.h" + #include "7zip/7zCrc.h" diff --git a/games-emulation/mupen64plus/metadata.xml b/games-emulation/mupen64plus/metadata.xml new file mode 100644 index 000000000000..fc68af90034d --- /dev/null +++ b/games-emulation/mupen64plus/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> +<email>joker@gentoo.org</email> +<name>Christian Birchinger</name> +</maintainer> +<herd>games</herd> +<longdescription> +Mupen64Plus is a plugin-based N64 emulator for Linux which is capable of accurately playing many games. +Included are four MIPS R4300 CPU emulators, with dynamic recompilers for 32-bit x86 and 64-bit amd64 systems, +and necessary plugins for audio, graphical rendering (RDP), signal co-processor (RSP), and input. +There are 3 OpenGL video plugins included: glN64, RiceVideoLinux, and Glide64. +</longdescription> +</pkgmetadata> diff --git a/games-emulation/mupen64plus/mupen64plus-1.5.ebuild b/games-emulation/mupen64plus/mupen64plus-1.5.ebuild new file mode 100644 index 000000000000..f4d21a5d93a1 --- /dev/null +++ b/games-emulation/mupen64plus/mupen64plus-1.5.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-emulation/mupen64plus/mupen64plus-1.5.ebuild,v 1.1 2009/08/28 07:50:00 joker Exp $ + +EAPI="2" + +inherit eutils flag-o-matic games + +MY_P="Mupen64Plus-${PV/./-}-src" + +DESCRIPTION="A fork of Mupen64 Nintendo 64 emulator" +HOMEPAGE="http://code.google.com/p/mupen64plus/" +SRC_URI="http://mupen64plus.googlecode.com/files/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+gtk libsamplerate lirc qt4 sse" + +# GTK+ is currently required by plugins even if no GUI support is enabled +RDEPEND="virtual/opengl + media-libs/freetype:2 + media-libs/libpng + media-libs/libsdl + media-libs/sdl-ttf + sys-libs/zlib + x11-libs/gtk+:2 + libsamplerate? ( media-libs/libsamplerate ) + lirc? ( app-misc/lirc ) + qt4? ( x11-libs/qt-gui:4 + x11-libs/qt-core:4 )" + +DEPEND="${RDEPEND} + dev-lang/yasm + dev-util/pkgconfig" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if ! use gtk && ! use qt4; then + ewarn "Building ${PN} without any GUI! To get one, enable USE=gtk or USE=qt4." + elif use gtk && use qt4; then + ewarn "Only one GUI can be built, using GTK+ one." + fi + + games_pkg_setup +} + +src_prepare() { + # unbundle bzip2 + epatch "${FILESDIR}"/${P}-unbundle-bzip2.patch + # XXX: try to unbundle more? + + # fix compilation with gcc4.4 + epatch "${FILESDIR}"/${P}-glide64-gcc44.patch + + # first prepare to replace plugin path + epatch "${FILESDIR}"/${P}-plugindir.patch + + # disable stripping, don't replace CFLAGS + epatch "${FILESDIR}"/${P}-flags.patch + + # and then do real path replace + sed -i \ + -e "s:/usr/local/share/mupen64plus:${GAMES_DATADIR}/mupen64plus:" \ + -e "s:%PUT_PLUGIN_PATH_HERE%:$(games_get_libdir)/${PN}/plugins/:" \ + main/main.c || die "sed failed" + + # replace absolute icon path with relative one + sed -i -e "s:^Icon=.*$:Icon=${PN}:" \ + ${PN}.desktop.in || die "sed failed" +} + +get_opts() { + use libsamplerate || echo -n "NO_RESAMP=1 " + use lirc && echo -n "LIRC=1 " + use sse || echo -n "NO_ASM=1 " + + echo -n GUI= + if use gtk; then + echo -n GTK2 + elif use qt4; then + echo -n QT4 + else + echo -n NONE + fi +} + +src_compile() { + emake $(get_opts) all || die "make failed" +} + +src_install() { + # These are: + # 1) prefix - not used really, printed only + # 2) SHAREDIR + # 3) BINDIR + # 4) 'LIBDIR' - where to put plugins in + # 5) 'MANDIR' - exact directory to put man file in + # 6) APPLICATIONSDIR - where to put .desktop in + + ./install.sh "${D}" \ + "${D}${GAMES_DATADIR}/${PN}" \ + "${D}${GAMES_BINDIR}" \ + "${D}$(games_get_libdir)/${PN}/plugins" \ + "${D}/usr/share/man/man1" \ + "${D}/usr/share/applications" \ + || or die "install.sh failed" + + # Copy icon into system-wide location + newicon icons/mupen64plus-large.png ${PN}.png || die "newicon failed" + + # 'Move' docs into correct dir + rm -r "${D}${GAMES_DATADIR}/${PN}/doc" + dodoc README RELEASE TODO doc/*.txt || die "dodoc failed" + + prepgamesdirs +} + +pkg_postinst() { + games_pkg_postinst + + if use lirc; then + elog "For lirc configuration see:" + elog "http://code.google.com/p/mupen64plus/wiki/LIRC" + fi +} |