Mercurial > hg > mxe
changeset 3068:7811f0697a7a master@1
fix suitesparse build
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 28 Nov 2012 21:23:43 -0500 |
parents | b11464811f7f |
children | 8d89eccf60a6 |
files | src/suitesparse.mk |
diffstat | 1 files changed, 37 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/suitesparse.mk +++ b/src/suitesparse.mk @@ -15,6 +15,23 @@ 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 \ + SPQR/Lib/libspqr.a \ + BTF/Lib/libbtf.a \ + LDL/Lib/libldl.a \ + KLU/Lib/libklu.a \ + RBio/Lib/librbio.a \ + CHOLMOD/Lib/libcholmod.a \ + UMFPACK/Lib/libumfpack.a + define $(PKG)_BUILD # exclude demos find '$(1)' -name 'Makefile' \ @@ -23,6 +40,7 @@ # build all $(MAKE) -C '$(1)' -j '$(JOBS)' \ CC='$(TARGET)-gcc' \ + CXX='$(TARGET)-g++' \ CPLUSPLUS='$(TARGET)-g++' \ F77='$(TARGET)-gfortran' \ AR='$(TARGET)-ar' \ @@ -32,24 +50,39 @@ # install library files $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib' - for f in `find '$(1)' -name '*.a'`; do \ + + 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 -lcolamd -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 '$(TARGET)-ar' --ld '$(TARGET)-g++' $$f $$deplibs; \ $(INSTALL) -d '$(PREFIX)/$(TARGET)/bin'; \ - $(INSTALL) -m755 $$dir/$$lib.dll.a '$(PREFIX)/$(TARGET)/lib/'; \ - $(INSTALL) -m755 $$dir/$$lib.dll '$(PREFIX)/$(TARGET)/bin/'; \ + $(INSTALL) -m755 $$dir/$$lib.dll.a $(PREFIX)/$(TARGET)/lib/$$lib.dll.a; \ + $(INSTALL) -m755 $$dir/$$lib.dll $(PREFIX)/$(TARGET)/bin/$$lib.dll; \ fi; \ - $(INSTALL) -m644 $$f '$(PREFIX)/$(TARGET)/lib/'; \ + $(INSTALL) -m644 $$f $(PREFIX)/$(TARGET)/lib/$$lib.a; \ done # install include files