| @@ -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 | |
3 | DISTNAME= rustc-1.29.1-src | | 3 | DISTNAME= rustc-1.29.1-src |
4 | PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//} | | 4 | PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//} |
5 | CATEGORIES= lang | | 5 | CATEGORIES= lang |
6 | MASTER_SITES= http://static.rust-lang.org/dist/ | | 6 | MASTER_SITES= http://static.rust-lang.org/dist/ |
7 | | | 7 | |
8 | MAINTAINER= pkgsrc-users@NetBSD.org | | 8 | MAINTAINER= pkgsrc-users@NetBSD.org |
9 | HOMEPAGE= https://www.rust-lang.org/ | | 9 | HOMEPAGE= https://www.rust-lang.org/ |
10 | COMMENT= Safe, concurrent, practical language | | 10 | COMMENT= Safe, concurrent, practical language |
11 | LICENSE= mit OR apache-2.0 | | 11 | LICENSE= mit OR apache-2.0 |
12 | | | 12 | |
13 | USE_GCC_RUNTIME= yes | | 13 | USE_GCC_RUNTIME= yes |
14 | USE_LANGUAGES= c c++11 | | 14 | USE_LANGUAGES= c c++11 |
15 | USE_LIBTOOL= yes | | 15 | USE_LIBTOOL= yes |
16 | USE_TOOLS+= bash gmake perl:build pkg-config | | 16 | USE_TOOLS+= bash gmake perl:build pkg-config |
17 | # For internal llvm | | 17 | # For internal llvm |
18 | BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake | | 18 | BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake |
19 | | | 19 | |
20 | HAS_CONFIGURE= yes | | 20 | HAS_CONFIGURE= yes |
21 | CONFIGURE_ARGS+= --prefix=${PREFIX} | | 21 | CONFIGURE_ARGS+= --prefix=${PREFIX} |
22 | CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} | | 22 | CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} |
23 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} | | 23 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} |
24 | CONFIGURE_ARGS+= --python=${PYTHONBIN} | | 24 | CONFIGURE_ARGS+= --python=${PYTHONBIN} |
25 | CONFIGURE_ARGS+= --release-channel=stable | | 25 | CONFIGURE_ARGS+= --release-channel=stable |
26 | #CONFIGURE_ARGS+= --enable-local-rust | | 26 | #CONFIGURE_ARGS+= --enable-local-rust |
27 | CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH} | | 27 | CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH} |
28 | CONFIGURE_ARGS+= --enable-extended # Build and install cargo too. | | 28 | CONFIGURE_ARGS+= --enable-extended # Build and install cargo too. |
29 | CONFIGURE_ARGS+= --enable-rpath | | 29 | CONFIGURE_ARGS+= --enable-rpath |
30 | CONFIGURE_ARGS+= --disable-codegen-tests | | 30 | CONFIGURE_ARGS+= --disable-codegen-tests |
31 | CONFIGURE_ARGS+= --disable-dist-src | | 31 | CONFIGURE_ARGS+= --disable-dist-src |
32 | CONFIGURE_ARGS+= --disable-llvm-static-stdcpp | | 32 | CONFIGURE_ARGS+= --disable-llvm-static-stdcpp |
33 | CONFIGURE_ARGS+= --disable-ninja | | 33 | CONFIGURE_ARGS+= --disable-ninja |
34 | CONFIGURE_ARGS.SunOS+= --disable-jemalloc | | 34 | CONFIGURE_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. |
38 | CONFIGURE_ARGS+= --enable-vendor | | 38 | CONFIGURE_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 |
41 | MAKE_ENV+= CARGO_BUILD_JOBS=${MAKE_JOBS:U1} | | 41 | MAKE_ENV+= CARGO_BUILD_JOBS=${MAKE_JOBS:U1} |
42 | | | 42 | |
43 | UNLIMIT_RESOURCES+= cputime | | 43 | UNLIMIT_RESOURCES+= cputime |
44 | | | 44 | |
45 | PYTHON_VERSIONS_ACCEPTED= 27 | | 45 | PYTHON_VERSIONS_ACCEPTED= 27 |
46 | | | 46 | |
47 | TEST_TARGET= check | | 47 | TEST_TARGET= check |
48 | | | 48 | |
49 | # bin/* lib/*, but names vary | | 49 | # bin/* lib/*, but names vary |
50 | CHECK_RELRO_SUPPORTED= no | | 50 | CHECK_RELRO_SUPPORTED= no |
51 | CHECK_SSP_SUPPORTED= no | | 51 | CHECK_SSP_SUPPORTED= no |
52 | | | 52 | |
53 | CHECK_PORTABILITY_SKIP+= src/vendor/openssl-src/openssl/.travis-create-release.sh | | 53 | CHECK_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) |
56 | GCC_REQD+= 4.8 | | 56 | GCC_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 | # |
63 | BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags | | 63 | BUILDLINK_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 | # |
72 | DISTFILES:= ${DEFAULT_DISTFILES} | | 72 | DISTFILES:= ${DEFAULT_DISTFILES} |
73 | RUST_STAGE0_VER= 1.28.0 | | 73 | RUST_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) |
76 | RUST_ARCH:= i686-apple-darwin | | 76 | RUST_ARCH:= i686-apple-darwin |
77 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 77 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
78 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 78 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
79 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 79 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
80 | pre-build-fix: | | 80 | pre-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) |
83 | RUST_ARCH:= x86_64-apple-darwin | | 83 | RUST_ARCH:= x86_64-apple-darwin |
84 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 84 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
85 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 85 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
86 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 86 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
87 | pre-build-fix: | | 87 | pre-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) |
90 | RUST_ARCH:= i686-unknown-linux-gnu | | 90 | RUST_ARCH:= i686-unknown-linux-gnu |
91 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 91 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
92 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 92 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
93 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 93 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
94 | pre-build-fix: | | 94 | pre-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) |
97 | RUST_ARCH:= x86_64-unknown-linux-gnu | | 97 | RUST_ARCH:= x86_64-unknown-linux-gnu |
98 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 98 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
99 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 99 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
100 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 100 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
101 | pre-build-fix: | | 101 | pre-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) |
104 | RUST_ARCH:= x86_64-sun-solaris | | 104 | RUST_ARCH:= x86_64-sun-solaris |
105 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 105 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
106 | SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/ | | 106 | SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/ |
107 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} | | 107 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} |
108 | RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH} | | 108 | RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH} |
109 | pre-build-fix: | | 109 | pre-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) |
112 | RUST_ARCH:= i686-unknown-freebsd | | 112 | RUST_ARCH:= i686-unknown-freebsd |
113 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 113 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
114 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 114 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
115 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 115 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
116 | pre-build-fix: | | 116 | pre-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) |
119 | RUST_ARCH:= x86_64-unknown-freebsd | | 119 | RUST_ARCH:= x86_64-unknown-freebsd |
120 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 120 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
121 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 121 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
122 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 122 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
123 | pre-build-fix: | | 123 | pre-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) |
126 | RUST_ARCH= i686-unknown-netbsd | | 126 | RUST_ARCH= i686-unknown-netbsd |
127 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 127 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
128 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 128 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
129 | # Do not trust ryoon@. | | 129 | # Do not trust ryoon@. |
130 | SITES.${RUST_STAGE0}= https://deuterium.ryoon.net/pub/rust/ | | 130 | SITES.${RUST_STAGE0}= https://www.ryoon.net/pub/rust/ |
131 | SITES.${RUST_STD_STAGE0}= https://deuterium.ryoon.net/pub/rust/ | | 131 | SITES.${RUST_STD_STAGE0}= https://www.ryoon.net/pub/rust/ |
132 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 132 | DISTFILES:= ${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 |
137 | CFLAGS+= -march=i586 | | 137 | CFLAGS+= -march=i586 |
138 | pre-build-fix: | | 138 | pre-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) |
142 | RUST_ARCH= x86_64-unknown-netbsd | | 142 | RUST_ARCH= x86_64-unknown-netbsd |
143 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 143 | RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
144 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz | | 144 | RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz |
145 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} | | 145 | DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} |
146 | pre-build-fix: | | 146 | pre-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) |
151 | NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM} | | 151 | NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM} |
152 | .else | | 152 | .else |
153 | RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap | | 153 | RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap |
154 | .endif | | 154 | .endif |
155 | | | 155 | |
156 | .if ${OPSYS} == "SunOS" | | 156 | .if ${OPSYS} == "SunOS" |
157 | BUILD_DEPENDS+= grep>=0:../../textproc/grep | | 157 | BUILD_DEPENDS+= grep>=0:../../textproc/grep |
158 | BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils | | 158 | BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils |
159 | TOOLS_PATH.grep= ${PREFIX}/bin/ggrep | | 159 | TOOLS_PATH.grep= ${PREFIX}/bin/ggrep |
160 | TOOLS_CREATE+= md5sum | | 160 | TOOLS_CREATE+= md5sum |
161 | TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum | | 161 | TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum |
162 | .endif | | 162 | .endif |
163 | | | 163 | |
164 | SUBST_CLASSES+= rpath | | 164 | SUBST_CLASSES+= rpath |
165 | SUBST_STAGE.rpath= pre-configure | | 165 | SUBST_STAGE.rpath= pre-configure |
166 | SUBST_FILES.rpath= src/bootstrap/bin/rustc.rs | | 166 | SUBST_FILES.rpath= src/bootstrap/bin/rustc.rs |
167 | SUBST_VARS.rpath= PREFIX | | 167 | SUBST_VARS.rpath= PREFIX |
168 | | | 168 | |
169 | post-extract: | | 169 | post-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" |
186 | LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib | | 186 | LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib |
187 | PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q} | | 187 | PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q} |
188 | .endif | | 188 | .endif |
189 | | | 189 | |
190 | .if ${OPSYS} == "FreeBSD" | | 190 | .if ${OPSYS} == "FreeBSD" |
191 | MAKE_ENV+= OPENSSL_DIR=${SSLBASE} | | 191 | MAKE_ENV+= OPENSSL_DIR=${SSLBASE} |
192 | .endif | | 192 | .endif |
193 | | | 193 | |
194 | pre-build: pre-build-fix | | 194 | pre-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 | |
199 | do-build: | | 199 | do-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 | |
204 | do-install: | | 204 | do-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 | |
209 | post-install: | | 209 | post-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 | |
214 | GENERATE_PLIST+= find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \ | | 214 | GENERATE_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 |
219 | post-install: fix-darwin-install-name | | 219 | post-install: fix-darwin-install-name |
220 | fix-darwin-install-name: | | 220 | fix-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 | # |
246 | BOOTSTRAP_TMPDIR= ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH} | | 246 | BOOTSTRAP_TMPDIR= ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH} |
247 | USE_TOOLS+= gtar | | 247 | USE_TOOLS+= gtar |
248 | | | 248 | |
249 | stage0-bootstrap: install | | 249 | stage0-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" |