Changeset View
Changeset View
Standalone View
Standalone View
Mk/Uses/fortran.mk
# Fortran support | # Fortran support | ||||
# | # | ||||
# Feature: fortran | # Feature: fortran | ||||
# Usage: USES=fortran | # Usage: USES=fortran | ||||
# Valid ARGS: flang, gfortran (default) | # Valid ARGS: flang, gfortran (default) | ||||
# | # | ||||
# MAINTAINER: fortran@FreeBSD.org | # MAINTAINER: fortran@FreeBSD.org | ||||
.if !defined(_INCLUDE_USES_FORTRAN_MK) | .if !defined(_INCLUDE_USES_FORTRAN_MK) | ||||
_INCLUDE_USES_FORTRAN_MK= yes | _INCLUDE_USES_FORTRAN_MK= yes | ||||
.if empty(fortran_ARGS) | . if empty(fortran_ARGS) | ||||
fortran_ARGS= ${FORTRAN_DEFAULT} | fortran_ARGS= ${FORTRAN_DEFAULT} | ||||
.endif | . endif | ||||
.if ${fortran_ARGS} == flang | . if ${fortran_ARGS} == flang | ||||
.if ${ARCH} == amd64 | . if ${ARCH} == amd64 | ||||
BUILD_DEPENDS+= flang>0:devel/flang | BUILD_DEPENDS+= flang>0:devel/flang | ||||
RUN_DEPENDS+= flang>0:devel/flang | RUN_DEPENDS+= flang>0:devel/flang | ||||
F77= flang | F77= flang | ||||
FC= flang | FC= flang | ||||
LDFLAGS+= -L${LOCALBASE}/flang/lib -Wl,--as-needed -lflang -lexecinfo -Wl,--no-as-needed | LDFLAGS+= -L${LOCALBASE}/flang/lib -Wl,--as-needed -lflang -lexecinfo -Wl,--no-as-needed | ||||
.else | . else | ||||
IGNORE= USES=fortran: flang argument only available for amd64 | IGNORE= USES=fortran: flang argument only available for amd64 | ||||
.endif | . endif | ||||
.elif ${fortran_ARGS} == gfortran | . elif ${fortran_ARGS} == gfortran | ||||
_GCC_VER= ${GCC_DEFAULT:S/.//} | _GCC_VER= ${GCC_DEFAULT:S/.//} | ||||
BUILD_DEPENDS+= gfortran${_GCC_VER}:lang/gcc${_GCC_VER} | BUILD_DEPENDS+= gfortran${_GCC_VER}:lang/gcc${_GCC_VER} | ||||
RUN_DEPENDS+= gfortran${_GCC_VER}:lang/gcc${_GCC_VER} | RUN_DEPENDS+= gfortran${_GCC_VER}:lang/gcc${_GCC_VER} | ||||
F77= gfortran${_GCC_VER} | F77= gfortran${_GCC_VER} | ||||
FC= gfortran${_GCC_VER} | FC= gfortran${_GCC_VER} | ||||
FFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} | FFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} | ||||
FCFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} | FCFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} | ||||
LDFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \ | LDFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \ | ||||
-L${LOCALBASE}/lib/gcc${_GCC_VER} -B${LOCALBASE}/bin | -L${LOCALBASE}/lib/gcc${_GCC_VER} -B${LOCALBASE}/bin | ||||
.else | . else | ||||
IGNORE= USES=fortran: invalid arguments: ${fortran_ARGS} | IGNORE= USES=fortran: invalid arguments: ${fortran_ARGS} | ||||
.endif | . endif | ||||
USE_BINUTILS= yes | USE_BINUTILS= yes | ||||
CONFIGURE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}" FCFLAGS="${FCFLAGS}" | CONFIGURE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}" FCFLAGS="${FCFLAGS}" | ||||
MAKE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}" FCFLAGS="${FCFLAGS}" | MAKE_ENV+= F77="${F77}" FC="${FC}" FFLAGS="${FFLAGS}" FCFLAGS="${FCFLAGS}" | ||||
.endif | .endif |