summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorFrancois-Rene Rideau <fare@tunes.org>2017-06-28 22:11:56 -0400
committerJörg Thalheim <joerg@thalheim.io>2017-07-07 11:27:36 +0100
commite78b820bebd556e7fbc27c8e31e2eddff3f6164d (patch)
treef58d10935f7a0c793487ab3ef5eaaade7f87ecc9 /pkgs/development
parenta76557700444c33c4ee0665b5161907f28a67284 (diff)
downloadnixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar.gz
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar.bz2
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar.lz
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar.xz
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.tar.zst
nixlib-e78b820bebd556e7fbc27c8e31e2eddff3f6164d.zip
gambit: 4.8.6 -> 4.8.8-f3ffeb6
Using a yet unreleased development version of gambit,
so as to be able to build a recent gerbil.

Update the way gambit is bootstrapped, which involves building a
release version of gambit (which for a development gambit, is not the
same version as the current version of gambit).
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/gambit/bootstrap.nix41
-rw-r--r--pkgs/development/compilers/gambit/default.nix76
2 files changed, 101 insertions, 16 deletions
diff --git a/pkgs/development/compilers/gambit/bootstrap.nix b/pkgs/development/compilers/gambit/bootstrap.nix
new file mode 100644
index 000000000000..65fb20aa2603
--- /dev/null
+++ b/pkgs/development/compilers/gambit/bootstrap.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, autoconf, ... }:
+
+stdenv.mkDerivation rec {
+  name    = "gambit-bootstrap-${version}";
+  version = "4.8.8";
+  tarball_version = "v4_8_8";
+
+  src = fetchurl {
+    url    = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-${tarball_version}-devel.tgz";
+    sha256 = "075k2z04d6svxqf9paj3xvp0mm0xzy0vbma1y61s0lkywdim8xjz";
+  };
+
+  buildInputs = [ autoconf ];
+
+  configurePhase = ''
+    ./configure --prefix=$out --enable-single-host
+  '';
+
+  buildPhase = ''
+    # Copy the (configured) sources now, not later, so we don't have to filter out
+    # all the intermediate build products.
+    mkdir -p $out ; cp -rp . $out/
+
+    # build the gsc-boot* compiler
+    make bootstrap
+  '';
+
+  installPhase = ''
+    cp -fa ./ $out/
+  '';
+
+  forceShare = [ "info" ];
+
+  meta = {
+    description = "Optimizing Scheme to C compiler, bootstrap step";
+    homepage    = "http://gambitscheme.org";
+    license     = stdenv.lib.licenses.lgpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix
index 7e17cee9abde..58b08ebd4fb7 100644
--- a/pkgs/development/compilers/gambit/default.nix
+++ b/pkgs/development/compilers/gambit/default.nix
@@ -1,31 +1,75 @@
-{ stdenv, fetchurl, openssl }:
+{ stdenv, fetchurl, fetchgit, git, openssl, autoconf, pkgs }:
 
 stdenv.mkDerivation rec {
   name    = "gambit-${version}";
-  version = "4.8.6";
-  devver  = "4_8_6";
+  version = "4.8.8-f3ffeb6";
+  bootstrap = import ./bootstrap.nix ( pkgs );
 
-  src = fetchurl {
-    url    = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v${devver}-devel.tgz";
-    sha256 = "0j3ka76cfb007rlcc3nv5p1s6vh31cwp87hwwabawf16vs1jb7bl";
+#  devver  = "4_8_8";
+#  src = fetchurl {
+#    url    = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v${version}-devel.tgz";
+#    sha256 = "0j3ka76cfb007rlcc3nv5p1s6vh31cwp87hwwabawf16vs1jb7bl";
+#  };
+  src = fetchgit {
+    url = "https://github.com/feeley/gambit.git";
+    rev = "f3ffeb695aeea80c18c1b9ef276b57898c780dca";
+    sha256 = "1lqixsrgk9z2gj6z1nkys0pfd3m5zjxrp3gvqn2wpr9h7hjb8x06";
   };
 
-  configureFlags = [
-    "--enable-single-host"
-    "--enable-shared"
-    "--enable-absolute-shared-libs"
-    "--enable-c-opt=-O6" "--enable-gcc-opts" "--enable-inline-jumps"
-    "--enable-thread-system=posix" "--enable-dynamic-tls"
-    "--enable-openssl"
-  ];
+  buildInputs = [ openssl git autoconf bootstrap ];
 
-  buildInputs = [ openssl ];
+  configurePhase = ''
+    options=(
+      --prefix=$out
+      --enable-single-host
+      --enable-c-opt=-O2
+      --enable-gcc-opts
+      --enable-shared
+      --enable-absolute-shared-libs # Yes, NixOS will want an absolute path, and fix it.
+      --enable-poll
+      --enable-openssl
+
+      #--enable-multiple-versions # Nope, NixOS already does version multiplexing
+      #--enable-guide
+      #--enable-track-scheme
+      #--enable-high-res-timing
+      #--enable-max-processors=4
+      #--enable-multiple-vms
+      #--enable-dynamic-tls
+      #--enable-multiple-vms
+      #--enable-multiple-threaded-vms  ## when SMP branch is merged in
+      #--enable-thread-system=posix    ## default when --enable-multiple-vms is on.
+      #--enable-profile
+      #--enable-coverage
+      #--enable-inline-jumps
+      #--enable-char-size=1" ; default is 4
+    )
+    ./configure ''${options[@]}
+  '';
+
+  buildPhase = ''
+    # Make bootstrap compiler, from release bootstrap
+    mkdir -p boot/wip-compiler &&
+    cp -rp ${bootstrap}/. boot/wip-compiler/. &&
+    chmod -R u+w boot &&
+    cd boot/wip-compiler && \
+    cp ../../gsc/makefile.in ../../gsc/*.scm gsc && \
+    (cd gsc && make bootclean ) &&
+    make bootstrap &&
+    cd ../.. &&
+    cp boot/wip-compiler/gsc/gsc gsc-boot &&
+
+    # Now use the bootstrap compiler to build the real thing!
+    make -j2 from-scratch
+  '';
+
+  doCheck = true;
 
   meta = {
     description = "Optimizing Scheme to C compiler";
     homepage    = "http://gambitscheme.org";
     license     = stdenv.lib.licenses.lgpl2;
     platforms   = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
   };
 }