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