# User Sean Farley <sean@farley.io>
# 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
@@ -60,20 +60,25 @@ libseqneeded:
# Build the libpord.a library and copy it into $(topdir)/lib
$(libdir)/libpord$(PLAT)$(LIBEXT):
if [ "$(LPORDDIR)" != "" ] ; then \
- $(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); \
if [ "$(LPORDDIR)" != "" ] ; then \
- cp $(LPORDDIR)/libpord$(LIBEXT) $@; \
+ if [ -s "$(LPORDDIR)/libpord$(PLAT)$(LIBEXT)" ] ; then \
+ cp $(LPORDDIR)/libpord$(PLAT)$(LIBEXT) $(libdir)/libpord$(PLAT)$(LIBEXT); \
+ if [ -s "$(LPORDDIR)/libpord$(PLAT)$(SHAREDLIBEXT)" ] ; then \
+ cp $(LPORDDIR)/libpord$(PLAT)$(SHAREDLIBEXT) $(libdir)/libpord$(PLAT)$(SHAREDLIBEXT); \
(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; \
diff --git a/PORD/lib/Makefile b/PORD/lib/Makefile
@@ -22,14 +22,15 @@ OBJS = graph.o gbipart.o gbisect.o ddcre
$(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o
-libpord$(LIBEXT):$(OBJS)
+libpord$(PLAT)$(LIBEXT):$(OBJS)
+ $(CC) $(OBJS) $(CFLAGS) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/libpord$(PLAT)$(SHAREDLIBEXT) -o libpord$(PLAT)$(SHAREDLIBEXT)
+ rm -f *.o libpord$(LIBEXT) libpord$(SHAREDLIBEXT)