Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Nov 2018 15:52:43 +0000 (UTC)
From:      "Jason W. Bacon" <jwb@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r484101 - in head/science/voro++: . files
Message-ID:  <201811041552.wA4FqhUu099193@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jwb
Date: Sun Nov  4 15:52:42 2018
New Revision: 484101
URL: https://svnweb.freebsd.org/changeset/ports/484101

Log:
  science/voro++: Add shared library
  
  Consolidated build changes into patch files.
  
  Kept static lib as well as some dependencies may specify it explicitly
  (this is common in scientific software for better or worse) and the library
  is very small.
  
  PR:             232876
  Reported by:    yuri
  Approved by:    jrm (mentor, implicit)

Added:
  head/science/voro++/files/
  head/science/voro++/files/patch-Makefile   (contents, props changed)
  head/science/voro++/files/patch-config.mk   (contents, props changed)
  head/science/voro++/files/patch-src_Makefile   (contents, props changed)
Modified:
  head/science/voro++/Makefile
  head/science/voro++/pkg-descr
  head/science/voro++/pkg-plist

Modified: head/science/voro++/Makefile
==============================================================================
--- head/science/voro++/Makefile	Sun Nov  4 15:05:47 2018	(r484100)
+++ head/science/voro++/Makefile	Sun Nov  4 15:52:42 2018	(r484101)
@@ -1,7 +1,8 @@
 # $FreeBSD$
 
 PORTNAME=	voro++
-PORTVERSION=	0.4.6
+DISTVERSION=	0.4.6
+PORTREVISION=	1
 CATEGORIES=	science
 MASTER_SITES=	http://math.lbl.gov/voro++/download/dir/
 
@@ -12,18 +13,11 @@ LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 USES=		gmake
+USE_LDCONFIG=	yes
 
-post-patch:
-	${REINPLACE_CMD} \
-		-e 's|CXX=|CXX?=|g' \
-		-e 's|CFLAGS=|CFLAGS?=|g' \
-		-e 's|PREFIX=.*|PREFIX?=|g' \
-		${WRKSRC}/config.mk
-	${REINPLACE_CMD} \
-		-e 's|$$(PREFIX)|$$(DESTDIR)$$(PREFIX)|g' \
-		${WRKSRC}/Makefile
+CFLAGS+=	-fPIC
 
 post-install:
-	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/voro++
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/voro++
 
 .include <bsd.port.mk>

Added: head/science/voro++/files/patch-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/voro++/files/patch-Makefile	Sun Nov  4 15:52:42 2018	(r484101)
@@ -0,0 +1,101 @@
+--- Makefile.orig	2013-10-17 17:54:13 UTC
++++ Makefile
+@@ -12,7 +12,7 @@ include config.mk
+ # Build all of the executable files
+ all:
+ 	$(MAKE) -C src
+-	$(MAKE) -C examples
++	#$(MAKE) -C examples
+ 
+ # Build the help files (with Doxygen)
+ help:
+@@ -26,47 +26,48 @@ clean:
+ # Install the executable, man page, and shared library
+ install:
+ 	$(MAKE) -C src
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/bin
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/lib
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/man
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/man/man1
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/include
+-	$(INSTALL) -d $(IFLAGS_EXEC) $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS_EXEC) src/voro++ $(PREFIX)/bin
+-	$(INSTALL) $(IFLAGS) man/voro++.1 $(PREFIX)/man/man1
+-	$(INSTALL) $(IFLAGS) src/libvoro++.a $(PREFIX)/lib
+-	$(INSTALL) $(IFLAGS) src/voro++.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/c_loops.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/cell.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/common.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/config.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/container.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/container_prd.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/rad_option.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/pre_container.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/unitcell.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/v_base.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/v_compute.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/wall.hh $(PREFIX)/include/voro++
+-	$(INSTALL) $(IFLAGS) src/worklist.hh $(PREFIX)/include/voro++
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/bin
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/lib
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/man
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/man/man1
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/include
++	$(INSTALL) -d $(IFLAGS_EXEC) $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS_EXEC) src/voro++ $(DESTDIR)$(PREFIX)/bin
++	$(INSTALL) $(IFLAGS) man/voro++.1 $(DESTDIR)$(PREFIX)/man/man1
++	$(INSTALL) $(IFLAGS) src/libvoro++.a $(DESTDIR)$(PREFIX)/lib
++	$(INSTALL) $(IFLAGS) src/libvoro++.so $(DESTDIR)$(PREFIX)/lib
++	$(INSTALL) $(IFLAGS) src/voro++.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/c_loops.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/cell.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/common.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/config.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/container.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/container_prd.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/rad_option.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/pre_container.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/unitcell.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/v_base.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/v_compute.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/wall.hh $(DESTDIR)$(PREFIX)/include/voro++
++	$(INSTALL) $(IFLAGS) src/worklist.hh $(DESTDIR)$(PREFIX)/include/voro++
+ 
+ # Uninstall the executable, man page, and shared library
+ uninstall:
+-	rm -f $(PREFIX)/bin/voro++
+-	rm -f $(PREFIX)/man/man1/voro++.1
+-	rm -f $(PREFIX)/lib/libvoro++.a
+-	rm -f $(PREFIX)/include/voro++/voro++.hh
+-	rm -f $(PREFIX)/include/voro++/c_loops.hh
+-	rm -f $(PREFIX)/include/voro++/cell.hh
+-	rm -f $(PREFIX)/include/voro++/common.hh
+-	rm -f $(PREFIX)/include/voro++/config.hh
+-	rm -f $(PREFIX)/include/voro++/container.hh
+-	rm -f $(PREFIX)/include/voro++/container_prd.hh
+-	rm -f $(PREFIX)/include/voro++/pre_container.hh
+-	rm -f $(PREFIX)/include/voro++/rad_option.hh
+-	rm -f $(PREFIX)/include/voro++/unitcell.hh
+-	rm -f $(PREFIX)/include/voro++/v_base.hh
+-	rm -f $(PREFIX)/include/voro++/v_compute.hh
+-	rm -f $(PREFIX)/include/voro++/wall.hh
+-	rm -f $(PREFIX)/include/voro++/worklist.hh
+-	rmdir $(PREFIX)/include/voro++
++	rm -f $(DESTDIR)$(PREFIX)/bin/voro++
++	rm -f $(DESTDIR)$(PREFIX)/man/man1/voro++.1
++	rm -f $(DESTDIR)$(PREFIX)/lib/libvoro++.a
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/voro++.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/c_loops.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/cell.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/common.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/config.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/container.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/container_prd.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/pre_container.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/rad_option.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/unitcell.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/v_base.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/v_compute.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/wall.hh
++	rm -f $(DESTDIR)$(PREFIX)/include/voro++/worklist.hh
++	rmdir $(DESTDIR)$(PREFIX)/include/voro++

