19b7a44a6SPeter Wemm# $FreeBSD$
22e280533SJohn Polstra
32e280533SJohn Polstra.include "../Makefile.inc0"
42e280533SJohn Polstra
57408d8ffSWarner Losh.PATH: ${SRCDIR}/bfd ${SRCDIR}/opcodes
62e280533SJohn Polstra
72e280533SJohn PolstraLIB=	bfd
83213eafaSDimitry AndricSRCS+=	archive.c \
93213eafaSDimitry Andric	archive64.c \
103213eafaSDimitry Andric	archures.c \
113213eafaSDimitry Andric	bfd.c \
123213eafaSDimitry Andric	bfdio.c \
133213eafaSDimitry Andric	bfdver.h \
143213eafaSDimitry Andric	bfdwin.c \
153213eafaSDimitry Andric	binary.c \
163213eafaSDimitry Andric	cache.c \
173213eafaSDimitry Andric	coffgen.c \
183213eafaSDimitry Andric	config.h \
193213eafaSDimitry Andric	corefile.c \
203213eafaSDimitry Andric	dwarf1.c \
213213eafaSDimitry Andric	dwarf2.c \
220921c6efSDimitry Andric	elf-attrs.c \
233213eafaSDimitry Andric	elf-eh-frame.c \
243213eafaSDimitry Andric	elf-strtab.c \
256efa94bcSDimitry Andric	elf-vxworks.c \
263213eafaSDimitry Andric	elf.c \
273213eafaSDimitry Andric	format.c \
283213eafaSDimitry Andric	hash.c \
293213eafaSDimitry Andric	ihex.c \
303213eafaSDimitry Andric	init.c \
313213eafaSDimitry Andric	libbfd.c \
323213eafaSDimitry Andric	linker.c \
333213eafaSDimitry Andric	merge.c \
343213eafaSDimitry Andric	opncls.c \
353213eafaSDimitry Andric	reloc.c \
363213eafaSDimitry Andric	section.c \
373213eafaSDimitry Andric	simple.c \
383213eafaSDimitry Andric	srec.c \
393213eafaSDimitry Andric	stab-syms.c \
403213eafaSDimitry Andric	stabs.c \
413213eafaSDimitry Andric	syms.c \
423213eafaSDimitry Andric	targets.c \
433213eafaSDimitry Andric	targmatch.h \
443213eafaSDimitry Andric	tekhex.c
45e7d939bdSMarcel Moolenaar.if ${TARGET_ARCH} == "sparc64"
467ff8c436SJohan KarlssonWARNS?=	2
47b0627fccSDavid E. O'Brien.endif
48e223c68bSDavid E. O'BrienCFLAGS+= -D_GNU_SOURCE
492e280533SJohn PolstraCFLAGS+= -I${SRCDIR}/bfd
50a35d8893SRuslan ErmilovINTERNALLIB=
51e223c68bSDavid E. O'BrienCLEANFILES+=	bfdver.h config.h targmatch.h
522e280533SJohn Polstra
53beb33165SJohn BirrellSELARCH=
54584a637fSDavid E. O'Brien.if ${TARGET_ARCH} == "amd64"
55584a637fSDavid E. O'BrienSELARCH= &bfd_i386_arch
56584a637fSDavid E. O'Brien.elif ${TARGET_ARCH} == "sparc64"
575e59c546SSteve PriceSELARCH= &bfd_sparc_arch
585e59c546SSteve Price.else
59beb33165SJohn Birrell.for _a in ${ARCHS}
60beb33165SJohn Birrell.if ${SELARCH} == ""
61beb33165SJohn BirrellSELARCH+= &bfd_${_a}_arch
62beb33165SJohn Birrell.else
63beb33165SJohn BirrellSELARCH+= ,&bfd_${_a}_arch
64beb33165SJohn Birrell.endif
65beb33165SJohn Birrell.endfor
665e59c546SSteve Price.endif
67beb33165SJohn BirrellCFLAGS+= -DSELECT_ARCHITECTURES="${SELARCH}"
68beb33165SJohn Birrell
69beb33165SJohn BirrellSELVEC=
70beb33165SJohn Birrell.for _v in ${VECS}
71bf12a49eSDavid E. O'BrienCFLAGS+= -DHAVE_${_v}
72beb33165SJohn Birrell.if ${SELVEC} == ""
73beb33165SJohn BirrellSELVEC+= &${_v}
74beb33165SJohn Birrell.else
75beb33165SJohn BirrellSELVEC+= ,&${_v}
76beb33165SJohn Birrell.endif
77beb33165SJohn Birrell.endfor
78beb33165SJohn BirrellCFLAGS+= -DSELECT_VECS="${SELVEC}"
797d0fc2f4SDavid E. O'BrienCFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
800921c6efSDimitry AndricCFLAGS+= -DDEBUGDIR="NULL"
81beb33165SJohn Birrell
82e223c68bSDavid E. O'Brien# XXX:DEO should grab BFD_VERSION_DATE from ${VERSION}...
83e223c68bSDavid E. O'Brienbfdver.h: Makefile
840921c6efSDimitry Andric	echo '#define BFD_VERSION	217500000'	> ${.TARGET}
850921c6efSDimitry Andric	echo '#define BFD_VERSION_DATE	20070703'	>> ${.TARGET}
86e223c68bSDavid E. O'Brien	echo '#define BFD_VERSION_STRING ${VERSION}'	>> ${.TARGET}
87ad3afeeaSGavin Atkinson	echo '#define REPORT_BUGS_TO "<http://www.freebsd.org/support.html>"' >> ${.TARGET}
88e223c68bSDavid E. O'Brien
892e280533SJohn Polstratargmatch.h: targmatch.sed config.bfd
902e280533SJohn Polstra	sed -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} > ${.TARGET}
912e280533SJohn Polstra
925c73b63dSDavid E. O'Brienconfig.h: config.h.fbsd
930e7fe4f6SDavid E. O'Brien.if ${TARGET_ARCH} == "i386"
945c73b63dSDavid E. O'Brien	sed -e 's,!!TRAD_HEADER!!,"hosts/i386bsd.h",g' ${.ALLSRC} > ${.TARGET}
955c73b63dSDavid E. O'Brien.else
965c73b63dSDavid E. O'Brien	sed -e 's,!!TRAD_HEADER!!,,g' ${.ALLSRC} > ${.TARGET}
975c73b63dSDavid E. O'Brien.endif
985c73b63dSDavid E. O'Brien
997d0fc2f4SDavid E. O'BrienCLEANFILES+=	elf32-target.h elf64-target.h
1005b728dfdSMarcel Moolenaarelf32-target.h: elfxx-target.h
1015b728dfdSMarcel Moolenaar	sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET}
1025b728dfdSMarcel Moolenaar
1035b728dfdSMarcel Moolenaarelf64-target.h: elfxx-target.h
1045b728dfdSMarcel Moolenaar	sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET}
1055b728dfdSMarcel Moolenaar
106*7f4b19cbSSimon J. Gerraty# avoid cicular dependency
107*7f4b19cbSSimon J. GerratyGENDIRDEPS_FILTER+= N*/nm
108*7f4b19cbSSimon J. Gerraty
1092e280533SJohn Polstra.include <bsd.lib.mk>
110