2016-01-22 09:03:14 +00:00
|
|
|
# $OpenBSD: Makefile,v 1.14 2016/01/22 09:03:14 semarie Exp $
|
2015-04-06 16:01:05 +00:00
|
|
|
|
|
|
|
# snapshots are only available for amd64, for now
|
2015-04-08 13:02:57 +00:00
|
|
|
ONLY_FOR_ARCHS = amd64
|
2015-04-06 16:01:05 +00:00
|
|
|
PKG_ARCH-doc = *
|
|
|
|
|
|
|
|
COMMENT-main = compiler for Rust Language
|
|
|
|
COMMENT-doc = html documentation for rustc
|
|
|
|
|
2016-01-22 09:03:14 +00:00
|
|
|
V = 1.6.0
|
|
|
|
RUST_HASH = ca9f0d77
|
2015-05-19 23:42:38 +00:00
|
|
|
DISTNAME = rustc-${V}-src
|
2015-04-06 16:01:05 +00:00
|
|
|
|
2015-06-27 15:37:32 +00:00
|
|
|
SUBST_VARS += RUST_HASH
|
|
|
|
|
2015-04-06 16:01:05 +00:00
|
|
|
PKGNAME = rust-${V}
|
|
|
|
PKGNAME-main = rust-${V}
|
|
|
|
PKGNAME-doc = rust-doc-${V}
|
|
|
|
|
|
|
|
MULTI_PACKAGES = -main -doc
|
|
|
|
|
|
|
|
# the snapshot version should be the version in src/snapshots.txt
|
2015-11-02 12:44:24 +00:00
|
|
|
SNAPSHOT-amd64 = rust-stage0-2015-08-11-1af31d4-openbsd-x86_64-9cae790c4ca19b1b29a048605ce249fe1c20a498.tar.bz2
|
2015-04-06 16:01:05 +00:00
|
|
|
|
|
|
|
CATEGORIES = lang
|
|
|
|
|
|
|
|
HOMEPAGE = http://www.rust-lang.org/
|
|
|
|
|
2015-08-28 06:51:07 +00:00
|
|
|
MAINTAINER = Sebastien Marie <semarie@openbsd.org>
|
2015-04-06 16:01:05 +00:00
|
|
|
|
|
|
|
# both MIT and Apache2.0
|
|
|
|
# with portions covered by various BSD-like licenses
|
|
|
|
PERMIT_PACKAGE_CDROM = Yes
|
|
|
|
|
|
|
|
WANTLIB-main = ${WANTLIB} c m pthread
|
|
|
|
WANTLIB-doc =
|
|
|
|
|
|
|
|
MASTER_SITES = https://static.rust-lang.org/dist/
|
|
|
|
MASTER_SITES0 = http://semarie.free.fr/rust/
|
|
|
|
|
|
|
|
DIST_SUBDIR = rust
|
|
|
|
DISTFILES = ${DISTNAME}${EXTRACT_SUFX}
|
|
|
|
.if defined(SNAPSHOT-${MACHINE_ARCH})
|
|
|
|
DISTFILES += ${SNAPSHOT-${MACHINE_ARCH}}:0
|
|
|
|
.endif
|
|
|
|
|
|
|
|
SUPDISTFILES = ${SNAPSHOT-amd64}:0
|
|
|
|
|
|
|
|
WRKDIST = ${WRKDIR}/${DISTNAME:S/-src//}
|
|
|
|
|
|
|
|
# MACHINE_ARCH to TRIPLE_ARCH conversion
|
|
|
|
.if "${MACHINE_ARCH}" == "amd64"
|
|
|
|
TRIPLE_ARCH = x86_64-unknown-openbsd
|
|
|
|
.endif
|
|
|
|
SUBST_VARS += TRIPLE_ARCH
|
|
|
|
|
|
|
|
MODULES += gcc4 \
|
|
|
|
lang/python
|
|
|
|
|
|
|
|
# rustllvm need c++11
|
|
|
|
MODGCC4_LANGS = c++
|
|
|
|
MODGCC4_ARCHS = *
|
|
|
|
|
2015-04-18 12:19:09 +00:00
|
|
|
# need to be keep in sync
|
2015-05-28 10:29:44 +00:00
|
|
|
LIBESTDC_VERSION = 17.0
|
2015-04-06 16:01:05 +00:00
|
|
|
|
|
|
|
# note: VERBOSE permit to unhide Makefile processing
|
|
|
|
# RUSTFLAGS extra flags passed to rust
|
2015-04-18 12:19:09 +00:00
|
|
|
# -L modgcc-libs : disambiguate libestdc++.so
|
2015-04-06 16:01:05 +00:00
|
|
|
# -Z print-link-args : unhide link call
|
|
|
|
# RUST_LOG helper
|
|
|
|
MAKE_ENV = VERBOSE=1 \
|
2015-04-18 12:19:09 +00:00
|
|
|
RUSTFLAGS="-L ${WRKDIR}/modgcc-libs -Z print-link-args" \
|
2015-04-06 16:01:05 +00:00
|
|
|
RUST_LOG="${RUST_LOG}"
|
|
|
|
|
|
|
|
|
|
|
|
# build/configuration variables
|
|
|
|
#
|
|
|
|
SEPARATE_BUILD = Yes
|
|
|
|
USE_GMAKE = Yes
|
|
|
|
|
|
|
|
CONFIGURE_STYLE = simple
|
|
|
|
CONFIGURE_ARGS += --disable-valgrind-rpass \
|
2015-05-19 23:42:38 +00:00
|
|
|
--release-channel=stable \
|
2015-04-06 16:01:05 +00:00
|
|
|
--prefix="${LOCALBASE}" \
|
|
|
|
--mandir="${LOCALBASE}/man"
|
|
|
|
|
2015-05-24 19:36:59 +00:00
|
|
|
CONFIGURE_ENV += ac_cv_header_execinfo_h=no
|
|
|
|
|
2015-04-06 16:01:05 +00:00
|
|
|
# need for libbacktrace
|
|
|
|
USE_LIBTOOL = gnu
|
|
|
|
|
|
|
|
.ifdef LOCAL_LLVM_FOR_RUST
|
|
|
|
CONFIGURE_ARGS += --llvm-root="${LOCAL_LLVM_FOR_RUST}"
|
|
|
|
.endif
|
|
|
|
|
2016-01-13 07:39:07 +00:00
|
|
|
ALL_TARGET += rustc-stage2 docs
|
2015-04-06 16:01:05 +00:00
|
|
|
TEST_TARGET = check
|
|
|
|
TEST_ENV += ALLOW_NONZERO_RLIMIT_CORE=1
|
2015-11-02 12:44:24 +00:00
|
|
|
TEST_DEPENDS += devel/git
|
2015-04-06 16:01:05 +00:00
|
|
|
|
|
|
|
# - check datasize limit before configuring (and building)
|
|
|
|
pre-configure:
|
|
|
|
@if [ `ulimit -d` -lt 1572864 ]; then \
|
|
|
|
echo datasize limit is too low - amd64 build takes approx 1.5GB; \
|
|
|
|
exit 1; fi
|
|
|
|
|
|
|
|
# - remove autodetected programs
|
2015-04-18 12:19:09 +00:00
|
|
|
# - copy libestdc++ from MODGCC4 to specific directory
|
|
|
|
# in order to disambiguate version linking (having multiple libestdc++
|
|
|
|
# at build time)
|
2015-04-06 16:01:05 +00:00
|
|
|
# - copy snapshot in stage0 (avoid downloading a snapshot)
|
|
|
|
post-configure:
|
|
|
|
.for _v in CFG_CURLORWGET CFG_GIT CFG_CLANG CFG_VALGRIND CFG_PERF CFG_ISCC \
|
|
|
|
CFG_JAVAC CFG_ANTLR4 CFG_BISON CFG_PANDOC CFG_GDB CFG_LLDB \
|
|
|
|
CFG_GDB_VERSION CFG_ADB
|
|
|
|
perl -pi -e 's/^${_v} .*/${_v} := /' ${WRKBUILD}/config.mk
|
|
|
|
.endfor
|
2015-06-27 15:37:32 +00:00
|
|
|
rm -rf ${WRKDIR}/modgcc-libs
|
2015-04-18 12:19:09 +00:00
|
|
|
mkdir ${WRKDIR}/modgcc-libs
|
|
|
|
cp ${LOCALBASE}/lib/libestdc++.so.${LIBESTDC_VERSION} ${WRKDIR}/modgcc-libs
|
2015-04-06 16:01:05 +00:00
|
|
|
cp ${WRKDIR}/rust-stage0/bin/rustc \
|
|
|
|
${WRKBUILD}/${TRIPLE_ARCH}/stage0/bin
|
|
|
|
cp ${WRKDIR}/rust-stage0/lib/lib*.so* \
|
|
|
|
${WRKBUILD}/${TRIPLE_ARCH}/stage0/lib
|
|
|
|
|
2016-01-13 07:39:07 +00:00
|
|
|
post-install:
|
|
|
|
# cleanup
|
|
|
|
rm ${PREFIX}/lib/rustlib/{install.log,uninstall.sh,rust-installer-version}
|
|
|
|
# host binary wrapper
|
|
|
|
${INSTALL_PROGRAM_DIR} \
|
2015-04-06 16:01:05 +00:00
|
|
|
${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/bin
|
2016-01-13 07:39:07 +00:00
|
|
|
mv ${PREFIX}/bin/rustc ${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/bin
|
2015-04-06 16:01:05 +00:00
|
|
|
${SUBST_PROGRAM} -c \
|
|
|
|
files/rustc ${PREFIX}/bin/rustc
|
|
|
|
|
|
|
|
.include <bsd.port.mk>
|