Build shared version of CSparse library

 -- Daniel Rus Morales <danirus@tol-project.org>  Tue, 17 Jul 2007 12:15:41 +0200

diff -u upstrm/CSparse/Lib/Makefile debsrc/CSparse/Lib/Makefile
--- upstrm/CSparse/Lib/Makefile	2007-05-05 22:46:13.000000000 +0200
+++ debsrc/CSparse/Lib/Makefile	2007-12-15 19:08:44.000000000 +0100
@@ -1,11 +1,15 @@
 # Modify the "-O" optimization option for best performance (-O3 on Linux):
-CC = cc
-CFLAGS = -O -I../Include
+#CC = cc
+#CFLAGS = -O -I../Include
+
+C = $(CC) -O -I../Include
 
 AR = ar cr
 RANLIB = ranlib
 
+SOVERSION = $(shell perl ../../debian/library-soname.pl CSparse | sed 's/libcsparse//')
+
-all: libcsparse.a
+all: libcsparse.a libcsparse.so.$(SOVERSION)
 
 CS = cs_add.o cs_amd.o cs_chol.o cs_cholsol.o cs_counts.o cs_cumsum.o \
 	cs_droptol.o cs_dropzeros.o cs_dupl.o cs_entry.o \
@@ -16,18 +18,29 @@
 	cs_transpose.o cs_compress.o cs_usolve.o cs_utsolve.o cs_scc.o \
 	cs_maxtrans.o cs_dmperm.o cs_updown.o cs_print.o cs_norm.o cs_load.o \
 	cs_dfs.o cs_reach.o cs_spsolve.o cs_ereach.o cs_leaf.o cs_randperm.o
+CS_SL = $(subst .o,.oo,$(CS))
 
 $(CS): ../Include/cs.h Makefile
+$(CS_SL): ../Include/cs.h Makefile
 
 %.o: ../Source/%.c ../Include/cs.h
-	$(CC) $(CFLAGS) -c $<
+	$(C) -c $<
+%.oo: ../Source/%.c ../Include/cs.h
+	$(C) -fPIC -c $< -o $@
 
 libcsparse.a: $(CS)
 	$(AR) libcsparse.a $(CS)
 	$(RANLIB) libcsparse.a
 
+libcsparse.so.$(SOVERSION): $(CS_SL)
+	$(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
+	ln -s $@ libcsparse.so
+
 clean:
 	rm -f *.o
+	rm -f *.o *.oo
+	-$(RM) *.a
+	-$(RM) *.so*
 
 purge: distclean
 
