# HG changeset patch # User Markus Mützel # Date 1596200375 -7200 # Node ID 9f9ed6a325bdc18c104376f79f635db50ec22754 # Parent 1541641533a6f559a2f96c4b16964e5631b6da9f Build SUNDIALS IDA for Linux with KLU (bug #58795). * src/suitesparse.mk: Create symlinks to libraries without version suffix. * src/sundials-ida.mk: Unify build rules for all other platforms. diff -r 1541641533a6 -r 9f9ed6a325bd src/suitesparse.mk --- a/src/suitesparse.mk Tue Jul 28 17:10:46 2020 +0200 +++ b/src/suitesparse.mk Fri Jul 31 14:59:35 2020 +0200 @@ -97,5 +97,14 @@ INSTALL_INCLUDE='$($(PKG)_DESTDIR)$(HOST_INCDIR)/suitesparse/' \ INSTALL_LIB='$($(PKG)_DESTDIR)$(HOST_LIBDIR)' \ INSTALL_SO='$($(PKG)_SO_DIR)' + + # some dependers (e.g. SUNDIALS IDA) won't find libraries with version suffix + if [ $(MXE_WINDOWS_BUILD) = no ]; then \ + cd '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' && ln -sf libsuitesparseconfig.so.$($(PKG)_VERSION) libsuitesparseconfig.so; \ + cd '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' && ln -sf libamd.so.2 libamd.so; \ + cd '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' && ln -sf libbtf.so.1 libbtf.so; \ + cd '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' && ln -sf libcolamd.so.2 libcolamd.so; \ + cd '$($(PKG)_DESTDIR)$(HOST_LIBDIR)' && ln -sf libklu.so.1 libklu.so; \ + fi endef diff -r 1541641533a6 -r 9f9ed6a325bd src/sundials-ida.mk --- a/src/sundials-ida.mk Tue Jul 28 17:10:46 2020 +0200 +++ b/src/sundials-ida.mk Fri Jul 31 14:59:35 2020 +0200 @@ -18,54 +18,42 @@ echo $($(PKG)_VERSION) endef -$(PKG)_CMAKE_FLAGS := \ - -DEXAMPLES_ENABLE_C=OFF \ - -DKLU_ENABLE=ON \ - -DKLU_INCLUDE_DIR=$(HOST_INCDIR)/suitesparse \ - -DKLU_LIBRARY_DIR=$(HOST_LIBDIR) \ - -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ - -DBUILD_ARKODE=OFF \ - -DBUILD_CVODE=OFF \ - -DBUILD_CVODES=OFF \ - -DBUILD_IDA=ON \ - -DBUILD_IDAS=OFF \ - -DBUILD_KINSOL=OFF \ - -DBUILD_CPODES=OFF +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_SUITESPARSECONFIG_LIBRARY := $(HOST_LIBDIR)/libsuitesparseconfig.dll.a +else + $(PKG)_SUITESPARSECONFIG_LIBRARY := $(HOST_LIBDIR)/libsuitesparseconfig.so +endif # Keep "sunindextype" in sync with LAPACK (bug #58795) ifeq ($(ENABLE_FORTRAN_INT64),yes) - $(PKG)_CMAKE_FLAGS += -DSUNDIALS_INDEX_SIZE=64 + $(PKG)_INDEX_SIZE := 64 else - $(PKG)_CMAKE_FLAGS += -DSUNDIALS_INDEX_SIZE=32 + $(PKG)_INDEX_SIZE := 32 endif -ifeq ($(MXE_WINDOWS_BUILD),yes) - - $(PKG)_CMAKE_FLAGS += \ - -DSUITESPARSECONFIG_LIBRARY=$(HOST_LIBDIR)/libsuitesparseconfig.dll.a - - define $(PKG)_BUILD - mkdir '$(1).build' - cd '$(1).build' && cmake \ - $($(PKG)_CMAKE_FLAGS) \ - '$(1)' - $(MAKE) -C '$(1).build' -j '$(JOBS)' install DESTDIR='$(3)' VERBOSE=1 +define $(PKG)_BUILD + mkdir '$(1).build' + cd '$(1).build' && cmake \ + -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ + -DBUILD_ARKODE=OFF \ + -DBUILD_CVODE=OFF \ + -DBUILD_CVODES=OFF \ + -DBUILD_IDA=ON \ + -DBUILD_IDAS=OFF \ + -DBUILD_KINSOL=OFF \ + -DBUILD_CPODES=OFF \ + -DEXAMPLES_ENABLE_C=OFF \ + -DSUITESPARSECONFIG_LIBRARY=$($(PKG)_SUITESPARSECONFIG_LIBRARY) \ + -DSUNDIALS_INDEX_SIZE=$($(PKG)_INDEX_SIZE) \ + -DKLU_ENABLE=ON \ + -DKLU_INCLUDE_DIR=$(HOST_INCDIR)/suitesparse \ + -DKLU_LIBRARY_DIR=$(HOST_LIBDIR) \ + '$(1)' + $(MAKE) -C '$(1).build' -j '$(JOBS)' install DESTDIR='$(3)' VERBOSE=1 - if [ $(MXE_SYSTEM) = mingw ]; then \ - echo "Install dlls"; \ - $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \ - mv '$(3)$(HOST_LIBDIR)/'libsundials*.dll '$(3)$(HOST_BINDIR)/'; \ - fi - endef - -else - - define $(PKG)_BUILD - mkdir '$(1).build' - cd '$(1).build' && cmake \ - $($(PKG)_CMAKE_FLAGS) \ - '$(1)' - $(MAKE) -C '$(1).build' -j '$(JOBS)' install VERBOSE=1 - endef - -endif + if [ $(MXE_SYSTEM) = mingw ]; then \ + echo "Install dlls"; \ + $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \ + mv '$(3)$(HOST_LIBDIR)/'libsundials*.dll '$(3)$(HOST_BINDIR)/'; \ + fi +endef