From 5edf5dc29f89de1eeecd3f5422f8a7d4a2c9223a Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Sat, 11 Nov 2017 01:10:55 +0000 Subject: [PATCH] Don't work out of a TARGET. directory if TARGET_ARCH is not defined. This fixes 'TARGET= make universe_kernels' creating an empty TARGET. directory and showing it in SIGINFO. Sponsored by: Dell EMC Isilon --- share/mk/src.sys.obj.mk | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/share/mk/src.sys.obj.mk b/share/mk/src.sys.obj.mk index 4837e10ebeb4..6c6c00ef8a64 100644 --- a/share/mk/src.sys.obj.mk +++ b/share/mk/src.sys.obj.mk @@ -75,12 +75,20 @@ OBJROOT:= ${OBJROOT:H:tA}/${OBJROOT:T} # append TARGET.TARGET_ARCH for that case since the user wants to build # in the source tree. .if ${MK_UNIFIED_OBJDIR} == "yes" && ${SRCTOP} != ${OBJROOT:tA} -OBJTOP:= ${OBJROOT}${TARGET:D${TARGET}.${TARGET_ARCH}:U${MACHINE}.${MACHINE_ARCH}} +.if defined(TARGET) && defined(TARGET_ARCH) +OBJTOP:= ${OBJROOT}${TARGET}.${TARGET_ARCH} +.elif defined(TARGET) && ${.CURDIR} == ${SRCTOP} +# Not enough information, just use basic OBJDIR. This can happen with some +# 'make universe' targets or if TARGET is not being used as expected. +OBJTOP:= ${OBJROOT:H} +.else +OBJTOP:= ${OBJROOT}${MACHINE}.${MACHINE_ARCH} +.endif .else # TARGET.TARGET_ARCH handled in OBJROOT already. OBJTOP:= ${OBJROOT:H} .endif # ${MK_UNIFIED_OBJDIR} == "yes" -.endif +.endif # empty(OBJTOP) # Fixup OBJROOT/OBJTOP if using MAKEOBJDIRPREFIX but leave it alone # for DIRDEPS_BUILD which really wants to know the absolute top at