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

Reply via email to