Magellan Linux

Contents of /smage/trunk/extras/rust/rust-1.19.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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