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 \
223213eafaSDimitry Andric	elf-eh-frame.c \
233213eafaSDimitry Andric	elf-strtab.c \
24*6efa94bcSDimitry Andric	elf-vxworks.c \
253213eafaSDimitry Andric	elf.c \
263213eafaSDimitry Andric	format.c \
273213eafaSDimitry Andric	hash.c \
283213eafaSDimitry Andric	ihex.c \
293213eafaSDimitry Andric	init.c \
303213eafaSDimitry Andric	libbfd.c \
313213eafaSDimitry Andric	linker.c \
323213eafaSDimitry Andric	merge.c \
333213eafaSDimitry Andric	opncls.c \
343213eafaSDimitry Andric	reloc.c \
353213eafaSDimitry Andric	section.c \
363213eafaSDimitry Andric	simple.c \
373213eafaSDimitry Andric	srec.c \
383213eafaSDimitry Andric	stab-syms.c \
393213eafaSDimitry Andric	stabs.c \
403213eafaSDimitry Andric	syms.c \
413213eafaSDimitry Andric	targets.c \
423213eafaSDimitry Andric	targmatch.h \
433213eafaSDimitry Andric	tekhex.c
447ff8c436SJohan KarlssonWARNS?=	0
45c684b561SWarner Losh.if (${TARGET_ARCH} == "ia64" || ${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
582cf64c80SNathan Whitehorn.elif ${TARGET_ARCH} == "powerpc64"
592cf64c80SNathan WhitehornSELARCH= &bfd_powerpc_arch,&bfd_rs6000_arch
605e59c546SSteve Price.else
61beb33165SJohn Birrell.for _a in ${ARCHS}
62beb33165SJohn Birrell.if ${SELARCH} == ""
63beb33165SJohn BirrellSELARCH+= &bfd_${_a}_arch
64beb33165SJohn Birrell.else
65beb33165SJohn BirrellSELARCH+= ,&bfd_${_a}_arch
66beb33165SJohn Birrell.endif
67beb33165SJohn Birrell.endfor
685e59c546SSteve Price.endif
69beb33165SJohn BirrellCFLAGS+= -DSELECT_ARCHITECTURES="${SELARCH}"
70beb33165SJohn Birrell
71beb33165SJohn BirrellSELVEC=
72beb33165SJohn Birrell.for _v in ${VECS}
73bf12a49eSDavid E. O'BrienCFLAGS+= -DHAVE_${_v}
74beb33165SJohn Birrell.if ${SELVEC} == ""
75beb33165SJohn BirrellSELVEC+= &${_v}
76beb33165SJohn Birrell.else
77beb33165SJohn BirrellSELVEC+= ,&${_v}
78beb33165SJohn Birrell.endif
79beb33165SJohn Birrell.endfor
80beb33165SJohn BirrellCFLAGS+= -DSELECT_VECS="${SELVEC}"
817d0fc2f4SDavid E. O'BrienCFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
82beb33165SJohn Birrell
83e223c68bSDavid E. O'Brien# XXX:DEO should grab BFD_VERSION_DATE from ${VERSION}...
84e223c68bSDavid E. O'Brienbfdver.h: Makefile
85*6efa94bcSDimitry Andric	echo '#define BFD_VERSION	217000000'	> ${.TARGET}
86*6efa94bcSDimitry Andric	echo '#define BFD_VERSION_DATE	20070807'	>> ${.TARGET}
87e223c68bSDavid E. O'Brien	echo '#define BFD_VERSION_STRING ${VERSION}'	>> ${.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
1062e280533SJohn Polstra.include <bsd.lib.mk>
107