ports/143866: [PATCH] net/pvm Build shared libraries

Rob Farmer rfarmer at predatorlabs.net
Sat Feb 13 07:30:05 UTC 2010


>Number:         143866
>Category:       ports
>Synopsis:       [PATCH] net/pvm Build shared libraries
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Feb 13 07:30:05 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Rob Farmer
>Release:        9.0-CURRENT
>Organization:
>Environment:
FreeBSD coretwo.predatorlabs.net 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r203695: Tue Feb  9 03:02:13 PST 2010     rfarmer at coretwo.predatorlabs.net:/usr/obj/usr/src/sys/CORETWO  amd64
>Description:
Make the port build and install shared libraries
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/net/pvm/Makefile,v
retrieving revision 1.26
diff -u -r1.26 Makefile
--- Makefile	1 Feb 2010 02:18:45 -0000	1.26
+++ Makefile	13 Feb 2010 02:09:28 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	pvm
 PORTVERSION=	3.4.6
+PORTREVISION=	1
 CATEGORIES=	net parallel
 MASTER_SITES=	http://www.netlib.org/pvm3/	\
 		ftp://ftp.chg.ru/pub/prog/parallel/pvm3/
@@ -26,10 +27,11 @@
 .endif
 
 USE_FORTRAN=	yes
+USE_LDCONFIG=	yes
 
 WRKSRC=		${WRKDIR}/pvm3
-MAKE_ENV+=	PVM_ROOT=${WRKSRC} ARCHCFLAGS="${CFLAGS}"
-ALL_TARGET=	all install
+MAKE_ENV+=	PVM_ROOT=${WRKSRC} SHAREDLDFLAGS="-lgfortran -shared"
+ALL_TARGET=	all shared install
 PVM_ROOT=	${PREFIX}/lib/pvm
 REINPLACE_ARGS=	-i ""
 MAKE_JOBS_UNSAFE=yes
@@ -115,6 +117,7 @@
 .include <bsd.port.pre.mk>
 
 pre-patch:
+	@${REINPLACE_CMD} -e 's|$$(ARCHCFLAGS)|$$(ARCHCFLAGS) -fPIC|g' ${WRKSRC}/src/Makefile.aimk
 	@${REINPLACE_CMD} -e 's,<malloc.h>,<stdlib.h>,' \
 		${WRKSRC}/tracer/tracer.h ${WRKSRC}/tracer/trclib.h \
 		${WRKSRC}/tracer/trcsort.c
@@ -138,6 +141,10 @@
 	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libfpvm3.a ${PREFIX}/lib
 	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libgpvm3.a ${PREFIX}/lib
 	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libpvmtrc.a ${PREFIX}/lib
+	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libpvm3.so ${PREFIX}/lib
+	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libpvm3.so ${PREFIX}/lib/libpvm3.so.3
+	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libgpvm3.so ${PREFIX}/lib
+	@ ${INSTALL_DATA} ${WRKSRC}/lib/FREEBSD/libgpvm3.so ${PREFIX}/lib/libgpvm3.so.3
 	@ ${INSTALL_DATA} ${WRKSRC}/conf/FREEBSD.def ${PVM_ROOT}/conf
 	@ ${INSTALL_DATA} ${WRKSRC}/include/* ${PREFIX}/include
 	cd ${WRKSRC}/man/man1 && ${INSTALL_MAN} ${MAN1} ${PREFIX}/man/man1
Index: pkg-plist
===================================================================
RCS file: /home/ncvs/ports/net/pvm/pkg-plist,v
retrieving revision 1.3
diff -u -r1.3 pkg-plist
--- pkg-plist	31 Oct 2002 23:36:04 -0000	1.3
+++ pkg-plist	13 Feb 2010 01:56:53 -0000
@@ -67,6 +67,10 @@
 lib/libpvmtrc.a
 lib/libfpvm3.a
 lib/libgpvm3.a
+lib/libpvm3.so
+lib/libpvm3.so.3
+lib/libgpvm3.so
+lib/libgpvm3.so.3
 @dirrm lib/pvm/lib/FREEBSD
 @dirrm lib/pvm/lib
 @dirrm lib/pvm/conf
Index: files/patch-pvmgs-Makefile.aimk
===================================================================
RCS file: files/patch-pvmgs-Makefile.aimk
diff -N files/patch-pvmgs-Makefile.aimk
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-pvmgs-Makefile.aimk	12 Feb 2010 11:08:04 -0000
@@ -0,0 +1,95 @@
+Index: pvmgs/Makefile.aimk
+===================================================================
+--- pvmgs/Makefile.aimk
++++ 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:


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list