mumps: build on darwin

This commit is contained in:
Guilhem Saurel 2024-08-08 16:54:50 +02:00
parent a194f9d065
commit 4ef2027dca

View File

@ -26,11 +26,17 @@ stdenv.mkDerivation (finalAttrs: {
})
];
postPatch = ''
# Compatibility with coin-or-mumps version
# https://github.com/coin-or-tools/ThirdParty-Mumps/blob/stable/3.0/get.Mumps#L66
cp libseq/mpi.h libseq/mumps_mpi.h
'';
postPatch =
''
# Compatibility with coin-or-mumps version
# https://github.com/coin-or-tools/ThirdParty-Mumps/blob/stable/3.0/get.Mumps#L66
cp libseq/mpi.h libseq/mumps_mpi.h
''
+ lib.optionalString stdenv.isDarwin ''
substituteInPlace src/Makefile --replace-fail \
"-Wl,\''$(SONAME),libmumps_common" \
"-Wl,-install_name,$out/lib/libmumps_common"
'';
configurePhase = ''
cp Make.inc/Makefile.debian.SEQ ./Makefile.inc
@ -67,11 +73,59 @@ stdenv.mkDerivation (finalAttrs: {
scotch
];
preFixup = lib.optionalString stdenv.isDarwin ''
install_name_tool \
-change libmpiseq.dylib \
$out/lib/libmpiseq.dylib \
-change libpord.dylib \
$out/lib/libpord.dylib \
$out/lib/libmumps_common.dylib
install_name_tool \
-change libmpiseq.dylib \
$out/lib/libmpiseq.dylib \
-change libpord.dylib \
$out/lib/libpord.dylib \
-id \
$out/lib/libcmumps.dylib \
$out/lib/libcmumps.dylib
install_name_tool \
-change libmpiseq.dylib \
$out/lib/libmpiseq.dylib \
-change libpord.dylib \
$out/lib/libpord.dylib \
-id \
$out/lib/libdmumps.dylib \
$out/lib/libdmumps.dylib
install_name_tool \
-change libmpiseq.dylib \
$out/lib/libmpiseq.dylib \
-change libpord.dylib \
$out/lib/libpord.dylib \
-id \
$out/lib/libsmumps.dylib \
$out/lib/libsmumps.dylib
install_name_tool \
-change libmpiseq.dylib \
$out/lib/libmpiseq.dylib \
-change libpord.dylib \
$out/lib/libpord.dylib \
-id \
$out/lib/libzmumps.dylib \
$out/lib/libzmumps.dylib
install_name_tool \
-id \
$out/lib/libmpiseq.dylib \
$out/lib/libmpiseq.dylib
install_name_tool \
-id \
$out/lib/libpord.dylib \
$out/lib/libpord.dylib
'';
meta = {
description = "MUltifrontal Massively Parallel sparse direct Solver";
homepage = "http://mumps-solver.org/";
license = lib.licenses.cecill-c;
maintainers = with lib.maintainers; [ nim65s ];
broken = stdenv.isDarwin;
};
})