1#         $NetBSD: Makefile,v 1.18 2024/08/27 17:07:07 christos Exp $
2
3.include <bsd.own.mk>
4.include "../Makefile.inc"
5
6LIBISPRIVATE=       yes
7
8LIB=                bfd
9
10.include "${.CURDIR}/arch/${GDB_MACHINE_ARCH}/defs.mk"
11
12GCPPFLAGS=          ${G_archdefs} ${G_DEFS} ${G_INCLUDES} ${G_TDEFAULTS}
13CPPFLAGS+=          -I${.CURDIR}/arch/${GDB_MACHINE_ARCH} -I${DIST}/include -I. \
14                    -I${DIST}/bfd ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} \
15                    -DDEBUGDIR=\"/usr/libdata/debug\" -DBINDIR=\"${BINDIR}\" \
16                    -DLIBDIR=\"/usr/libexec\"
17
18GSRCS=              ${G_libbfd_la_OBJECTS:libbfd.lo=lib_bfd.lo} \
19                    ${G_libbfd_la_DEPENDENCIES:M*.lo}
20SRCS=               ${GSRCS:.lo=.c}
21
22DPSRCS+=  elf32-target.h elf64-target.h targmatch.h \
23                    elf32-aarch64.c elf64-aarch64.c \
24                    elf32-ia64.c elf64-ia64.c \
25                    elf32-riscv.c elf64-riscv.c \
26                    peigen.c pex64igen.c
27CLEANFILES+=        elf32-target.h elf64-target.h targmatch.h \
28                    elf32-aarch64.c elf64-aarch64.c \
29                    elf32-ia64.c elf64-ia64.c \
30                    elf32-riscv.c elf64-riscv.c \
31                    peigen.c pex64igen.c
32
33.PATH: ${DIST}/bfd
34
35.include <bsd.lib.mk>
36
37COPTS+=         -Wno-stack-protector
38
39${OBJS} ${SOBJS}: elf32-target.h elf64-target.h
40targets.o targets.pico: targmatch.h Makefile
41
42targmatch.h: config.bfd targmatch.sed
43          ${_MKTARGET_CREATE}
44          ${TOOL_SED} -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} >$@
45
46elf32-target.h: elfxx-target.h
47          ${_MKTARGET_CREATE}
48          ${TOOL_SED} -e s/NN/32/g < $> > $@
49
50elf64-target.h: elfxx-target.h
51          ${_MKTARGET_CREATE}
52          ${TOOL_SED} -e s/NN/64/g < $> > $@
53
54elf64-aarch64.c: elfnn-aarch64.c
55          ${_MKTARGET_CREATE}
56          ${TOOL_SED} -e s/NN/64/g < $> > $@
57
58elf32-aarch64.c: elfnn-aarch64.c
59          ${_MKTARGET_CREATE}
60          ${TOOL_SED} -e s/NN/32/g < $> > $@
61
62elf32-ia64.c: elfnn-ia64.c
63          ${_MKTARGET_CREATE}
64          ${TOOL_SED} -e s/NN/32/g < $> > $@
65
66elf64-ia64.c: elfnn-ia64.c
67          ${_MKTARGET_CREATE}
68          ${TOOL_SED} -e s/NN/64/g < $> > $@
69
70elf32-riscv.c: elfnn-riscv.c
71          ${_MKTARGET_CREATE}
72          ${TOOL_SED} -e s/NN/32/g < $> > $@
73
74elf64-riscv.c: elfnn-riscv.c
75          ${_MKTARGET_CREATE}
76          ${TOOL_SED} -e s/NN/64/g < $> > $@
77
78peigen.c: peXXigen.c
79          ${_MKTARGET_CREATE}
80          ${TOOL_SED} -e s/XX/pe/g < $> > $@
81
82pepigen.c: peXXigen.c
83          ${_MKTARGET_CREATE}
84          ${TOOL_SED} -e s/XX/pep/g < $> > $@
85
86pex64igen.c: peXXigen.c
87          ${_MKTARGET_CREATE}
88          ${TOOL_SED} -e s/XX/pex64/g < $> > $@
89
90pe-aarch64igen.c: peXXigen.c
91          ${_MKTARGET_CREATE}
92          ${TOOL_SED} -e s/XX/peAArch64/g < $> > $@
93
94pe-riscv64igen.c: peXXigen.c
95          ${_MKTARGET_CREATE}
96          ${TOOL_SED} -e s/XX/peRiscV64/g < $> > $@
97