# ebuild contributed by Justin Blanchard # Distributed under the terms of the GNU General Public License v2 # 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 # (still true as of 1.51; aido is also out of the question :-) inherit eutils games flag-o-matic multilib DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator" HOMEPAGE="http://www.snes9x.com/" SRC_URI="http://www.geocities.co.jp/SiliconValley-PaloAlto/2560/release/${P}-src.tar.bz2" #FIXME: there are multiple mirrors... LICENSE="as-is" SLOT="0" KEYWORDS="~x86 ~amd64 ~ppc64" IUSE="opengl joystick zlib dga debug netplay" RDEPEND="|| ( ( x11-libs/libXext dga? ( x11-libs/libXxf86dga x11-libs/libXxf86vm ) ) virtual/x11 ) 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 ) ) virtual/x11 )" 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 autoconf || die } 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 einfo "Starting with version 1.50, snes9x's behavior is determined by a" einfo "configuration file. See readme_unix.txt and snes9x.conf.default" einfo "in /usr/share/doc/${P} for details." }