|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
{ stdenv, fetchFromGitHub |
|
|
|
|
, makeWrapper, unzip, which |
|
|
|
|
, curl, tzdata |
|
|
|
|
, curl, tzdata, gdb |
|
|
|
|
# Versions 2.070.2 and up require a working dmd compiler to build: |
|
|
|
|
, bootstrapDmd }: |
|
|
|
|
|
|
|
|
@ -35,6 +35,10 @@ stdenv.mkDerivation rec { |
|
|
|
|
mv dmd-v${version}-src dmd |
|
|
|
|
mv druntime-v${version}-src druntime |
|
|
|
|
mv phobos-v${version}-src phobos |
|
|
|
|
|
|
|
|
|
# Remove cppa test for now because it doesn't work. |
|
|
|
|
rm dmd/test/runnable/cppa.d |
|
|
|
|
rm dmd/test/runnable/extra-files/cppb.cpp |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
# Compile with PIC to prevent colliding modules with binutils 2.28. |
|
|
|
@ -69,22 +73,22 @@ stdenv.mkDerivation rec { |
|
|
|
|
--replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_ |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which ]; |
|
|
|
|
nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ]; |
|
|
|
|
buildInputs = [ curl tzdata ]; |
|
|
|
|
|
|
|
|
|
# Buid and install are based on http://wiki.dlang.org/Building_DMD |
|
|
|
|
buildPhase = '' |
|
|
|
|
cd dmd |
|
|
|
|
make -f posix.mak INSTALL_DIR=$out |
|
|
|
|
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out |
|
|
|
|
${ |
|
|
|
|
let bits = builtins.toString stdenv.hostPlatform.parsed.cpu.bits; |
|
|
|
|
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; in |
|
|
|
|
"export DMD=$PWD/generated/${osname}/release/${bits}/dmd" |
|
|
|
|
} |
|
|
|
|
cd ../druntime |
|
|
|
|
make -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD |
|
|
|
|
make -j$NIX_BUILD_CORES -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD |
|
|
|
|
cd ../phobos |
|
|
|
|
make -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD |
|
|
|
|
make -j$NIX_BUILD_CORES -f posix.mak PIC=${usePIC} INSTALL_DIR=$out DMD=$DMD |
|
|
|
|
cd .. |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
@ -97,10 +101,11 @@ stdenv.mkDerivation rec { |
|
|
|
|
osname = if stdenv.hostPlatform.isDarwin then "osx" else stdenv.hostPlatform.parsed.kernel.name; in |
|
|
|
|
"export DMD=$PWD/generated/${osname}/release/${bits}/dmd" |
|
|
|
|
} |
|
|
|
|
make -j$NIX_BUILD_CORES -C test -f Makefile PIC=${usePIC} DMD=$DMD BUILD=release SHARED=0 |
|
|
|
|
cd ../druntime |
|
|
|
|
make -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release |
|
|
|
|
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release |
|
|
|
|
cd ../phobos |
|
|
|
|
make -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release |
|
|
|
|
make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=${usePIC} DMD=$DMD BUILD=release |
|
|
|
|
cd .. |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|