diff --git a/Makefile b/Makefile index d9a66620b560..7172ac577e0d 100644 --- a/Makefile +++ b/Makefile @@ -381,26 +381,27 @@ kernel-toolchains: # existing system is. # .if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) -# XXX Add arm64 to universe only if we have an external binutils installed. -# It does not build with the in-tree linker. Added to lower .for loops too. -.if exists(/usr/local/aarch64-freebsd/bin/ld) -UNIVERSE_arm64=arm64 -.elif empty(${TARGETS}) -universe: universe_arm64_skip -universe_epilogue: universe_arm64_skip -universe_arm64_skip: universe_prologue - @echo ">> arm64 skipped - install aarch64-binutils port or package to build" -.endif -TARGETS?=amd64 arm ${UNIVERSE_arm64} i386 mips pc98 powerpc sparc64 +TARGETS?=amd64 arm arm64 i386 mips pc98 powerpc sparc64 +_UNIVERSE_TARGETS= ${TARGETS} TARGET_ARCHES_arm?= arm armeb armv6 armv6hf TARGET_ARCHES_arm64?= aarch64 TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 -.for target in ${TARGETS} arm64 +.for target in ${TARGETS} TARGET_ARCHES_${target}?= ${target} .endfor +# XXX Add arm64 to universe only if we have an external binutils installed. +# It does not build with the in-tree linker. +.if !exists(/usr/local/aarch64-freebsd/bin/ld) && empty(${TARGETS}) +_UNIVERSE_TARGETS:= ${_UNIVERSE_TARGETS:Narm64} +universe: universe_arm64_skip +universe_epilogue: universe_arm64_skip +universe_arm64_skip: universe_prologue + @echo ">> arm64 skipped - install aarch64-binutils port or package to build" +.endif + .if defined(UNIVERSE_TARGET) MAKE_JUST_WORLDS= YES .else @@ -410,7 +411,7 @@ KERNSRCDIR?= ${.CURDIR}/sys targets: .PHONY @echo "Supported TARGET/TARGET_ARCH pairs for world and kernel targets" -.for target in ${TARGETS} arm64 +.for target in ${TARGETS} .for target_arch in ${TARGET_ARCHES_${target}} @echo " ${target}/${target_arch}" .endfor @@ -432,7 +433,7 @@ universe_prologue: .if defined(DOING_TINDERBOX) @rm -f ${FAILFILE} .endif -.for target in ${TARGETS} +.for target in ${_UNIVERSE_TARGETS} universe: universe_${target} universe_epilogue: universe_${target} universe_${target}: universe_${target}_prologue