Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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