Get mlton a little closer to working on darwin+clang (thanks to gridaphobe). Still impure, and needs more work.
This commit is contained in:
parent
d8ad39d2e6
commit
da8ab2d947
|
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
sourceRoot = name;
|
sourceRoot = name;
|
||||||
|
|
||||||
buildInputs = [ patchelf gmp ];
|
buildInputs = [ gmp ] ++ stdenv.lib.optional stdenv.isLinux patchelf;
|
||||||
|
|
||||||
makeFlags = [ "all-no-docs" ];
|
makeFlags = [ "all-no-docs" ];
|
||||||
|
|
||||||
|
@ -47,6 +47,12 @@ stdenv.mkDerivation rec {
|
||||||
find . -type f | grep -v -e '\.tgz''$' | xargs sed -i "s@/usr/bin/env bash@$(type -p bash)@"
|
find . -type f | grep -v -e '\.tgz''$' | xargs sed -i "s@/usr/bin/env bash@$(type -p bash)@"
|
||||||
|
|
||||||
substituteInPlace $(pwd)/Makefile --replace '/bin/cp' $(type -p cp)
|
substituteInPlace $(pwd)/Makefile --replace '/bin/cp' $(type -p cp)
|
||||||
|
substituteInPlace bin/mlton-script --replace gcc cc
|
||||||
|
substituteInPlace bin/regression --replace gcc cc
|
||||||
|
substituteInPlace lib/mlnlffi-lib/Makefile --replace gcc cc
|
||||||
|
substituteInPlace mlnlffigen/gen-cppcmd --replace gcc cc
|
||||||
|
substituteInPlace runtime/Makefile --replace gcc cc
|
||||||
|
substituteInPlace ../${usr_prefix}/bin/mlton --replace gcc cc
|
||||||
|
|
||||||
# Fix paths in the binary distribution.
|
# Fix paths in the binary distribution.
|
||||||
BIN_DIST_DIR="$(pwd)/../${usr_prefix}"
|
BIN_DIST_DIR="$(pwd)/../${usr_prefix}"
|
||||||
|
@ -91,8 +97,8 @@ stdenv.mkDerivation rec {
|
||||||
# Path to gmp.h.
|
# Path to gmp.h.
|
||||||
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-cc-opt '-O1 -fno-common'" "-cc-opt '-O1 -fno-common -I${gmp}/include'"
|
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-cc-opt '-O1 -fno-common'" "-cc-opt '-O1 -fno-common -I${gmp}/include'"
|
||||||
|
|
||||||
# Path to the same gcc used in the build; needed at runtime.
|
# Path to the same cc used in the build; needed at runtime.
|
||||||
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "gcc='gcc'" "gcc='"$(type -p gcc)"'"
|
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "gcc='gcc'" "gcc='"$(type -p cc)"'"
|
||||||
|
|
||||||
# Copy files to final positions.
|
# Copy files to final positions.
|
||||||
cp -r $(pwd)/install/${usr_prefix}/bin $out
|
cp -r $(pwd)/install/${usr_prefix}/bin $out
|
||||||
|
|
Loading…
Reference in a new issue