[144292] trunk/dports/math
sean at macports.org
sean at macports.org
Tue Jan 5 17:13:37 PST 2016
Revision: 144292
https://trac.macports.org/changeset/144292
Author: sean at macports.org
Date: 2016-01-05 17:13:36 -0800 (Tue, 05 Jan 2016)
Log Message:
-----------
sprng: add new port for petsc variant
Added Paths:
-----------
trunk/dports/math/sprng/
trunk/dports/math/sprng/Portfile
trunk/dports/math/sprng/files/
trunk/dports/math/sprng/files/patch-makefile.diff
trunk/dports/math/sprng/files/patch-shared.diff
Copied: trunk/dports/math/sprng/Portfile (from rev 144291, trunk/dports/math/superlu/Portfile)
===================================================================
--- trunk/dports/math/sprng/Portfile (rev 0)
+++ trunk/dports/math/sprng/Portfile 2016-01-06 01:13:36 UTC (rev 144292)
@@ -0,0 +1,53 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem 1.0
+PortGroup mpi 1.0
+
+name sprng
+version 1.0
+categories math
+license CC-BY-SA-4
+platforms darwin
+maintainers sean openmaintainer
+description Scalable Parallel Random Number Generators
+long_description ${description}
+
+homepage http://www.sprng.org
+master_sites http://ftp.mcs.anl.gov/pub/petsc/externalpackages
+
+checksums rmd160 56869960903151ca58be796713f47a73d2d426c1 \
+ sha256 a305343059fa8d42e4479e9e54a9e25e45bc3fb9094e457839fb457230da65e7
+
+# petsc expects this to be built with mpi
+mpi.setup require
+
+use_configure no
+use_parallel_build no
+
+patch.pre_args -p1
+patchfiles-append patch-makefile.diff patch-shared.diff
+
+configure.cflags -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -O3 -mtune=native
+
+build.pre_args -C SRC
+
+post-patch {
+ reinplace "s|@@PREFIX@@|${prefix}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@CC@@|${configure.cc}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@FC@@|${configure.fc}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@CPP@@|${configure.cpp}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@CFLAGS@@|${configure.cflags}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@FFLAGS@@|${configure.fflags}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@MPICC@@|${mpi.cc}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@MPIFC@@|${mpi.fc}|" ${worksrcpath}/SRC/make.PETSC
+ reinplace "s|@@SHAREDFLAGS@@|-dynamiclib -Wl,-headerpad_max_install_names,-multiply_defined,suppress,-commons,use_dylibs,-search_paths_first|" ${worksrcpath}/SRC/make.PETSC
+}
+
+destroot {
+ xinstall -m 644 {*}[glob ${worksrcpath}/include/*.h] ${destroot}${prefix}/include
+ xinstall -m 644 {*}[glob ${worksrcpath}/lib/*.a] ${destroot}${prefix}/lib
+ xinstall -m 644 {*}[glob ${worksrcpath}/lib/*.dylib] ${destroot}${prefix}/lib
+}
+
+livecheck.type none
Added: trunk/dports/math/sprng/files/patch-makefile.diff
===================================================================
--- trunk/dports/math/sprng/files/patch-makefile.diff (rev 0)
+++ trunk/dports/math/sprng/files/patch-makefile.diff 2016-01-06 01:13:36 UTC (rev 144292)
@@ -0,0 +1,53 @@
+# HG changeset patch
+# User Sean Farley <sean at farley.io>
+# Date 1452040850 28800
+# Tue Jan 05 16:40:50 2016 -0800
+# Node ID f03080aa3226c638f6e8429c802688521882a9f4
+# Parent c921ba940436a9c0c1260b8c85083a9595e1ebbc
+use @@VAR@@ for substitution later
+
+diff --git a/SRC/make.PETSC b/SRC/make.PETSC
+--- a/SRC/make.PETSC
++++ b/SRC/make.PETSC
+@@ -1,27 +1,28 @@
+-AR = ar
++AR = /usr/bin/ar
+ ARFLAGS = cr
+-#If your system does not have ranlib, then replace next statement with
+-#RANLIB = echo
+-RANLIB = ranlib
++RANLIB = /usr/bin/ranlib
+
+-CC = /sandbox/hzhang/externalpackages/mpich2-1.0.3/linux-gnu-intel-hong/bin/mpicc
++CC = @@CC@@
+ CLD = $(CC)
+ # Set f77 to echo if you do not have a FORTRAN compiler
+-F77 = /sandbox/hzhang/externalpackages/mpich2-1.0.3/linux-gnu-intel-hong/bin/mpif77
++F77 = @@FC@@
+
+ F77LD = $(F77)
+ FFXN = -DAdd_
+ FSUFFIX = F
+
+-MPIF77 = /sandbox/hzhang/externalpackages/mpich2-1.0.3/linux-gnu-intel-hong/bin/mpif77
+-MPICC = /sandbox/hzhang/externalpackages/mpich2-1.0.3/linux-gnu-intel-hong/bin/mpicc
++MPIF77 = @@MPIFC@@
++MPICC = @@MPICC@@
+
+ # Please include mpi header file path, if needed
+-CFLAGS = -O3 -DLittleEndian $(PMLCGDEF) $(MPIDEF) -D$(PLAT)
++CFLAGS = @@CFLAGS@@
+
+-CLDFLAGS = -O3
++CLDFLAGS =
+
+-FFLAGS = -O3 $(PMLCGDEF) $(MPIDEF) -D$(PLAT) -I.
+-F77LDFLAGS = -O3
++FFLAGS = @@FFLAGS@@
++F77LDFLAGS =
+
+-CPP = cpp -P
++CPP = @@CPP@@
++
++SHAREDFLAGS = @@SHAREDFLAGS@@
++PREFIX = @@PREFIX@@
Added: trunk/dports/math/sprng/files/patch-shared.diff
===================================================================
--- trunk/dports/math/sprng/files/patch-shared.diff (rev 0)
+++ trunk/dports/math/sprng/files/patch-shared.diff 2016-01-06 01:13:36 UTC (rev 144292)
@@ -0,0 +1,131 @@
+# HG changeset patch
+# User Sean Farley <sean at farley.io>
+# Date 1452041090 28800
+# Tue Jan 05 16:44:50 2016 -0800
+# Node ID cb7c59b22d7c344320d1235e4b6ddf69ec56c513
+# Parent f03080aa3226c638f6e8429c802688521882a9f4
+shared libs
+
+diff --git a/SRC/cmrg/Makefile b/SRC/cmrg/Makefile
+--- a/SRC/cmrg/Makefile
++++ b/SRC/cmrg/Makefile
+@@ -31,16 +31,21 @@ SPRNG_COMMON_DEPEND = $(SRCDIR)/fwrap_mp
+ $(SRCDIR)/memory.o $(SRCDIR)/communicate.o $(SRCDIR)/checkid.o $(SRCDIR)/store.o
+
+ cmrg :
+ (cd ..; $(MAKE) sprng_common)
+ $(MAKE) $(LIBDIR)/libcmrg.a
++ $(MAKE) $(LIBDIR)/libcmrg.dylib
+
+ $(LIBDIR)/libcmrg.a : cmrg.o primes.o $(SPRNG_COMMON_DEPEND)
+ $(AR) $(ARFLAGS) $(LIBDIR)/libcmrg.a cmrg.o primes.o \
+ $(SPRNG_COMMON_DEPEND)
+ $(RANLIB) $(LIBDIR)/libcmrg.a
+
++$(LIBDIR)/libcmrg.dylib : cmrg.o primes.o $(SPRNG_COMMON_DEPEND)
++ $(CC) $(LDFLAGS) -o $(LIBDIR)/libcmrg.dylib cmrg.o primes.o \
++ $(SPRNG_COMMON_DEPEND) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/libcmrg.dylib
++
+ cmrg.o : $(SRCDIR)/interface.h cmrg.c $(SRCDIR)/memory.h primes.h $(SRCDIR)/multiply.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
+ $(CC) -c $(CFLAGS) $(FFXN) $(INLINEOPT) cmrg.c -I$(SRCDIR)
+
+ primes.o : primes.h primes.c
+ $(CC) -c $(CFLAGS) primes.c -I$(SRCDIR)
+diff --git a/SRC/lcg/Makefile b/SRC/lcg/Makefile
+--- a/SRC/lcg/Makefile
++++ b/SRC/lcg/Makefile
+@@ -31,16 +31,21 @@ SPRNG_COMMON_DEPEND = $(SRCDIR)/fwrap_mp
+ $(SRCDIR)/memory.o $(SRCDIR)/communicate.o $(SRCDIR)/checkid.o $(SRCDIR)/store.o
+
+ lcg :
+ (cd ..; $(MAKE) sprng_common)
+ $(MAKE) $(LIBDIR)/liblcg.a
++ $(MAKE) $(LIBDIR)/liblcg.dylib
+
+ $(LIBDIR)/liblcg.a : lcg.o primes.o $(SPRNG_COMMON_DEPEND)
+ $(AR) $(ARFLAGS) $(LIBDIR)/liblcg.a lcg.o primes.o \
+ $(SPRNG_COMMON_DEPEND)
+ $(RANLIB) $(LIBDIR)/liblcg.a
+
++$(LIBDIR)/liblcg.dylib : lcg.o primes.o $(SPRNG_COMMON_DEPEND)
++ $(CC) $(LDFLAGS) -o $(LIBDIR)/liblcg.dylib lcg.o primes.o \
++ $(SPRNG_COMMON_DEPEND) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/liblcg.dylib
++
+ lcg.o : $(SRCDIR)/interface.h lcg.c $(SRCDIR)/memory.h primes.h $(SRCDIR)/multiply.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
+ $(CC) -c $(CFLAGS) $(FFXN) $(INLINEOPT) lcg.c -I$(SRCDIR)
+
+ primes.o : primes.h primes.c
+ $(CC) -c $(CFLAGS) primes.c -I$(SRCDIR)
+diff --git a/SRC/lcg64/Makefile b/SRC/lcg64/Makefile
+--- a/SRC/lcg64/Makefile
++++ b/SRC/lcg64/Makefile
+@@ -31,16 +31,21 @@ SPRNG_COMMON_DEPEND = $(SRCDIR)/fwrap_mp
+ $(SRCDIR)/memory.o $(SRCDIR)/communicate.o $(SRCDIR)/checkid.o $(SRCDIR)/store.o
+
+ lcg64 :
+ (cd ..; $(MAKE) sprng_common)
+ $(MAKE) $(LIBDIR)/liblcg64.a
++ $(MAKE) $(LIBDIR)/liblcg64.dylib
+
+ $(LIBDIR)/liblcg64.a : lcg64.o primes.o $(SPRNG_COMMON_DEPEND)
+ $(AR) $(ARFLAGS) $(LIBDIR)/liblcg64.a lcg64.o primes.o \
+ $(SPRNG_COMMON_DEPEND)
+ $(RANLIB) $(LIBDIR)/liblcg64.a
+
++$(LIBDIR)/liblcg64.dylib : lcg64.o primes.o $(SPRNG_COMMON_DEPEND)
++ $(CC) $(LDFLAGS) -o $(LIBDIR)/liblcg64.dylib lcg64.o primes.o \
++ $(SPRNG_COMMON_DEPEND) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/liblcg64.dylib
++
+ lcg64.o : $(SRCDIR)/interface.h lcg64.c $(SRCDIR)/memory.h primes.h $(SRCDIR)/multiply.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
+ $(CC) -c $(CFLAGS) $(FFXN) $(INLINEOPT) -I$(SRCDIR) lcg64.c
+
+ primes.o : primes.h primes.c
+ $(CC) -c $(CFLAGS) primes.c -I$(SRCDIR)
+diff --git a/SRC/lfg/Makefile b/SRC/lfg/Makefile
+--- a/SRC/lfg/Makefile
++++ b/SRC/lfg/Makefile
+@@ -30,15 +30,20 @@ SPRNG_COMMON_DEPEND = $(SRCDIR)/fwrap_mp
+ $(SRCDIR)/memory.o $(SRCDIR)/communicate.o $(SRCDIR)/checkid.o $(SRCDIR)/store.o
+
+ lfg :
+ (cd ..; $(MAKE) sprng_common)
+ $(MAKE) $(LIBDIR)/liblfg.a
++ $(MAKE) $(LIBDIR)/liblfg.dylib
+
+ $(LIBDIR)/liblfg.a: lfg.o $(SPRNG_COMMON_DEPEND)
+ $(AR) $(ARFLAGS) $(LIBDIR)/liblfg.a lfg.o $(SPRNG_COMMON_DEPEND)
+ $(RANLIB) $(LIBDIR)/liblfg.a
+
++$(LIBDIR)/liblfg.dylib: lfg.o $(SPRNG_COMMON_DEPEND)
++ $(CC) $(LDFLAGS) -o $(LIBDIR)/liblfg.dylib lfg.o \
++ $(SPRNG_COMMON_DEPEND) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/liblfg.dylib
++
+ lfg.o : $(SRCDIR)/interface.h lfg.c $(SRCDIR)/multiply.h $(SRCDIR)/memory.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
+ $(CC) -c $(CFLAGS) $(FFXN) $(INLINEOPT) lfg.c -I$(SRCDIR)
+
+
+ #---------------------------------------------------------------------------
+diff --git a/SRC/mlfg/Makefile b/SRC/mlfg/Makefile
+--- a/SRC/mlfg/Makefile
++++ b/SRC/mlfg/Makefile
+@@ -30,15 +30,20 @@ SPRNG_COMMON_DEPEND = $(SRCDIR)/fwrap_mp
+ $(SRCDIR)/memory.o $(SRCDIR)/communicate.o $(SRCDIR)/checkid.o $(SRCDIR)/store.o
+
+ mlfg :
+ (cd ..; $(MAKE) sprng_common)
+ $(MAKE) $(LIBDIR)/libmlfg.a
++ $(MAKE) $(LIBDIR)/libmlfg.dylib
+
+ $(LIBDIR)/libmlfg.a: mlfg.o $(SPRNG_COMMON_DEPEND)
+ $(AR) $(ARFLAGS) $(LIBDIR)/libmlfg.a mlfg.o $(SPRNG_COMMON_DEPEND)
+ $(RANLIB) $(LIBDIR)/libmlfg.a
+
++$(LIBDIR)/libmlfg.dylib: mlfg.o $(SPRNG_COMMON_DEPEND)
++ $(CC) $(LDFLAGS) -o $(LIBDIR)/libmlfg.dylib mlfg.o \
++ $(SPRNG_COMMON_DEPEND) $(SHAREDFLAGS) -install_name $(PREFIX)/lib/libmlfg.dylib
++
+ mlfg.o : $(SRCDIR)/interface.h mlfg.c int64.h $(SRCDIR)/memory.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
+ $(CC) -c $(CFLAGS) $(FFXN) $(INLINEOPT) mlfg.c -I$(SRCDIR)
+
+
+ #---------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160105/12b61aa4/attachment.html>
More information about the macports-changes
mailing list