Tue Oct 9 12:40:05 2018 UTC ()
My website URI for bootsrap kit has changed. The older website will provide
older taballs, however new tarballs will be provided at the newer website only.


(ryoon)
diff -r1.53 -r1.54 pkgsrc/lang/rust/Makefile

cvs diff -r1.53 -r1.54 pkgsrc/lang/rust/Makefile (switch to unified diff)

--- pkgsrc/lang/rust/Makefile 2018/10/07 23:12:49 1.53
+++ pkgsrc/lang/rust/Makefile 2018/10/09 12:40:05 1.54
@@ -1,290 +1,290 @@ @@ -1,290 +1,290 @@
1# $NetBSD: Makefile,v 1.53 2018/10/07 23:12:49 ryoon Exp $ 1# $NetBSD: Makefile,v 1.54 2018/10/09 12:40:05 ryoon Exp $
2 2
3DISTNAME= rustc-1.29.1-src 3DISTNAME= rustc-1.29.1-src
4PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//} 4PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//}
5CATEGORIES= lang 5CATEGORIES= lang
6MASTER_SITES= http://static.rust-lang.org/dist/ 6MASTER_SITES= http://static.rust-lang.org/dist/
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://www.rust-lang.org/ 9HOMEPAGE= https://www.rust-lang.org/
10COMMENT= Safe, concurrent, practical language 10COMMENT= Safe, concurrent, practical language
11LICENSE= mit OR apache-2.0 11LICENSE= mit OR apache-2.0
12 12
13USE_GCC_RUNTIME= yes 13USE_GCC_RUNTIME= yes
14USE_LANGUAGES= c c++11 14USE_LANGUAGES= c c++11
15USE_LIBTOOL= yes 15USE_LIBTOOL= yes
16USE_TOOLS+= bash gmake perl:build pkg-config 16USE_TOOLS+= bash gmake perl:build pkg-config
17# For internal llvm 17# For internal llvm
18BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake 18BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake
19 19
20HAS_CONFIGURE= yes 20HAS_CONFIGURE= yes
21CONFIGURE_ARGS+= --prefix=${PREFIX} 21CONFIGURE_ARGS+= --prefix=${PREFIX}
22CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} 22CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
23CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} 23CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
24CONFIGURE_ARGS+= --python=${PYTHONBIN} 24CONFIGURE_ARGS+= --python=${PYTHONBIN}
25CONFIGURE_ARGS+= --release-channel=stable 25CONFIGURE_ARGS+= --release-channel=stable
26#CONFIGURE_ARGS+= --enable-local-rust 26#CONFIGURE_ARGS+= --enable-local-rust
27CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH} 27CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH}
28CONFIGURE_ARGS+= --enable-extended # Build and install cargo too. 28CONFIGURE_ARGS+= --enable-extended # Build and install cargo too.
29CONFIGURE_ARGS+= --enable-rpath 29CONFIGURE_ARGS+= --enable-rpath
30CONFIGURE_ARGS+= --disable-codegen-tests 30CONFIGURE_ARGS+= --disable-codegen-tests
31CONFIGURE_ARGS+= --disable-dist-src 31CONFIGURE_ARGS+= --disable-dist-src
32CONFIGURE_ARGS+= --disable-llvm-static-stdcpp 32CONFIGURE_ARGS+= --disable-llvm-static-stdcpp
33CONFIGURE_ARGS+= --disable-ninja 33CONFIGURE_ARGS+= --disable-ninja
34CONFIGURE_ARGS.SunOS+= --disable-jemalloc 34CONFIGURE_ARGS.SunOS+= --disable-jemalloc
35 35
36# This should allow us to perform "offline" builds (so cargo doesn't fetch 36# This should allow us to perform "offline" builds (so cargo doesn't fetch
37# dependencies during the build stage) but this isn't hooked up yet. 37# dependencies during the build stage) but this isn't hooked up yet.
38CONFIGURE_ARGS+= --enable-vendor 38CONFIGURE_ARGS+= --enable-vendor
39 39
40# cargo defaults to using the number of available CPUs 40# cargo defaults to using the number of available CPUs
41MAKE_ENV+= CARGO_BUILD_JOBS=${MAKE_JOBS:U1} 41MAKE_ENV+= CARGO_BUILD_JOBS=${MAKE_JOBS:U1}
42 42
43UNLIMIT_RESOURCES+= cputime 43UNLIMIT_RESOURCES+= cputime
44 44
45PYTHON_VERSIONS_ACCEPTED= 27 45PYTHON_VERSIONS_ACCEPTED= 27
46 46
47TEST_TARGET= check 47TEST_TARGET= check
48 48
49# bin/* lib/*, but names vary 49# bin/* lib/*, but names vary
50CHECK_RELRO_SUPPORTED= no 50CHECK_RELRO_SUPPORTED= no
51CHECK_SSP_SUPPORTED= no 51CHECK_SSP_SUPPORTED= no
52 52
53CHECK_PORTABILITY_SKIP+= src/vendor/openssl-src/openssl/.travis-create-release.sh 53CHECK_PORTABILITY_SKIP+= src/vendor/openssl-src/openssl/.travis-create-release.sh
54 54
55# Required for LLVM (-std=c++11) 55# Required for LLVM (-std=c++11)
56GCC_REQD+= 4.8 56GCC_REQD+= 4.8
57 57
58.include "../../mk/bsd.prefs.mk" 58.include "../../mk/bsd.prefs.mk"
59 59
60# 60#
61# Under NetBSD, do not use DT_RUNPATH 61# Under NetBSD, do not use DT_RUNPATH
62# 62#
63BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags 63BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags
64 64
65.PHONY: pre-build-fix 65.PHONY: pre-build-fix
66# 66#
67# Rust unfortunately requires itself to build. On platforms which aren't 67# Rust unfortunately requires itself to build. On platforms which aren't
68# supported by upstream (where they offer binary bootstraps), or where we do 68# supported by upstream (where they offer binary bootstraps), or where we do
69# not trust random binaries from the Internet, we need to build and provide our 69# not trust random binaries from the Internet, we need to build and provide our
70# own bootstrap. See the stage0-bootstrap below for more details. 70# own bootstrap. See the stage0-bootstrap below for more details.
71# 71#
72DISTFILES:= ${DEFAULT_DISTFILES} 72DISTFILES:= ${DEFAULT_DISTFILES}
73RUST_STAGE0_VER= 1.28.0 73RUST_STAGE0_VER= 1.28.0
74# 74#
75.if !empty(MACHINE_PLATFORM:MDarwin-*-i386) || make(distinfo) || make (makesum) || make(mdi) 75.if !empty(MACHINE_PLATFORM:MDarwin-*-i386) || make(distinfo) || make (makesum) || make(mdi)
76RUST_ARCH:= i686-apple-darwin 76RUST_ARCH:= i686-apple-darwin
77RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 77RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
78RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 78RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
79DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 79DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
80pre-build-fix: 80pre-build-fix:
81.endif 81.endif
82.if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) 82.if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
83RUST_ARCH:= x86_64-apple-darwin 83RUST_ARCH:= x86_64-apple-darwin
84RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 84RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
85RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 85RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
86DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 86DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
87pre-build-fix: 87pre-build-fix:
88.endif 88.endif
89.if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi) 89.if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi)
90RUST_ARCH:= i686-unknown-linux-gnu 90RUST_ARCH:= i686-unknown-linux-gnu
91RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 91RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
92RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 92RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
93DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 93DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
94pre-build-fix: 94pre-build-fix:
95.endif 95.endif
96.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) 96.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
97RUST_ARCH:= x86_64-unknown-linux-gnu 97RUST_ARCH:= x86_64-unknown-linux-gnu
98RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 98RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
99RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 99RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
100DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 100DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
101pre-build-fix: 101pre-build-fix:
102.endif 102.endif
103.if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) 103.if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
104RUST_ARCH:= x86_64-sun-solaris 104RUST_ARCH:= x86_64-sun-solaris
105RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 105RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
106SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/ 106SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
107DISTFILES:= ${DISTFILES} ${RUST_STAGE0} 107DISTFILES:= ${DISTFILES} ${RUST_STAGE0}
108RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH} 108RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
109pre-build-fix: 109pre-build-fix:
110.endif 110.endif
111.if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi) 111.if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
112RUST_ARCH:= i686-unknown-freebsd 112RUST_ARCH:= i686-unknown-freebsd
113RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 113RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
114RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 114RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
115DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 115DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
116pre-build-fix: 116pre-build-fix:
117.endif 117.endif
118.if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) 118.if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
119RUST_ARCH:= x86_64-unknown-freebsd 119RUST_ARCH:= x86_64-unknown-freebsd
120RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 120RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
121RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 121RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
122DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 122DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
123pre-build-fix: 123pre-build-fix:
124.endif 124.endif
125.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi) 125.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
126RUST_ARCH= i686-unknown-netbsd 126RUST_ARCH= i686-unknown-netbsd
127RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 127RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
128RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 128RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
129# Do not trust ryoon@. 129# Do not trust ryoon@.
130SITES.${RUST_STAGE0}= https://deuterium.ryoon.net/pub/rust/ 130SITES.${RUST_STAGE0}= https://www.ryoon.net/pub/rust/
131SITES.${RUST_STD_STAGE0}= https://deuterium.ryoon.net/pub/rust/ 131SITES.${RUST_STD_STAGE0}= https://www.ryoon.net/pub/rust/
132DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 132DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
133# Setting this changes it for every distfile, which doesn't match what is 133# Setting this changes it for every distfile, which doesn't match what is
134# currently in distinfo. 134# currently in distinfo.
135#DIST_SUBDIR= ${PKGNAME} 135#DIST_SUBDIR= ${PKGNAME}
136# For atomic ops 136# For atomic ops
137CFLAGS+= -march=i586 137CFLAGS+= -march=i586
138pre-build-fix: 138pre-build-fix:
139 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo 139 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo
140.endif 140.endif
141.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) 141.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
142RUST_ARCH= x86_64-unknown-netbsd 142RUST_ARCH= x86_64-unknown-netbsd
143RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 143RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
144RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 144RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
145DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 145DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
146pre-build-fix: 146pre-build-fix:
147.endif 147.endif
148 148
149# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf if you have a local bootstrap compiler. 149# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf if you have a local bootstrap compiler.
150.if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH) 150.if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH)
151NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM} 151NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM}
152.else 152.else
153RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap 153RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap
154.endif 154.endif
155 155
156.if ${OPSYS} == "SunOS" 156.if ${OPSYS} == "SunOS"
157BUILD_DEPENDS+= grep>=0:../../textproc/grep 157BUILD_DEPENDS+= grep>=0:../../textproc/grep
158BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils 158BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils
159TOOLS_PATH.grep= ${PREFIX}/bin/ggrep 159TOOLS_PATH.grep= ${PREFIX}/bin/ggrep
160TOOLS_CREATE+= md5sum 160TOOLS_CREATE+= md5sum
161TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum 161TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum
162.endif 162.endif
163 163
164SUBST_CLASSES+= rpath 164SUBST_CLASSES+= rpath
165SUBST_STAGE.rpath= pre-configure 165SUBST_STAGE.rpath= pre-configure
166SUBST_FILES.rpath= src/bootstrap/bin/rustc.rs 166SUBST_FILES.rpath= src/bootstrap/bin/rustc.rs
167SUBST_VARS.rpath= PREFIX 167SUBST_VARS.rpath= PREFIX
168 168
169post-extract: 169post-extract:
170 set -e; \ 170 set -e; \
171 if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \ 171 if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \
172 -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \ 172 -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \
173 cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}; \ 173 cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}; \
174 ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \ 174 ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
175 cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}; \ 175 cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}; \
176 ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \ 176 ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
177 fi 177 fi
178# patch(1) in NetBSD does not handle .cargo-checksum.json like long width file. 178# patch(1) in NetBSD does not handle .cargo-checksum.json like long width file.
179 cat ${WRKSRC}/src/vendor/libc/.cargo-checksum.json | \ 179 cat ${WRKSRC}/src/vendor/libc/.cargo-checksum.json | \
180 ${SED} -e 's/9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd/c3851969a854d6ccaa8a94369f1288025149d1ebdc74b36f224423f35b18f7a7/' > \ 180 ${SED} -e 's/9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd/c3851969a854d6ccaa8a94369f1288025149d1ebdc74b36f224423f35b18f7a7/' > \
181 ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched 181 ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched
182 ${CP} -f ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched \ 182 ${CP} -f ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched \
183 ${WRKSRC}/src/vendor/libc/.cargo-checksum.json 183 ${WRKSRC}/src/vendor/libc/.cargo-checksum.json
184 184
185.if ${OPSYS} != "SunOS" 185.if ${OPSYS} != "SunOS"
186LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib 186LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib
187PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q} 187PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q}
188.endif 188.endif
189 189
190.if ${OPSYS} == "FreeBSD" 190.if ${OPSYS} == "FreeBSD"
191MAKE_ENV+= OPENSSL_DIR=${SSLBASE} 191MAKE_ENV+= OPENSSL_DIR=${SSLBASE}
192.endif 192.endif
193 193
194pre-build: pre-build-fix 194pre-build: pre-build-fix
195 # Requires libssh2 defines only available in master. 195 # Requires libssh2 defines only available in master.
196 ${CP} -f ${WRKSRC}/src/vendor/libssh2-sys/libssh2/include/libssh2.h \ 196 ${CP} -f ${WRKSRC}/src/vendor/libssh2-sys/libssh2/include/libssh2.h \
197 ${BUILDLINK_DIR}/include/ 197 ${BUILDLINK_DIR}/include/
198 198
199do-build: 199do-build:
200 cd ${WRKSRC} \ 200 cd ${WRKSRC} \
201 && env ${MAKE_ENV} \ 201 && env ${MAKE_ENV} \
202 ${PYTHONBIN} ./x.py -v dist 202 ${PYTHONBIN} ./x.py -v dist
203 203
204do-install: 204do-install:
205 cd ${WRKSRC} \ 205 cd ${WRKSRC} \
206 && env ${MAKE_ENV} ${INSTALL_ENV} \ 206 && env ${MAKE_ENV} ${INSTALL_ENV} \
207 ${PYTHONBIN} ./x.py -v install 207 ${PYTHONBIN} ./x.py -v install
208 208
209post-install: 209post-install:
210 ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/install.log 210 ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/install.log
211 ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/uninstall.sh 211 ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/uninstall.sh
212 ${RM} -rf ${DESTDIR}${PREFIX}/lib/rustlib/src 212 ${RM} -rf ${DESTDIR}${PREFIX}/lib/rustlib/src
213 213
214GENERATE_PLIST+= find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \ 214GENERATE_PLIST+= find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
215 sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ; 215 sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
216 216
217.if ${OPSYS} == "Darwin" 217.if ${OPSYS} == "Darwin"
218.PHONY: fix-darwin-install-name 218.PHONY: fix-darwin-install-name
219post-install: fix-darwin-install-name 219post-install: fix-darwin-install-name
220fix-darwin-install-name: 220fix-darwin-install-name:
221. for bin in clippy-driver rls rustc rustdoc 221. for bin in clippy-driver rls rustc rustdoc
222 otool -XL ${DESTDIR}${PREFIX}/bin/${bin} \ 222 otool -XL ${DESTDIR}${PREFIX}/bin/${bin} \
223 | ${GREP} '@rpath' | while read rpath rest; do \ 223 | ${GREP} '@rpath' | while read rpath rest; do \
224 install_name_tool -change $$rpath \ 224 install_name_tool -change $$rpath \
225 `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \ 225 `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
226 ${DESTDIR}${PREFIX}/bin/${bin}; \ 226 ${DESTDIR}${PREFIX}/bin/${bin}; \
227 done 227 done
228. endfor 228. endfor
229. for libdir in lib lib/rustlib/${RUST_ARCH}/lib lib/rustlib/${RUST_ARCH}/codegen-backends 229. for libdir in lib lib/rustlib/${RUST_ARCH}/lib lib/rustlib/${RUST_ARCH}/codegen-backends
230 for f in ${DESTDIR}${PREFIX}/${libdir}/lib*.dylib; do \ 230 for f in ${DESTDIR}${PREFIX}/${libdir}/lib*.dylib; do \
231 [ ! -f $$f ] && continue; \ 231 [ ! -f $$f ] && continue; \
232 install_name_tool -id `${ECHO} $$f | ${SED} -e 's,${DESTDIR},,g'` $$f; \ 232 install_name_tool -id `${ECHO} $$f | ${SED} -e 's,${DESTDIR},,g'` $$f; \
233 otool -XL $$f | grep '@rpath' | while read rpath rest; do \ 233 otool -XL $$f | grep '@rpath' | while read rpath rest; do \
234 install_name_tool -change $$rpath \ 234 install_name_tool -change $$rpath \
235 `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \ 235 `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
236 $$f; \ 236 $$f; \
237 done; \ 237 done; \
238 done 238 done
239. endfor 239. endfor
240.endif 240.endif
241 241
242# 242#
243# Create a relocatable stage2 bootstrap from the bits we just built that can be 243# Create a relocatable stage2 bootstrap from the bits we just built that can be
244# used to build the next version of rust. Currently only tested on SmartOS. 244# used to build the next version of rust. Currently only tested on SmartOS.
245# 245#
246BOOTSTRAP_TMPDIR= ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH} 246BOOTSTRAP_TMPDIR= ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH}
247USE_TOOLS+= gtar 247USE_TOOLS+= gtar
248 248
249stage0-bootstrap: install 249stage0-bootstrap: install
250 ${RM} -rf ${BOOTSTRAP_TMPDIR} 250 ${RM} -rf ${BOOTSTRAP_TMPDIR}
251 ${MKDIR} ${BOOTSTRAP_TMPDIR} 251 ${MKDIR} ${BOOTSTRAP_TMPDIR}
252 ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/ 252 ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/
253 ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/ 253 ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/
254.if ${OS_VARIANT} == "SmartOS" 254.if ${OS_VARIANT} == "SmartOS"
255 ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc 255 ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc
256 for lib in libgcc_s.so.1 libssp.so.0 libstdc++.so.6; do \ 256 for lib in libgcc_s.so.1 libssp.so.0 libstdc++.so.6; do \
257 ${CP} `${PKG_CC} -print-file-name=$${lib}` \ 257 ${CP} `${PKG_CC} -print-file-name=$${lib}` \
258 ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \ 258 ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
259 done 259 done
260 for lib in libcrypto.so.1.0.0 libcurl.so.4 libhttp_parser.so.2 \ 260 for lib in libcrypto.so.1.0.0 libcurl.so.4 libhttp_parser.so.2 \
261 libiconv.so.2 libidn2.so.0 libintl.so.8 liblber-2.4.so.2 \ 261 libiconv.so.2 libidn2.so.0 libintl.so.8 liblber-2.4.so.2 \
262 libldap-2.4.so.2 libnghttp2.so.14 libsasl2.so.3 \ 262 libldap-2.4.so.2 libnghttp2.so.14 libsasl2.so.3 \
263 libssh2.so.1 libssl.so.1.0.0 libunistring.so.2 libz.so.1; do \ 263 libssh2.so.1 libssl.so.1.0.0 libunistring.so.2 libz.so.1; do \
264 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \ 264 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
265 done 265 done
266 for f in ${BOOTSTRAP_TMPDIR}/bin/{cargo,rls,rustc,rustdoc}; do \ 266 for f in ${BOOTSTRAP_TMPDIR}/bin/{cargo,rls,rustc,rustdoc}; do \
267 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \ 267 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \
268 done 268 done
269 for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \ 269 for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \
270 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN' $$f; \ 270 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN' $$f; \
271 done 271 done
272 for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \ 272 for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \
273 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \ 273 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \
274 done 274 done
275 for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/${RUST_ARCH}/*/*.so*; do \ 275 for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/${RUST_ARCH}/*/*.so*; do \
276 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \ 276 /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \
277 done 277 done
278.endif 278.endif
279 (cd ${WRKDIR}; \ 279 (cd ${WRKDIR}; \
280 ${GTAR} -zcf ${PKGNAME_NOREV}-${RUST_ARCH}.tar.gz ${PKGNAME_NOREV}-${RUST_ARCH}) 280 ${GTAR} -zcf ${PKGNAME_NOREV}-${RUST_ARCH}.tar.gz ${PKGNAME_NOREV}-${RUST_ARCH})
281 281
282.include "../../devel/cmake/buildlink3.mk" 282.include "../../devel/cmake/buildlink3.mk"
283.include "../../devel/libgit2/buildlink3.mk" 283.include "../../devel/libgit2/buildlink3.mk"
284.include "../../devel/zlib/buildlink3.mk" 284.include "../../devel/zlib/buildlink3.mk"
285.include "../../lang/python/tool.mk" 285.include "../../lang/python/tool.mk"
286.include "../../security/libssh2/buildlink3.mk" 286.include "../../security/libssh2/buildlink3.mk"
287.include "../../security/openssl/buildlink3.mk" 287.include "../../security/openssl/buildlink3.mk"
288.include "../../www/curl/buildlink3.mk" 288.include "../../www/curl/buildlink3.mk"
289.include "../../www/http-parser/buildlink3.mk" 289.include "../../www/http-parser/buildlink3.mk"
290.include "../../mk/bsd.pkg.mk" 290.include "../../mk/bsd.pkg.mk"