Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Oct 2017 01:21:19 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r325079 - head
Message-ID:  <201710290121.v9T1LJTn068247@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Sun Oct 29 01:21:19 2017
New Revision: 325079
URL: https://svnweb.freebsd.org/changeset/base/325079

Log:
  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

Modified:
  head/Makefile
  head/Makefile.inc1

Modified: head/Makefile
==============================================================================
--- head/Makefile	Sun Oct 29 01:21:15 2017	(r325078)
+++ head/Makefile	Sun Oct 29 01:21:19 2017	(r325079)
@@ -135,6 +135,9 @@ TGTS=	all all-man buildenv buildenvvars buildkernel bu
 	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}
@@ -277,6 +285,14 @@ _TARGET_ARCH?=	${MACHINE_ARCH}
 .if make(print-dir)
 .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

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Sun Oct 29 01:21:15 2017	(r325078)
+++ head/Makefile.inc1	Sun Oct 29 01:21:19 2017	(r325079)
@@ -2760,8 +2760,6 @@ cleanworld: .PHONY
 	${_+_}@cd ${.CURDIR}; ${MAKE} cleandir
 .endif
 
-.if defined(TARGET) && defined(TARGET_ARCH)
-
 .if ${TARGET} == ${MACHINE} && ${TARGET_ARCH} == ${MACHINE_ARCH}
 XDEV_CPUTYPE?=${CPUTYPE}
 .else
@@ -2908,7 +2906,3 @@ xdev-links: .PHONY
 			ln -sf ../../${XDTP}/usr/bin/$$i \
 			    ../../../../usr/bin/${XDDIR}${_REVISION}-$$i; \
 		done
-.else
-xdev xdev-build xdev-install xdev-links: .PHONY
-	@echo "*** Error: Both TARGET and TARGET_ARCH must be defined for \"${.TARGET}\" target"
-.endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710290121.v9T1LJTn068247>