Skip to content

Commit

Permalink
Add SuiteSparse symlinks (#26577)
Browse files Browse the repository at this point in the history
These symlinks are needed to load SuiteSparse dynamically, yet they were not created with USE_SYSTEM_SUITEPARSE=1. This affects distribution packages.

Also fix repackage_system_suitesparse4.make  so that it installs the SuiteSparse libraries, and remove redundant install instructions in the Travis CI file for OS X.
  • Loading branch information
nalimilan committed Apr 1, 2018
1 parent 025a9ee commit e94484c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 30 deletions.
5 changes: 0 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,6 @@ script:
false; }
# compile / install Julia
- make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia install | moreutils/ts -s "%.s"
- if [ `uname` = "Darwin" ]; then
for name in suitesparseconfig spqr umfpack colamd cholmod amd suitesparse_wrapper; do
install -pm755 usr/lib/lib${name}*.dylib* /tmp/julia/lib/julia/;
done;
fi
- make $BUILDOPTS NO_GIT=1 build-stats
- du -sk /tmp/julia/*
- ls -l /tmp/julia/lib
Expand Down
7 changes: 1 addition & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ JL_LIBS := julia julia-debug
JL_PRIVATE_LIBS-0 := libccalltest
ifeq ($(USE_GPL_LIBS), 1)
JL_PRIVATE_LIBS-0 += libsuitesparse_wrapper
JL_PRIVATE_LIBS-$(USE_SYSTEM_SUITESPARSE) += libamd libcamd libccolamd libcholmod libcolamd libumfpack libspqr libsuitesparseconfig
endif
JL_PRIVATE_LIBS-$(USE_SYSTEM_PCRE) += libpcre2-8
JL_PRIVATE_LIBS-$(USE_SYSTEM_DSFMT) += libdSFMT
Expand All @@ -248,12 +249,6 @@ ifneq ($(LIBLAPACKNAME),$(LIBBLASNAME))
JL_PRIVATE_LIBS-$(USE_SYSTEM_LAPACK) += $(LIBLAPACKNAME)
endif

ifeq ($(USE_GPL_LIBS), 1)
ifeq ($(USE_SYSTEM_SUITESPARSE),0)
JL_PRIVATE_LIBS-0 += libamd libcamd libccolamd libcholmod libcolamd libumfpack libspqr libsuitesparseconfig
endif
endif

ifeq ($(OS),Darwin)
ifeq ($(USE_SYSTEM_BLAS),1)
ifeq ($(USE_SYSTEM_LAPACK),0)
Expand Down
10 changes: 9 additions & 1 deletion base/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ endif
endif
endef

# the following excludes: libuv.a, libutf8proc.a, suitesparse*
# the following excludes: libuv.a, libutf8proc.a

$(eval $(call symlink_system_library,$(LIBMNAME)))
ifneq ($(USE_SYSTEM_LIBM),0)
Expand All @@ -185,6 +185,14 @@ $(eval $(call symlink_system_library,libmbedtls,MBEDTLS))
$(eval $(call symlink_system_library,libssh2,LIBSSH2))
$(eval $(call symlink_system_library,libcurl,CURL))
$(eval $(call symlink_system_library,libgit2,LIBGIT2))
$(eval $(call symlink_system_library,libamd,SUITESPARSE))
$(eval $(call symlink_system_library,libcamd,SUITESPARSE))
$(eval $(call symlink_system_library,libccolamd,SUITESPARSE))
$(eval $(call symlink_system_library,libcholmod,SUITESPARSE))
$(eval $(call symlink_system_library,libcolamd,SUITESPARSE))
$(eval $(call symlink_system_library,libumfpack,SUITESPARSE))
$(eval $(call symlink_system_library,libspqr,SUITESPARSE))
$(eval $(call symlink_system_library,libsuitesparseconfig,SUITESPARSE))
ifneq ($(DISABLE_LIBUNWIND),0)
$(eval $(call symlink_system_library,libunwind,LIBUNWIND))
endif
Expand Down
40 changes: 22 additions & 18 deletions contrib/repackage_system_suitesparse4.make
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,34 @@ ifeq ($(OS),Darwin)
ifeq ($(USE_SYSTEM_BLAS),1)
ifeq ($(USE_SYSTEM_LAPACK),0)

$(build_libdir)/libgfortblas.dylib:
mkdir -p $(build_libdir)
make -C ../deps/ $(build_libdir)/libgfortblas.dylib
$(build_private_libdir)/libgfortblas.dylib:
mkdir -p $(build_private_libdir)
make -C ../deps/ $@

default: $(build_libdir)/libgfortblas.dylib
default: $(build_private_libdir)/libgfortblas.dylib
endif
endif
endif

default:
mkdir -p $(build_libdir)
mkdir -p $(build_private_libdir)
mkdir -p $(JULIAHOME)/deps/build/SuiteSparse-SYSTEM/lib
cd $(JULIAHOME)/deps/build/SuiteSparse-SYSTEM/lib && \
rm -f $(build_libdir)/lib{amd,cholmod,colamd,spqr,umfpack}.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libsuitesparseconfig.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libsuitesparseconfig.$(SHLIB_EXT)
$(INSTALL_NAME_CMD)libsuitesparseconfig.$(SHLIB_EXT) $(build_libdir)/libsuitesparseconfig.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libamd.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libamd.$(SHLIB_EXT) $(LDFLAGS) -L$(build_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libamd.$(SHLIB_EXT) $(build_libdir)/libamd.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libcolamd.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libcolamd.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libcolamd.$(SHLIB_EXT) $(build_libdir)/libcolamd.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libcholmod.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libcholmod.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libcholmod.$(SHLIB_EXT) $(build_libdir)/libcholmod.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libumfpack.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libumfpack.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd -lcholmod $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libumfpack.$(SHLIB_EXT) $(build_libdir)/libumfpack.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libspqr.a $(NO_WHOLE_ARCHIVE) -o $(build_libdir)/libspqr.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd -lcholmod $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libspqr.$(SHLIB_EXT) $(build_libdir)/libspqr.$(SHLIB_EXT)
rm -f $(build_private_libdir)/lib{amd,camd,cholmod,ccolamd,colamd,spqr,umfpack}.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libsuitesparseconfig.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libsuitesparseconfig.$(SHLIB_EXT)
$(INSTALL_NAME_CMD)libsuitesparseconfig.$(SHLIB_EXT) $(build_private_libdir)/libsuitesparseconfig.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libamd.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libamd.$(SHLIB_EXT) $(LDFLAGS) -L$(build_private_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libamd.$(SHLIB_EXT) $(build_private_libdir)/libamd.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libcamd.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libcamd.$(SHLIB_EXT) $(LDFLAGS) -L$(build_private_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libcamd.$(SHLIB_EXT) $(build_private_libdir)/libcamd.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libccolamd.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libccolamd.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_private_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libccolamd.$(SHLIB_EXT) $(build_private_libdir)/libccolamd.$(SHLIB_EXT)
$(CC) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libcolamd.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libcolamd.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_private_libdir) -lsuitesparseconfig $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libcolamd.$(SHLIB_EXT) $(build_private_libdir)/libcolamd.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libcholmod.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libcholmod.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_private_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libcholmod.$(SHLIB_EXT) $(build_private_libdir)/libcholmod.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libumfpack.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libumfpack.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_private_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd -lcholmod $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libumfpack.$(SHLIB_EXT) $(build_private_libdir)/libumfpack.$(SHLIB_EXT)
$(CXX) -shared $(WHOLE_ARCHIVE) $(SS_LIB)/libspqr.a $(NO_WHOLE_ARCHIVE) -o $(build_private_libdir)/libspqr.$(SHLIB_EXT) $(LDFLAGS) $(LIBBLAS) -L$(build_private_libdir) -lsuitesparseconfig -lcolamd -lccolamd -lcamd -lamd -lcholmod $(RPATH_ORIGIN)
$(INSTALL_NAME_CMD)libspqr.$(SHLIB_EXT) $(build_private_libdir)/libspqr.$(SHLIB_EXT)

0 comments on commit e94484c

Please sign in to comment.