--- UMFPACK/Demo/Makefile.orig 2011-01-28 16:54:05.792693904 +0100 +++ UMFPACK/Demo/Makefile 2011-01-28 16:56:24.156689713 +0100 @@ -17,35 +17,17 @@ C = $(CC) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -INC = ../Include/umfpack.h ../../AMD/Include/amd.h +INC = ../Include/umfpack.h -LIBS = $(BLAS) $(XERBLA) $(LIB) +LIBS = $(BLAS) $(XERBLA) $(LIB) -lamd -../Lib/libumfpack.a: +../Lib/libumfpack.la: ( cd ../Lib ; $(MAKE) ) -../../AMD/Lib/libamd.a: - ( cd ../../AMD ; $(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) ) -UMFPACK = ../Lib/libumfpack.a ../../AMD/Lib/libamd.a \ - ../../CHOLMOD/Lib/libcholmod.a ../../COLAMD/Lib/libcolamd.a \ - ../../CAMD/Lib/libcamd.a $(METIS) \ - ../../CCOLAMD/Lib/libccolamd.a +UMFPACK = ../Lib/libumfpack.la libs: $(UMFPACK) @@ -56,7 +38,7 @@ dist: umfpack_di_demo.c umfpack_dl_demo.c umfpack_zi_demo.c umfpack_zl_demo.c umfpack_simple: umfpack_simple.c $(INC) $(UMFPACK) - $(C) -o umfpack_simple umfpack_simple.c $(UMFPACK) $(LIBS) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -o umfpack_simple umfpack_simple.c $(UMFPACK) $(LIBS) # the GNU rules are simpler: # umfpack_%_demo.c: umfpack_xx_demo.c umfpack_%_demo.sed @@ -73,28 +55,28 @@ - sed -f umfpack_di_demo.sed < umfpack_xx_demo.c > umfpack_di_demo.c umfpack_di_demo: umfpack_di_demo.c $(INC) $(UMFPACK) - $(C) -o umfpack_di_demo umfpack_di_demo.c $(UMFPACK) $(LIBS) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -o umfpack_di_demo umfpack_di_demo.c $(UMFPACK) $(LIBS) # double-precision, UF_long verion: umfpack_dl_demo.c: umfpack_xx_demo.c umfpack_dl_demo.sed - sed -f umfpack_dl_demo.sed < umfpack_xx_demo.c > umfpack_dl_demo.c umfpack_dl_demo: umfpack_dl_demo.c $(INC) $(UMFPACK) - $(C) -o umfpack_dl_demo umfpack_dl_demo.c $(UMFPACK) $(LIBS) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -o umfpack_dl_demo umfpack_dl_demo.c $(UMFPACK) $(LIBS) # complex, int verion: umfpack_zi_demo.c: umfpack_xx_demo.c umfpack_zi_demo.sed - sed -f umfpack_zi_demo.sed < umfpack_xx_demo.c > umfpack_zi_demo.c umfpack_zi_demo: umfpack_zi_demo.c $(INC) $(UMFPACK) - $(C) -o umfpack_zi_demo umfpack_zi_demo.c $(UMFPACK) $(LIBS) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -o umfpack_zi_demo umfpack_zi_demo.c $(UMFPACK) $(LIBS) # complex, UF_long verion: umfpack_zl_demo.c: umfpack_xx_demo.c umfpack_zl_demo.sed - sed -f umfpack_zl_demo.sed < umfpack_xx_demo.c > umfpack_zl_demo.c umfpack_zl_demo: umfpack_zl_demo.c $(INC) $(UMFPACK) - $(C) -o umfpack_zl_demo umfpack_zl_demo.c $(UMFPACK) $(LIBS) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I/usr/include/amd -o umfpack_zl_demo umfpack_zl_demo.c $(UMFPACK) $(LIBS) run: umfpack_di_demo umfpack_zi_demo umfpack_dl_demo umfpack_zl_demo umfpack_simple ./umfpack_simple --- UMFPACK/Lib/GNUmakefile.orig 2010-10-13 20:56:34.119741882 +0200 +++ UMFPACK/Lib/GNUmakefile 2010-10-13 20:57:29.679734339 +0200 @@ -2,7 +2,7 @@ # UMFPACK Makefile for compiling on Unix systems (for GNU Make) #------------------------------------------------------------------------------- -default: libumfpack.a +default: libumfpack.la include /usr/share/misc/UFconfig.mk @@ -71,8 +71,7 @@ $(addprefix ../Source/, $(addsuffix .h,$(UMFCH))) \ $(addprefix ../Source/, $(addsuffix .h,$(UMFINT))) \ $(addprefix ../Include/, $(addsuffix .h,$(USER))) \ - $(addprefix ../Include/, $(addsuffix .h,$(GENERIC))) \ - ../../AMD/Include/amd_internal.h ../../AMD/Include/amd.h + $(addprefix ../Include/, $(addsuffix .h,$(GENERIC))) #------------------------------------------------------------------------------- # object files for each version @@ -91,171 +90,171 @@ #------------------------------------------------------------------------------- umf_i_%.o: ../Source/umf_%.c $(INC) - $(C) -DDINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -c $< -o $@ umf_l_%.o: ../Source/umf_%.c $(INC) - $(C) -DDLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -c $< -o $@ #------------------------------------------------------------------------------- # compile each routine in the DI version #------------------------------------------------------------------------------- umf_di_%.o: ../Source/umf_%.c $(INC) - $(C) -DDINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -c $< -o $@ umf_di_%hsolve.o: ../Source/umf_%tsolve.c $(INC) - $(C) -DDINT -DCONJUGATE_SOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DCONJUGATE_SOLVE -c $< -o $@ umf_di_triplet_map_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@ umf_di_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DDINT -DDO_MAP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DDO_MAP -c $< -o $@ umf_di_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DDINT -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DDO_VALUES -c $< -o $@ umf_di_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DDINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -c $< -o $@ umf_di_assemble_fixq.o: ../Source/umf_assemble.c $(INC) - $(C) -DDINT -DFIXQ -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DFIXQ -c $< -o $@ umf_di_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) - $(C) -DDINT -DDROP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DDROP -c $< -o $@ umfpack_di_wsolve.o: ../Source/umfpack_solve.c $(INC) - $(C) -DDINT -DWSOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -DWSOLVE -c $< -o $@ umfpack_di_%.o: ../Source/umfpack_%.c $(INC) - $(C) -DDINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDINT -c $< -o $@ #------------------------------------------------------------------------------- # compile each routine in the DL version #------------------------------------------------------------------------------- umf_dl_%.o: ../Source/umf_%.c $(INC) - $(C) -DDLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -c $< -o $@ umf_dl_%hsolve.o: ../Source/umf_%tsolve.c $(INC) - $(C) -DDLONG -DCONJUGATE_SOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DCONJUGATE_SOLVE -c $< -o $@ umf_dl_triplet_map_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@ umf_dl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DDLONG -DDO_MAP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DDO_MAP -c $< -o $@ umf_dl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DDLONG -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DDO_VALUES -c $< -o $@ umf_dl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DDLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -c $< -o $@ umf_dl_assemble_fixq.o: ../Source/umf_assemble.c $(INC) - $(C) -DDLONG -DFIXQ -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DFIXQ -c $< -o $@ umf_dl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) - $(C) -DDLONG -DDROP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DDROP -c $< -o $@ umfpack_dl_wsolve.o: ../Source/umfpack_solve.c $(INC) - $(C) -DDLONG -DWSOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -DWSOLVE -c $< -o $@ umfpack_dl_%.o: ../Source/umfpack_%.c $(INC) - $(C) -DDLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DDLONG -c $< -o $@ #------------------------------------------------------------------------------- # compile each routine in the ZI version #------------------------------------------------------------------------------- umf_zi_%.o: ../Source/umf_%.c $(INC) - $(C) -DZINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -c $< -o $@ umf_zi_%hsolve.o: ../Source/umf_%tsolve.c $(INC) - $(C) -DZINT -DCONJUGATE_SOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DCONJUGATE_SOLVE -c $< -o $@ umf_zi_triplet_map_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@ umf_zi_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DZINT -DDO_MAP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DDO_MAP -c $< -o $@ umf_zi_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DZINT -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DDO_VALUES -c $< -o $@ umf_zi_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DZINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -c $< -o $@ umf_zi_assemble_fixq.o: ../Source/umf_assemble.c $(INC) - $(C) -DZINT -DFIXQ -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DFIXQ -c $< -o $@ umf_zi_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) - $(C) -DZINT -DDROP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DDROP -c $< -o $@ umfpack_zi_wsolve.o: ../Source/umfpack_solve.c $(INC) - $(C) -DZINT -DWSOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -DWSOLVE -c $< -o $@ umfpack_zi_%.o: ../Source/umfpack_%.c $(INC) - $(C) -DZINT -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZINT -c $< -o $@ #------------------------------------------------------------------------------- # compile each routine in the ZL version #------------------------------------------------------------------------------- umf_zl_%.o: ../Source/umf_%.c $(INC) - $(C) -DZLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -c $< -o $@ umf_zl_%hsolve.o: ../Source/umf_%tsolve.c $(INC) - $(C) -DZLONG -DCONJUGATE_SOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DCONJUGATE_SOLVE $(CFLAGS) $(UMFPACK_CONFIG) -I../Include -I../Source -I/usr/include/amd -c $< -o $@ umf_zl_triplet_map_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@ umf_zl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DZLONG -DDO_MAP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DDO_MAP -c $< -o $@ umf_zl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) - $(C) -DZLONG -DDO_VALUES -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DDO_VALUES -c $< -o $@ umf_zl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) - $(C) -DZLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -c $< -o $@ umf_zl_assemble_fixq.o: ../Source/umf_assemble.c $(INC) - $(C) -DZLONG -DFIXQ -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DFIXQ -c $< -o $@ umf_zl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) - $(C) -DZLONG -DDROP -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DDROP -c $< -o $@ umfpack_zl_wsolve.o: ../Source/umfpack_solve.c $(INC) - $(C) -DZLONG -DWSOLVE -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -DWSOLVE -c $< -o $@ umfpack_zl_%.o: ../Source/umfpack_%.c $(INC) - $(C) -DZLONG -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -DZLONG -c $< -o $@ #------------------------------------------------------------------------------- # Create the generic routines (GN) using a generic rule #------------------------------------------------------------------------------- umfpack_gn_%.o: ../Source/umfpack_%.c $(INC) - $(C) -c $< -o $@ + libtool --tag=CC --mode=compile $(C) -c $< -o $@ #------------------------------------------------------------------------------- # Create the libumfpack.a library #------------------------------------------------------------------------------- -libumfpack.a: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL) - $(AR) libumfpack.a $^ - - $(RANLIB) libumfpack.a +libumfpack.la: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL) + libtool --tag=CC --mode=link $(CC) $(LDFLAGS) -o libumfpack.la -rpath $(libdir) $(^:.o=.lo) -lm -lamd -lcholmod -lblas -so: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL) - gcc -shared -Wl,-soname,libumfpack.so -o libumfpack.so $^ +install: libumfpack.la + install -d $(DESTDIR)$(libdir) + libtool --mode=install install libumfpack.la $(DESTDIR)$(libdir) #------------------------------------------------------------------------------- # Remove all but the files in the original distribution #------------------------------------------------------------------------------- purge: clean - - $(RM) libumfpack.a + - $(RM) libumfpack.la clean: - $(RM) $(CLEAN) --- UMFPACK/Makefile.orig 2010-10-13 19:57:37.315740205 +0200 +++ UMFPACK/Makefile 2010-10-13 20:23:19.519734339 +0200 @@ -4,8 +4,6 @@ VERSION = 5.5.0 -# UMFPACK requires the AMD package to be in ../AMD - default: all include /usr/share/misc/UFconfig.mk @@ -13,14 +11,12 @@ # compile all C code (except hb, fortran, and fortran64), including AMD and the # demos, but not the MATLAB mexFunctions all: - ( cd ../AMD ; $(MAKE) library ) ( cd Lib ; $(MAKE) ) ( cd Demo ; $(MAKE) ) - cat Doc/License # compile just the C-callable libraries and demo programs (not mexFunctions) library: - ( cd ../AMD ; $(MAKE) library ) ( cd Lib ; $(MAKE) ) # compile the FORTRAN interface and demo program @@ -37,7 +33,6 @@ # remove object files, but keep the compiled programs and library archives clean: - ( cd ../AMD ; $(MAKE) clean ) ( cd Lib ; $(MAKE) clean ) ( cd Demo ; $(MAKE) clean ) ( cd MATLAB ; $(MAKE) clean ) @@ -45,7 +40,6 @@ # clean, and then remove compiled programs and library archives purge: - ( cd ../AMD ; $(MAKE) purge ) ( cd Lib ; $(MAKE) purge ) ( cd Demo ; $(MAKE) purge ) ( cd MATLAB ; $(MAKE) purge ) @@ -53,12 +47,10 @@ # create PDF documents for the original distribution docs: - ( cd ../AMD ; $(MAKE) doc ) ( cd Doc ; $(MAKE) ) # get ready for distribution dist: purge - ( cd ../AMD ; $(MAKE) dist ) ( cd Demo ; $(MAKE) dist ) ( cd Doc ; $(MAKE) ) @@ -68,7 +60,6 @@ # compile the MATLAB mexFunction for AMD (but not UMFPACK) mex: - ( cd ../AMD/MATLAB ; $(MAKE) ) # ( cd MATLAB ; $(MAKE) ) # statement coverage (requires Linux; takes a lot of time and disk space)