about summary refs log tree commit diff
path: root/pkgs/development/compilers/gerbil/build.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/gerbil/build.nix')
-rw-r--r--pkgs/development/compilers/gerbil/build.nix127
1 files changed, 0 insertions, 127 deletions
diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix
deleted file mode 100644
index af983be968b0..000000000000
--- a/pkgs/development/compilers/gerbil/build.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ pkgs, gccStdenv, lib, coreutils,
-  openssl, zlib, sqlite,
-  version, git-version, src,
-  gambit-support,
-  gambit-git-version,
-  gambit-stampYmd,
-  gambit-stampHms,
-  gambit-params }:
-
-# We use Gambit, that works 10x better with GCC than Clang. See ../gambit/build.nix
-let stdenv = gccStdenv; in
-
-stdenv.mkDerivation rec {
-  pname = "gerbil";
-  inherit version;
-  inherit src;
-
-  buildInputs_libraries = [ openssl zlib sqlite ];
-
-  # TODO: either fix all of Gerbil's dependencies to provide static libraries,
-  # or give up and delete all tentative support for static libraries.
-  #buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries;
-
-  buildInputs = buildInputs_libraries;
-
-  postPatch = ''
-    patchShebangs . ;
-    grep -Fl '#!/usr/bin/env' `find . -type f -executable` | while read f ; do
-      substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env' ;
-    done ;
-    cat > MANIFEST <<EOF
-    gerbil_stamp_version=v${git-version}
-    gambit_stamp_version=v${gambit-git-version}
-    gambit_stamp_ymd=${gambit-stampYmd}
-    gambit_stamp_hms=${gambit-stampHms}
-    EOF
-    for f in src/bootstrap/gerbil/compiler/driver__0.scm \
-             src/build/build-libgerbil.ss \
-             src/gerbil/compiler/driver.ss ; do
-      substituteInPlace "$f" --replace '"gcc"' '"${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}gcc"' ;
-    done
-  '';
-
-## TODO: make static compilation work.
-## For that, get all the packages below to somehow expose static libraries,
-## so we can offer users the option to statically link them into Gambit and/or Gerbil.
-## Then add the following to the postPatch script above:
-#     cat > etc/gerbil_static_libraries.sh <<EOF
-# OPENSSL_LIBCRYPTO=${makeStaticLibraries openssl}/lib/libcrypto.a # MISSING!
-# OPENSSL_LIBSSL=${makeStaticLibraries openssl}/lib/libssl.a # MISSING!
-# ZLIB=${makeStaticLibraries zlib}/lib/libz.a
-# SQLITE=${makeStaticLibraries sqlite}/lib/sqlite.a # MISSING!
-# EOF
-
-  configureFlags = [
-    "--prefix=$out/gerbil"
-    "--enable-zlib"
-    "--enable-sqlite"
-    "--enable-shared"
-    "--enable-march=" # Avoid non-portable invalid instructions. Use =native if local build only.
-  ];
-
-  configurePhase = ''
-    export CC=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}gcc \
-           CXX=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}g++ \
-           CPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \
-           CXXCPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \
-           LD=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}ld \
-           XMKMF=${coreutils}/bin/false
-    unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
-    ./configure ${builtins.concatStringsSep " " configureFlags}
-  '';
-
-  extraLdOptions = [
-      "-L${zlib}/lib"
-      "-L${openssl.out}/lib"
-      "-L${sqlite.out}/lib"
-    ];
-
-  buildPhase = ''
-    runHook preBuild
-
-    # gxprof testing uses $HOME/.cache/gerbil/gxc
-    export HOME=$PWD
-    export GERBIL_BUILD_CORES=$NIX_BUILD_CORES
-    export GERBIL_GXC=$PWD/bin/gxc
-    export GERBIL_BASE=$PWD
-    export GERBIL_PREFIX=$PWD
-    export GERBIL_PATH=$PWD/lib
-    export PATH=$PWD/bin:$PATH
-    ${gambit-support.export-gambopt gambit-params}
-
-    # Build, replacing make by build.sh
-    ( cd src && sh build.sh )
-
-    f=build/lib/libgerbil.so.ldd ; [ -f $f ] && :
-    substituteInPlace "$f" --replace '(' \
-      '(${lib.strings.concatStrings (map (x: "\"${x}\" " ) extraLdOptions)}'
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/gerbil $out/bin
-    ./install.sh
-    (cd $out/bin ; ln -s ../gerbil/bin/* .)
-    runHook postInstall
-  '' + lib.optionalString stdenv.isDarwin ''
-    libgerbil="$(realpath "$out/gerbil/lib/libgerbil.so")"
-    install_name_tool -id "$libgerbil" "$libgerbil"
-  '';
-
-  dontStrip = true;
-
-  meta = {
-    description = "Gerbil Scheme";
-    homepage    = "https://github.com/vyzo/gerbil";
-    license     = lib.licenses.lgpl21Only; # dual, also asl20, like Gambit
-    # NB regarding platforms: regularly tested on Linux and on macOS.
-    # Please report success and/or failure to fare.
-    platforms   = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ fare ];
-  };
-
-  outputsToInstall = [ "out" ];
-}