[153943] trunk/dports/science

Ryan Schmidt ryandesign at macports.org
Sun Oct 16 13:27:59 PDT 2016


> 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  ef797abc51ed8ae27c200f5b71fd0a3824d1fa310392dac57067de2e423222ed
> +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





More information about the macports-dev mailing list