Changeset View
Changeset View
Standalone View
Standalone View
head/lang/rust/Makefile
# Created by: Jyun-Yan You <jyyou@cs.nctu.edu.tw> | # Created by: Jyun-Yan You <jyyou@cs.nctu.edu.tw> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= rust | PORTNAME= rust | ||||
PORTVERSION?= 1.31.0 | PORTVERSION?= 1.31.1 | ||||
PORTREVISION?= 0 | PORTREVISION?= 0 | ||||
CATEGORIES= lang | CATEGORIES= lang | ||||
MASTER_SITES= http://static.rust-lang.org/dist/:src \ | MASTER_SITES= http://static.rust-lang.org/dist/:src \ | ||||
LOCAL/dumbbell/rust:rust_bootstrap \ | LOCAL/dumbbell/rust:rust_bootstrap \ | ||||
https://static.rust-lang.org/dist/:rust_bootstrap \ | https://static.rust-lang.org/dist/:rust_bootstrap \ | ||||
LOCAL/dumbbell/rust:cargo_bootstrap \ | LOCAL/dumbbell/rust:cargo_bootstrap \ | ||||
https://static.rust-lang.org/dist/:cargo_bootstrap \ | https://static.rust-lang.org/dist/:cargo_bootstrap \ | ||||
https://s3.amazonaws.com/rust-lang-ci/cargo-builds/:cargo_bootstrap \ | https://s3.amazonaws.com/rust-lang-ci/cargo-builds/:cargo_bootstrap \ | ||||
Show All 32 Lines | |||||
RUST_BOOTSTRAP_VERSION?= 1.30.0 | RUST_BOOTSTRAP_VERSION?= 1.30.0 | ||||
RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | ||||
RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | ||||
CARGO_BOOTSTRAP_VERSION?= 0.31.0 | CARGO_BOOTSTRAP_VERSION?= 0.31.0 | ||||
CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz | ||||
CARGO_VENDOR_DIR?= ${WRKSRC}/src/vendor | |||||
RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//} | RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//} | ||||
# Rust's target arch string is different from *BSD arch strings | # Rust's target arch string is different from *BSD arch strings | ||||
RUST_ARCH_aarch64= aarch64 | RUST_ARCH_aarch64= aarch64 | ||||
RUST_ARCH_amd64= x86_64 | RUST_ARCH_amd64= x86_64 | ||||
RUST_ARCH_i386= i686 | RUST_ARCH_i386= i686 | ||||
RUST_ARCH_x86_64= x86_64 # dragonfly | RUST_ARCH_x86_64= x86_64 # dragonfly | ||||
RUST_TARGET= ${RUST_ARCH_${ARCH}}-unknown-${OPSYS:tl} | RUST_TARGET= ${RUST_ARCH_${ARCH}}-unknown-${OPSYS:tl} | ||||
Show All 31 Lines | |||||
.include <bsd.port.pre.mk> | .include <bsd.port.pre.mk> | ||||
X_PY_ENV= HOME="${WRKDIR}" \ | X_PY_ENV= HOME="${WRKDIR}" \ | ||||
LIBGIT2_SYS_USE_PKG_CONFIG=1 \ | LIBGIT2_SYS_USE_PKG_CONFIG=1 \ | ||||
LIBSSH2_SYS_USE_PKG_CONFIG=1 \ | LIBSSH2_SYS_USE_PKG_CONFIG=1 \ | ||||
OPENSSL_DIR="${OPENSSLBASE}" | OPENSSL_DIR="${OPENSSLBASE}" | ||||
X_PY_CMD= ${PYTHON_CMD} ${WRKSRC}/x.py | X_PY_CMD= ${PYTHON_CMD} ${WRKSRC}/x.py | ||||
CRATES_PATCHED_BY_FBSD10_FIX?= src/vendor/libssh2-sys \ | |||||
src/vendor/lzma-sys | |||||
RUST_STD_DIR= ${RUST_STD_BOOTSTRAP:T:R:R} | RUST_STD_DIR= ${RUST_STD_BOOTSTRAP:T:R:R} | ||||
post-extract: | post-extract: | ||||
@${MKDIR} \ | @${MKDIR} \ | ||||
${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} \ | ${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} \ | ||||
${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} | ${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} | ||||
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUSTC_BOOTSTRAP} \ | ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUSTC_BOOTSTRAP} \ | ||||
${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} | ${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} | ||||
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP} \ | ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP} \ | ||||
Show All 11 Lines | @${REINPLACE_CMD} -e \ | ||||
's|^date:.*|date: ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}|' \ | 's|^date:.*|date: ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}|' \ | ||||
${WRKSRC}/src/stage0.txt | ${WRKSRC}/src/stage0.txt | ||||
@${REINPLACE_CMD} -e \ | @${REINPLACE_CMD} -e \ | ||||
's|^rustc:.*|rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}|' \ | 's|^rustc:.*|rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}|' \ | ||||
${WRKSRC}/src/stage0.txt | ${WRKSRC}/src/stage0.txt | ||||
@${REINPLACE_CMD} -e \ | @${REINPLACE_CMD} -e \ | ||||
's|^cargo:.*|cargo: ${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}|' \ | 's|^cargo:.*|cargo: ${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}|' \ | ||||
${WRKSRC}/src/stage0.txt | ${WRKSRC}/src/stage0.txt | ||||
# After patching crates, we need to update their corresponding | # Disable vendor checksums | ||||
# `.cargo-checksum.json` to reflect the new checksums verified by Cargo. | @${REINPLACE_CMD} -e \ | ||||
@for dir in "${WRKSRC}/src/vendor/libc" \ | 's/"files":{[^}]*}/"files":{}/' \ | ||||
"${WRKSRC}/src/vendor/libgit2-sys" \ | ${CARGO_VENDOR_DIR}/*/.cargo-checksum.json | ||||
"${WRKSRC}/src/vendor/openssl"; do \ | |||||
if ! test -d "$$dir"; then \ | |||||
continue; \ | |||||
fi; \ | |||||
cd "$$dir"; \ | |||||
for file in $$(${FIND} * -name "*.orig"); do \ | |||||
old_checksum=$$(${SHA256} -q "$$file"); \ | |||||
new_checksum=$$(${SHA256} -q "$${file%%.orig}"); \ | |||||
regex="$$regex -e s|\"$${file%%.orig}\":\"$$old_checksum\"|\"$${file%%.orig}\":\"$$new_checksum\"|"; \ | |||||
done; \ | |||||
if test "$$regex"; then \ | |||||
${REINPLACE_CMD} -E $$regex .cargo-checksum.json; \ | |||||
fi; \ | |||||
done | |||||
# We make a backup of a few files before the FreeBSD 10 autotools | |||||
# fix is applied. We'll need them in `do-configure` to update the | |||||
# `.cargo-checksum.json` files. | |||||
@for crate in ${CRATES_PATCHED_BY_FBSD10_FIX}; do \ | |||||
if ! test -d "${WRKSRC}/$$crate"; then \ | |||||
continue; \ | |||||
fi; \ | |||||
for file in $$(${FIND} "${WRKSRC}/$$crate" -name "config.rpath"); do \ | |||||
${CP} "$$file" "$$file.orig"; \ | |||||
done; \ | |||||
done | |||||
.if defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE) | .if defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE) | ||||
CCACHE_VALUE= "${CCACHE_WRAPPER_PATH:C,/libexec/ccache$,,}/bin/ccache" | CCACHE_VALUE= "${CCACHE_WRAPPER_PATH:C,/libexec/ccache$,,}/bin/ccache" | ||||
.else | .else | ||||
CCACHE_VALUE= false | CCACHE_VALUE= false | ||||
.endif | .endif | ||||
.if !target(pre-configure) | |||||
pre-configure: | pre-configure: | ||||
@for file in \ | @for file in \ | ||||
${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/configure \ | ${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/configure \ | ||||
${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/config/libtool.m4; do \ | ${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/config/libtool.m4; do \ | ||||
mv "$$file" "$$file.dont-fix"; \ | mv "$$file" "$$file.dont-fix"; \ | ||||
done | done | ||||
.endif | |||||
do-configure: | do-configure: | ||||
${SED} -E \ | ${SED} -E \ | ||||
-e 's,%PREFIX%,${PREFIX},' \ | -e 's,%PREFIX%,${PREFIX},' \ | ||||
-e 's,%SYSCONFDIR%,${PREFIX}/etc,' \ | -e 's,%SYSCONFDIR%,${PREFIX}/etc,' \ | ||||
-e 's,%MANDIR%,${MANPREFIX}/man,' \ | -e 's,%MANDIR%,${MANPREFIX}/man,' \ | ||||
-e 's,%PYTHON_CMD%,${PYTHON_CMD},' \ | -e 's,%PYTHON_CMD%,${PYTHON_CMD},' \ | ||||
-e 's,%CHANNEL%,${RUST_CHANNEL},' \ | -e 's,%CHANNEL%,${RUST_CHANNEL},' \ | ||||
-e 's,%TARGET%,${RUST_TARGET},' \ | -e 's,%TARGET%,${RUST_TARGET},' \ | ||||
-e 's,%CCACHE%,${CCACHE_VALUE},' \ | -e 's,%CCACHE%,${CCACHE_VALUE},' \ | ||||
< ${FILESDIR}/config.toml \ | < ${FILESDIR}/config.toml \ | ||||
> ${WRKSRC}/config.toml | > ${WRKSRC}/config.toml | ||||
# The FreeBSD 10 autotools fix may modify some files just before | |||||
# `do-configure`. Like after `extra-path-ino64`, we need to update | |||||
# `.cargo-checksum.json`. | |||||
@for crate in ${CRATES_PATCHED_BY_FBSD10_FIX}; do \ | |||||
if ! test -d "${WRKSRC}/$$crate"; then \ | |||||
continue; \ | |||||
fi; \ | |||||
cd "${WRKSRC}/$$crate"; \ | |||||
for file in $$(${FIND} * -name "*.orig"); do \ | |||||
old_checksum=$$(${SHA256} -q "$$file"); \ | |||||
new_checksum=$$(${SHA256} -q "$${file%%.orig}"); \ | |||||
regex="$$regex -e s|\"$${file%%.orig}\":\"$$old_checksum\"|\"$${file%%.orig}\":\"$$new_checksum\"|"; \ | |||||
done; \ | |||||
if test "$$regex"; then \ | |||||
${REINPLACE_CMD} -E $$regex .cargo-checksum.json; \ | |||||
fi; \ | |||||
done | |||||
.if !target(post-configure) | |||||
post-configure: | post-configure: | ||||
@for file in \ | @for file in \ | ||||
${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/configure \ | ${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/configure \ | ||||
${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/config/libtool.m4; do \ | ${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/config/libtool.m4; do \ | ||||
mv "$$file.dont-fix" "$$file"; \ | mv "$$file.dont-fix" "$$file"; \ | ||||
done | done | ||||
.endif | |||||
post-configure-DOCS-on: | post-configure-DOCS-on: | ||||
${REINPLACE_CMD} -e 's,%DOCS%,true,' ${WRKSRC}/config.toml | ${REINPLACE_CMD} -e 's,%DOCS%,true,' ${WRKSRC}/config.toml | ||||
post-configure-DOCS-off: | post-configure-DOCS-off: | ||||
${REINPLACE_CMD} -e 's,%DOCS%,false,' ${WRKSRC}/config.toml | ${REINPLACE_CMD} -e 's,%DOCS%,false,' ${WRKSRC}/config.toml | ||||
do-build: | do-build: | ||||
▲ Show 20 Lines • Show All 159 Lines • Show Last 20 Lines |