Added: head/science/voro++/files/patch-config.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/voro++/files/patch-config.mk	Sun Nov  4 15:52:42 2018	(r484101)
@@ -0,0 +1,27 @@
+--- config.mk.orig	2013-10-17 17:54:13 UTC
++++ config.mk
+@@ -8,20 +8,20 @@
+ # the Makefiles.
+ 
+ # C++ compiler
+-CXX=g++
++CXX?=g++
+ 
+ # Flags for the C++ compiler
+-CFLAGS=-Wall -ansi -pedantic -O3
++CFLAGS?=-Wall -ansi -pedantic -O3
+ 
+ # Relative include and library paths for compilation of the examples
+ E_INC=-I../../src
+ E_LIB=-L../../src
+ 
+ # Installation directory
+-PREFIX=/usr/local
++PREFIX?=/usr/local
+ 
+ # Install command
+-INSTALL=install
++INSTALL?=install
+ 
+ # Flags for install command for executable
+ IFLAGS_EXEC=-m 0755

Added: head/science/voro++/files/patch-src_Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/science/voro++/files/patch-src_Makefile	Sun Nov  4 15:52:42 2018	(r484101)
@@ -0,0 +1,24 @@
+--- src/Makefile.orig	2013-10-17 17:54:13 UTC
++++ src/Makefile
+@@ -13,7 +13,7 @@ objs=cell.o common.o container.o unitcel
+ src=$(patsubst %.o,%.cc,$(objs))
+ 
+ # Makefile rules
+-all: libvoro++.a voro++
++all: libvoro++.a libvoro++.so voro++
+ 
+ depend:
+ 	$(CXX) -MM $(src) >Makefile.dep
+@@ -24,7 +24,11 @@ libvoro++.a: $(objs)
+ 	rm -f libvoro++.a
+ 	ar rs libvoro++.a $^
+ 
+-voro++: libvoro++.a cmd_line.cc
++libvoro++.so: $(objs)
++	rm -f libvoro++.so
++	$(CXX) -shared $(LDFLAGS) -o libvoro++.so -Wl,-soname,libvoro++.so $^
++
++voro++: libvoro++.so cmd_line.cc
+ 	$(CXX) $(CFLAGS) -L. -o voro++ cmd_line.cc -lvoro++
+ 
+ %.o: %.cc

Modified: head/science/voro++/pkg-descr
==============================================================================
--- head/science/voro++/pkg-descr	Sun Nov  4 15:05:47 2018	(r484100)
+++ head/science/voro++/pkg-descr	Sun Nov  4 15:52:42 2018	(r484101)
@@ -1,9 +1,9 @@
 Voro++ is a software library for carrying out three-dimensional computations
-of the Voronoi tessellation. A distinguishing feature of the Voro++ library
-is that it carries out cell-based calculations, computing the Voronoi cell
-for each particle individually. It is particularly well-suited for
-applications that rely on cell-based statistics, where features of Voronoi
-cells (eg. volume, centroid, number of faces) can be used to analyze a
-system of particles.
+of the Voronoi tessellation. A distinguishing feature of the Voro++ library is
+that it carries out cell-based calculations, computing the Voronoi cell for
+each particle individually. It is particularly well-suited for applications
+that rely on cell-based statistics, where features of Voronoi cells (eg.
+volume, centroid, number of faces) can be used to analyze a system of
+particles.
 
 WWW: http://math.lbl.gov/voro++/

Modified: head/science/voro++/pkg-plist
==============================================================================
--- head/science/voro++/pkg-plist	Sun Nov  4 15:05:47 2018	(r484100)
+++ head/science/voro++/pkg-plist	Sun Nov  4 15:52:42 2018	(r484101)
@@ -14,4 +14,5 @@ include/voro++/voro++.hh
 include/voro++/wall.hh
 include/voro++/worklist.hh
 lib/libvoro++.a
+lib/libvoro++.so
 man/man1/voro++.1.gz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811041552.wA4FqhUu099193>