[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