Slightly improved by killing stupid .ifdef added under src/distrib by honoring
.OBJDIR.
diff --git a/Makefile.cross b/Makefile.cross
index 8e2afa1..2a686eb 100644
--- a/Makefile.cross
+++ b/Makefile.cross
@@ -1,7 +1,7 @@
# $OpenBSD: Makefile.cross,v 1.85 2016/05/11 21:52:48 deraadt 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
+cross-build: cross-tools cross-bin cross-share cross-sys cross-etc-root-var
cross-distrib
# cross-gnu \
# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving
@@ -364,6 +364,21 @@ cross-etc-root-var: ${CROSSOBJ}
DESTDIR=${CROSSDIR} \
${MAKE} distribution-etc-root-var)
+# XXX Append `-j1' to ${MAKEFLAGS} to force serialized make execution
+cross-distrib: ${CROSSOBJ}
+ MACHINE=${TARGET} \
+ MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
+ export MACHINE MACHINE_ARCH MACHINE_CPU; \
+ for i in distrib; do \
+ (cd ${.CURDIR}/$$i; \
+ eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
+ BSDOBJDIR=${CROSSDIR}/usr/obj \
+ MAKEFLAGS=\"${MAKEFLAGS} -j1\" \
+ SKIPDIR=\"${NO_CROSS}\" \
+ DESTDIR=${CROSSDIR} \
+ ${MAKE} depend all install); \
+ done
+
cross-depend:
@(cd ${.CURDIR} && \
BSDOBJDIR=${CROSSDIR}/usr/obj \
diff --git a/distrib/amd64/common/Makefile.inc
b/distrib/amd64/common/Makefile.inc
index 8a2bfea..8fcbc45 100644
--- a/distrib/amd64/common/Makefile.inc
+++ b/distrib/amd64/common/Makefile.inc
@@ -76,12 +76,13 @@ bsd.rd: ${IMAGE} bsd rdsetroot
cp bsd bsd.rd
${.OBJDIR}/rdsetroot bsd.rd ${IMAGE}
-
bsd:
- cd ${.CURDIR}/../../../sys/arch/amd64/conf && config ${RAMDISK}
- cd ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK} && \
+ config -s ${.CURDIR}/../../../sys \
+ -b ${.OBJDIR}/../../../sys/arch/amd64/compile/${RAMDISK} \
+ ${.CURDIR}/../../../sys/arch/amd64/conf/${RAMDISK}
+ cd -P ${.OBJDIR}/../../../sys/arch/amd64/compile/${RAMDISK} && \
${MAKE} clean && COPTS=-Os exec ${MAKE}
- cp ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK}/bsd bsd
+ cp ${.OBJDIR}/../../../sys/arch/amd64/compile/${RAMDISK}/bsd bsd
${IMAGE}: ${CBIN} rd_setup do_files rd_teardown
@@ -123,6 +124,7 @@ install:
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
crunchgen -E -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib \
+ -O ${.OBJDIR} \
-c ${CBIN}.c -e ${CBIN} -m ${CBIN}.mk ${CRUNCHCONF}
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c