Annotation of pkgsrc/lang/rust/Makefile, Revision 1.59
1.59 ! jperkin 1: # $NetBSD: Makefile,v 1.58 2018/10/15 11:22:23 he Exp $
1.1 jperkin 2:
1.52 minskim 3: DISTNAME= rustc-1.29.1-src
1.1 jperkin 4: PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//}
1.58 he 5: PKGREVISION= 2
1.1 jperkin 6: CATEGORIES= lang
7: MASTER_SITES= http://static.rust-lang.org/dist/
8:
9: MAINTAINER= pkgsrc-users@NetBSD.org
1.9 wiz 10: HOMEPAGE= https://www.rust-lang.org/
1.1 jperkin 11: COMMENT= Safe, concurrent, practical language
12: LICENSE= mit OR apache-2.0
13:
14: USE_GCC_RUNTIME= yes
1.10 ryoon 15: USE_LANGUAGES= c c++11
1.18 jperkin 16: USE_LIBTOOL= yes
1.59 ! jperkin 17: USE_TOOLS+= bash ggrep gmake perl:build pkg-config
1.22 ryoon 18: # For internal llvm
19: BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake
1.6 jperkin 20:
1.18 jperkin 21: HAS_CONFIGURE= yes
22: CONFIGURE_ARGS+= --prefix=${PREFIX}
23: CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
24: CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
25: CONFIGURE_ARGS+= --python=${PYTHONBIN}
26: CONFIGURE_ARGS+= --release-channel=stable
1.20 ryoon 27: #CONFIGURE_ARGS+= --enable-local-rust
1.18 jperkin 28: CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH}
29: CONFIGURE_ARGS+= --enable-extended # Build and install cargo too.
30: CONFIGURE_ARGS+= --enable-rpath
31: CONFIGURE_ARGS+= --disable-codegen-tests
32: CONFIGURE_ARGS+= --disable-dist-src
33: CONFIGURE_ARGS+= --disable-llvm-static-stdcpp
34: CONFIGURE_ARGS+= --disable-ninja
1.41 jperkin 35: CONFIGURE_ARGS.SunOS+= --disable-jemalloc
1.18 jperkin 36:
1.55 he 37: # The gcc-wrap / c++-wrap script takes CROSS_ROOT environment variable
38: # to do a cross-build. The wrapper script assumes dest/ and tools/
39: # as a result of a cross-build as subdirectories of this root
1.58 he 40: #CROSS_ROOT= /u/evbarm-armv7hf
1.55 he 41: #MAKE_ENV+= CROSS_ROOT=${CROSS_ROOT}
42:
43: # The GNU cross target designation
1.58 he 44: #GNU_CROSS_TARGET= armv7--netbsdelf-eabihf
1.55 he 45: #MAKE_ENV+= GNU_CROSS_TARGET=${GNU_CROSS_TARGET}
46:
47: # To cross-build rust, you need to specify
48: # the ultimate target to built for, as well as the
49: # host the compiler is supposed to run on.
50: # Rust's target designation
1.58 he 51: #TARGET= armv7-unknown-netbsd-eabihf
1.55 he 52: #CONFIGURE_ARGS+= --host=${TARGET}
53: #CONFIGURE_ARGS+= --target=${TARGET}
54: #CONFIGURE_ARGS+= --set=target.${TARGET}.cc=${.CURDIR}/files/gcc-wrap
55: #CONFIGURE_ARGS+= --set=target.${TARGET}.cxx=${.CURDIR}/files/c++-wrap
56: #CONFIGURE_ARGS+= --set=target.${TARGET}.linker=${.CURDIR}/files/gcc-wrap
1.56 he 57: #CONFIGURE_ARGS+= --set=target.${TARGET}.ar=${CROSS_ROOT}/tools/bin/${GNU_CROSS_TARGET}-ar
1.55 he 58:
59: # May be required when cross-building on NetBSD
60: #MAKE_ENV+= OPENSSL_DIR=/usr
61:
62: # Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
63: # uncommenting the LD_LIBRARY_PATH setting may be required to run
64: # the bootstrap
65: MAKE_ENV+= LD_LIBRARY_PATH=${.CURDIR}/work/rust-bootstrap/lib
66:
67: .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc)
68: # Bootstrapping on NetBSD/powerpc requires no debug-info from rustc
69: # (both for amd64->powerpc built and powerpc->powerpc built bootstrap bits)
70: CONFIGURE_ARGS+= --disable-debug
71: CONFIGURE_ARGS+= --disable-debuginfo-tests
72: CONFIGURE_ARGS+= --disable-debug-assertions
73: CONFIGURE_ARGS+= --disable-debuginfo
74: CONFIGURE_ARGS+= --disable-debuginfo-lines
75: CONFIGURE_ARGS+= --disable-debuginfo-only-std
76: CONFIGURE_ARGS+= --disable-debuginfo-tools
77: .endif
78:
1.18 jperkin 79: # This should allow us to perform "offline" builds (so cargo doesn't fetch
80: # dependencies during the build stage) but this isn't hooked up yet.
81: CONFIGURE_ARGS+= --enable-vendor
82:
1.41 jperkin 83: # cargo defaults to using the number of available CPUs
84: MAKE_ENV+= CARGO_BUILD_JOBS=${MAKE_JOBS:U1}
85:
1.1 jperkin 86: UNLIMIT_RESOURCES+= cputime
87:
1.19 abs 88: PYTHON_VERSIONS_ACCEPTED= 27
89:
1.1 jperkin 90: TEST_TARGET= check
91:
1.12 wiz 92: # bin/* lib/*, but names vary
93: CHECK_RELRO_SUPPORTED= no
1.18 jperkin 94: CHECK_SSP_SUPPORTED= no
1.12 wiz 95:
1.51 jperkin 96: CHECK_PORTABILITY_SKIP+= src/vendor/openssl-src/openssl/.travis-create-release.sh
97:
1.1 jperkin 98: # Required for LLVM (-std=c++11)
99: GCC_REQD+= 4.8
100:
101: .include "../../mk/bsd.prefs.mk"
102:
103: #
1.3 ryoon 104: # Under NetBSD, do not use DT_RUNPATH
105: #
1.4 ryoon 106: BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags
1.3 ryoon 107:
1.53 ryoon 108: .PHONY: pre-build-fix
1.3 ryoon 109: #
1.1 jperkin 110: # Rust unfortunately requires itself to build. On platforms which aren't
1.6 jperkin 111: # supported by upstream (where they offer binary bootstraps), or where we do
112: # not trust random binaries from the Internet, we need to build and provide our
113: # own bootstrap. See the stage0-bootstrap below for more details.
1.1 jperkin 114: #
1.6 jperkin 115: DISTFILES:= ${DEFAULT_DISTFILES}
1.51 jperkin 116: RUST_STAGE0_VER= 1.28.0
1.1 jperkin 117: #
1.6 jperkin 118: .if !empty(MACHINE_PLATFORM:MDarwin-*-i386) || make(distinfo) || make (makesum) || make(mdi)
119: RUST_ARCH:= i686-apple-darwin
120: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10 ryoon 121: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
122: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 123: pre-build-fix:
1.6 jperkin 124: .endif
125: .if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
126: RUST_ARCH:= x86_64-apple-darwin
127: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10 ryoon 128: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
129: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 130: pre-build-fix:
1.6 jperkin 131: .endif
132: .if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi)
133: RUST_ARCH:= i686-unknown-linux-gnu
134: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10 ryoon 135: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
136: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 137: pre-build-fix:
1.6 jperkin 138: .endif
139: .if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
140: RUST_ARCH:= x86_64-unknown-linux-gnu
141: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10 ryoon 142: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
143: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 144: pre-build-fix:
1.6 jperkin 145: .endif
1.38 jperkin 146: .if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
147: RUST_ARCH:= x86_64-sun-solaris
148: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
149: SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
150: DISTFILES:= ${DISTFILES} ${RUST_STAGE0}
151: RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
1.53 ryoon 152: pre-build-fix:
1.38 jperkin 153: .endif
1.30 triaxx 154: .if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
155: RUST_ARCH:= i686-unknown-freebsd
156: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
157: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
158: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 159: pre-build-fix:
1.30 triaxx 160: .endif
161: .if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
162: RUST_ARCH:= x86_64-unknown-freebsd
163: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
164: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
165: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 166: pre-build-fix:
1.30 triaxx 167: .endif
1.15 ryoon 168: .if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
169: RUST_ARCH= i686-unknown-netbsd
170: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
171: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
172: # Do not trust ryoon@.
1.54 ryoon 173: SITES.${RUST_STAGE0}= https://www.ryoon.net/pub/rust/
174: SITES.${RUST_STD_STAGE0}= https://www.ryoon.net/pub/rust/
1.50 ryoon 175: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.26 jperkin 176: # Setting this changes it for every distfile, which doesn't match what is
177: # currently in distinfo.
178: #DIST_SUBDIR= ${PKGNAME}
1.15 ryoon 179: # For atomic ops
180: CFLAGS+= -march=i586
1.53 ryoon 181: pre-build-fix:
1.24 ryoon 182: ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo
1.15 ryoon 183: .endif
1.6 jperkin 184: .if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.3 ryoon 185: RUST_ARCH= x86_64-unknown-netbsd
1.6 jperkin 186: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10 ryoon 187: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
188: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53 ryoon 189: pre-build-fix:
1.1 jperkin 190: .endif
1.55 he 191: .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc) || make(distinfo) || make (makesum) || make(mdi)
192: RUST_ARCH= powerpc-unknown-netbsd
193: RUST_STAGE0_VER= 1.28.0
194: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
195: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
196: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
197: # Do not trust he@.
198: SITES.${RUST_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
199: SITES.${RUST_STD_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
200: pre-build-fix:
201: .endif
1.58 he 202: .if !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64) || make(distinfo) || make (makesum) || make(mdi)
203: RUST_ARCH= sparc64-unknown-netbsd
204: RUST_STAGE0_VER= 1.29.1
205: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
206: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
207: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
208: # Do not trust he@.
209: SITES.${RUST_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
210: SITES.${RUST_STD_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
211: pre-build-fix:
212: .endif
213: .if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv7hf) || make(distinfo) || make (makesum) || make(mdi)
214: RUST_ARCH= armv7-unknown-netbsd-eabihf
215: RUST_STAGE0_VER= 1.29.1
216: RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
217: RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
218: DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
219: # Do not trust he@.
220: SITES.${RUST_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
221: SITES.${RUST_STD_STAGE0}= ftp://golden-delicious.urc.uninett.no/pub/rust/
222: pre-build-fix:
223: .endif
1.1 jperkin 224:
1.17 tnn 225: # You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf if you have a local bootstrap compiler.
226: .if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH)
1.6 jperkin 227: NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM}
1.17 tnn 228: .else
229: RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap
1.2 jperkin 230: .endif
1.1 jperkin 231:
232: .if ${OPSYS} == "SunOS"
233: BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils
234: TOOLS_CREATE+= md5sum
235: TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum
236: .endif
237:
1.10 ryoon 238: SUBST_CLASSES+= rpath
1.40 jperkin 239: SUBST_STAGE.rpath= pre-configure
1.10 ryoon 240: SUBST_FILES.rpath= src/bootstrap/bin/rustc.rs
241: SUBST_VARS.rpath= PREFIX
242:
243: post-extract:
1.17 tnn 244: set -e; \
1.51 jperkin 245: if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \
1.17 tnn 246: -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \
247: cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}; \
248: ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
249: cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}; \
250: ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
251: fi
1.39 ryoon 252: # patch(1) in NetBSD does not handle .cargo-checksum.json like long width file.
253: cat ${WRKSRC}/src/vendor/libc/.cargo-checksum.json | \
1.51 jperkin 254: ${SED} -e 's/9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd/c3851969a854d6ccaa8a94369f1288025149d1ebdc74b36f224423f35b18f7a7/' > \
1.39 ryoon 255: ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched
256: ${CP} -f ${WRKSRC}/src/vendor/libc/.cargo-checksum.json.patched \
257: ${WRKSRC}/src/vendor/libc/.cargo-checksum.json
1.55 he 258: .if ${OPSYS} == "NetBSD"
259: ${RM} -f ${.CURDIR}/files/c++-wrap
1.58 he 260: ${RM} -f ${.CURDIR}/files/clang++-wrap
261: ${RM} -f ${.CURDIR}/files/clang-wrap
1.55 he 262: ${LN} -s ${.CURDIR}/files/gcc-wrap ${.CURDIR}/files/c++-wrap
1.58 he 263: ${LN} -s ${.CURDIR}/files/gcc-wrap ${.CURDIR}/files/clang++-wrap
264: ${LN} -s ${.CURDIR}/files/gcc-wrap ${.CURDIR}/files/clang-wrap
1.57 he 265: ${CHMOD} +x ${.CURDIR}/files/gcc-wrap
1.55 he 266: .endif
1.17 tnn 267:
1.18 jperkin 268: .if ${OPSYS} != "SunOS"
1.17 tnn 269: LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib
270: PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q}
1.18 jperkin 271: .endif
1.10 ryoon 272:
1.30 triaxx 273: .if ${OPSYS} == "FreeBSD"
274: MAKE_ENV+= OPENSSL_DIR=${SSLBASE}
275: .endif
276:
1.53 ryoon 277: pre-build: pre-build-fix
1.51 jperkin 278: # Requires libssh2 defines only available in master.
279: ${CP} -f ${WRKSRC}/src/vendor/libssh2-sys/libssh2/include/libssh2.h \
280: ${BUILDLINK_DIR}/include/
281:
1.10 ryoon 282: do-build:
283: cd ${WRKSRC} \
284: && env ${MAKE_ENV} \
1.18 jperkin 285: ${PYTHONBIN} ./x.py -v dist
1.10 ryoon 286:
287: do-install:
288: cd ${WRKSRC} \
289: && env ${MAKE_ENV} ${INSTALL_ENV} \
1.18 jperkin 290: ${PYTHONBIN} ./x.py -v install
1.10 ryoon 291:
1.1 jperkin 292: post-install:
293: ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/install.log
1.21 wiz 294: ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/uninstall.sh
1.10 ryoon 295: ${RM} -rf ${DESTDIR}${PREFIX}/lib/rustlib/src
1.1 jperkin 296:
1.11 maya 297: GENERATE_PLIST+= find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
298: sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
299:
1.1 jperkin 300: .if ${OPSYS} == "Darwin"
301: .PHONY: fix-darwin-install-name
302: post-install: fix-darwin-install-name
303: fix-darwin-install-name:
1.52 minskim 304: . for bin in clippy-driver rls rustc rustdoc
1.1 jperkin 305: otool -XL ${DESTDIR}${PREFIX}/bin/${bin} \
306: | ${GREP} '@rpath' | while read rpath rest; do \
307: install_name_tool -change $$rpath \
308: `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
309: ${DESTDIR}${PREFIX}/bin/${bin}; \
310: done
311: . endfor
1.52 minskim 312: . for libdir in lib lib/rustlib/${RUST_ARCH}/lib lib/rustlib/${RUST_ARCH}/codegen-backends
1.1 jperkin 313: for f in ${DESTDIR}${PREFIX}/${libdir}/lib*.dylib; do \
314: [ ! -f $$f ] && continue; \
315: install_name_tool -id `${ECHO} $$f | ${SED} -e 's,${DESTDIR},,g'` $$f; \
316: otool -XL $$f | grep '@rpath' | while read rpath rest; do \
317: install_name_tool -change $$rpath \
1.52 minskim 318: `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
1.1 jperkin 319: $$f; \
320: done; \
321: done
322: . endfor
323: .endif
324:
1.6 jperkin 325: #
326: # Create a relocatable stage2 bootstrap from the bits we just built that can be
327: # used to build the next version of rust. Currently only tested on SmartOS.
328: #
1.26 jperkin 329: BOOTSTRAP_TMPDIR= ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH}
1.6 jperkin 330: USE_TOOLS+= gtar
331:
1.55 he 332: # The NetBSD part is so far untested, because I could not convince
333: # the rust build to use the gcc wrapper when building natively,
334: # so that I could get a placeholder in the RPATH, because chrpath
335: # cannot extend the length of the RPATH...
336:
1.6 jperkin 337: stage0-bootstrap: install
1.26 jperkin 338: ${RM} -rf ${BOOTSTRAP_TMPDIR}
1.6 jperkin 339: ${MKDIR} ${BOOTSTRAP_TMPDIR}
1.55 he 340: .if ${OPSYS} == "NetBSD"
341: (cd ${BOOTSTRAP_TMPDIR}; \
342: DISTDIR=${WRKSRC}/bild/dist; \
343: VER_ARCH=${PKGVERSION}-${RUST_ARCH}; \
344: RUSTC=rustc-$${VER_ARCH}; \
345: RUSTC_FILE=$${RUSTC}.tar.gz; \
346: RUST_STD=rust-std-$${VER_ARCH}; \
347: RUST_STD_FILE=$${RUST_STD}.tar.gz; \
348: ${GTAR} -xzf $${DISTDIR}/$${RUSTC_FILE}; \
349: (cd ${RUSTC}; \
350: RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN/../lib'; \
351: for f in rls-preview/bin/rls rustc/bin/rustc rustc/bin/rustdoc; do \
352: chrpath -r $$RPATH $$f; \
353: done; \
354: RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN'; \
355: for f in rustc/lib/*.so*; do \
356: chrpath -r $$RPATH $$f; \
357: done; \
358: RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN:$$ORIGIN/../../..'; \
359: for f in rustc/lib/rustlib/*/*/*.so*; do \
360: chrpath -r $$RPATH $$f; \
361: done;); \
362: ${GTAR} -czf $${RUSTC_FILE} $${RUSTC}; \
363: ${CP} $${DISTDIR}/$${RUST_STD_FILE} .; \
364: echo "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \
365: echo "$${RUSTC_FILE}"; \
366: echo "$${RUST_STD_FILE}"; \
367: )
368: .endif
369: .if ${OS_VARIANT} == "SmartOS"
1.6 jperkin 370: ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/
371: ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/
1.26 jperkin 372: ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc
1.6 jperkin 373: for lib in libgcc_s.so.1 libssp.so.0 libstdc++.so.6; do \
374: ${CP} `${PKG_CC} -print-file-name=$${lib}` \
1.26 jperkin 375: ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
376: done
377: for lib in libcrypto.so.1.0.0 libcurl.so.4 libhttp_parser.so.2 \
378: libiconv.so.2 libidn2.so.0 libintl.so.8 liblber-2.4.so.2 \
379: libldap-2.4.so.2 libnghttp2.so.14 libsasl2.so.3 \
380: libssh2.so.1 libssl.so.1.0.0 libunistring.so.2 libz.so.1; do \
381: ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
1.6 jperkin 382: done
1.26 jperkin 383: for f in ${BOOTSTRAP_TMPDIR}/bin/{cargo,rls,rustc,rustdoc}; do \
384: /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \
385: done
386: for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \
387: /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN' $$f; \
1.6 jperkin 388: done
389: for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \
1.26 jperkin 390: /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \
1.6 jperkin 391: done
1.43 jperkin 392: for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/${RUST_ARCH}/*/*.so*; do \
1.26 jperkin 393: /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \
1.6 jperkin 394: done
395: (cd ${WRKDIR}; \
1.26 jperkin 396: ${GTAR} -zcf ${PKGNAME_NOREV}-${RUST_ARCH}.tar.gz ${PKGNAME_NOREV}-${RUST_ARCH})
1.55 he 397: .endif
1.6 jperkin 398:
1.1 jperkin 399: .include "../../devel/cmake/buildlink3.mk"
1.10 ryoon 400: .include "../../devel/libgit2/buildlink3.mk"
401: .include "../../devel/zlib/buildlink3.mk"
1.1 jperkin 402: .include "../../lang/python/tool.mk"
1.10 ryoon 403: .include "../../security/libssh2/buildlink3.mk"
404: .include "../../security/openssl/buildlink3.mk"
405: .include "../../www/curl/buildlink3.mk"
406: .include "../../www/http-parser/buildlink3.mk"
1.1 jperkin 407: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>