Magellan Linux

Contents of /trunk/extras/rust/rust-1.18.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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