make "make TARGET=foo" work correctly. Before, it would fail to set

TARGET_ARCH correctly.  Now it does, even for pc98.  We should suggest
TARGET=foo in preference to TARGET_ARCH because the former is
unambiguous and the latter isn't, so update the docs.

This means that a long standing gripe I've had with this comes to a
close.  I can build pc98 w/o specify both things.  make TARGET=arm
works (rather than trying to build a arm:amd64 image and dying badly
in the attempt).

If you specify only TARGET_ARCH, then you get the old behavior.

# we can likely simplify the UNIVERSE target now to use this, but I'm not
# up for breaking that tonight :-).

# We should consider adding some kind of sanity check for TARGET_ARCH
# and TARGET.
This commit is contained in:
Warner Losh 2006-09-07 07:37:16 +00:00
parent d8c1647f2f
commit ffbebdce7f

View File

@ -11,7 +11,7 @@
# -DNO_PORTSUPDATE do not update ports in ${MAKE} update
# -DNO_DOCUPDATE do not update doc in ${MAKE} update
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
# TARGET_ARCH="arch" to crossbuild world to a different arch
# TARGET="arch" to crossbuild world to a different arch
#
# The intended user-driven targets are:
@ -95,6 +95,9 @@ OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
OSRELDATE= 0
.endif
.endif
.if defined(TARGET) && !defined(TARGET_ARCH)
TARGET_ARCH=${TARGET:S/pc98/i386/}
.endif
TARGET_ARCH?= ${MACHINE_ARCH}
.if ${TARGET_ARCH} == ${MACHINE_ARCH}
TARGET?= ${MACHINE}