aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2017-10-29 01:21:19 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2017-10-29 01:21:19 +0000
commit24830684f299ed8e7649b03cc72384cf3163ba24 (patch)
tree6a59c093a76166ed224de63bf07063cf804cd4ed /Makefile
parentbb3f65ea646003279697f0da101eefd1332ffa9e (diff)
downloadsrc-24830684f299ed8e7649b03cc72384cf3163ba24.tar.gz
src-24830684f299ed8e7649b03cc72384cf3163ba24.zip
Fix xdev TARGET/TARGET_ARCH assertion and expand to native-xtools.
The top of Makefile.inc1 requires TARGET/TARGET_ARCH be defined. Just building 'make xdev' would already set them, so this error was never triggered. Moving it to Makefile fixes the problem. MFC after: 2 weeks Sponsored by: Dell EMC Isilon
Notes
Notes: svn path=/head/; revision=325079
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile16
1 files changed, 16 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index deae1f43d939..144d58dc4abc 100644
--- a/Makefile
+++ b/Makefile
@@ -135,6 +135,9 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
packages installconfig real-packages sign-packages package-pkg \
print-dir test-system-compiler
+# These targets require a TARGET and TARGET_ARCH be defined.
+XTGTS= native-xtools xdev xdev-build xdev-install xdev-links
+
# XXX: r156740: This can't work since bsd.subdir.mk is not included ever.
# It will only work for SUBDIR_TARGETS in make.conf.
TGTS+= ${SUBDIR_TARGETS}
@@ -270,6 +273,11 @@ _TARGET= ${XDEV}
.if defined(XDEV_ARCH)
_TARGET_ARCH= ${XDEV_ARCH}
.endif
+# Some targets require a set TARGET/TARGET_ARCH, check before the default
+# MACHINE and after the compatibility handling.
+.if !defined(_TARGET) || !defined(_TARGET_ARCH)
+${XTGTS}: _assert_target
+.endif
# Otherwise, default to current machine type and architecture.
_TARGET?= ${MACHINE}
_TARGET_ARCH?= ${MACHINE_ARCH}
@@ -278,6 +286,14 @@ _TARGET_ARCH?= ${MACHINE_ARCH}
.SILENT:
.endif
+_assert_target: .PHONY .MAKE
+.for _tgt in ${XTGTS}
+.if make(${_tgt})
+ @echo "*** Error: Both TARGET and TARGET_ARCH must be defined for \"${_tgt}\" target"
+ @false
+.endif
+.endfor
+
#
# Make sure we have an up-to-date make(1). Only world and buildworld
# should do this as those are the initial targets used for upgrades.