From a0efad6861275258862f093ba890c2a235eb7527 Mon Sep 17 00:00:00 2001 From: Sterling Stein Date: Sat, 7 Jun 2014 15:08:57 -0700 Subject: [PATCH] fceux: Add package for a NES emulator. --- pkgs/misc/emulators/fceux/default.nix | 34 +++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/misc/emulators/fceux/default.nix diff --git a/pkgs/misc/emulators/fceux/default.nix b/pkgs/misc/emulators/fceux/default.nix new file mode 100644 index 000000000000..48860f17aaf2 --- /dev/null +++ b/pkgs/misc/emulators/fceux/default.nix @@ -0,0 +1,34 @@ +{stdenv, fetchurl, scons, zlib, SDL, lua5, pkgconfig}: + +stdenv.mkDerivation { + name = "fceux-2.2.2"; + + src = fetchurl { + url = mirror://sourceforge/fceultra/Source%20Code/2.2.2%20src/fceux-2.2.2.src.tar.gz; + sha256 = "1qg5bygla8ka30b7wqvq6dv84xc7pq0jspffh2jz75d1njyi2kc0"; + }; + + buildInputs = [ + scons zlib SDL lua5 pkgconfig + ]; + + phases = "unpackPhase buildPhase"; + + # sed allows scons to find libraries in nix. + # mkdir is a hack to make scons succeed. It still doesn't + # actually put the files in there due to a bug in the SConstruct file. + # OPENGL doesn't work because fceux dlopens the library. + buildPhase = '' + sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct + export CC="gcc" + export CXX="g++" + mkdir -p "$out" "$out/share/applications" "$out/share/pixmaps" + scons --prefix="$out" OPENGL=false GTK=false CREATE_AVI=false LOGO=false SYSTEM_LUA=false install + ''; + + meta = { + description = "A Nintendo Entertainment System (NES) Emulator"; + license = stdenv.lib.licenses.gpl2; + homepage = http://www.fceux.com/; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e785945815dc..2e157b01d9f8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10784,6 +10784,8 @@ let fakenes = callPackage ../misc/emulators/fakenes { }; + fceux = callPackage ../misc/emulators/fceux { }; + foldingathome = callPackage ../misc/foldingathome { }; foo2zjs = callPackage ../misc/drivers/foo2zjs {};