Skip to content

Commit 133fd01

Browse files
authored
Merge pull request #2861 from stan-dev/feature/libsundials
Fixing linking Sundials as an external library
2 parents 8c4e644 + 2205e78 commit 133fd01

4 files changed

Lines changed: 18 additions & 13 deletions

File tree

make/compiler_flags

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,8 @@ endif
314314

315315
CXXFLAGS += $(CXXFLAGS_LANG) $(CXXFLAGS_OS) $(CXXFLAGS_WARNINGS) $(CXXFLAGS_BOOST) $(CXXFLAGS_EIGEN) $(CXXFLAGS_OPENCL) $(CXXFLAGS_MPI) $(CXXFLAGS_THREADS) $(CXXFLAGS_TBB) $(CXXFLAGS_FLTO) $(CXXFLAGS_OPTIM) $(CXXFLAGS_NO_RANGE_CHECKS) -O$(O) $(INC)
316316
CPPFLAGS += $(CPPFLAGS_LANG) $(CPPFLAGS_OS) $(CPPFLAGS_WARNINGS) $(CPPFLAGS_BOOST) $(CPPFLAGS_EIGEN) $(CPPFLAGS_OPENCL) $(CPPFLAGS_TBB) $(CPPFLAGS_MPI) $(CPPFLAGS_TBB) $(CPPFLAGS_FLTO) $(CPPFLAGS_OPTIM) $(CXXFLAGS_NO_RANGE_CHECKS)
317-
LDFLAGS += $(LDFLAGS_LANG) $(LDFLAGS_OS) $(LDFLAGS_WARNINGS) $(LDFLAGS_BOOST) $(LDFLAGS_EIGEN) $(LDFLAGS_OPENCL) $(LDFLAGS_MPI) $(LDFLAGS_TBB) $(LDFLAGS_FLTO) $(LDFLAGS_OPTIM)
318-
LDLIBS += $(LDLIBS_LANG) $(LDLIBS_OS) $(LDLIBS_WARNINGS) $(LDLIBS_BOOST) $(LDLIBS_EIGEN) $(LDLIBS_OPENCL) $(LDLIBS_MPI) $(LDLIBS_TBB)
317+
LDFLAGS += $(LDFLAGS_LANG) $(LDFLAGS_OS) $(LDFLAGS_WARNINGS) $(LDFLAGS_EIGEN) $(LDFLAGS_BOOST) $(LDFLAGS_SUNDIALS) $(LDFLAGS_TBB) $(LDFLAGS_OPENCL) $(LDFLAGS_MPI) $(LDFLAGS_FLTO) $(LDFLAGS_OPTIM)
318+
LDLIBS += $(LDLIBS_LANG) $(LDLIBS_OS) $(LDLIBS_WARNINGS) $(LDLIBS_EIGEN) $(LDLIBS_BOOST) $(LDLIBS_SUNDIALS) $(LDLIBS_TBB) $(LDLIBS_OPENCL) $(LDLIBS_MPI)
319319

320320
.PHONY: print-compiler-flags
321321
print-compiler-flags:
@@ -354,8 +354,9 @@ print-compiler-flags:
354354
@echo ' LDLIBS:'
355355
@echo ' - LDLIBS_LANG ' $(LDLIBS_LANG)
356356
@echo ' - LDLIBS_WARNINGS ' $(LDLIBS_WARNINGS)
357-
@echo ' - LDLIBS_BOOST ' $(LDLIBS_BOOST)
358357
@echo ' - LDLIBS_EIGEN ' $(LDLIBS_EIGEN)
358+
@echo ' - LDLIBS_BOOST ' $(LDLIBS_BOOST)
359+
@echo ' - LDLIBS_SUNDIALS ' $(LDLIBS_SUNDIALS)
359360
@echo ' - LDLIBS_OS ' $(LDLIBS_OS)
360361
@echo ' - LDLIBS_GTEST ' $(LDLIBS_GTEST)
361362
@echo ' - LDLIBS_OPENCL ' $(LDLIBS_OPENCL)
@@ -364,8 +365,9 @@ print-compiler-flags:
364365
@echo ' LDFLAGS:'
365366
@echo ' - LDFLAGS_LANG ' $(LDFLAGS_LANG)
366367
@echo ' - LDFLAGS_WARNINGS ' $(LDFLAGS_WARNINGS)
367-
@echo ' - LDFLAGS_BOOST ' $(LDFLAGS_BOOST)
368368
@echo ' - LDFLAGS_EIGEN ' $(LDFLAGS_EIGEN)
369+
@echo ' - LDFLAGS_BOOST ' $(LDFLAGS_BOOST)
370+
@echo ' - LDFLAGS_SUNDIALS ' $(LDFLAGS_SUNDIALS)
369371
@echo ' - LDFLAGS_OS ' $(LDFLAGS_OS)
370372
@echo ' - LDFLAGS_GTEST ' $(LDFLAGS_GTEST)
371373
@echo ' - LDFLAGS_OPENCL ' $(LDFLAGS_OPENCL)

make/libraries

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,17 @@ $(SUNDIALS)/lib/libsundials_nvecserial.a: $(SUNDIALS_NVECSERIAL)
7979
@mkdir -p $(dir $@)
8080
$(AR) -rs $@ $^
8181

