--- Makefile.orig 2012-01-06 14:29:04.000000000 +0100 +++ Makefile 2013-09-05 14:35:52.000000000 +0200 @@ -177,6 +177,11 @@ $(OBJDIR)/%.o: $(SRCDIR)/%.cc $(CCC) $(CCFLAGS) $(ADDFLAGS) -c $< -o $@ $(STRIP) $@ +# the shared object files +$(OBJDIR)/%.So: $(SRCDIR)/%.cc + $(CCC) -fPIC $(CCFLAGS) $(ADDFLAGS) -c $< -o $@ + $(STRIP) $@ + ####################################################################### # @@ -523,15 +524,20 @@ $(ARCHIVE) $@ $(OSI_O) # The basic ABACUS library -abacus-base: $(LIBDIR)/stuff/abacus-base.a +abacus-base-static: $(LIBDIR)/stuff/abacus-base.a +abacus-base-shared: $(LIBDIR)/stuff/abacus-base.so.1 $(LIBDIR)/stuff/abacus-base.a: $(ABACUS_O) rm -f $@ @$(PRE_ARCHIVE) $(ABACUS_O) $(ARCHIVE) $@ $(ABACUS_O) +$(LIBDIR)/stuff/abacus-base.so.1: $(ABACUS_O:%.o=%.So) + rm -f $@ + $(CCC) $(LDFLAGS) -shared -o $@ $(ABACUS_O:%.o=%.So) + # Build the library distribution directory (lib and lib/stuff) -lib-all: subdirs abacus-base lpif interface $(ADDITIONAL_LIB_ALL) +lib-all: subdirs abacus-base-static abacus-base-shared lpif interface $(ADDITIONAL_LIB_ALL) # Create a tar file containing all necessary stuff to compile ABACUS on # a remote system. @@ -571,6 +577,7 @@ abacus: lib-all cp $(LIBDIR)/stuff/abacus-base.a $(LIBDIR)/libabacus-osi.a + cp $(LIBDIR)/stuff/abacus-base.so.1 $(LIBDIR)/libabacus-osi.so.1 mkdir $(LIBDIR)/temp cd $(LIBDIR)/temp; ar x ../stuff/interface-osi.a find $(LIBDIR)/temp -name \*.o | xargs -n1 ar r $(LIBDIR)/libabacus-osi.a