nixpkgs/pkgs/development/interpreters/perl-5.8/builder.sh
Peter Simons 67cea803fa perl-5.8 and perl-5.10: fixed build on MacOS X
On MacOS X, we used to use the native perl interpreter from /usr/bin.
Unfortunately, that interpreter fails to build a number of packages
(Subversion, Git, etc. ...), because it assumes knowledge about the underlying
C compiler that is not valid for the compiler used by Nix. For example,
/usr/bin/perl assumes that the compiler can build binaries for both the ppc and
the x86 architecture. /usr/bin/FCC can do that, but the gcc from Nix can't.

The solution is to compile Perl 5.10 via Nix so that it can properly configure
itself. However, note that the resulting binary is impure: it will find headers
in /usr/include and libraries in /usr/lib -- something a pure perl binary
wouldn't do. In this respect our Nix-compiled perl binary is not better than
the native one from /usr/bin -- it's just more accurately configured.

svn path=/nixpkgs/trunk/; revision=17618
2009-10-02 16:26:05 +00:00

26 lines
705 B
Bash

source $stdenv/setup
if test "$NIX_ENFORCE_PURITY" = "1"; then
case $system in
*-linux) LIBC=$(cat $NIX_GCC/nix-support/orig-libc) ;;
*-darwin) LIBC=/usr ;;
*) echo unsupported system $system; exit 1 ;;
esac
extraflags="-Dlocincpth=$LIBC/include -Dloclibpth=$LIBC/lib"
fi
configureScript=./Configure
configureFlags="-de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl $extraflags"
dontAddPrefix=1
preBuild() {
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
}
postInstall() {
ensureDir "$out/nix-support"
cp $setupHook $out/nix-support/setup-hook
}
genericBuild