opnsense-src/gnu/usr.bin/binutils/as/Makefile
Oleksandr Tymoshenko 4da573d910 Merging of projects/armv6, part 3
r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions.  In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
 * GCC to default to arm1176jz-s
 * GCC to predefine __FreeBSD_ARCH_armv6__
 * gas to default to ARM_ARCH_V6K
 * uname -p to return 'armv6'
 * make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by:	Tim Kientzle <kientzle@freebsd.org>
2012-08-15 03:21:56 +00:00

96 lines
1.9 KiB
Makefile

# $FreeBSD$
# BINDIR
.include "${.CURDIR}/../../Makefile.inc"
.include "${.CURDIR}/../Makefile.inc0"
.include <bsd.own.mk>
.PATH: ${SRCDIR}/gas ${SRCDIR}/gas/config
PROG= as
SRCS+= app.c \
as.c \
atof-generic.c \
atof-ieee.c \
cond.c \
depend.c \
dw2gencfi.c \
dwarf2dbg.c \
ecoff.c \
ehopt.c \
expr.c \
flonum-copy.c \
flonum-konst.c \
flonum-mult.c \
frags.c \
hash.c \
input-file.c \
input-scrub.c \
listing.c \
literal.c \
macro.c \
messages.c \
obj-elf.c \
output-file.c \
read.c \
sb.c \
stabs.c \
subsegs.c \
symbols.c \
write.c
# DEO: why not used?
#SRCS+= itbl-ops.c
.if ${TARGET_ARCH} == "armv6" || ${TARGET_ARCH} == "armv6eb"
CFLAGS+= -DCPU_DEFAULT=ARM_ARCH_V6K
.endif
.if ${TARGET_CPUARCH} == "mips"
SRCS+= itbl-ops.c itbl-parse.y itbl-lex.l
.if ${TARGET_ARCH:Mmips64*} != ""
CFLAGS+= -DMIPS_DEFAULT_ABI=N64_ABI -DMIPS_DEFAULT_64BIT=1
.elif ${TARGET_ARCH:Mmipsn32*} != ""
CFLAGS+= -DMIPS_DEFAULT_ABI=N32_ABI
.else
MIPS_ABI_DEFAULT=ABI_32
.endif
.endif
.if ${TARGET_ARCH} == "amd64"
SRCS+= tc-i386.c
.elif ${TARGET_CPUARCH} == "powerpc"
SRCS+= tc-ppc.c
.elif ${TARGET_ARCH} == "sparc64"
SRCS+= tc-sparc.c
.else
SRCS+= tc-${TARGET_CPUARCH}.c
.endif
.if ${TARGET_ARCH} == "sparc64"
CFLAGS+= -DDEFAULT_ARCH=\"v9-64\"
.else
CFLAGS+= -DDEFAULT_ARCH=\"${BINUTILS_ARCH}\"
.endif
.if defined(TARGET_BIG_ENDIAN)
CFLAGS+= -DTARGET_BYTES_BIG_ENDIAN=1
.endif
CFLAGS+= -DTARGET_CPU=\"${BINUTILS_ARCH}\"
CFLAGS+= -DTARGET_OS=\"${TARGET_OS}\"
CFLAGS+= -DTARGET_CANONICAL=\"${TARGET_TUPLE}\"
CFLAGS+= -DTARGET_ALIAS=\"${TARGET_TUPLE}\"
CFLAGS+= -DVERSION=\"${VERSION}\"
CFLAGS+= -D_GNU_SOURCE
CFLAGS+= -I${SRCDIR}/gas -I${SRCDIR}/bfd -I${SRCDIR}/gas/config -I${SRCDIR}
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${TARGET_CPUARCH}-freebsd
.if ${MK_SHARED_TOOLCHAIN} == "no"
NO_SHARED?= yes
.endif
DPADD= ${RELTOP}/libbfd/libbfd.a
DPADD+= ${RELTOP}/libiberty/libiberty.a
DPADD+= ${RELTOP}/libopcodes/libopcodes.a
LDADD= ${DPADD}
.include <bsd.prog.mk>