Magellan Linux

Annotation of /smage/trunk/extras/rust/rust-1.18.0-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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