[153943] trunk/dports/science
David Strubbe
dstrubbe at macports.org
Sun Oct 16 17:23:28 PDT 2016
Hi,
Let me add a few comments.
- The dependency for BLAS is wrong: the port OpenBLAS provides a library
-lopenblas not -lblas. Apparently the "lapack" port includes BLAS anyway.
To be simpler and more flexible, I suggest use of the linear algebra port
group I created to handle all this and also provide choices of different
optimized implementations (ATLAS, Accelerate, or OpenBLAS -- the port has
lapack included). See patch below.
- You are installing a lot of Makefiles and C source files -- is this on
purpose? It is somewhat unusual.
- You are putting everything in the lib directory. This should be reserved
for libraries. Headers should go in include; documentation or miscellaneous
things should go in share; etc.
- Since there are tests apparently available, you should create a test
phase rather than install their files, so that users can run "port test".
David
Index: Portfile
===================================================================
--- Portfile (revision 153958)
+++ Portfile (working copy)
@@ -3,6 +3,7 @@
PortSystem 1.0
PortGroup compilers 1.0
+PortGroup linear_algebra 1.0
cvs.date 20160908
@@ -29,9 +30,7 @@
sha256
ef797abc51ed8ae27c200f5b71fd0a3824d1fa310392dac57067de2e423222ed
worksrcdir ${distname}-${version}+dfsg
-depends_lib port:OpenBLAS \
- port:lapack \
- port:gsl \
+depends_lib port:gsl \
port:fftw-3 \
port:pgplot \
port:xorg-libX11
@@ -47,6 +46,7 @@
reinplace -W ${worksrcpath} "s|@FFLAGS@|${configure.fflags}|g"
local_settings
reinplace -W ${worksrcpath} "s|@LDFLAGS@|${configure.ldflags}|g"
local_settings
reinplace -W ${worksrcpath} "s|@LIB_FORTRAN@|${compilers.libfortran}|g"
local_settings
+ reinplace -W ${worksrcpath} "s|@LIB_LAPACK@|${linalglib}|g"
local_settings
}
build.env-append HOME_LORENE=${worksrcpath}
Index: files/local_settings
===================================================================
--- files/local_settings (revision 153958)
+++ files/local_settings (working copy)
@@ -74,7 +74,7 @@
# Linear Algebra Package (LAPACK) library
# ---------------------------------------
-LIB_LAPACK = -llapack -lblas
+LIB_LAPACK = @LIB_LAPACK
# Graphical libraries: PGPLOT, PNG and X11
# ----------------------------------------
On Sun, Oct 16, 2016 at 1:27 PM, Ryan Schmidt <ryandesign at macports.org>
wrote:
>
> > On Oct 16, 2016, at 12:41 PM, thibaut at macports.org wrote:
> >
> > Revision
> > 153943
> > Author
> > thibaut at macports.org
> > Date
> > 2016-10-16 10:41:08 -0700 (Sun, 16 Oct 2016)
> > Log Message
> >
> > New port: LORENE
> > Added Paths
> >
> > • trunk/dports/science/LORENE/
> > • trunk/dports/science/LORENE/Portfile
> > • trunk/dports/science/LORENE/files/
> > • trunk/dports/science/LORENE/files/local_settings
> > Diff
> >
> > Added: trunk/dports/science/LORENE/Portfile (0 => 153943)
> >
> > --- trunk/dports/science/LORENE/Portfile
> (rev 0)
> > +++ trunk/dports/science/LORENE/Portfile 2016-10-16 17:41:08 UTC
> (rev 153943)
> > @@ -0,0 +1,67 @@
> > +# -*- 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$
>
> The whitespace of this portfile does not conform to this modeline. Tabs
> should be replaced with spaces.
>
>
> > +PortSystem 1.0
> > +PortGroup compilers 1.0
> > +
> > +cvs.date 20160908
> > +
> > +name LORENE
> > +version 0.0.0~cvs${cvs.date}
> > +
> > +categories science
> > +maintainers thibaut openmaintainer
> > +description Langage Objet pour la RElativité NumériquE
> > +long_description LORENE is a set of C++ classes to solve various
> problems \
> > + arising in numerical relativity, and more generally
> in \
> > + computational astrophysics. It provides tools to
> solve \
> > + partial differential equations by means of
> multi-domain \
> > + spectral methods.
> > +
> > +license gpl-2+
> > +platforms darwin
> > +
> > +homepage http://www.lorene.obspm.fr/
> > +master_sites https://people.debian.org/~thibaut/debian/pool/main/l/
> lorene/
> > +distname lorene
> > +distfiles ${distname}_${version}+dfsg.orig.tar.xz
>
> Because this is not a tar.gz file but a tar.xz file, you must use "use_xz
> yes" to tell MacPorts how to decompress it. (Mavericks (?) and later can
> figure it out automatically, but our policy is not to rely on that, and to
> specify it correctly in the Portfile.)
>
>
> > +checksums rmd160 36346f8d7a50acee20a5b81051af2e7fe5f188c1 \
> > + sha256 ef797abc51ed8ae27c200f5b71fd0a
> 3824d1fa310392dac57067de2e423222ed
> > +worksrcdir ${distname}-${version}+dfsg
> > +
> > +depends_lib port:OpenBLAS \
> > + port:lapack \
> > + port:gsl \
> > + port:fftw-3 \
> > + port:pgplot \
> > + port:xorg-libX11
> > +
> > +compilers.choose cxx f77
> > +compilers.setup require_fortran
> > +
> > +configure {
> > + file copy ${filespath}/local_settings ${worksrcpath}/
> > + reinplace -W ${worksrcpath} "s|@CXX@|${configure.cxx}|g"
> local_settings
> > + reinplace -W ${worksrcpath} "s|@F77@| ${configure.f77} |g"
> local_settings
> > + reinplace -W ${worksrcpath} "s|@CXXFLAGS@|${configure.cxxflags}|g"
> local_settings
> > + reinplace -W ${worksrcpath} "s|@FFLAGS@|${configure.fflags}|g"
> local_settings
> > + reinplace -W ${worksrcpath} "s|@LDFLAGS@|${configure.ldflags}|g"
> local_settings
> > + reinplace -W ${worksrcpath} "s|@LIB_FORTRAN@|${compilers.libfortran}|g"
> local_settings
> > +}
>
> I don't see anywhere in this Portfile that arranges for the correct -arch
> (or, in the case of fortran, -m32/-m64) flags to be used.
> ([get_canonical_archflags ...])
>
> The universal variant fails and should probably be disabled because:
>
> Error: Cannot install LORENE for the archs 'i386 x86_64' because
> Error: its dependency pgplot does not build for the required archs by
> default
> Error: and does not have a universal variant.
>
>
> > +build.env-append HOME_LORENE=${worksrcpath}
> > +build.target cpp fortran export
> > +use_parallel_build no
> > +
> > +destroot {
> > + xinstall -d ${destroot}${prefix}/lib/lorene/Lib
> > + xinstall {*}[glob ${worksrcpath}/Lib/*.a] ${destroot}${prefix}/lib/
> lorene/Lib/
> > + xinstall -d ${destroot}${prefix}/lib/lorene/C++/Include
> > + xinstall {*}[glob ${worksrcpath}/C++/Include/*.h]
> ${destroot}${prefix}/lib/lorene/C++/Include/
> > + xinstall -d ${destroot}${prefix}/lib/lorene/C++/Include/Template
> > + xinstall {*}[glob ${worksrcpath}/C++/Include/Template/*]
> ${destroot}${prefix}/lib/lorene/C++/Include/Template/
> > + xinstall ${worksrcpath}/local_settings ${destroot}${prefix}/lib/
> lorene/
> > + xinstall -d ${destroot}${prefix}/lib/lorene/Devel
> > + xinstall {*}[glob ${worksrcpath}/Devel/*] ${destroot}${prefix}/lib/
> lorene/Devel/
> > + exec cp -a ${worksrcpath}/Codes ${destroot}${prefix}/lib/lorene/
> > +}
>
> Why "exec cp -a" instead of "copy"?
>
>
> > --- trunk/dports/science/LORENE/files/local_settings
> (rev 0)
> > +++ trunk/dports/science/LORENE/files/local_settings 2016-10-16
> 17:41:08 UTC (rev 153943)
> > @@ -0,0 +1,89 @@
> > + ###############################################################
> > +#
>
> Should there be this indentation on the first line?
>
>
> > +# Edit the following lines according to your implementation.
> > +#
> > +# The environment variable HOME_LORENE (root directory for the
> > +# Lorene implementation) must be have been already defined.
> > +#
> > +###############################################################
> > +
> > +#===============================#
> > +# COMPILERS #
> > +#===============================#
> > +
> > +# C++ compiler:
> > +# ------------
> > +CXX = @CXX@
> > +
> > +# Options for the C++ compiler to produce the optimized library:
> > +# -------------------------------------------------------------
> > +CXXFLAGS = @CXXFLAGS@ -DNDEBUG -fPIC
> > +
> > +# Options for the C++ compiler to produce the library for debugging:
> > +# -----------------------------------------------------------------
> > +CXXFLAGS_G = -g -fPIC
> > +
> > +# Path for the include files:
> > +# --------------------------
> > +INC = -I$(HOME_LORENE)/C++/Include
> > +
> > +# Converting archives to random libraries (if required, otherwise just
> ls)
> > +# ------------------------------------------------------------
> ------------
> > +RANLIB = ls
> > +
> > +# Fortran 77 compiler:
> > +# -------------------
> > +F77 = @F77@
> > +
> > +# Options for the Fortran 77 compiler to produce the optimized library:
> > +# ---------------------------------------------------------------------
> > +F77FLAGS = @FFLAGS@ -ffixed-form -ffixed-line-length-none -fPIC
> > +
> > +# Options for the Fortran 77 compiler to produce the library for
> debugging:
> > +# ------------------------------------------------------------
> ------------
> > +F77FLAGS_G = -ffixed-form -ffixed-line-length-none -g -fPIC
> > +
> > +#===============================#
> > +# MAKEDEPEND #
> > +#===============================#
> > +
> > +# First line uses the C precompiler (usually called cpp)
> > +# if yours does not support the -M option try to figure out
> > +# how to output dependencies file, or use makedepend (2nd line)
> > +#--------------------------------------------------------------
> > +MAKEDEPEND = @CXX@ $(INC) -M >> $(df).d $<
> > +#MAKEDEPEND = touch $(df).d && makedepend $(INC) -f $(df).d $<
> > +DEPDIR = .deps
> > +
> > +#===============================#
> > +# SYSTEM LIBRARIES #
> > +#===============================#
> > +
> > +# FFT library: FFT991 in Fortran coming with Lorene
> > +# FFTW3 library (must be installed separately)
> > +# -------------------------------------------------------------------
> > +FFT_DIR = FFTW3
> > +
> > +# C, C++ library, mathematical library and Fortran library
> > +# ---------------------------------------------------------
> > +ifeq ($(FFT_DIR),FFTW3)
> > +LIB_CXX = @LDFLAGS@ -lfftw3 @LIB_FORTRAN@ -lstdc++ -lm
> > +else
> > +LIB_CXX = @LDFLAGS -lgfortran -lstdc++ -lm
> > +endif
>
> On the second LIB_CXX line, did you mean to use "@LIB_FORTRAN@" again
> instead of "-lgfortran"? You probably also meant "@LDFLAGS@" instead of
> "@LDFLAGS".
>
>
> > +
> > +# Linear Algebra Package (LAPACK) library
> > +# ---------------------------------------
> > +LIB_LAPACK = -llapack -lblas
> > +
> > +# Graphical libraries: PGPLOT, PNG and X11
> > +# ----------------------------------------
> > +LIB_PGPLOT = -lcpgplot -lpgplot -lX11
> > +
> > +# GNU scientific library
> > +# -----------------------------------
> > +LIB_GSL = -lgsl -lgslcblas
>
>
>
> _______________________________________________
> macports-dev mailing list
> macports-dev at lists.macosforge.org
> https://lists.macosforge.org/mailman/listinfo/macports-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-dev/attachments/20161016/684d96c9/attachment-0001.html>
More information about the macports-dev
mailing list