--- SPQR/Lib/Makefile.orig 2012-01-08 12:07:16.049602813 +0100 +++ SPQR/Lib/Makefile 2012-01-08 12:22:07.552965999 +0100 @@ -11,6 +11,7 @@ #------------------------------------------------------------------------------- # the optional Partition module requires METIS, CAMD, and CCOLAMD CONFIG = -DNPARTITION +LIB_WITH_PARTITION = # check if METIS is requested and available ifeq (,$(findstring -DNPARTITION, $(CHOLMOD_CONFIG))) # METIS is requested. See if it is available @@ -18,6 +19,7 @@ # assume CAMD and CCOLAMD are available # METIS, CAMD, and CCOLAMD is available CONFIG = + LIB_WITH_PARTITION = $(METIS) -lccolamd -lcamd endif endif #------------------------------------------------------------------------------- @@ -28,14 +30,14 @@ # -Wredundant-decls -Wdisabled-optimization \ # -ansi -fexceptions -all: libspqr.a +all: libspqr.la -library: libspqr.a +library: libspqr.la purge: distclean distclean: clean - - $(RM) libspqr.a + - $(RM) libspqr.la clean: - $(RM) $(CLEAN) @@ -92,126 +94,130 @@ C = $(CXX) $(CF) $(SPQR_CONFIG) $(CONFIG) $(I) -libspqr.a: $(OBJ) - $(ARCHIVE) libspqr.a $(OBJ) - - $(RANLIB) libspqr.a +libspqr.la: $(OBJ) + libtool --tag=CC --mode=link $(CXX) $(LDFLAGS) -o libspqr.la -rpath $(libdir) $(OBJ:.o=.lo) \ + -lcholmod $(LIB_WITH_PARTITION) -lm + +install: libspqr.la + install -d $(DESTDIR)$(libdir) + libtool --mode=install cp libspqr.la $(DESTDIR)$(libdir)/libspqr.la spqr_1colamd.o: ../Source/spqr_1colamd.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_1factor.o: ../Source/spqr_1factor.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_1fixed.o: ../Source/spqr_1fixed.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_analyze.o: ../Source/spqr_analyze.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_parallel.o: ../Source/spqr_parallel.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_kernel.o: ../Source/spqr_kernel.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_append.o: ../Source/spqr_append.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_assemble.o: ../Source/spqr_assemble.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_cpack.o: ../Source/spqr_cpack.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_csize.o: ../Source/spqr_csize.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_cumsum.o: ../Source/spqr_cumsum.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_debug.o: ../Source/spqr_debug.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_factorize.o: ../Source/spqr_factorize.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_fcsize.o: ../Source/spqr_fcsize.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_freefac.o: ../Source/spqr_freefac.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_freenum.o: ../Source/spqr_freenum.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_freesym.o: ../Source/spqr_freesym.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_fsize.o: ../Source/spqr_fsize.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_happly.o: ../Source/spqr_happly.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_panel.o: ../Source/spqr_panel.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_happly_work.o: ../Source/spqr_happly_work.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_hpinv.o: ../Source/spqr_hpinv.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_larftb.o: ../Source/spqr_larftb.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_rconvert.o: ../Source/spqr_rconvert.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_rcount.o: ../Source/spqr_rcount.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_rhpack.o: ../Source/spqr_rhpack.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_rsolve.o: ../Source/spqr_rsolve.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_shift.o: ../Source/spqr_shift.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_stranspose1.o: ../Source/spqr_stranspose1.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_stranspose2.o: ../Source/spqr_stranspose2.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_trapezoidal.o: ../Source/spqr_trapezoidal.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_type.o: ../Source/spqr_type.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_front.o: ../Source/spqr_front.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< SuiteSparseQR_expert.o: ../Source/SuiteSparseQR_expert.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_maxcolnorm.o: ../Source/spqr_maxcolnorm.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< SuiteSparseQR_qmult.o: ../Source/SuiteSparseQR_qmult.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< SuiteSparseQR.o: ../Source/SuiteSparseQR.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_tol.o: ../Source/spqr_tol.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< SuiteSparseQR_C.o: ../Source/SuiteSparseQR_C.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< spqr_rmap.o: ../Source/spqr_rmap.cpp - $(C) -c $< + libtool --tag=CXX --mode=compile $(C) -c $< --- SPQR/Demo/Makefile.orig 2014-10-03 19:50:31.929096643 +0200 +++ SPQR/Demo/Makefile 2014-10-03 19:55:47.922416504 +0200 @@ -25,7 +25,7 @@ endif #------------------------------------------------------------------------------- -CLIB = ../Lib/libspqr.a \ +CLIB = ../Lib/libspqr.la \ -lsuitesparseconfig \ -lcholmod -lamd \ -lcolamd $(LIB_WITH_PARTITION) @@ -100,38 +100,11 @@ - $(V) ./qrdemoc < ../Matrix/Ragusa16.mtx - $(V) ./qrdemoc < ../Matrix/young1c.mtx -../Lib/libspqr.a: +../Lib/libspqr.la: ( cd ../Lib ; $(MAKE) ) -../../AMD/Lib/libamd.a: - ( cd ../../AMD ; $(MAKE) library ) - -../../SuiteSparse_config/libsuitesparseconfig.a: - ( cd ../../SuiteSparse_config ; $(MAKE) library ) - -../../CHOLMOD/Lib/libcholmod.a: - - ( cd ../../CHOLMOD && $(MAKE) library ) - -../../COLAMD/Lib/libcolamd.a: - - ( cd ../../COLAMD && $(MAKE) library ) - -../../CCOLAMD/Lib/libccolamd.a: - - ( cd ../../CCOLAMD && $(MAKE) library ) - -../../CAMD/Lib/libcamd.a: - - ( cd ../../CAMD && $(MAKE) library ) - -$(METIS): - ( cd $(METIS_PATH) && $(MAKE) ) - library: ( cd ../Lib ; $(MAKE) ) - ( cd ../../AMD ; $(MAKE) library ) - ( cd ../../SuiteSparse_config ; $(MAKE) library ) - - ( cd ../../CHOLMOD && $(MAKE) library ) - - ( cd ../../COLAMD && $(MAKE) library ) - - ( cd ../../CCOLAMD && $(MAKE) library ) - - ( cd ../../CAMD && $(MAKE) library ) purge: distclean @@ -158,22 +131,22 @@ endif qrsimple: qrsimple.cpp library $(INC) - $(C) qrsimple.cpp -o qrsimple $(LIBS) + libtool --mode=link --tag=CXX $(C) qrsimple.cpp -o qrsimple $(LIBS) qrdemo: qrdemo.cpp library $(INC) - $(C) qrdemo.cpp -o qrdemo $(LIBS) + libtool --mode=link --tag=CXX $(C) qrdemo.cpp -o qrdemo $(LIBS) # compile the C code with gcc, but link with g++ to use SuiteSparseQR: qrdemoc.o: qrdemoc.c $(INC) - $(CC) $(CF) $(SPQR_CONFIG) -ansi $(I) -c $< + libtool --mode=compile --tag=CC $(CC) $(CF) $(SPQR_CONFIG) -ansi $(I) -c $< qrdemoc: qrdemoc.o library $(INC) - $(C) -o qrdemoc qrdemoc.o $(LIBS) + libtool --mode=link --tag=CXX $(C) -o qrdemoc qrdemoc.o $(LIBS) qrsimplec.o: qrsimplec.c $(INC) - $(CC) $(CF) $(SPQR_CONFIG) -ansi $(I) -c $< + libtool --mode=compile --tag=CC $(CC) $(CF) $(SPQR_CONFIG) -ansi $(I) -c $< qrsimplec: qrsimplec.o library $(INC) - $(C) -o qrsimplec qrsimplec.o $(LIBS) + libtool --mode=link --tag=CXX $(C) -o qrsimplec qrsimplec.o $(LIBS)