diff options
author | lwhsu <lwhsu@FreeBSD.org> | 2012-01-24 00:07:04 +0800 |
---|---|---|
committer | lwhsu <lwhsu@FreeBSD.org> | 2012-01-24 00:07:04 +0800 |
commit | efb4d6eef4797eac3338135a968bf2b6d263c73d (patch) | |
tree | 7130e09892928d8f40aedcb4a3e241196cf6c6da /lang/rust | |
parent | 6d92424c799f11483782d85fef9b5b1e713cdbf1 (diff) | |
download | freebsd-ports-gnome-efb4d6eef4797eac3338135a968bf2b6d263c73d.tar.gz freebsd-ports-gnome-efb4d6eef4797eac3338135a968bf2b6d263c73d.tar.zst freebsd-ports-gnome-efb4d6eef4797eac3338135a968bf2b6d263c73d.zip |
Add rust 0.1, a language with a focus on memory safety and concurrency.
PR: ports/164366
Submitted by: Jyun-Yan You <jyyou@cs.nctu.edu.tw>
Diffstat (limited to 'lang/rust')
-rw-r--r-- | lang/rust/Makefile | 75 | ||||
-rw-r--r-- | lang/rust/distinfo | 4 | ||||
-rw-r--r-- | lang/rust/files/patch-configure | 20 | ||||
-rw-r--r-- | lang/rust/files/patch-mk_platform.mk | 11 | ||||
-rw-r--r-- | lang/rust/files/patch-src_cargo_cargo.rs | 12 | ||||
-rw-r--r-- | lang/rust/files/patch-src_rt_rust__unwind.h | 17 | ||||
-rw-r--r-- | lang/rust/pkg-descr | 8 | ||||
-rw-r--r-- | lang/rust/pkg-plist | 17 |
8 files changed, 164 insertions, 0 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile new file mode 100644 index 000000000000..c2b6b5d2a8ac --- /dev/null +++ b/lang/rust/Makefile @@ -0,0 +1,75 @@ +# New ports collection makefile for: rust +# Date created: 2012-01-21 +# Whom: Jyun-Yan You <jyyou@cs.nctu.edu.tw> +# +# $FreeBSD$ +# + +PORTNAME= rust +PORTVERSION= 0.1 +CATEGORIES= lang +MASTER_SITES= http://dl.rust-lang.org/dist/:source \ + http://people.cs.nctu.edu.tw/~jyyou/rust/:boot +DISTFILES= ${RUST_SOURCE}:source \ + ${RUST_BOOT}:boot +EXTRACT_ONLY= ${RUST_SOURCE} + +MAINTAINER= jyyou@cs.nctu.edu.tw +COMMENT= A language with a focus on memory safety and concurrency + +OPTIONS= CARGO "Build with package manager" off + +RUST_SOURCE= ${DISTNAME}${EXTRACT_SUFX} +RUST_BOOT= rust-${PORTVERSION}-boot.tar.bz2 +RUST_TARGET= x86_64-unknown-freebsd + +ONLY_FOR_ARCHS= amd64 +HAS_CONFIGURE= yes +USE_LDCONFIG= yes +USE_GMAKE= yes +USE_PERL5_BUILD= yes +USE_PYTHON_BUILD= 2.6-2.7 + +MAN1= rustc.1 + +.include <bsd.port.pre.mk> + +.if ${OSVERSION} >= 900044 +LIB_DEPENDS+= unwind.8:${PORTSDIR}/devel/libunwind +CC= clang +CXX= clang++ +CONFIGURE_ARGS+= --enable-clang +.else +USE_GCC= 4.4+ +.endif + +.if ${OSVERSION} < 800107 +IGNORE= needs tgammaf(3) +.endif + +.if !defined(WITHOUT_CARGO) +RUN_DEPENDS+= curl:${PORTSDIR}/ftp/curl \ + git:${PORTSDIR}/devel/git \ + gpg:${PORTSDIR}/security/gnupg +.endif + +LIB_DEPENDS+= execinfo.1:${PORTSDIR}/devel/libexecinfo + +MAKE_ARGS+= CC=${CC} CXX=${CXX} ARCH=x86_64 +CONFIGURE_ARGS+= --disable-valgrind --disable-docs + +post-extract: + ${MKDIR} ${WRKSRC}/${RUST_TARGET} && \ + cd ${WRKSRC}/${RUST_TARGET} && \ + tar xf ${DISTDIR}/${RUST_BOOT} && \ + ${MV} rust-stage0 stage0 + +post-patch: + ${REINPLACE_CMD} \ + -e '/src\/etc\/get-snapshot.py $$(CFG_HOST_TRIPLE)/d' \ + ${WRKSRC}/mk/stage0.mk + ${REINPLACE_CMD} \ + -e 's|\$$(PREFIX_ROOT)/share/man|${MANPREFIX}/man|g' \ + ${WRKSRC}/mk/install.mk + +.include <bsd.port.post.mk> diff --git a/lang/rust/distinfo b/lang/rust/distinfo new file mode 100644 index 000000000000..5322898a4910 --- /dev/null +++ b/lang/rust/distinfo @@ -0,0 +1,4 @@ +SHA256 (rust-0.1.tar.gz) = a1a234592168443b3bd6dce03378ee410393b07f8075c6a56e339638fdda8263 +SIZE (rust-0.1.tar.gz) = 10601377 +SHA256 (rust-0.1-boot.tar.bz2) = 682a8f4c735940e1f2e115adfbffde4838989e820a4f551576c0c9b4be1a0d2e +SIZE (rust-0.1-boot.tar.bz2) = 9759370 diff --git a/lang/rust/files/patch-configure b/lang/rust/files/patch-configure new file mode 100644 index 000000000000..f12475d8b42e --- /dev/null +++ b/lang/rust/files/patch-configure @@ -0,0 +1,20 @@ +--- configure.orig 2012-01-22 04:29:36.401802685 +0800 ++++ configure 2012-01-22 11:40:28.231803897 +0800 +@@ -281,7 +281,6 @@ + + probe_need CFG_PERL perl + probe_need CFG_PYTHON python python2.6 python2 python3 +-probe_need CFG_CURL curl + + probe CFG_GIT git + probe CFG_CLANG clang++ +@@ -340,7 +339,8 @@ + CFG_CLANG_VERSION=$("$CFG_CLANG" \ + --version \ + | grep version \ +- | cut -d ' ' -f 3) ++ | sed 's/.*\(version .*\)/\1/' \ ++ | cut -d ' ' -f 2) + + case $CFG_CLANG_VERSION in + (3.0svn | 3.0 | 3.1) diff --git a/lang/rust/files/patch-mk_platform.mk b/lang/rust/files/patch-mk_platform.mk new file mode 100644 index 000000000000..0955f6b8fed1 --- /dev/null +++ b/lang/rust/files/patch-mk_platform.mk @@ -0,0 +1,11 @@ +--- mk/platform.mk.orig 2012-01-22 08:59:58.097803422 +0800 ++++ mk/platform.mk 2012-01-22 04:45:22.124872578 +0800 +@@ -188,7 +188,7 @@ + CC=clang + CXX=clang++ + CPP=cpp +- CFG_GCCISH_CFLAGS += -Wall -Werror -fno-rtti -g ++ CFG_GCCISH_CFLAGS += -Wall -Werror -Wno-c++11-compat -fno-rtti -g + CFG_GCCISH_LINK_FLAGS += -g + CFG_DEPEND_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_CFLAGS) -MT "$(1)" \ + -MM $(2) diff --git a/lang/rust/files/patch-src_cargo_cargo.rs b/lang/rust/files/patch-src_cargo_cargo.rs new file mode 100644 index 000000000000..196557e4d126 --- /dev/null +++ b/lang/rust/files/patch-src_cargo_cargo.rs @@ -0,0 +1,12 @@ +--- src/cargo/cargo.rs.orig 2012-01-22 03:39:41.002804510 +0800 ++++ src/cargo/cargo.rs 2012-01-22 09:19:29.018803328 +0800 +@@ -389,7 +389,8 @@ + let exec_suffix = os::exec_suffix(); + for ct: str in new { + if (exec_suffix != "" && str::ends_with(ct, exec_suffix)) || +- (exec_suffix == "" && !str::starts_with(ct, "./lib")) { ++ (exec_suffix == "" && !str::starts_with(fs::basename(ct), ++ "lib")) { + #debug(" bin: %s", ct); + // FIXME: need libstd fs::copy or something + run::run_program("cp", [ct, c.bindir]); diff --git a/lang/rust/files/patch-src_rt_rust__unwind.h b/lang/rust/files/patch-src_rt_rust__unwind.h new file mode 100644 index 000000000000..1d3a1d38a804 --- /dev/null +++ b/lang/rust/files/patch-src_rt_rust__unwind.h @@ -0,0 +1,17 @@ +--- src/rt/rust_unwind.h.orig 2012-01-22 08:58:11.386020911 +0800 ++++ src/rt/rust_unwind.h 2012-01-22 04:37:29.745804340 +0800 +@@ -17,6 +17,8 @@ + + #if (defined __APPLE__) || (defined __clang__) + ++#ifndef __FreeBSD__ ++ + typedef int _Unwind_Action; + typedef void _Unwind_Exception; + +@@ -24,3 +26,5 @@ + + #endif + ++#endif ++ diff --git a/lang/rust/pkg-descr b/lang/rust/pkg-descr new file mode 100644 index 000000000000..082f40244625 --- /dev/null +++ b/lang/rust/pkg-descr @@ -0,0 +1,8 @@ +Rust is a curly-brace, block-structured expression language. +It visually resembles the C language family, but differs significantly +in syntactic and semantic details. Its design is oriented toward +concerns of "programming in the large", that is, +of creating and maintaining boundaries - both abstract and operational - +that preserve large-system integrity, availability and concurrency. + +WWW: http://www.rust-lang.org/ diff --git a/lang/rust/pkg-plist b/lang/rust/pkg-plist new file mode 100644 index 000000000000..d338c1483814 --- /dev/null +++ b/lang/rust/pkg-plist @@ -0,0 +1,17 @@ +bin/cargo +bin/rustc +bin/rustdoc +lib/libcore-14bd852465126fe7-0.1.so +lib/librustc-4171d83aef249987-0.1.so +lib/librustllvm.so +lib/librustrt.so +lib/libstd-79ca5fac56b63fde-0.1.so +lib/rustc/x86_64-unknown-freebsd/lib/intrinsics.bc +lib/rustc/x86_64-unknown-freebsd/lib/libcore-14bd852465126fe7-0.1.so +lib/rustc/x86_64-unknown-freebsd/lib/libmorestack.a +lib/rustc/x86_64-unknown-freebsd/lib/librustc-4171d83aef249987-0.1.so +lib/rustc/x86_64-unknown-freebsd/lib/librustrt.so +lib/rustc/x86_64-unknown-freebsd/lib/libstd-79ca5fac56b63fde-0.1.so +@dirrm lib/rustc/x86_64-unknown-freebsd/lib +@dirrm lib/rustc/x86_64-unknown-freebsd +@dirrm lib/rustc |