# HG changeset patch # User Markus Mützel # Date 1571159634 -7200 # Node ID af296690046272741db6862a45ee1497d8541807 # Parent ba61e5f8161e184475a5f43300de8ada7dab8194 suitesparse: update to v4.5.6 * src/suitesparse.mk: update version, checksum and build rules. * src/suitesparse-1-fixes.patch, srs/suitesparse-2-metis.patch: Add new patches. * src/suitesparse-1.patch: Remove old patch. * dist-files.mk: Update list. diff -r ba61e5f8161e -r af2966900462 dist-files.mk --- a/dist-files.mk Tue Oct 15 18:55:54 2019 +0200 +++ b/dist-files.mk Tue Oct 15 19:13:54 2019 +0200 @@ -691,7 +691,8 @@ src-msys-zlib.mk \ stable-octave-1-gnulib.patch \ stable-octave.mk \ - suitesparse-1.patch \ + suitesparse-1-fixes.patch \ + suitesparse-2-metis.patch \ suitesparse.mk \ sundials-27-ida-1.patch \ sundials-27-ida.mk \ diff -r ba61e5f8161e -r af2966900462 src/suitesparse-1-fixes.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/suitesparse-1-fixes.patch Tue Oct 15 19:13:54 2019 +0200 @@ -0,0 +1,719 @@ +This file is part of MXE. +See index.html for further information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Tue, 21 Nov 2017 00:39:21 +1100 +Subject: [PATCH 1/3] mingw-w64-Use-a-not-lib-as-AR_TARGET-extension + +taken from: +https://github.com/Alexpux/MINGW-packages/blob/6d1afc34842f2faf6c50c04e5904cdb8b7f20e3b/mingw-w64-suitesparse/0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch + +diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk +index 1111111..2222222 100644 +--- a/SuiteSparse_config/SuiteSparse_config.mk ++++ b/SuiteSparse_config/SuiteSparse_config.mk +@@ -429,10 +429,8 @@ SO_OPTS = $(LDFLAGS) + + ifeq ($(UNAME),Windows) + # Cygwin Make on Windows (untested) +- AR_TARGET = $(LIBRARY).lib +- SO_PLAIN = $(LIBRARY).dll +- SO_MAIN = $(LIBRARY).$(SO_VERSION).dll +- SO_TARGET = $(LIBRARY).$(VERSION).dll ++ AR_TARGET = $(LIBRARY).a ++ SO_TARGET = $(LIBRARY).dll + SO_INSTALL_NAME = echo + else + # Mac or Linux/Unix + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Tue, 21 Nov 2017 00:41:07 +1100 +Subject: [PATCH 2/3] + mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs + +taken from: +https://github.com/Alexpux/MINGW-packages/blob/6d1afc34842f2faf6c50c04e5904cdb8b7f20e3b/mingw-w64-suitesparse/0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch + +diff --git a/AMD/Lib/Makefile b/AMD/Lib/Makefile +index 1111111..2222222 100644 +--- a/AMD/Lib/Makefile ++++ b/AMD/Lib/Makefile +@@ -81,28 +81,24 @@ libamdf77.a: $(AMDF77) + #------------------------------------------------------------------------------- + + # install AMD +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/amd.h $(INSTALL_INCLUDE) + $(CP) ../Doc/AMD_UserGuide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/AMD_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/amd.h + chmod 644 $(INSTALL_DOC)/AMD_UserGuide.pdf + chmod 644 $(INSTALL_DOC)/AMD_README.txt + + # uninstall AMD + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/amd.h + $(RM) $(INSTALL_DOC)/AMD_UserGuide.pdf + $(RM) $(INSTALL_DOC)/AMD_README.txt +diff --git a/BTF/Lib/Makefile b/BTF/Lib/Makefile +index 1111111..2222222 100644 +--- a/BTF/Lib/Makefile ++++ b/BTF/Lib/Makefile +@@ -66,25 +66,21 @@ btf_l_strongcomp.o: ../Source/btf_strongcomp.c + #------------------------------------------------------------------------------- + + # install BTF +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/btf.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/BTF_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/btf.h + chmod 644 $(INSTALL_DOC)/BTF_README.txt + + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/btf.h + $(RM) $(INSTALL_DOC)/BTF_README.txt + +diff --git a/CAMD/Lib/Makefile b/CAMD/Lib/Makefile +index 1111111..2222222 100644 +--- a/CAMD/Lib/Makefile ++++ b/CAMD/Lib/Makefile +@@ -62,28 +62,24 @@ $(AR_TARGET): $(OBJ) + #------------------------------------------------------------------------------- + + # install CAMD +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/camd.h $(INSTALL_INCLUDE) + $(CP) ../Doc/CAMD_UserGuide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/CAMD_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/camd.h + chmod 644 $(INSTALL_DOC)/CAMD_UserGuide.pdf + chmod 644 $(INSTALL_DOC)/CAMD_README.txt + + # uninstall CAMD + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/camd.h + $(RM) $(INSTALL_DOC)/CAMD_UserGuide.pdf + $(RM) $(INSTALL_DOC)/CAMD_README.txt +diff --git a/CCOLAMD/Lib/Makefile b/CCOLAMD/Lib/Makefile +index 1111111..2222222 100644 +--- a/CCOLAMD/Lib/Makefile ++++ b/CCOLAMD/Lib/Makefile +@@ -49,25 +49,21 @@ distclean: clean + - $(RM) -r $(PURGE) + + # install CCOLAMD +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/ccolamd.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/CCOLAMD_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/ccolamd.h + chmod 644 $(INSTALL_DOC)/CCOLAMD_README.txt + + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/ccolamd.h + $(RM) $(INSTALL_DOC)/CCOLAMD_README.txt + +diff --git a/CHOLMOD/Lib/Makefile b/CHOLMOD/Lib/Makefile +index 1111111..2222222 100644 +--- a/CHOLMOD/Lib/Makefile ++++ b/CHOLMOD/Lib/Makefile +@@ -535,29 +535,25 @@ cholmod_l_gpu.o: ../GPU/cholmod_gpu.c + #------------------------------------------------------------------------------- + + # install CHOLMOD +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/cholmod*.h $(INSTALL_INCLUDE) + $(RM) $(INSTALL_INCLUDE)/cholmod_internal.h + $(CP) ../Doc/CHOLMOD_UserGuide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/CHOLMOD_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/cholmod*.h + chmod 644 $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf + chmod 644 $(INSTALL_DOC)/CHOLMOD_README.txt + + # uninstall CHOLMOD + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/cholmod*.h + $(RM) $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf + $(RM) $(INSTALL_DOC)/CHOLMOD_README.txt +diff --git a/COLAMD/Lib/Makefile b/COLAMD/Lib/Makefile +index 1111111..2222222 100644 +--- a/COLAMD/Lib/Makefile ++++ b/COLAMD/Lib/Makefile +@@ -49,25 +49,21 @@ distclean: clean + - $(RM) -r $(PURGE) + + # install COLAMD +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/colamd.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/COLAMD_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/colamd.h + chmod 644 $(INSTALL_DOC)/COLAMD_README.txt + + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/colamd.h + $(RM) $(INSTALL_DOC)/COLAMD_README.txt + +diff --git a/CXSparse/Lib/Makefile b/CXSparse/Lib/Makefile +index 1111111..2222222 100644 +--- a/CXSparse/Lib/Makefile ++++ b/CXSparse/Lib/Makefile +@@ -113,26 +113,22 @@ distclean: clean + - $(RM) -r $(PURGE) + + # install CXSparse +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(CS) ++$(INSTALL_SO)/$(SO_TARGET): $(CS) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/cs.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/cs.h + chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt + + # uninstall CXSparse + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/cs.h + $(RM) $(INSTALL_DOC)/CXSPARSE_README.txt + +diff --git a/CXSparse_newfiles/Lib/Makefile b/CXSparse_newfiles/Lib/Makefile +index 1111111..2222222 100644 +--- a/CXSparse_newfiles/Lib/Makefile ++++ b/CXSparse_newfiles/Lib/Makefile +@@ -113,26 +113,22 @@ distclean: clean + - $(RM) -r $(PURGE) + + # install CXSparse +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(CS) ++$(INSTALL_SO)/$(SO_TARGET): $(CS) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/cs.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/cs.h + chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt + + # uninstall CXSparse + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/cs.h + $(RM) $(INSTALL_DOC)/CXSPARSE_README.txt + +diff --git a/GPUQREngine/Lib/Makefile b/GPUQREngine/Lib/Makefile +index 1111111..2222222 100644 +--- a/GPUQREngine/Lib/Makefile ++++ b/GPUQREngine/Lib/Makefile +@@ -129,24 +129,20 @@ $(AR_TARGET): $(OBJS) + #------------------------------------------------------------------------------- + + # install GPUQREngine. Note that the include files are not installed. +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJS) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../README.txt $(INSTALL_DOC)/GPUQRENGINE_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_DOC)/GPUQRENGINE_README.txt + + # uninstall GPUQREngine + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_DOC)/GPUQRENGINE_README.txt + + #------------------------------------------------------------------------------- +diff --git a/KLU/Lib/Makefile b/KLU/Lib/Makefile +index 1111111..2222222 100644 +--- a/KLU/Lib/Makefile ++++ b/KLU/Lib/Makefile +@@ -263,28 +263,24 @@ klu_l_memory.o: ../Source/klu_memory.c + #------------------------------------------------------------------------------- + + # install KLU +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/klu.h $(INSTALL_INCLUDE) + $(CP) ../Doc/KLU_UserGuide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/KLU_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/klu.h + chmod 644 $(INSTALL_DOC)/KLU_UserGuide.pdf + chmod 644 $(INSTALL_DOC)/KLU_README.txt + + # uninstall KLU + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/klu.h + $(RM) $(INSTALL_DOC)/KLU_UserGuide.pdf + $(RM) $(INSTALL_DOC)/KLU_README.txt +diff --git a/LDL/Lib/Makefile b/LDL/Lib/Makefile +index 1111111..2222222 100644 +--- a/LDL/Lib/Makefile ++++ b/LDL/Lib/Makefile +@@ -46,28 +46,24 @@ clean: + - $(RM) -r $(CLEAN) + + # install LDL +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/ldl.h $(INSTALL_INCLUDE) + $(CP) ../Doc/ldl_userguide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/LDL_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/ldl.h + chmod 644 $(INSTALL_DOC)/ldl_userguide.pdf + chmod 644 $(INSTALL_DOC)/LDL_README.txt + + # uninstall LDL + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/ldl.h + $(RM) $(INSTALL_DOC)/ldl_userguide.pdf + $(RM) $(INSTALL_DOC)/LDL_README.txt +diff --git a/Makefile b/Makefile +index 1111111..2222222 100644 +--- a/Makefile ++++ b/Makefile +@@ -63,13 +63,13 @@ ifeq (,$(MY_METIS_LIB)) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) +- - $(CP) lib/libmetis.* $(INSTALL_LIB) ++ - $(CP) lib/libmetis.* $(INSTALL_SO) + - $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf + - $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt + # the following is needed only on the Mac, so *.dylib is hardcoded: + $(SO_INSTALL_NAME) $(INSTALL_LIB)/libmetis.dylib $(INSTALL_LIB)/libmetis.dylib + - $(CP) include/metis.h $(INSTALL_INCLUDE) +- chmod 755 $(INSTALL_LIB)/libmetis.* ++ chmod 755 $(INSTALL_SO)/libmetis.* + chmod 644 $(INSTALL_INCLUDE)/metis.h + chmod 644 $(INSTALL_DOC)/METIS_manual.pdf + chmod 644 $(INSTALL_DOC)/METIS_README.txt +diff --git a/RBio/Lib/Makefile b/RBio/Lib/Makefile +index 1111111..2222222 100644 +--- a/RBio/Lib/Makefile ++++ b/RBio/Lib/Makefile +@@ -60,25 +60,21 @@ RBio_i.o: ../Source/RBio.c + #------------------------------------------------------------------------------- + + # install RBio +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/RBio.h $(INSTALL_INCLUDE) + $(CP) ../README.txt $(INSTALL_DOC)/RBIO_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/RBio.h + chmod 644 $(INSTALL_DOC)/RBIO_README.txt + + # uninstall RBio + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/RBio.h + $(RM) $(INSTALL_DOC)/RBIO_README.txt +diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile +index 1111111..2222222 100644 +--- a/SPQR/Lib/Makefile ++++ b/SPQR/Lib/Makefile +@@ -242,22 +242,20 @@ spqrgpu_computeFrontStaging.o: ../SPQRGPU/spqrgpu_computeFrontStaging.cpp + #------------------------------------------------------------------------------- + + # install SPQR +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/SuiteSparseQR.hpp $(INSTALL_INCLUDE) + $(CP) ../Include/SuiteSparseQR_C.h $(INSTALL_INCLUDE) + $(CP) ../Include/SuiteSparseQR_definitions.h $(INSTALL_INCLUDE) + $(CP) ../Include/spqr.hpp $(INSTALL_INCLUDE) + $(CP) ../Doc/spqr_user_guide.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/SPQR_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR.hpp + chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_C.h + chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h +@@ -267,9 +265,7 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ) + + # uninstall SPQR + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR.hpp + $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_C.h + $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h +diff --git a/SuiteSparse_GPURuntime/Lib/Makefile b/SuiteSparse_GPURuntime/Lib/Makefile +index 1111111..2222222 100644 +--- a/SuiteSparse_GPURuntime/Lib/Makefile ++++ b/SuiteSparse_GPURuntime/Lib/Makefile +@@ -70,23 +70,19 @@ SuiteSparseGPU_Workspace_transfer.o: ../Source/SuiteSparseGPU_Workspace_transfer + #------------------------------------------------------------------------------- + + # install SuiteSparse_GPURuntime (just the library, not the include files) +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJS) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../README.txt $(INSTALL_DOC)/GPURUNTIME_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_DOC)/GPURUNTIME_README.txt + + # uninstall SuiteSparse_GPURuntime + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_DOC)/GPURUNTIME_README.txt + +diff --git a/SuiteSparse_config/Makefile b/SuiteSparse_config/Makefile +index 1111111..2222222 100644 +--- a/SuiteSparse_config/Makefile ++++ b/SuiteSparse_config/Makefile +@@ -44,27 +44,22 @@ clean: + - $(RM) -r $(CLEAN) + + # install SuiteSparse_config +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) SuiteSparse_config.h $(INSTALL_INCLUDE) + $(CP) README.txt $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) +- chmod 755 $(INSTALL_LIB)/$(SO_PLAIN) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/SuiteSparse_config.h + chmod 644 $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt + + # uninstall SuiteSparse_config + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/SuiteSparse_config.h + $(RM) $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt + ( cd xerbla ; $(MAKE) uninstall ) +diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk +index 1111111..2222222 100644 +--- a/SuiteSparse_config/SuiteSparse_config.mk ++++ b/SuiteSparse_config/SuiteSparse_config.mk +@@ -54,6 +54,7 @@ SUITESPARSE_VERSION = 4.5.6 + # and documentation in /solo/mydox. + INSTALL ?= $(SUITESPARSE) + INSTALL_LIB ?= $(INSTALL)/lib ++ INSTALL_SO ?= $(INSTALL)/lib + INSTALL_INCLUDE ?= $(INSTALL)/include + INSTALL_DOC ?= $(INSTALL)/share/doc/suitesparse-$(SUITESPARSE_VERSION) + +@@ -339,7 +340,7 @@ SUITESPARSE_VERSION = 4.5.6 + + ifeq ($(UNAME),Linux) + # add the realtime library, librt, and SuiteSparse/lib +- LDLIBS += -lrt -Wl,-rpath=$(INSTALL_LIB) ++ LDLIBS += -lrt -Wl,-rpath=$(INSTALL_SO) + endif + + #--------------------------------------------------------------------------- +@@ -428,10 +429,11 @@ SUITESPARSE_VERSION = 4.5.6 + SO_OPTS = $(LDFLAGS) + + ifeq ($(UNAME),Windows) +- # Cygwin Make on Windows (untested) + AR_TARGET = $(LIBRARY).a + SO_TARGET = $(LIBRARY).dll + SO_INSTALL_NAME = echo ++ SO_OPTS += -shared -Wl,--out-implib,$(INSTALL_LIB)/$(LIBRARY).dll.a ++ INSTALL_SO = $(INSTALL)/bin + else + # Mac or Linux/Unix + AR_TARGET = $(LIBRARY).a +@@ -550,6 +552,7 @@ config: + @echo 'System: UNAME= ' '$(UNAME)' + @echo 'Install directory: INSTALL= ' '$(INSTALL)' + @echo 'Install libraries in: INSTALL_LIB= ' '$(INSTALL_LIB)' ++ @echo 'Install shared libs in: INSTALL_SO= ' '$(INSTALL_SO)' + @echo 'Install include files in: INSTALL_INCLUDE=' '$(INSTALL_INCLUDE)' + @echo 'Install documentation in: INSTALL_DOC= ' '$(INSTALL_DOC)' + @echo 'Optimization level: OPTIMIZATION= ' '$(OPTIMIZATION)' +diff --git a/SuiteSparse_config/xerbla/Makefile b/SuiteSparse_config/xerbla/Makefile +index 1111111..2222222 100644 +--- a/SuiteSparse_config/xerbla/Makefile ++++ b/SuiteSparse_config/xerbla/Makefile +@@ -53,16 +53,13 @@ $(INSTALL_LIB)/$(SO_TARGET): $(DEPENDS) + $(COMPILE) + $(CC) $(SO_OPTS) xerbla.o -o $@ + - $(RM) xerbla.o +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) xerbla.h $(INSTALL_INCLUDE) +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/xerbla.h + + # uninstall libcerbla / libxerbla + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/xerbla.h + + distclean: purge +diff --git a/UMFPACK/Lib/Makefile b/UMFPACK/Lib/Makefile +index 1111111..2222222 100644 +--- a/UMFPACK/Lib/Makefile ++++ b/UMFPACK/Lib/Makefile +@@ -288,20 +288,18 @@ clean: + + #------------------------------------------------------------------------------- + # install UMFPACK +-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) ++install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET) + +-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) ++$(INSTALL_SO)/$(SO_TARGET): $(OBJ) + @mkdir -p $(INSTALL_LIB) + @mkdir -p $(INSTALL_INCLUDE) + @mkdir -p $(INSTALL_DOC) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) +- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) + $(CP) ../Include/umfpack*.h $(INSTALL_INCLUDE) + $(CP) ../Doc/UMFPACK_UserGuide.pdf $(INSTALL_DOC) + $(CP) ../Doc/UMFPACK_QuickStart.pdf $(INSTALL_DOC) + $(CP) ../README.txt $(INSTALL_DOC)/UMFPACK_README.txt +- chmod 755 $(INSTALL_LIB)/$(SO_TARGET) ++ chmod 755 $(INSTALL_SO)/$(SO_TARGET) + chmod 644 $(INSTALL_INCLUDE)/umfpack*.h + chmod 644 $(INSTALL_DOC)/UMFPACK_UserGuide.pdf + chmod 644 $(INSTALL_DOC)/UMFPACK_QuickStart.pdf +@@ -309,9 +307,7 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ) + + # uninstall UMFPACK + uninstall: +- $(RM) $(INSTALL_LIB)/$(SO_TARGET) +- $(RM) $(INSTALL_LIB)/$(SO_PLAIN) +- $(RM) $(INSTALL_LIB)/$(SO_MAIN) ++ $(RM) $(INSTALL_SO)/$(SO_TARGET) + $(RM) $(INSTALL_INCLUDE)/umfpack*.h + $(RM) $(INSTALL_DOC)/UMFPACK_UserGuide.pdf + $(RM) $(INSTALL_DOC)/UMFPACK_QuickStart.pdf + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Tue, 21 Nov 2017 01:20:21 +1100 +Subject: [PATCH 3/3] add $(TBB) libs to SPQR + + +diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile +index 1111111..2222222 100644 +--- a/SPQR/Lib/Makefile ++++ b/SPQR/Lib/Makefile +@@ -13,7 +13,7 @@ ccode: all + include ../../SuiteSparse_config/SuiteSparse_config.mk + + # SPQR depends on CHOLMOD, AMD, COLAMD, LAPACK, the BLAS and SuiteSparse_config +-LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS) ++LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS) $(TBB) + + # compile and install in SuiteSparse/lib + library: + diff -r ba61e5f8161e -r af2966900462 src/suitesparse-1.patch --- a/src/suitesparse-1.patch Tue Oct 15 18:55:54 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -This file is part of MXE. -See index.html for further information. - -From 169f88aef7ff1d302aa3eac48d779d009780b87f Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Sun, 20 May 2012 23:41:27 +0200 -Subject: [PATCH] build lib not demo - ---- - CHOLMOD/Makefile | 2 +- - UMFPACK/Makefile | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CHOLMOD/Makefile b/CHOLMOD/Makefile -index 97911ef..4a3bcae 100644 ---- a/CHOLMOD/Makefile -+++ b/CHOLMOD/Makefile -@@ -14,7 +14,7 @@ include ../SuiteSparse_config/SuiteSparse_config.mk - - # Compile the C-callable libraries and the Demo programs. - all: -- ( cd Demo ; $(MAKE) ) -+ ( cd Lib ; $(MAKE) ) - - # Compile the C-callable libraries only. - library: -diff --git a/UMFPACK/Makefile b/UMFPACK/Makefile -index 622ee39..e19cd2f 100644 ---- a/UMFPACK/Makefile -+++ b/UMFPACK/Makefile -@@ -12,7 +12,7 @@ include ../SuiteSparse_config/SuiteSparse_config.mk - - # compile all C code (except hb, fortran, and fortran64), incl. AMD and demos - all: -- ( cd Demo ; $(MAKE) ) -+ ( cd Lib ; $(MAKE) ) - - # compile just the C-callable UMFPACK library - library: --- -1.7.10.4 - diff -r ba61e5f8161e -r af2966900462 src/suitesparse-2-metis.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/suitesparse-2-metis.patch Tue Oct 15 19:13:54 2019 +0200 @@ -0,0 +1,85 @@ +This file is part of MXE. +See index.html for further information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Mon, 20 Nov 2017 22:54:25 +1100 +Subject: [PATCH 1/3] mingw-w64-does-not-have-sys-resource-h + +taken from: +https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0001-mingw-w64-does-not-have-sys-resource-h.patch + +diff --git a/metis-5.1.0/GKlib/gk_arch.h b/metis-5.1.0/GKlib/gk_arch.h +index 1111111..2222222 100644 +--- a/metis-5.1.0/GKlib/gk_arch.h ++++ b/metis-5.1.0/GKlib/gk_arch.h +@@ -41,7 +41,9 @@ + #endif + #include + #include +- #include ++ #ifndef __MINGW32__ ++ #include ++ #endif + #include + #endif + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Mon, 20 Nov 2017 22:55:34 +1100 +Subject: [PATCH 2/3] mingw-w64-do-not-use-reserved-double-underscored-names + +taken from: +https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0002-mingw-w64-do-not-use-reserved-double-underscored-names.patch + +diff --git a/metis-5.1.0/GKlib/gk_getopt.h b/metis-5.1.0/GKlib/gk_getopt.h +index 1111111..2222222 100644 +--- a/metis-5.1.0/GKlib/gk_getopt.h ++++ b/metis-5.1.0/GKlib/gk_getopt.h +@@ -52,10 +52,10 @@ struct gk_option { + + + /* Function prototypes */ +-extern int gk_getopt(int __argc, char **__argv, char *__shortopts); +-extern int gk_getopt_long(int __argc, char **__argv, char *__shortopts, ++extern int gk_getopt(int gk_argc, char **gk_argv, char *__shortopts); ++extern int gk_getopt_long(int gk_argc, char **gk_argv, char *__shortopts, + struct gk_option *__longopts, int *__longind); +-extern int gk_getopt_long_only (int __argc, char **__argv, ++extern int gk_getopt_long_only (int gk_argc, char **gk_argv, + char *__shortopts, struct gk_option *__longopts, int *__longind); + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Mon, 20 Nov 2017 22:58:20 +1100 +Subject: [PATCH 3/3] WIN32-Install-RUNTIME-to-bin + +taken from: +https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0003-WIN32-Install-RUNTIME-to-bin.patch + +diff --git a/metis-5.1.0/libmetis/CMakeLists.txt b/metis-5.1.0/libmetis/CMakeLists.txt +index 1111111..2222222 100644 +--- a/metis-5.1.0/libmetis/CMakeLists.txt ++++ b/metis-5.1.0/libmetis/CMakeLists.txt +@@ -8,9 +8,15 @@ if(UNIX) + target_link_libraries(metis m) + endif() + ++if(WIN32) ++ set(RT_DEST bin) ++else() ++ set(RT_DEST lib) ++endif() ++ + if(METIS_INSTALL) + install(TARGETS metis + LIBRARY DESTINATION lib +- RUNTIME DESTINATION lib ++ RUNTIME DESTINATION ${RT_DEST} + ARCHIVE DESTINATION lib) + endif() + diff -r ba61e5f8161e -r af2966900462 src/suitesparse.mk --- a/src/suitesparse.mk Tue Oct 15 18:55:54 2019 +0200 +++ b/src/suitesparse.mk Tue Oct 15 19:13:54 2019 +0200 @@ -2,13 +2,13 @@ # See index.html for further information. PKG := suitesparse -$(PKG)_VERSION := 4.2.1 -$(PKG)_CHECKSUM := 2fec3bf93314bd14cbb7470c0a2c294988096ed6 +$(PKG)_VERSION := 4.5.6 +$(PKG)_CHECKSUM := 06ed5f6f61bfe09f08ce03971a24381a627446b1 $(PKG)_SUBDIR := SuiteSparse $(PKG)_FILE := SuiteSparse-$($(PKG)_VERSION).tar.gz $(PKG)_URL := http://faculty.cse.tamu.edu/davis/SuiteSparse/$($(PKG)_FILE) $(PKG)_URL_2 := https://distfiles.macports.org/SuiteSparse/$($(PKG)_FILE) -$(PKG)_DEPS := blas lapack +$(PKG)_DEPS := openblas lapack libgomp ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) $(PKG)_DESTDIR := @@ -22,22 +22,6 @@ head -1 endef -$(PKG)_STATICLIBS_1 := \ - SuiteSparse_config/libsuitesparseconfig.a \ - SuiteSparse_config/xerbla/libcerbla.a \ - AMD/Lib/libamd.a \ - CAMD/Lib/libcamd.a \ - COLAMD/Lib/libcolamd.a \ - CCOLAMD/Lib/libccolamd.a \ - CSparse/Lib/libcsparse.a \ - CXSparse/Lib/libcxsparse.a \ - CHOLMOD/Lib/libcholmod.a \ - SPQR/Lib/libspqr.a \ - BTF/Lib/libbtf.a \ - LDL/Lib/libldl.a \ - KLU/Lib/libklu.a \ - RBio/Lib/librbio.a \ - UMFPACK/Lib/libumfpack.a $(PKG)_CPPFLAGS := -DNTIMER @@ -49,78 +33,58 @@ endif endif -define $(PKG)_BUILD - # exclude demos - find '$(1)' -name 'Makefile' \ - -exec $(SED) -i 's,( cd Demo,#( cd Demo,' {} \; +$(PKG)_MAKE_OPTS = \ + UNAME=Windows \ + CPPFLAGS="$($(PKG)_CPPFLAGS)" \ + CC='$(MXE_CC)' \ + CXX='$(MXE_CXX)' \ + CPLUSPLUS='$(MXE_CXX)' \ + F77='$(MXE_F77)' \ + FFLAGS='$(MXE_FFLAGS)' \ + CFLAGS='$(MXE_CFLAGS)' \ + CXXFLAGS='$(MXE_CXXFLAGS)' \ + AR='$(MXE_AR)' \ + RANLIB='$(MXE_RANLIB)' \ + BLAS="`'$(TARGET)-pkg-config' --libs openblas`" \ + LAPACK='-llapack' \ + CHOLMOD_CONFIG='-DNPARTITION' - if test $(MXE_SYSTEM) = msvc; then \ - (cd '$(1)'; \ - (cd CXSparse_newfiles && tar cfz ../CXSparse_newfiles.tar.gz .); \ - ./CSparse_to_CXSparse CSparse CXSparse CXSparse_newfiles.tar.gz) \ - fi +$(PKG)_cputype = $(shell uname -m | sed "s/\\ /_/g") +$(PKG)_systype = $(shell uname -s) +$(PKG)_METIS_BUILDDIR = build/$($(PKG)_systype)-$($(PKG)_cputype) +$(PKG)_METIS_CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1 \ + -DGKLIB_PATH=$(1)/metis-5.1.0/GKlib \ + -DCMAKE_INSTALL_PREFIX=$(1) \ + -DSHARED=1 + +define $(PKG)_BUILD + # build metis + mkdir $(1)/metis-5.1.0/$($(PKG)_METIS_BUILDDIR) + cd $(1)/metis-5.1.0/$($(PKG)_METIS_BUILDDIR) && \ + cmake $(1)/metis-5.1.0 \ + -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ + $($(PKG)_METIS_CONFIG_FLAGS) + $(MAKE) -C '$(1)/metis-5.1.0/$($(PKG)_METIS_BUILDDIR)' metis -j '$(JOBS)' + + # install metis + mkdir -p $($(PKG)_DESTDIR)$(HOST_LIBDIR) + mkdir -p $($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/ + cp $(1)/metis-5.1.0/$($(PKG)_METIS_BUILDDIR)/libmetis/libmetis.* $($(PKG)_DESTDIR)$(HOST_BINDIR) + cp $(1)/metis-5.1.0/include/metis.h $($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/ + chmod 755 $($(PKG)_DESTDIR)$(HOST_BINDIR)/libmetis.* + chmod 644 $($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/metis.h # build all $(MAKE) -C '$(1)' -j '$(JOBS)' \ - CPPFLAGS="$($(PKG)_CPPFLAGS)" \ - CC='$(MXE_CC)' \ - CXX='$(MXE_CXX)' \ - CPLUSPLUS='$(MXE_CXX)' \ - F77='$(MXE_F77)' \ - FFLAGS='$(MXE_FFLAGS)' \ - CFLAGS='$(MXE_CFLAGS)' \ - CXXFLAGS='$(MXE_CXXFLAGS)' \ - AR='$(MXE_AR)' \ - RANLIB='$(MXE_RANLIB)' \ - BLAS='-lblas -lgfortran -lgfortranbegin' \ - CHOLMOD_CONFIG='-DNPARTITION' - - # install library files - $(INSTALL) -d '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' + $($(PKG)_MAKE_OPTS) \ + MY_METIS_LIB=$($(PKG)_DESTDIR)$(HOST_BINDIR) \ + library - for f in $(addprefix $(1)/, $($(PKG)_STATICLIBS_1)); do \ - if [ $(BUILD_SHARED) = yes ]; then \ - lib=`basename $$f .a`; \ - dir=`dirname $$f`; \ - echo "building and installing shared libraries for $$lib"; \ - deplibs=""; \ - case $$lib in \ - libcholmod) \ - deplibs="-lamd -lcamd -lcolamd -lccolamd -lsuitesparseconfig -llapack -lblas"; \ - ;; \ - libklu) \ - deplibs="-lbtf -lamd -lcolamd -lsuitesparseconfig"; \ - ;; \ - librbio) \ - deplibs="-lsuitesparseconfig"; \ - ;; \ - libspqr) \ - deplibs="-lcholmod -lsuitesparseconfig -llapack -lblas"; \ - ;; \ - libumfpack) \ - deplibs="-lcholmod -lamd -lsuitesparseconfig -lblas"; \ - ;; \ - esac; \ - if [ -n "$deplibs" ]; then \ - echo " deplibs = $$deplibs"; \ - fi; \ - $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_CXX)' $$f --install '$(INSTALL)' --libdir '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' --bindir '$($(PKG)_DESTDIR)$(HOST_BINDIR)' $$deplibs; \ - fi; \ - done + # install libraries and headers + $(MAKE) -C '$(1)' -j 1 install \ + $($(PKG)_MAKE_OPTS) \ + INSTALL_INCLUDE='$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' \ + INSTALL_LIB='$($(PKG)_DESTDIR)$(HOST_LIBDIR)' \ + INSTALL_SO='$($(PKG)_DESTDIR)$(HOST_BINDIR)' +endef - # install include files - $(INSTALL) -d '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/SuiteSparse_config/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/AMD/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/BTF/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/CAMD/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/CCOLAMD/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/CHOLMOD/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/COLAMD/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/CSparse/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/CXSparse/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/KLU/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/LDL/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/SPQR/Include/'* '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' - $(INSTALL) -m644 '$(1)/UMFPACK/Include/'*.h '$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' -endef