xref: /netbsd-src/external/gpl3/binutils.old/lib/libbfd/Makefile (revision 0e552da7216834a96e91ad098e59272b41087480)
1#	$NetBSD: Makefile,v 1.8 2020/04/03 17:51:22 christos Exp $
2
3NOLINKLIB=	# defined
4NOLINT=		# defined
5NOMAN=		# defined
6NOPROFILE=	# defined
7NOCLANGERROR=	# defined
8
9.include <bsd.init.mk>
10
11# If the platform does not support shared libraries, we need to supply
12# *something* for BFD-using programs to link against.  Also provide an
13# empty libinstall target so that libbfd.a does not get installed.
14.if ${MKPIC} == "no"
15MKLINKLIB=	yes
16libinstall:	# do nothing
17.endif
18
19LIB=		bfd
20
21BFD_MACHINE_ARCH?=	${MACHINE_ARCH:C/armv[4-7]/arm/}
22
23DEFS_MK=${.CURDIR}/arch/${BFD_MACHINE_ARCH}/defs.mk
24# XXX: Fix me
25BINDIR=/usr/bin
26
27.if exists(${DEFS_MK})
28.include "${DEFS_MK}"
29
30SHLIB_MAJOR=	16
31SHLIB_MINOR=	0
32
33LIBDPLIBS+=	z	${.CURDIR}/../../../../../lib/libz
34
35GCPPFLAGS=	${G_archdefs} ${G_DEFS} ${G_INCLUDES} ${G_TDEFAULTS}
36GCPPFLAGS+=	${G_HAVEVECS}
37
38CPPFLAGS+=	-I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \
39		-I${DIST}/bfd ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} \
40		-DDEBUGDIR=\"${DEBUGDIR}\" -DBINDIR=\"${BINDIR}\"
41
42.if (${BFD_MACHINE_ARCH} == "vax")
43CPPFLAGS.elf.c +=	-O0
44.endif
45
46COPTS.pei-x86_64.c += -Wno-stack-protector
47COPTS.elfxx-mips.c += -Wno-stack-protector
48
49GSRCS=		${G_libbfd_la_OBJECTS:libbfd.lo=lib_bfd.lo} \
50		${G_libbfd_la_DEPENDENCIES:M*.lo}
51SRCS=		${GSRCS:.lo=.c}
52
53DPSRCS+=	elf32-target.h elf64-target.h targmatch.h \
54		elf32-ia64.c elf64-ia64.c peigen.c pepigen.c \
55		elf32-riscv.c elf64-riscv.c elf32-aarch64.c elf64-aarch64.c \
56		pex64igen.c
57CLEANFILES+=	elf32-target.h elf64-target.h targmatch.h \
58		elf32-ia64.c elf64-ia64.c peigen.c pepigen.c \
59		elf32-riscv.c elf64-riscv.c elf32-aarch64.c elf64-aarch64.c \
60		pex64igen.c
61
62TEXINFO=	bfd.texinfo
63INFOFLAGS=	-I${DIST}/bfd/doc
64
65.PATH: ${DIST}/bfd ${DIST}/bfd/doc
66
67.include <bsd.lib.mk>
68.include <bsd.info.mk>
69
70${OBJS} ${SOBJS}: elf32-target.h elf64-target.h
71targets.o targets.pico: targmatch.h Makefile
72.else
73.include <bsd.prog.mk> # do nothing
74.endif
75
76targmatch.h: config.bfd targmatch.sed
77	${_MKTARGET_CREATE}
78	${TOOL_SED} -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} >$@
79
80elf32-target.h: elfxx-target.h
81	${_MKTARGET_CREATE}
82	${TOOL_SED} -e s/NN/32/g < $> > $@
83
84elf64-target.h: elfxx-target.h
85	${_MKTARGET_CREATE}
86	${TOOL_SED} -e s/NN/64/g < $> > $@
87
88elf32-ia64.c: elfnn-ia64.c
89	${_MKTARGET_CREATE}
90	${TOOL_SED} -e s/NN/32/g < $> > $@
91
92elf64-ia64.c: elfnn-ia64.c
93	${_MKTARGET_CREATE}
94	${TOOL_SED} -e s/NN/64/g < $> > $@
95
96elf32-riscv.c: elfnn-riscv.c
97	${_MKTARGET_CREATE}
98	${TOOL_SED} -e s/NN/32/g < $> > $@
99
100elf64-riscv.c: elfnn-riscv.c
101	${_MKTARGET_CREATE}
102	${TOOL_SED} -e s/NN/64/g < $> > $@
103
104elf32-aarch64.c: elfnn-aarch64.c
105	${_MKTARGET_CREATE}
106	${TOOL_SED} -e s/NN/32/g < $> > $@
107
108elf64-aarch64.c: elfnn-aarch64.c
109	${_MKTARGET_CREATE}
110	${TOOL_SED} -e s/NN/64/g < $> > $@
111
112peigen.c: peXXigen.c
113	${_MKTARGET_CREATE}
114	${TOOL_SED} -e s/XX/pe/g < $> > $@
115
116pepigen.c: peXXigen.c
117	${_MKTARGET_CREATE}
118	${TOOL_SED} -e s/XX/pep/g < $> > $@
119
120pex64igen.c: peXXigen.c
121	${_MKTARGET_CREATE}
122	${TOOL_SED} -e s/XX/pex64/g < $> > $@
123