Annotation of /trunk/extras/rust/rust-1.18.0-r1.smage2
Parent Directory | Revision Log
Revision 30028 -
(hide annotations)
(download)
Mon Oct 23 13:54:51 2017 UTC (6 years, 11 months ago) by niro
File size: 3643 byte(s)
Mon Oct 23 13:54:51 2017 UTC (6 years, 11 months ago) by niro
File size: 3643 byte(s)
auto added: ver bump to 1.21.0-r1
1 | niro | 29509 | # $Id$ |
2 | |||
3 | PNAME="rust" | ||
4 | PVER="1.18.0" | ||
5 | PBUILD="r1" | ||
6 | |||
7 | PCAT="dev-lang" | ||
8 | |||
9 | DESCRIPTION="Systems programming language focused on safety, speed and concurrency." | ||
10 | HOMEPAGE="https://www.rust-lang.org/" | ||
11 | |||
12 | niro | 29510 | # enable bootstrap of rust with prebuild binary rust |
13 | # 0=no, 1=yes | ||
14 | BOOTSTRAP=1 | ||
15 | |||
16 | niro | 29509 | DEPEND=">= sys-libs/llvm-libs-3.9" |
17 | |||
18 | SDEPEND=">= sys-dev/llvm-3.9 | ||
19 | >= dev-lang/perl-5.24 | ||
20 | >= dev-lang/python-2.7 | ||
21 | >= dev-libs/libffi-3.2 | ||
22 | >= dev-libs/jemalloc-5 | ||
23 | >= net-misc/curl-7" | ||
24 | |||
25 | niro | 29510 | if [[ ${BOOTSTRAP} = 0 ]] |
26 | then | ||
27 | niro | 30028 | SDEPEND+=" |
28 | >= dev-lang/rust-1.18" | ||
29 | niro | 29510 | fi |
30 | |||
31 | niro | 29509 | SRCFILE="${PNAME}c-${PVER}-src.tar.gz" |
32 | SRCDIR="${BUILDDIR}/${PNAME}c-${PVER}-src" | ||
33 | |||
34 | niro | 29512 | msetfeature "!check" |
35 | niro | 29509 | sminclude mbuild mtools |
36 | |||
37 | SRC_URI=( | ||
38 | https://static.rust-lang.org/dist/${SRCFILE} | ||
39 | mirror://${PNAME}/${SRCFILE} | ||
40 | ) | ||
41 | |||
42 | UP2DATE="updatecmd https://www.rust-lang.org/en-US/other-installers.html | grep 'rustc-.*-src.*' | sed 's:-src::g' | highesttarball gz" | ||
43 | |||
44 | niro | 29510 | if [[ ${BOOTSTRAP} = 1 ]] |
45 | then | ||
46 | # see src/stage0.txt | ||
47 | RUSTBIN_PVER="1.17.0" | ||
48 | RUSTBIN_DATE="2017-04-27" | ||
49 | RUSTBIN_SRCFILE_x86_64="rustc-${RUSTBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz" | ||
50 | RUSTBIN_SRCFILE_x86="rustc-${RUSTBIN_PVER}-i686-unknown-linux-gnu.tar.gz" | ||
51 | RUSTBIN_SRCFILE="$(marchsrcfile RUSTBIN_SRCFILE)" | ||
52 | RUSTSTD_SRCFILE_x86_64="rust-std-${RUSTBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz" | ||
53 | RUSTSTD_SRCFILE_x86="rust-std-${RUSTBIN_PVER}-i686-unknown-linux-gnu.tar.gz" | ||
54 | RUSTSTD_SRCFILE="$(marchsrcfile RUSTSTD_SRCFILE)" | ||
55 | CARGOBIN_PVER="0.18.0" | ||
56 | CARGOBIN_SRCFILE_x86_64="cargo-${CARGOBIN_PVER}-x86_64-unknown-linux-gnu.tar.gz" | ||
57 | CARGOBIN_SRCFILE_x86="cargo-${CARGOBIN_PVER}-i686-unknown-linux-gnu.tar.gz" | ||
58 | CARGOBIN_SRCFILE="$(marchsrcfile CARGOBIN_SRCFILE)" | ||
59 | niro | 29509 | |
60 | niro | 29510 | SRC_URI+=( |
61 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTBIN_SRCFILE_x86_64} | ||
62 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTBIN_SRCFILE_x86} | ||
63 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTSTD_SRCFILE_x86_64} | ||
64 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${RUSTSTD_SRCFILE_x86} | ||
65 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${CARGOBIN_SRCFILE_x86_64} | ||
66 | https://static.rust-lang.org/dist/${RUSTBIN_DATE}/${CARGOBIN_SRCFILE_x86} | ||
67 | ) | ||
68 | fi | ||
69 | |||
70 | src_prepare() | ||
71 | { | ||
72 | munpack ${SRCFILE} || die | ||
73 | |||
74 | if [[ ${BOOTSTRAP} = 1 ]] | ||
75 | then | ||
76 | install -d ${SRCDIR}/build/cache/${RUSTBIN_DATE} || die | ||
77 | niro | 29511 | ln -snf ${SOURCEDIR}/${PNAME}/${RUSTBIN_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die |
78 | ln -snf ${SOURCEDIR}/${PNAME}/${RUSTSTD_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die | ||
79 | ln -snf ${SOURCEDIR}/${PNAME}/${CARGOBIN_SRCFILE} ${SRCDIR}/build/cache/${RUSTBIN_DATE}/ || die | ||
80 | niro | 29510 | fi |
81 | } | ||
82 | |||
83 | niro | 29509 | src_compile() |
84 | { | ||
85 | cd ${SRCDIR} | ||
86 | |||
87 | niro | 29510 | local myconf |
88 | |||
89 | # enforce rust-bin chost | ||
90 | myconf+=" --host=${ARCH}-unknown-linux-gnu --build=${ARCH}-unknown-linux-gnu" | ||
91 | |||
92 | if [[ ${BOOTSTRAP} = 0 ]] | ||
93 | then | ||
94 | myconf+=" --enable-local-rust" | ||
95 | fi | ||
96 | |||
97 | niro | 29509 | mconfigure \ |
98 | --release-channel=stable \ | ||
99 | --llvm-root=/usr \ | ||
100 | --enable-llvm-link-shared \ | ||
101 | niro | 29510 | --jemalloc-root=/usr/$(mlibdir) \ |
102 | niro | 29509 | --disable-codegen-tests \ |
103 | niro | 29510 | ${myconf} \ |
104 | niro | 29509 | || die |
105 | |||
106 | # missing llvm link deps | ||
107 | export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" | ||
108 | python2 ./x.py build --verbose || die | ||
109 | } | ||
110 | |||
111 | src_install() | ||
112 | { | ||
113 | cd ${SRCDIR} | ||
114 | mmake DESTDIR=${BINDIR} install || die | ||
115 | |||
116 | # remove unnecessary files | ||
117 | mdelete /usr/$(mlibdir)/rustlib/components || die | ||
118 | mdelete /usr/$(mlibdir)/rustlib/manifest-rustc || die | ||
119 | mdelete /usr/$(mlibdir)/rustlib/rust-installer-version || die | ||
120 | |||
121 | niro | 29510 | # overwrite duplicate solibs with symlinks to safe space |
122 | local i | ||
123 | for i in ${BINDIR}/usr/$(mlibdir)/rustlib/${ARCH}-unknown-linux-gnu/lib/* | ||
124 | do | ||
125 | mlink rustlib/${ARCH}-unknown-linux-gnu/lib/$(basename ${i}) /usr/$(mlibdir)/ || die | ||
126 | done | ||
127 | |||
128 | minstalldocs COPYRIGHT LICENSE-* ChangeLog README* || die | ||
129 | niro | 29509 | } |