pvm (3.4.5-12.5) 05-build-shared-libgpvm.patch

Summary

 pvmgs/Makefile.aimk |   55 ++++++++++++++++++++++++++++++++++------------------
 1 file changed, 36 insertions(+), 19 deletions(-)

    
download this patch

Patch contents

Index: pvm-3.4.5/pvmgs/Makefile.aimk
===================================================================
--- pvm-3.4.5.orig/pvmgs/Makefile.aimk
+++ pvm-3.4.5/pvmgs/Makefile.aimk
@@ -45,13 +45,13 @@ PROGS		=	$(PVMXDIR)/pvm_gstat$(EXESFX) \
 
 LPROGS		=	$(PVMLDIR)/pvmgs$(EXESFX)
 
-LIBGPVM		=	$(LIBPREFIX)gpvm3.a
+LIBGPVM		=	$(LIBPREFIX)gpvm3
 
 install:	all
 
 install-mpp:	all-mpp
 
-all:	$(DIRS) $(PROGS) $(PVMLDIR)/$(LIBGPVM) $(LPROGS)
+all:	$(DIRS) $(PROGS) $(PVMLDIR)/$(LIBGPVM).a $(PVMLDIR)/$(LIBGPVM).so $(LPROGS)
 
 all-mpp:	$(DIRS) $(PROGS) $(PVMLDIR)/$(LIBGPVM)-mpp $(LPROGS)
 
@@ -71,40 +71,57 @@ $(PVMXDIR)/pvmgs$(EXESFX):  pvmgs$(EXESF
 $(PVMXDIR)/pvmgroups$(EXESFX):  pvmgroups$(EXESFX)
 	cp pvmgroups$(EXESFX) $(PVMXDIR)
 
-$(PVMLDIR)/$(LIBGPVM):  $(LIBGPVM)
-	cp $(LIBGPVM) $(PVMLDIR)
-	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(PVMLDIR)/$(LIBGPVM) ;; esac
+$(PVMLDIR)/$(LIBGPVM).a:  $(LIBGPVM).a
+	cp $(LIBGPVM).a $(PVMLDIR)
+	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(PVMLDIR)/$(LIBGPVM).a ;; esac
 
 $(PVMLDIR)/$(LIBGPVM)-mpp:  $(LIBGPVM)-mpp
-	cp $(LIBGPVM) $(PVMLDIR)
-	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(PVMLDIR)/$(LIBGPVM) ;; esac
+	cp $(LIBGPVM).a $(PVMLDIR)
+	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(PVMLDIR)/$(LIBGPVM).a ;; esac
 	touch $(PVMLDIR)/$(LIBGPVM)-mpp
 
+$(PVMLDIR)/$(LIBGPVM).so:  $(LIBGPVM).so
+	cp $(LIBGPVM).so $(PVMLDIR)
+
 $(PVMLDIR)/pvmgs$(EXESFX):  pvmgs$(EXESFX)
 	cp pvmgs$(EXESFX) $(PVMLDIR)
 
-pvmgroups$(EXESFX):	pvmgroups.o $(LIBGPVM) $(PVMLIBDEP)
-	$(CC) $(CFLAGS) -o $@ pvmgroups.o $(LIBGPVM) $(LIBS) 
+pvmgroups$(EXESFX):	pvmgroups.o $(LIBGPVM).a $(PVMLIBDEP)
+	$(CC) $(CFLAGS) -o $@ pvmgroups.o $(LIBGPVM).a $(LIBS) 
 
 pvmgs$(EXESFX):	$(DOBJ) $(PVMLIBDEP)
 	$(CC) $(CFLAGS) -o $@ $(DOBJ) $(LIBS)
 
-$(LIBGPVM):	$(LOBJ)
-	rm -f $(LIBGPVM)
-	$(AR) cr $(LIBGPVM) $(LOBJ)
-	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBGPVM) ;; esac
+$(LIBGPVM).a:
+	echo -------------------------------
+	echo --- Building static Library ---
+	echo -------------------------------
+	rm -f $(LIBGPVM).a $(LOBJ)
+	pwd
+	cd .. && ../lib/aimk CFLOPTS='$(CFLOPTS)' $(LOBJ)
+	$(AR) cr $(LIBGPVM).a $(LOBJ)
+	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBGPVM).a ;; esac
+
+$(LIBGPVM).so:
+	echo -------------------------------
+	echo --- Building shared Library ---
+	echo -------------------------------
+	rm -f $(LIBGPVM).a $(LOBJ)
+	pwd
+	cd .. && ../lib/aimk CFLOPTS='-fPIC $(CFLOPTS)' $(LOBJ)
+	$(CC) -shared -Wl,-soname,libgpvm3.so.3 -o $(LIBGPVM).so $(LOBJ) -lc
 
 $(LIBGPVM)-mpp:	$(LOBJ)
-	rm -f $(LIBGPVM)
-	$(AR_FRONT) cr $(LIBGPVM) $(LOBJ)
-	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBGPVM) ;; esac
+	rm -f $(LIBGPVM).a
+	$(AR_FRONT) cr $(LIBGPVM).a $(LOBJ)
+	case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBGPVM).a ;; esac
 	touch $(LIBGPVM)-mpp
 
-pvm_gstat$(EXESFX): pvm_gstat.o $(LIBGPVM) $(PVMLIBDEP)
-	$(CC) $(CFLAGS) -o $@ pvm_gstat.o $(LIBGPVM) $(LIBS)
+pvm_gstat$(EXESFX): pvm_gstat.o $(LIBGPVM).a $(PVMLIBDEP)
+	$(CC) $(CFLAGS) -o $@ pvm_gstat.o $(LIBGPVM).a $(LIBS)
 
 clean:
-	rm -f $(DOBJ) $(LOBJ) pvmgs$(EXESFX) $(LIBGPVM) \
+	rm -f $(DOBJ) $(LOBJ) pvmgs$(EXESFX) $(LIBGPVM).a \
 		pvm_gstat.o pvmgroups.o pvm_gstat$(EXESFX) pvmgroups$(EXESFX)
 
 tidy: