comparison 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
comparison
equal deleted inserted replaced
5503:1541641533a6 5504:9f9ed6a325bd
16 define $(PKG)_UPDATE 16 define $(PKG)_UPDATE
17 echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; 17 echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
18 echo $($(PKG)_VERSION) 18 echo $($(PKG)_VERSION)
19 endef 19 endef
20 20
21 $(PKG)_CMAKE_FLAGS := \ 21 ifeq ($(MXE_WINDOWS_BUILD),yes)
22 -DEXAMPLES_ENABLE_C=OFF \ 22 $(PKG)_SUITESPARSECONFIG_LIBRARY := $(HOST_LIBDIR)/libsuitesparseconfig.dll.a
23 -DKLU_ENABLE=ON \ 23 else
24 -DKLU_INCLUDE_DIR=$(HOST_INCDIR)/suitesparse \ 24 $(PKG)_SUITESPARSECONFIG_LIBRARY := $(HOST_LIBDIR)/libsuitesparseconfig.so
25 -DKLU_LIBRARY_DIR=$(HOST_LIBDIR) \ 25 endif
26 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
27 -DBUILD_ARKODE=OFF \
28 -DBUILD_CVODE=OFF \
29 -DBUILD_CVODES=OFF \
30 -DBUILD_IDA=ON \
31 -DBUILD_IDAS=OFF \
32 -DBUILD_KINSOL=OFF \
33 -DBUILD_CPODES=OFF
34 26
35 # Keep "sunindextype" in sync with LAPACK (bug #58795) 27 # Keep "sunindextype" in sync with LAPACK (bug #58795)
36 ifeq ($(ENABLE_FORTRAN_INT64),yes) 28 ifeq ($(ENABLE_FORTRAN_INT64),yes)
37 $(PKG)_CMAKE_FLAGS += -DSUNDIALS_INDEX_SIZE=64 29 $(PKG)_INDEX_SIZE := 64
38 else 30 else
39 $(PKG)_CMAKE_FLAGS += -DSUNDIALS_INDEX_SIZE=32 31 $(PKG)_INDEX_SIZE := 32
40 endif 32 endif
41 33
42 ifeq ($(MXE_WINDOWS_BUILD),yes) 34 define $(PKG)_BUILD
35 mkdir '$(1).build'
36 cd '$(1).build' && cmake \
37 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
38 -DBUILD_ARKODE=OFF \
39 -DBUILD_CVODE=OFF \
40 -DBUILD_CVODES=OFF \
41 -DBUILD_IDA=ON \
42 -DBUILD_IDAS=OFF \
43 -DBUILD_KINSOL=OFF \
44 -DBUILD_CPODES=OFF \
45 -DEXAMPLES_ENABLE_C=OFF \
46 -DSUITESPARSECONFIG_LIBRARY=$($(PKG)_SUITESPARSECONFIG_LIBRARY) \
47 -DSUNDIALS_INDEX_SIZE=$($(PKG)_INDEX_SIZE) \
48 -DKLU_ENABLE=ON \
49 -DKLU_INCLUDE_DIR=$(HOST_INCDIR)/suitesparse \
50 -DKLU_LIBRARY_DIR=$(HOST_LIBDIR) \
51 '$(1)'
52 $(MAKE) -C '$(1).build' -j '$(JOBS)' install DESTDIR='$(3)' VERBOSE=1
43 53
44 $(PKG)_CMAKE_FLAGS += \ 54 if [ $(MXE_SYSTEM) = mingw ]; then \
45 -DSUITESPARSECONFIG_LIBRARY=$(HOST_LIBDIR)/libsuitesparseconfig.dll.a 55 echo "Install dlls"; \
46 56 $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \
47 define $(PKG)_BUILD 57 mv '$(3)$(HOST_LIBDIR)/'libsundials*.dll '$(3)$(HOST_BINDIR)/'; \
48 mkdir '$(1).build' 58 fi
49 cd '$(1).build' && cmake \ 59 endef
50 $($(PKG)_CMAKE_FLAGS) \
51 '$(1)'
52 $(MAKE) -C '$(1).build' -j '$(JOBS)' install DESTDIR='$(3)' VERBOSE=1
53
54 if [ $(MXE_SYSTEM) = mingw ]; then \
55 echo "Install dlls"; \
56 $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \
57 mv '$(3)$(HOST_LIBDIR)/'libsundials*.dll '$(3)$(HOST_BINDIR)/'; \
58 fi
59 endef
60
61 else
62
63 define $(PKG)_BUILD
64 mkdir '$(1).build'
65 cd '$(1).build' && cmake \
66 $($(PKG)_CMAKE_FLAGS) \
67 '$(1)'
68 $(MAKE) -C '$(1).build' -j '$(JOBS)' install VERBOSE=1
69 endef
70
71 endif