freebsd-skq/share/mk/bsd.endian.mk

15 lines
387 B
Makefile
Raw Normal View History

# $FreeBSD$
2006-08-22 08:03:01 +00:00
.if ${MACHINE_ARCH} == "amd64" || \
${MACHINE_ARCH} == "i386" || \
2005-02-25 00:24:03 +00:00
${MACHINE_ARCH} == "ia64" || \
Introduce MACHINE_CPUARCH. MACHINE is the specific kernel architecture for this machine. MACHINE_ARCH is the specific CPU type (abi, word size, etc). MACHINE_CPUARCH is the family of CPUs that's supported. Most of the tree conflates MACHINE_ARCH and MACHINE_CPUARCH since historically they have been identical. However, there's now a reason to to split the two concepts. NetBSD calls this MACHINE_CPU, but that's already used for something else in FreeBSD, so MACHINE_CPUARCH was selected instead. However, the sources in the tree have had a KLUDGE in the tree called TARGET_BIG_ENDIAN to select which endian to compile the code for. However, this is a cumbersome and awkward solution. MACHINE_ARCH really does need to be different for different endian because users use it for things like their path. Yet, the source tree also used MACHINE_ARCH to figure out the MD code to use. This source often supports multiple MACHINE_ARCHs. 'mips' supports 32 (and soon 64) bit word sizes as well as big and little endian. 'arm' support both endians. powerpc will soon support both 32-bit and 64-bit. These patches start to unwind this confusion. It implements MACHINE_ARCH of mipsel, mipseb for the two endians of MIPS, as well as arm and armeb for ARM. The names for ARM are historical accidents (ARM was primarily little endian until relatively recently). These names follow the NetBSD convetions. With these changes, "make buildworld TARGET=mips TARGET_ARCH=mipsel" finishes. armeb and mipseb should work, but haven't been tested yet. Committed as one big chunk so that people can comment on the patches as a whole and suggest improvements.
2010-02-03 21:29:06 +00:00
${MACHINE_ARCH} == "arm" || \
${MACHINE_ARCH} == "mipsel"
TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \
2005-02-25 00:24:03 +00:00
${MACHINE_ARCH} == "sparc64" || \
Introduce MACHINE_CPUARCH. MACHINE is the specific kernel architecture for this machine. MACHINE_ARCH is the specific CPU type (abi, word size, etc). MACHINE_CPUARCH is the family of CPUs that's supported. Most of the tree conflates MACHINE_ARCH and MACHINE_CPUARCH since historically they have been identical. However, there's now a reason to to split the two concepts. NetBSD calls this MACHINE_CPU, but that's already used for something else in FreeBSD, so MACHINE_CPUARCH was selected instead. However, the sources in the tree have had a KLUDGE in the tree called TARGET_BIG_ENDIAN to select which endian to compile the code for. However, this is a cumbersome and awkward solution. MACHINE_ARCH really does need to be different for different endian because users use it for things like their path. Yet, the source tree also used MACHINE_ARCH to figure out the MD code to use. This source often supports multiple MACHINE_ARCHs. 'mips' supports 32 (and soon 64) bit word sizes as well as big and little endian. 'arm' support both endians. powerpc will soon support both 32-bit and 64-bit. These patches start to unwind this confusion. It implements MACHINE_ARCH of mipsel, mipseb for the two endians of MIPS, as well as arm and armeb for ARM. The names for ARM are historical accidents (ARM was primarily little endian until relatively recently). These names follow the NetBSD convetions. With these changes, "make buildworld TARGET=mips TARGET_ARCH=mipsel" finishes. armeb and mipseb should work, but haven't been tested yet. Committed as one big chunk so that people can comment on the patches as a whole and suggest improvements.
2010-02-03 21:29:06 +00:00
${MACHINE_ARCH} == "armeb" || \
${MACHINE_ARCH} == "mipseb"
TARGET_ENDIANNESS= 4321
.endif