diff src/sundials-ida.mk @ 5504:9f9ed6a325bd

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.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 31 Jul 2020 14:59:35 +0200
parents 1541641533a6
children d862fd40cc42
line wrap: on
line diff
--- 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