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 <ryandes...@macports.org> wrote: > > > On Oct 16, 2016, at 12:41 PM, thib...@macports.org wrote: > > > > Revision > > 153943 > > Author > > thib...@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@lists.macosforge.org > https://lists.macosforge.org/mailman/listinfo/macports-dev >
_______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev