freebsd-src/share/mk/sys.machine.mk
Simon J. Gerraty da1ef2d619 Move MACHINE/MACHINE_ARCH handling to sys.machine.mk
Rather than define the TARGETS and TARGET_ARCHES in src/Makefile
put them in sys.machine.mk so they can also be leveraged by
non-top-level builds.

We have TARGET_MACHINE_LIST as the list of MACHINES we build for.

For each MACHINE we have a MACHINE_ARCH_LIST_${MACHINE}
and the first entry of each list is used as default for
MACHINE_ARCH_${MACHINE}

We can now remove a bunch of MACHINE_ARCH.* handling from
local.sys.dirdeps*mk

Reviewed by:	imp
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D40083
2023-05-13 08:15:49 -07:00

24 lines
602 B
Makefile

.-include <local.sys.machine.mk>
PSEUDO_MACHINE_LIST?= common host
TARGET_MACHINE_LIST?= amd64 arm arm64 i386 powerpc riscv
MACHINE_ARCH_host?= ${_HOST_ARCH}
MACHINE_ARCH_LIST_arm?= armv6 armv7
MACHINE_ARCH_LIST_arm64?= aarch64
MACHINE_ARCH_LIST_powerpc?= powerpc powerpc64 powerpc64le ${EXTRA_ARCHES_powerpc}
MACHINE_ARCH_LIST_riscv?= riscv64
.for m in ${TARGET_MACHINE_LIST}
MACHINE_ARCH_LIST_$m?= $m
MACHINE_ARCH_$m?= ${MACHINE_ARCH_LIST_$m:[1]}
# for backwards comatability
MACHINE_ARCH.$m?= ${MACHINE_ARCH_$m}
.endfor
.if empty(MACHINE_ARCH)
MACHINE_ARCH:= ${MACHINE_ARCH_${MACHINE}}
.endif