summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2017-09-23 12:35:52 +0000
committerpatrick <patrick@openbsd.org>2017-09-23 12:35:52 +0000
commit47dea8430ea252bcc78e450162a266e5630e8b1b (patch)
tree64a4fdc00c06b52336be2376344555cd94e27930
parentFix off by one in ctf_enc2name (who uses SIGNED BOOL anyway?) (diff)
downloadwireguard-openbsd-47dea8430ea252bcc78e450162a266e5630e8b1b.tar.xz
wireguard-openbsd-47dea8430ea252bcc78e450162a266e5630e8b1b.zip
Compile the cross-compiler in the target's objdir instead of polluting
the host's. This also allows compiling multiple toolchains in parallel. Clean up the clang object files afterwards so it doesn't collide with the cross-compiled compiler build.
-rw-r--r--Makefile.cross13
1 files changed, 8 insertions, 5 deletions
diff --git a/Makefile.cross b/Makefile.cross
index 8c7641503db..f16d4f4c2df 100644
--- a/Makefile.cross
+++ b/Makefile.cross
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.cross,v 1.97 2017/09/12 08:16:13 mpi Exp $
+# $OpenBSD: Makefile.cross,v 1.98 2017/09/23 12:35:52 patrick Exp $
cross-tools: cross-includes cross-binutils cross-gcc cross-lib
cross-distrib: cross-tools cross-bin cross-share cross-sys cross-etc-root-var
@@ -231,19 +231,22 @@ ${CROSSBINUTILS}: ${CROSSINCLUDES}
${CROSSGCC}: ${CROSSBINUTILS}
.if ${COMPILER_VERSION:L} == "clang"
(cd ${.CURDIR}/gnu/usr.bin/clang; \
- MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
- MACHINE_ARCH=${TARGET_ARCH} \
- ${MAKE} obj)
- (cd ${.CURDIR}/gnu/usr.bin/clang; \
CC=${CC} CXX=${CXX} \
+ BSDOBJDIR=${CROSSDIR}/usr/obj \
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
MACHINE_ARCH=${TARGET_ARCH} \
${MAKE} all)
(cd ${.CURDIR}/gnu/usr.bin/clang; \
DESTDIR=${CROSSDIR} \
+ BSDOBJDIR=${CROSSDIR}/usr/obj \
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
MACHINE_ARCH=${TARGET_ARCH} \
${MAKE} install)
+ (cd ${.CURDIR}/gnu/usr.bin/clang; \
+ BSDOBJDIR=${CROSSDIR}/usr/obj \
+ MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
+ MACHINE_ARCH=${TARGET_ARCH} \
+ ${MAKE} clean)
mv ${CROSSDIR}/usr/bin/clang ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang
mv ${CROSSDIR}/usr/bin/clang++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang++
mv ${CROSSDIR}/usr/bin/ld ${CROSSDIR}/usr/bin/${TARGET_CANON}-ld