{ stdenv, makeStaticLibraries, coreutils, rsync, bash, openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql, version, git-version, gambit, src }: # TODO: distinct packages for gerbil-release and gerbil-devel # TODO: make static compilation work stdenv.mkDerivation rec { pname = "gerbil"; inherit version; inherit src; # Use makeStaticLibraries to enable creation of statically linked binaries buildInputs_libraries = [ openssl zlib sqlite libxml2 libyaml libmysqlclient lmdb leveldb postgresql ]; buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries; buildInputs = [ gambit rsync bash ] ++ buildInputs_libraries ++ buildInputs_staticLibraries; NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql"; postPatch = '' echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm patchShebangs . grep -Fl '#!/usr/bin/env' `find . -type f -executable` | while read f ; do substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env' done grep -Fl '"gsc"' `find . -type f -name '*.s*'` | while read f ; do substituteInPlace "$f" --replace '"gsc"' '"${gambit}/bin/gsc"' done substituteInPlace "etc/gerbil.el" --replace '"gxc"' "\"$out/bin/gxc\"" cat > etc/gerbil_static_libraries.sh < $out/bin/gxi <