19b7a44a6SPeter Wemm# $FreeBSD$
22e280533SJohn Polstra
32e280533SJohn Polstra.include "../Makefile.inc0"
42e280533SJohn Polstra
57408d8ffSWarner Losh.PATH: ${SRCDIR}/bfd ${SRCDIR}/opcodes
62e280533SJohn Polstra
72e280533SJohn PolstraLIB=	bfd
8985e77deSDavid E. O'BrienSRCS+=	archive.c archive64.c archures.c bfd.c binary.c cache.c \
9c3b0e332SDavid E. O'Brien	coffgen.c corefile.c elf.c elf-eh-frame.c elf-strtab.c format.c \
10c3b0e332SDavid E. O'Brien	hash.c ihex.c init.c libbfd.c linker.c merge.c opncls.c reloc.c \
11c3b0e332SDavid E. O'Brien	section.c srec.c stab-syms.c stabs.c syms.c targets.c tekhex.c \
125c73b63dSDavid E. O'Brien	targmatch.h dwarf1.c dwarf2.c config.h
13*b0627fccSDavid E. O'Brien.if (${TARGET_ARCH} == "alpha")
14*b0627fccSDavid E. O'BrienWARNS=	2
15*b0627fccSDavid E. O'Brien.endif
162e280533SJohn PolstraCFLAGS+= -I${SRCDIR}/bfd
17a1a1118aSDavid E. O'BrienCFLAGS+= -DBFD_VERSION=\"${VERSION_DATE}\" -DBFD_VERSION_DATE=${VERSION_DATE}
18a1a1118aSDavid E. O'BrienCFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\"
192e280533SJohn PolstraNOPROFILE=	true
202e280533SJohn PolstraNOPIC=		true
21f07eaee2SJohn PolstraINTERNALLIB=	true
22f07eaee2SJohn PolstraINTERNALSTATICLIB=true
235c73b63dSDavid E. O'BrienCLEANFILES+=	config.h targmatch.h
242e280533SJohn Polstra
253ba3ae90SJohn Birrell# If set, BINUTILSDISTDIR is the path to a directory containing the full GNU
263ba3ae90SJohn Birrell# binutils release. FreeBSD only distributes the bits that are required to
273ba3ae90SJohn Birrell# build native architectures. BINUTILSDISTDIR is needed to build cross tools.
283ba3ae90SJohn Birrell.if defined(BINUTILSDISTDIR) && exists(${BINUTILSDISTDIR})
293ba3ae90SJohn Birrell.PATH: ${BINUTILSDISTDIR}/bfd ${BINUTILSDISTDIR}/opcodes
305c73b63dSDavid E. O'BrienCFLAGS+= -I${BINUTILSDISTDIR}/bfd -I${BINUTILSDISTDIR}/include -I.
313ba3ae90SJohn Birrell.endif
323ba3ae90SJohn Birrell
33beb33165SJohn BirrellSELARCH=
345e59c546SSteve Price.if ${BINUTIL_ARCH} == "sparc64"
355e59c546SSteve PriceSELARCH= &bfd_sparc_arch
365e59c546SSteve Price.else
37beb33165SJohn Birrell.for _a in ${ARCHS}
38beb33165SJohn Birrell.if ${SELARCH} == ""
39beb33165SJohn BirrellSELARCH+= &bfd_${_a}_arch
40beb33165SJohn Birrell.else
41beb33165SJohn BirrellSELARCH+= ,&bfd_${_a}_arch
42beb33165SJohn Birrell.endif
43beb33165SJohn Birrell.endfor
445e59c546SSteve Price.endif
45beb33165SJohn BirrellCFLAGS+= -DSELECT_ARCHITECTURES="${SELARCH}"
46beb33165SJohn Birrell
47beb33165SJohn BirrellSELVEC=
48beb33165SJohn Birrell.for _v in ${VECS}
49beb33165SJohn Birrell.if ${SELVEC} == ""
50beb33165SJohn BirrellSELVEC+= &${_v}
51beb33165SJohn Birrell.else
52beb33165SJohn BirrellSELVEC+= ,&${_v}
53beb33165SJohn Birrell.endif
54beb33165SJohn Birrell.endfor
55beb33165SJohn BirrellCFLAGS+= -DSELECT_VECS="${SELVEC}"
56beb33165SJohn Birrell
572e280533SJohn Polstratargmatch.h: targmatch.sed config.bfd
582e280533SJohn Polstra	sed -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} > ${.TARGET}
592e280533SJohn Polstra
605c73b63dSDavid E. O'Brienconfig.h: config.h.fbsd
615c73b63dSDavid E. O'Brien.if ${BINUTIL_ARCH} == "i386"
625c73b63dSDavid E. O'Brien	sed -e 's,!!TRAD_HEADER!!,"hosts/i386bsd.h",g' ${.ALLSRC} > ${.TARGET}
635c73b63dSDavid E. O'Brien.else
645c73b63dSDavid E. O'Brien	sed -e 's,!!TRAD_HEADER!!,,g' ${.ALLSRC} > ${.TARGET}
655c73b63dSDavid E. O'Brien.endif
665c73b63dSDavid E. O'Brien
672e280533SJohn Polstra.include <bsd.lib.mk>
68