Revision: 144292 https://trac.macports.org/changeset/144292 Author: sean@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@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@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) + + + #---------------------------------------------------------------------------
participants (1)
-
sean@macports.org