On Mon, 22 Aug 2016, David Coppa wrote:

> On Mon, 22 Aug 2016, Christian Weisgerber wrote:
> 
> > On 2016-08-22, Marc Espie <es...@nerim.net> wrote:
> > 
> > >> - to use the newer fortran (egfortran) from gcc 4.9, it's better
> > >>   to use the MODGCC4_* macros (see math/R)
> > >> 
> > >> After all this reasoning, ports/infrastructure/mk/fortran.port.mk
> > >> has become a simple four-liner:
> > >> 
> > >> So, why not just removing it completely?
> > > 
> > > Nope, you never know when it might come back.
> > > I'm for still having the extra layer in that case.
> > 
> > Then shouldn't this layer cover the gcc/4.9 and g77 cases?
> > If ports that require a newer fortran compiler can't even use that
> > abstraction, then it's useless.
> 
> Like this?
> 
> Index: fortran.port.mk
> ===================================================================
> RCS file: /cvs/ports/infrastructure/mk/fortran.port.mk,v
> retrieving revision 1.12
> diff -u -p -r1.12 fortran.port.mk
> --- fortran.port.mk   20 Nov 2010 19:57:30 -0000      1.12
> +++ fortran.port.mk   22 Aug 2016 15:02:32 -0000
> @@ -7,35 +7,13 @@ ERRORS += "Fatal: need to specify MODFOR
>  .endif
>  
>  .if ${MODFORTRAN_COMPILER:L} == "g77"
> -.  if ${COMPILER_VERSION:L:Mgcc[34]*}
> -_MODFORTRAN_LIB_DEPENDS_G77 = devel/libf2c
> -_MODFORTRAN_WANTLIB_G77 = g2c
> -_MODFORTRAN_BUILD_DEPENDS_G77 = lang/g77 devel/libf2c
> -.  else
> -_MODFORTRAN_LIB_DEPENDS_G77 = devel/libf2c-old
> -_MODFORTRAN_WANTLIB_G77 += g2c
> -_MODFORTRAN_BUILD_DEPENDS_G77 = lang/g77-old devel/libf2c-old
> -.  endif
> -MODFORTRAN_LIB_DEPENDS += ${_MODFORTRAN_LIB_DEPENDS_G77}
> -MODFORTRAN_WANTLIB += ${_MODFORTRAN_WANTLIB_G77}
> -MODFORTRAN_BUILD_DEPENDS += ${_MODFORTRAN_BUILD_DEPENDS_G77}
> -MODFORTRAN_post-patch = \
> -if test -e /usr/bin/g77 -o -e /usr/bin/f77; then \
> -    echo "Error: remove old fortran compiler /usr/bin/f77 /usr/bin/g77"; \
> -    exit 1; \
> -fi
> +MODFORTRAN_BUILD_DEPENDS += lang/g77 devel/libf2c
> +MODFORTRAN_LIB_DEPENDS += devel/libf2c
> +MODFORTRAN_WANTLIB += g2c
>  .elif ${MODFORTRAN_COMPILER:L} == "gfortran"
> -.  if ${COMPILER_VERSION:L:Mgcc4}
> -_MODFORTRAN_LIB_DEPENDS_GFORTRAN = lang/gfortran,-lib
> -_MODFORTRAN_WANTLIB_GFORTRAN = gfortran
> -_MODFORTRAN_BUILD_DEPENDS_GFORTRAN = lang/gfortran
> -.  else
>  MODULES += gcc4
> +MODGCC4_ARCHS ?= *
>  MODGCC4_LANGS += fortran
> -.  endif
> -MODFORTRAN_LIB_DEPENDS += ${_MODFORTRAN_LIB_DEPENDS_GFORTRAN}
> -MODFORTRAN_WANTLIB += ${_MODFORTRAN_WANTLIB_GFORTRAN}
> -MODFORTRAN_BUILD_DEPENDS += ${_MODFORTRAN_BUILD_DEPENDS_GFORTRAN}
>  .else
>  ERRORS += "Fatal: MODFORTRAN_COMPILER must be one of: g77 gfortran"
>  .endif

Result:

$ cat infrastructure/mk/fortran.port.mk
# $OpenBSD: fortran.port.mk,v 1.12 2010/11/20 19:57:30 espie Exp $

MODFORTRAN_COMPILER ?= g77

.if empty(MODFORTRAN_COMPILER)
ERRORS += "Fatal: need to specify MODFORTRAN_COMPILER"
.endif

.if ${MODFORTRAN_COMPILER:L} == "g77"
MODFORTRAN_BUILD_DEPENDS += lang/g77 devel/libf2c
MODFORTRAN_LIB_DEPENDS += devel/libf2c
MODFORTRAN_WANTLIB += g2c
.elif ${MODFORTRAN_COMPILER:L} == "gfortran"
MODULES += gcc4
MODGCC4_ARCHS ?= *
MODGCC4_LANGS += fortran
.else
ERRORS += "Fatal: MODFORTRAN_COMPILER must be one of: g77 gfortran"
.endif

Ciao,
David

Reply via email to