1*99d38c70Szrj.include "../../Makefile.inc1" 2*99d38c70Szrj.include "../Makefile.block1" 3*99d38c70Szrj 4*99d38c70SzrjLIB= bfd 5*99d38c70SzrjINTERNALLIB= true 6*99d38c70Szrj 7*99d38c70SzrjCONTRIBDIR= ${SRCDIR}/bfd 8*99d38c70Szrj.PATH: ${CONTRIBDIR} 9*99d38c70Szrj 10*99d38c70SzrjCFLAGS+= -I${SRCDIR}/include -I${CONTRIBDIR} -I${.CURDIR} -I${.OBJDIR} 11*99d38c70SzrjCFLAGS+= -DDEBUGDIR='"/usr/lib/debug"' # no clue why this is needed 12*99d38c70SzrjFLAGS_GROUPS= target plugins 13*99d38c70Szrj 14*99d38c70Szrj# BFD32_LIBS_CFILES 15*99d38c70SzrjSRCS= archive.c archures.c bfd.c bfdio.c cache.c \ 16*99d38c70Szrj coff-bfd.c compress.c corefile.c elf-properties.c format.c \ 17*99d38c70Szrj hash.c init.c libbfd.c linker.c merge.c opncls.c reloc.c \ 18*99d38c70Szrj section.c simple.c stab-syms.c stabs.c syms.c targets.c \ 19*99d38c70Szrj binary.c ihex.c srec.c tekhex.c verilog.c 20*99d38c70Szrj 21*99d38c70Szrj# only when USE_MMAP (--with-mmap) 22*99d38c70Szrj#SRCS+= bfdwin.c 23*99d38c70Szrj 24*99d38c70Szrj# from Makefile, BFD_BACKENDS (x86-64 specific) 25*99d38c70SzrjSRCS+= elf64-x86-64.co elfxx-x86.c elf-ifunc.c elf-nacl.c elf-vxworks.c \ 26*99d38c70Szrj elf64.c elf.c elflink.c elf-attrs.c elf-strtab.c elf-eh-frame.c \ 27*99d38c70Szrj dwarf1.c dwarf2.c elf32-i386.c elf32.c \ 28*99d38c70Szrj pei-x86_64.c pex64igen.c cofflink.c coffgen.c \ 29*99d38c70Szrj elf64-gen.c elf32-gen.c 30*99d38c70Szrj 31*99d38c70Szrj# ALL_MACHINES_CFILES 32*99d38c70SzrjSRCS+= cpu-i386.c cpu-iamcu.c cpu-l1om.c cpu-k1om.c 33*99d38c70Szrj 34*99d38c70Szrj# BFD64_LIBS_CFILES 35*99d38c70SzrjSRCS+= archive64.c 36*99d38c70Szrj 37*99d38c70SzrjVECTORS= x86_64_elf64_vec \ 38*99d38c70Szrj x86_64_pei_vec \ 39*99d38c70Szrj i386_elf32_vec \ 40*99d38c70Szrj iamcu_elf32_vec \ 41*99d38c70Szrj l1om_elf64_vec \ 42*99d38c70Szrj k1om_elf64_vec \ 43*99d38c70Szrj elf64_le_vec \ 44*99d38c70Szrj elf64_be_vec \ 45*99d38c70Szrj elf32_le_vec \ 46*99d38c70Szrj elf32_be_vec 47*99d38c70Szrj 48*99d38c70Szrj# plugin support mainly for LTO ar, nm, ranlib 49*99d38c70SzrjSRCS+= plugin.c 50*99d38c70SzrjVECTORS+= plugin_vec 51*99d38c70Szrj# allow users to put plugin dirs in common place for testing, but use relative to exec 52*99d38c70Szrjplugins_FLAGS+= -DBINDIR=\"${TOOLS_PREFIX}${BINDIR}\" -DPLUGINLIBDIR=\"/usr/lib\" 53*99d38c70Szrjplugins_FLAGS+= -DRELPLUGINDIR=\"/../bfd-plugins\" # standard one uses lib/bfd-plugins 54*99d38c70Szrjplugins_FLAGS_FILES= plugin.c 55*99d38c70Szrj 56*99d38c70SzrjDEFAULT_VECTOR= x86_64_elf64_vec 57*99d38c70SzrjARCHITECTURES= bfd_i386_arch bfd_iamcu_arch bfd_l1om_arch bfd_k1om_arch 58*99d38c70Szrj 59*99d38c70Szrj_selvec= 60*99d38c70Szrj.for _v in ${VECTORS} 61*99d38c70Szrjtarget_FLAGS+= -DHAVE_${_v} 62*99d38c70Szrj.if !empty(_selvec) 63*99d38c70Szrj_selvec+= , 64*99d38c70Szrj.endif 65*99d38c70Szrj_selvec+= &${_v} 66*99d38c70Szrj.endfor 67*99d38c70Szrjtarget_FLAGS+= -DSELECT_VECS='${_selvec}' 68*99d38c70Szrjtarget_FLAGS+= -DSELECT_ARCHITECTURES='${ARCHITECTURES:S/^/\&/:S/$/,/} 0' 69*99d38c70Szrjtarget_FLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR} 70*99d38c70Szrjtarget_FLAGS_FILES= targets.c archures.c 71*99d38c70Szrj 72*99d38c70Szrj${SRCS}: bfd.h 73*99d38c70Szrjtargets.c: targmatch.h 74*99d38c70Szrjelf32-gen.c elf32-i386.c elf64-x86-64.c: elf32-target.h 75*99d38c70Szrjelf64-gen.c elf64-x86-64.c: elf64-target.h 76*99d38c70Szrj 77*99d38c70Szrjtargmatch.h: config.bfd targmatch.sed 78*99d38c70Szrj sed -f ${CONTRIBDIR}/targmatch.sed < ${CONTRIBDIR}/config.bfd \ 79*99d38c70Szrj > ${.TARGET} 80*99d38c70Szrj 81*99d38c70Szrjelf32-target.h: elfxx-target.h 82*99d38c70Szrj sed -e s/NN/32/g < ${CONTRIBDIR}/elfxx-target.h > ${.TARGET} 83*99d38c70Szrjelf64-target.h: elfxx-target.h 84*99d38c70Szrj sed -e s/NN/64/g < ${CONTRIBDIR}/elfxx-target.h > ${.TARGET} 85*99d38c70Szrjpex64igen.c: peXXigen.c 86*99d38c70Szrj sed -e s/XX/pex64/g < ${CONTRIBDIR}/peXXigen.c > ${.TARGET} 87*99d38c70Szrj 88*99d38c70SzrjCLEANFILES= bfd.h elf64-target.h elf32-target.h targmatch.h pex64igen.c 89*99d38c70Szrj 90*99d38c70Szrj.include <bsd.lib.mk> 91