82-
LIBSUNDIALS := $(SUNDIALS)/lib/libsundials_nvecserial.a $(SUNDIALS)/lib/libsundials_cvodes.a $(SUNDIALS)/lib/libsundials_idas.a $(SUNDIALS)/lib/libsundials_kinsol.a
82+
SUNDIALS_TARGETS ?= $(SUNDIALS)/lib/libsundials_nvecserial.a $(SUNDIALS)/lib/libsundials_cvodes.a $(SUNDIALS)/lib/libsundials_idas.a $(SUNDIALS)/lib/libsundials_kinsol.a
83+
84+
# FIXME(dl, 02/2023): remove LIBSUNDIALS variable after replacing use in Stan and CmdStan with SUNDIALS_TARGETS
85+
LIBSUNDIALS = $(SUNDIALS_TARGETS)
8386

8487
STAN_SUNDIALS_HEADERS := $(call findfiles,$(MATH)stan,*cvodes*.hpp) $(call findfiles,$(MATH)stan,*idas*.hpp) $(call findfiles,$(MATH)stan,*kinsol*.hpp)
85-
$(STAN_SUNDIALS_HEADERS) : $(LIBSUNDIALS)
88+
$(STAN_SUNDIALS_HEADERS) : $(SUNDIALS_TARGETS)
8689

8790
clean-sundials:
8891
@echo ' cleaning sundials targets'
89-
$(RM) $(wildcard $(sort $(SUNDIALS_CVODES) $(SUNDIALS_IDAS) $(SUNDIALS_KINSOL) $(SUNDIALS_NVECSERIAL) $(LIBSUNDIALS)))
92+
$(RM) $(wildcard $(sort $(SUNDIALS_CVODES) $(SUNDIALS_IDAS) $(SUNDIALS_KINSOL) $(SUNDIALS_NVECSERIAL) $(SUNDIALS_TARGETS)))
9093

9194

9295
############################################################

make/standalone

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ MATH ?= $(realpath $(MATH_MAKE)..)/
2323
# The sundials libraries are only needed for
2424
# programs using the stiff ode solver or the
2525
# algebra solver
26-
MATH_LIBS ?= $(LIBSUNDIALS) $(MPI_TARGETS) $(TBB_TARGETS)
26+
MATH_LIBS ?= $(SUNDIALS_TARGETS) $(MPI_TARGETS) $(TBB_TARGETS)
2727

2828
LDLIBS += $(MATH_LIBS)
2929

make/tests

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ test/unit/multiple_translation_units_test$(EXE): test/unit/libmultiple.so
5656
##
5757

5858
EXPRESSION_TESTS := $(subst .cpp,$(EXE),$(call findfiles,test/expressions,*_test.cpp))
59-
$(EXPRESSION_TESTS) : $(LIBSUNDIALS)
59+
$(EXPRESSION_TESTS) : $(SUNDIALS_TARGETS)
6060

6161

6262
############################################################
@@ -65,7 +65,7 @@ $(EXPRESSION_TESTS) : $(LIBSUNDIALS)
6565
##
6666

6767
CVODES_TESTS := $(subst .cpp,$(EXE),$(call findfiles,test,*cvodes*_test.cpp) $(call findfiles,test,*_bdf_*_test.cpp) $(call findfiles,test,*_adams_*_test.cpp) $(call findfiles,test,*_ode_typed_*test.cpp) $(call findfiles,test,*_ode_adjoint_typed_*test.cpp))
68-
$(CVODES_TESTS) : $(LIBSUNDIALS)
68+
$(CVODES_TESTS) : $(SUNDIALS_TARGETS)
6969

7070

7171
############################################################
@@ -74,7 +74,7 @@ $(CVODES_TESTS) : $(LIBSUNDIALS)
7474
##
7575

7676
IDAS_TESTS := $(subst .cpp,$(EXE),$(call findfiles,test,*idas*_test.cpp) $(call findfiles,test,*_dae*_test.cpp))
77-
$(IDAS_TESTS) : $(LIBSUNDIALS)
77+
$(IDAS_TESTS) : $(SUNDIALS_TARGETS)
7878

7979

8080
############################################################
@@ -83,11 +83,11 @@ $(IDAS_TESTS) : $(LIBSUNDIALS)
8383
##
8484

8585
ALGEBRA_SOLVER_TESTS := $(subst .cpp,$(EXE),$(call findfiles,test,*solve*_test.cpp))
86-
$(ALGEBRA_SOLVER_TESTS) : $(LIBSUNDIALS)
86+
$(ALGEBRA_SOLVER_TESTS) : $(SUNDIALS_TARGETS)
8787

8888
### These can be generated by the jumbo tests and include the above kinds
8989
FUNCTOR_TESTS := $(subst .cpp,$(EXE),$(call findfiles,test,functor_*_test.cpp))
90-
$(FUNCTOR_TESTS) : $(LIBSUNDIALS)
90+
$(FUNCTOR_TESTS) : $(SUNDIALS_TARGETS)
9191

9292
############################################################
9393
#

0 commit comments

Comments
 (0)