[153943] trunk/dports/science
David Strubbe
dstrubbe at macports.org
Sun Oct 16 21:57:24 PDT 2016
Additionally, the dependency port:xorg-libX11 does not seem necessary: I
don't see any evidence in the build log that it is used, and the build
succeeds without it being active.
On Sun, Oct 16, 2016 at 5:23 PM, David Strubbe <dstrubbe at macports.org>
wrote:
> 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 ef797abc51ed8ae27c200f5b71fd0a
> 3824d1fa310392dac57067de2e423222ed
> 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/~th
>> ibaut/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/14dd759b/attachment-0001.html>
More information about the macports-dev
mailing list