diff --git a/src/suitesparse-1-fixes.patch b/src/suitesparse-1-fixes.patch new file mode 100644 index 00000000..97a18be5 --- /dev/null +++ b/src/suitesparse-1-fixes.patch @@ -0,0 +1,717 @@ +This file is part of MXE. See LICENSE.md for licensing 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 --git a/src/suitesparse-1.patch b/src/suitesparse-1.patch deleted file mode 100644 index 9e191834..00000000 --- a/src/suitesparse-1.patch +++ /dev/null @@ -1,41 +0,0 @@ -This file is part of MXE. See LICENSE.md for licensing 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 --git a/src/suitesparse.mk b/src/suitesparse.mk index 9b2c9959..e15b950b 100644 --- a/src/suitesparse.mk +++ b/src/suitesparse.mk @@ -3,13 +3,13 @@ PKG := suitesparse $(PKG)_WEBSITE := http://faculty.cse.tamu.edu/davis/suitesparse.html $(PKG)_DESCR := SuiteSparse -$(PKG)_VERSION := 4.2.1 -$(PKG)_CHECKSUM := e8023850bc30742e20a3623fabda02421cb5774b980e3e7c9c6d9e7e864946bd +$(PKG)_VERSION := 4.5.6 +$(PKG)_CHECKSUM := de5fb496bdc029e55955e05d918a1862a177805fbbd5b957e8b5ce6632f6c77e $(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 := gcc blas lapack +$(PKG)_DEPS := gcc intel-tbb metis openblas define $(PKG)_UPDATE $(WGET) -q -O- 'http://faculty.cse.tamu.edu/davis/suitesparse.html' | \ @@ -17,42 +17,74 @@ define $(PKG)_UPDATE head -1 endef -define $(PKG)_BUILD - # exclude demos - find '$(1)' -name 'Makefile' \ - -exec $(SED) -i 's,( cd Demo,#( cd Demo,' {} \; +$(PKG)_MAKE_OPTS = \ + UNAME=Windows \ + AR='$(TARGET)-ar' \ + CC='$(TARGET)-gcc' \ + CXX='$(TARGET)-g++' \ + F77='$(TARGET)-gfortran' \ + RANLIB='$(TARGET)-ranlib' \ + BLAS="`'$(TARGET)-pkg-config' --libs openblas`" \ + LAPACK="`'$(TARGET)-pkg-config' --libs openblas`" \ + MY_METIS_LIB="`'$(TARGET)-pkg-config' --libs metis`" \ + TBB="`'$(TARGET)-pkg-config' --libs intel-tbb`" \ + SPQR_CONFIG="-DHAVE_TBB" - # build all - $(MAKE) -C '$(1)' -j '$(JOBS)' \ - CC='$(TARGET)-gcc' \ - CPLUSPLUS='$(TARGET)-g++' \ - CXX='$(TARGET)-g++' \ - F77='$(TARGET)-gfortran' \ - AR='$(TARGET)-ar' \ - RANLIB='$(TARGET)-ranlib' \ - BLAS='-lblas -lgfortran -lgfortranbegin -lquadmath' \ - CHOLMOD_CONFIG='-DNPARTITION' +define $(PKG)_PC_TEST + # create pkg-config file for includes and base deps + $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig' + (echo 'Name: suitesparseconfig'; \ + echo 'Version: $($(PKG)_VERSION)'; \ + echo 'Description: SuiteSparse includes and deps'; \ + echo 'Requires: intel-tbb openblas metis'; \ + echo 'Libs: -lsuitesparseconfig'; \ + echo 'Cflags: -I"$(PREFIX)/$(TARGET)/include/suitesparse"'; \ + ) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/suitesparseconfig.pc' + + '$(TARGET)-g++' \ + -W -Wall \ + '$(SOURCE_DIR)/SPQR/Demo/qrdemo.cpp' \ + -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \ + -lspqr -lcholmod -lcolamd -lccolamd -lcamd -lamd \ + `'$(TARGET)-pkg-config' suitesparseconfig --cflags --libs ` + + # batch file to run test program + cp '$(SOURCE_DIR)/SPQR/Matrix/a2.mtx' '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-matrix.txt' + (printf 'test-$(PKG).exe < test-$(PKG)-matrix.txt\r\n'; \ + ) > '$(PREFIX)/$(TARGET)/bin/test-$(PKG).bat' +endef + +define $(PKG)_BUILD_STATIC + # build libraries + $(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' \ + $($(PKG)_MAKE_OPTS) \ + static # install library files $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib' - find '$(1)' -name '*.a' \ + find '$(SOURCE_DIR)' -name 'lib*.a' \ -exec $(INSTALL) -m644 {} '$(PREFIX)/$(TARGET)/lib/' \; - # install include files - $(INSTALL) -d '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/SuiteSparse_config/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/AMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/BTF/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/CAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/CCOLAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/CHOLMOD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/COLAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/CSparse/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/CXSparse/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/KLU/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/LDL/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/SPQR/Include/'* '$(PREFIX)/$(TARGET)/include/suitesparse/' - $(INSTALL) -m644 '$(1)/UMFPACK/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/' + # install headers + $(MAKE) -C '$(SOURCE_DIR)' -j 1 install \ + $($(PKG)_MAKE_OPTS) \ + INSTALL_INCLUDE='$(PREFIX)/$(TARGET)/include/suitesparse' + + # pc and test + $($(PKG)_PC_TEST) endef -$(PKG)_BUILD_SHARED = +define $(PKG)_BUILD_SHARED + # build and install libraries and headers + $(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' \ + $($(PKG)_MAKE_OPTS) \ + library + $(MAKE) -C '$(SOURCE_DIR)' -j 1 install \ + $($(PKG)_MAKE_OPTS) \ + INSTALL_INCLUDE='$(PREFIX)/$(TARGET)/include/suitesparse' \ + INSTALL_LIB='$(PREFIX)/$(TARGET)/lib' \ + INSTALL_SO='$(PREFIX)/$(TARGET)/bin' + + # pc and test + $($(PKG)_PC_TEST) +endef