Merge remote-tracking branch 'upstream/master' into hardened-stdenv

This commit is contained in:
Robin Gloster
2016-03-15 01:44:24 +00:00
550 changed files with 9204 additions and 3225 deletions
@@ -5,6 +5,7 @@ let
name = "suitesparse-${version}";
int_t = if openblas.blas64 then "int64_t" else "int32_t";
SHLIB_EXT = if stdenv.isDarwin then "dylib" else "so";
in
stdenv.mkDerivation {
inherit name;
@@ -23,6 +24,10 @@ stdenv.mkDerivation {
-e 's/METIS_PATH .*$/METIS_PATH =/' \
-e '/CHOLMOD_CONFIG/ s/$/-DNPARTITION -DLONGBLAS=${int_t}/' \
-e '/UMFPACK_CONFIG/ s/$/-DLONGBLAS=${int_t}/'
''
+ stdenv.lib.optionalString stdenv.isDarwin ''
sed -i "SuiteSparse_config/SuiteSparse_config.mk" \
-e 's/^[[:space:]]*\(LIB = -lm\) -lrt/\1/'
'';
makeFlags = [
@@ -33,6 +38,8 @@ stdenv.mkDerivation {
"LAPACK="
];
NIX_CFLAGS = stdenv.lib.optionalString stdenv.isDarwin " -DNTIMER";
postInstall = ''
# Build and install shared library
(
@@ -40,10 +47,10 @@ stdenv.mkDerivation {
for i in "$out"/lib/lib*.a; do
ar -x $i
done
gcc *.o --shared -o "$out/lib/libsuitesparse.so" -lopenblas
''${CC} *.o ${if stdenv.isDarwin then "-dynamiclib" else "--shared"} -o "$out/lib/libsuitesparse.${SHLIB_EXT}" -lopenblas
)
for i in umfpack cholmod amd camd colamd spqr; do
ln -s libsuitesparse.so "$out"/lib/lib$i.so;
ln -s libsuitesparse.${SHLIB_EXT} "$out"/lib/lib$i.${SHLIB_EXT}
done
# Install documentation