diff --git a/deps/libsuitesparse.mk b/deps/libsuitesparse.mk index 386194221b43c..7e36bce8f4f9d 100644 --- a/deps/libsuitesparse.mk +++ b/deps/libsuitesparse.mk @@ -3,14 +3,20 @@ include $(SRCDIR)/libsuitesparse.version ifneq ($(USE_BINARYBUILDER_LIBSUITESPARSE), 1) -LIBSUITESPARSE_PROJECTS := "amd;btf;camd;ccolamd;colamd;cholmod;klu;ldl;umfpack;rbio;spqr" +LIBSUITESPARSE_PROJECTS := "suitesparse_config;amd;btf;camd;ccolamd;colamd;cholmod;klu;ldl;umfpack;rbio;spqr" LIBSUITESPARSE_LIBS := $(addsuffix .*$(SHLIB_EXT)*,suitesparseconfig $(subst ;, ,$(LIBSUITESPARSE_PROJECTS))) +ifeq ($(OS),WINNT) +BLAS_LIB_NAME_NO_EXT:=blastrampoline-5 +else +BLAS_LIB_NAME_NO_EXT:=blastrampoline +endif + LIBSUITESPARSE_CMAKE_FLAGS := $(CMAKE_COMMON) \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC_LIBS=OFF \ -DBUILD_TESTING=OFF \ - -DSUITESPARSE_ENABLE_PROJECTS="suitesparse_config;$(LIBSUITESPARSE_PROJECTS)" \ + -DSUITESPARSE_ENABLE_PROJECTS=$(LIBSUITESPARSE_PROJECTS) \ -DSUITESPARSE_DEMOS=OFF \ -DSUITESPARSE_USE_STRICT=ON \ -DSUITESPARSE_USE_CUDA=OFF \ @@ -18,13 +24,17 @@ LIBSUITESPARSE_CMAKE_FLAGS := $(CMAKE_COMMON) \ -DSUITESPARSE_USE_OPENMP=OFF \ -DCHOLMOD_PARTITION=ON \ -DBLAS_FOUND=1 \ - -DBLAS_LIBRARIES="$(build_shlibdir)/libblastrampoline.$(SHLIB_EXT)" \ - -DBLAS_LINKER_FLAGS="blastrampoline" \ - -DBLA_VENDOR="blastrampoline" \ - -DLAPACK_LIBRARIES="$(build_shlibdir)/libblastrampoline.$(SHLIB_EXT)" \ - -DLAPACK_LINKER_FLAGS="blastrampoline" \ - -DBLAS64_SUFFIX="_64" \ - -DSUITESPARSE_USE_64BIT_BLAS=YES + -DBLAS_LIBRARIES="$(build_shlibdir)/lib$(BLAS_LIB_NAME_NO_EXT).$(SHLIB_EXT)" \ + -DBLAS_LINKER_FLAGS="$(BLAS_LIB_NAME_NO_EXT)" \ + -DBLA_VENDOR="$(BLAS_LIB_NAME_NO_EXT)" \ + -DLAPACK_LIBRARIES="$(build_shlibdir)/lib$(BLAS_LIB_NAME_NO_EXT).$(SHLIB_EXT)" \ + -DLAPACK_LINKER_FLAGS="${BLAS_LIB_NAME_NO_EXT}" + +ifeq ($(BINARY),64) +LIBSUITESPARSE_CMAKE_FLAGS += -DBLAS64_SUFFIX="_64" -DSUITESPARSE_USE_64BIT_BLAS=YES +else +LIBSUITESPARSE_CMAKE_FLAGS += -DSUITESPARSE_USE_64BIT_BLAS=NO +endif ifneq (,$(findstring $(OS),Linux FreeBSD)) LIBSUITESPARSE_CMAKE_FLAGS += -DCMAKE_INSTALL_RPATH="\$$ORIGIN" @@ -42,21 +52,15 @@ $(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-extracted: $(SRCCACHE)/Suit checksum-libsuitesparse: $(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER).tar.gz $(JLCHECKSUM) $< -# https://github.com/DrTimothyAldenDavis/SuiteSparse/pull/671 -$(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER)/suitesparse-blas-suffix.patch-applied: $(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-extracted - cd $(dir $@) && \ - patch -p1 -f < $(SRCDIR)/patches/suitesparse-blas-suffix.patch - echo 1 > $@ - -$(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-patched: $(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER)/suitesparse-blas-suffix.patch-applied +$(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-patched: $(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-extracted echo 1 > $@ $(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/build-compiled: | $(build_prefix)/manifest/blastrampoline -$(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/build-compiled: $(SRCCACHE)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-patched - cd $(dir $<) && $(CMAKE) .. $(LIBSUITESPARSE_CMAKE_FLAGS) - make - make install +$(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/build-compiled: $(BUILDDIR)/SuiteSparse-$(LIBSUITESPARSE_VER)/source-patched + cd $(dir $<) && $(CMAKE) . $(LIBSUITESPARSE_CMAKE_FLAGS) + make -C $(dir $<) + make -C $(dir $<) install echo 1 > $@ ifeq ($(OS),WINNT) diff --git a/deps/patches/suitesparse-blas-suffix.patch b/deps/patches/suitesparse-blas-suffix.patch deleted file mode 100644 index c6a04ddee618d..0000000000000 --- a/deps/patches/suitesparse-blas-suffix.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b936940aab08dc4bc60ccf2b9daec2105a960ad4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Markus=20M=C3=BCtzel?= -Date: Mon, 1 Jan 2024 13:00:17 +0100 -Subject: [PATCH] Add preprocessor definitions also with user-supplied - BLAS_LIBRARIES - ---- - SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake | 4 ++-- - SuiteSparse_config/cmake_modules/SuiteSparseBLAS64.cmake | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake b/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake -index ca241472d..be7cd2e73 100644 ---- a/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake -+++ b/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake -@@ -36,9 +36,9 @@ if ( DEFINED BLAS_LIBRARIES OR DEFINED BLAS_INCLUDE_DIRS ) - # User supplied variables for libraries and/or include directories. - # Use them as-is. - if ( SUITESPARSE_USE_64BIT_BLAS ) -- set ( SuiteSparse_BLAS_integer "int64_t" ) -+ include ( SuiteSparseBLAS64 ) - else ( ) -- set ( SuiteSparse_BLAS_integer "int32_t" ) -+ include ( SuiteSparseBLAS32 ) - endif ( ) - return ( ) - endif ( ) -diff --git a/SuiteSparse_config/cmake_modules/SuiteSparseBLAS64.cmake b/SuiteSparse_config/cmake_modules/SuiteSparseBLAS64.cmake -index 744aaef91..1a5c63690 100644 ---- a/SuiteSparse_config/cmake_modules/SuiteSparseBLAS64.cmake -+++ b/SuiteSparse_config/cmake_modules/SuiteSparseBLAS64.cmake -@@ -37,7 +37,7 @@ set ( SuiteSparse_BLAS_integer "int64_t" ) - # https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/suite-sparse/package.py - - if ( DEFINED BLAS64_SUFFIX ) -- # append BLAS64_SUFFIX to each BLAS and LAPACK name -+ # append BLAS64_SUFFIX to each BLAS and LAPACK function name - string ( FIND ${BLAS64_SUFFIX} "_" HAS_UNDERSCORE ) - message ( STATUS "BLAS64_suffix: ${BLAS64_SUFFIX}" ) - if ( HAS_UNDERSCORE EQUAL -1 )