118 lines
3.1 KiB
Makefile
118 lines
3.1 KiB
Makefile
BROKEN-i386 = fails "build fpm (stage1) using the bootstrap (stage0)"
|
|
# build --profile release --verbose
|
|
# *get_anyarray_l* bad logical expression for verbose=RELEASE
|
|
# *get_anyarray_l* bad logical expression for list=RELEASE
|
|
# *get_anyarray_l* bad logical expression for show-model=RELEASE
|
|
# *get_anyarray_l* bad logical expression for tests=RELEASE
|
|
# *get_anyarray_l* bad logical expression for no-prune=RELEASE
|
|
# [Error] Failed to change directory to 'release'
|
|
# STOP 1
|
|
|
|
COMMENT = Fortran Package Manager
|
|
|
|
V = 0.7.0
|
|
REVISION = 0
|
|
|
|
GH_ACCOUNT = fortran-lang
|
|
GH_PROJECT = fpm
|
|
GH_TAGNAME = v${V}
|
|
|
|
CATEGORIES = devel
|
|
|
|
HOMEPAGE = https://fpm.fortran-lang.org/
|
|
|
|
# MIT
|
|
PERMIT_PACKAGE = Yes
|
|
|
|
MASTER_SITES = ${MASTER_SITES_GITHUB}
|
|
MASTER_SITES0 = https://github.com/fortran-lang/fpm/releases/download/v${V}/
|
|
MASTER_SITES1 = https://github.com/toml-f/toml-f/archive/${TOMLF_COMMIT}/
|
|
MASTER_SITES2 = https://github.com/urbanjost/M_CLI2/archive/${MCLI2_COMMIT}/
|
|
|
|
DISTFILES = ${GH_DISTFILE} \
|
|
fpm-${V}.F90:0 \
|
|
toml-f-${TOMLF_COMMIT:C/(........).*/\1/}{${TOMLF_COMMIT}}${EXTRACT_SUFX}:1 \
|
|
M_CLI2-${MCLI2_COMMIT:C/(........).*/\1/}{${MCLI2_COMMIT}}${EXTRACT_SUFX}:2
|
|
|
|
# external dependencies (see fpm.toml)
|
|
TOMLF_COMMIT = e49f5523e4ee67db6628618864504448fb8c8939
|
|
MCLI2_COMMIT = 90a1a146e19c8ad37b0469b8cbd04bc28eb67a50
|
|
|
|
EXTRACT_CASES += \
|
|
*.F90) install -m 0644 ${FULLDISTDIR}/$$archive ${WRKDIR};;
|
|
|
|
WANTLIB += c m
|
|
|
|
MODULES += fortran
|
|
|
|
RUN_DEPENDS += devel/git,-main
|
|
TEST_DEPENDS += devel/git,-main
|
|
|
|
SEPARATE_BUILD = Yes
|
|
|
|
MAKE_ENV += FPM_FC="${MODFORTRAN_COMPILER}" \
|
|
FPM_FFLAGS="${FFLAGS}" \
|
|
FPM_CC="${CC}" \
|
|
FPM_CFLAGS="${CFLAGS}" \
|
|
FPM_CXX="${CXX}" \
|
|
FPM_CXXFLAGS="${CXXFLAGS}" \
|
|
FPM_LDFLAGS="${LDFLAGS}"
|
|
|
|
FC = ${MODFORTRAN_COMPILER}
|
|
FFLAGS +=
|
|
|
|
FPM_SRC0 = ${WRKSRC}/fpm-bootstrap.F90
|
|
FPM_BIN0 = ${WRKBUILD}/stage0/fpm
|
|
FPM_BIN1 = ${WRKBUILD}/stage1/fpm
|
|
|
|
post-extract:
|
|
mv ${WRKDIR}/fpm-${V}.F90 ${FPM_SRC0}
|
|
mkdir ${WRKSRC}/vendor
|
|
mv ${WRKDIR}/toml-f-${TOMLF_COMMIT} ${WRKSRC}/vendor/toml-f
|
|
mv ${WRKDIR}/M_CLI2-${MCLI2_COMMIT} ${WRKSRC}/vendor/M_CLI2
|
|
|
|
do-build:
|
|
mkdir -p ${WRKBUILD}/{stage0,stage1,stage2}
|
|
|
|
# build the bootstrap (stage0)
|
|
if [ "${FPM_SRC0}" -nt "${FPM_BIN0}" ]; then \
|
|
cd ${WRKBUILD}/stage0 && ${SETENV} ${MAKE_ENV} \
|
|
${FC} ${FFLAGS} -o "${FPM_BIN0}" "${FPM_SRC0}"; \
|
|
fi
|
|
|
|
# build fpm (stage1) using the bootstrap (stage0)
|
|
ln -fhs ${WRKBUILD}/stage1 ${WRKSRC}/build
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
|
|
"${FPM_BIN0}" build \
|
|
--profile release \
|
|
--verbose
|
|
|
|
# keep the patched fpm (stage1)
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
|
|
${FPM_BIN0} run \
|
|
--runner "echo" \
|
|
--profile release \
|
|
| xargs -J % cp % ${FPM_BIN1}
|
|
|
|
# build patched fpm (stage2) using the patched fpm (stage1)
|
|
ln -fhs ${WRKBUILD}/stage2 ${WRKSRC}/build
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
|
|
"${FPM_BIN1}" build \
|
|
--profile release \
|
|
--verbose
|
|
|
|
do-install:
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
|
|
${FPM_BIN1} run \
|
|
--runner "echo" \
|
|
--profile release \
|
|
| xargs -J % ${INSTALL_PROGRAM} % "${PREFIX}/bin"
|
|
|
|
do-test:
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
|
|
${FPM_BIN1} test \
|
|
--profile release \
|
|
--verbose
|
|
|
|
.include <bsd.port.mk>
|