# HG changeset patch # User Sean Farley # Date 1441402434 25200 # Fri Sep 04 14:33:54 2015 -0700 # Node ID 97dce7b75782630f6b2bd6e8269976131c33d428 # Parent 639d86d784b8a454f8dba9e03f6f6f62539e714b make: add rule for shared library This works by putting libmumps_common objects into the other libs. diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -60,20 +60,25 @@ libseqneeded: # Build the libpord.a library and copy it into $(topdir)/lib $(libdir)/libpord$(PLAT)$(LIBEXT): if [ "$(LPORDDIR)" != "" ] ; then \ cd $(LPORDDIR); \ - $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ + $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT) PLAT=$(PLAT) SHAREDLIBEXT=$(SHAREDLIBEXT) SHAREDFLAGS="$(SHAREDFLAGS)" PREFIX=$(PREFIX); \ fi; if [ "$(LPORDDIR)" != "" ] ; then \ - cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ + if [ -s "$(LPORDDIR)/libpord$(PLAT)$(LIBEXT)" ] ; then \ + cp $(LPORDDIR)/libpord$(PLAT)$(LIBEXT) $(libdir)/libpord$(PLAT)$(LIBEXT); \ + fi; \ + if [ -s "$(LPORDDIR)/libpord$(PLAT)$(SHAREDLIBEXT)" ] ; then \ + cp $(LPORDDIR)/libpord$(PLAT)$(SHAREDLIBEXT) $(libdir)/libpord$(PLAT)$(SHAREDLIBEXT); \ + fi; \ fi; clean: (cd src; $(MAKE) clean) (cd examples; $(MAKE) clean) - (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT)) + (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT) *$(PLAT)$(SHAREDLIBEXT)) (cd libseq; $(MAKE) clean) if [ "$(LPORDDIR)" != "" ] ; then \ cd $(LPORDDIR); $(MAKE) realclean; \ fi; diff --git a/PORD/lib/Makefile b/PORD/lib/Makefile --- a/PORD/lib/Makefile +++ b/PORD/lib/Makefile @@ -22,14 +22,15 @@ OBJS = graph.o gbipart.o gbisect.o ddcre # OUTC = -o .c.o: $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o -libpord$(LIBEXT):$(OBJS) +libpord$(PLAT)$(LIBEXT):$(OBJS) $(AR)$@ $(OBJS) $(RANLIB) $@ + $(CC) $(OBJS) $(CFLAGS) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/libpord$(PLAT)$(SHAREDLIBEXT) -o libpord$(PLAT)$(SHAREDLIBEXT) clean: rm -f *.o realclean: - rm -f *.o libpord.a + rm -f *.o libpord$(LIBEXT) libpord$(SHAREDLIBEXT) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -155,14 +155,16 @@ OBJS_OTHER = \ $(ARITH)mumps_restart.o $(libdir)/libmumps_common$(PLAT)$(LIBEXT): $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) $(AR)$@ $? $(RANLIB) $@ + $(FC) $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) $(OPTF) $(SHAREDFLAGS) $(LORDERINGS) $(SCALAP) $(libdir)/libpord$(SHAREDLIBEXT) -install_name $(PREFIX)/lib/libmumps_common$(PLAT)$(SHAREDLIBEXT) -o $(libdir)/libmumps_common$(PLAT)$(SHAREDLIBEXT) $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER) $(AR)$@ $? $(RANLIB) $@ + $(FC) $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) $(OPTF) $(SHAREDFLAGS) $(LORDERINGS) $(SCALAP) $(libdir)/libpord$(SHAREDLIBEXT) -install_name $(PREFIX)/lib/libmumps_common$(PLAT)$(SHAREDLIBEXT) -o $(libdir)/libmumps_common$(PLAT)$(SHAREDLIBEXT) # Dependencies between modules: $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ $(ARITH)mumps_struc_def.o \ fac_future_niv2_mod.o