xref: /netbsd-src/external/gpl3/binutils/lib/libbfd/Makefile (revision af56d1fe9956bd7c616e18c1b7f025f464618471)
1#	$NetBSD: Makefile,v 1.7 2012/06/22 20:32:35 abs Exp $
2
3NOLINKLIB=	# defined
4NOLINT=		# defined
5NOMAN=		# defined
6NOPROFILE=	# defined
7NOCLANGERROR=	# defined
8
9.include <bsd.own.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}
22
23.if exists(${.CURDIR}/arch/${BFD_MACHINE_ARCH}/defs.mk)
24.include "${.CURDIR}/arch/${BFD_MACHINE_ARCH}/defs.mk"
25
26DIST=		${NETBSDSRCDIR}/external/gpl3/binutils/dist
27
28SHLIB_MAJOR=	12
29SHLIB_MINOR=	0
30
31LIBDPLIBS+=	z	${.CURDIR}/../../../../../lib/libz
32
33GCPPFLAGS=	${G_archdefs} ${G_DEFS} ${G_INCLUDES} ${G_TDEFAULTS}
34CPPFLAGS+=	-I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \
35		-I${DIST}/bfd ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} \
36		-DDEBUGDIR=\"${DEBUGDIR}\"
37
38.if (${MACHINE_ARCH} == "vax")
39CPPFLAGS.elf.c +=	-O0
40.endif
41
42GSRCS=		${G_libbfd_la_OBJECTS:libbfd.lo=lib_bfd.lo} \
43		${G_libbfd_la_DEPENDENCIES:M*.lo}
44SRCS=		${GSRCS:.lo=.c}
45
46DPSRCS+=	elf32-target.h elf64-target.h targmatch.h \
47		elf32-ia64.c elf64-ia64.c peigen.c pepigen.c
48CLEANFILES+=	elf32-target.h elf64-target.h targmatch.h \
49		elf32-ia64.c elf64-ia64.c peigen.c pepigen.c
50
51TEXINFO=	bfd.texinfo
52INFOFLAGS=	-I${DIST}/bfd/doc
53
54.PATH: ${DIST}/bfd ${DIST}/bfd/doc
55
56.include <bsd.lib.mk>
57.include <bsd.info.mk>
58
59${OBJS} ${SOBJS}: elf32-target.h elf64-target.h
60targets.o targets.pico: targmatch.h Makefile
61.else
62.include <bsd.prog.mk> # do nothing
63.endif
64
65targmatch.h: config.bfd targmatch.sed
66	${_MKTARGET_CREATE}
67	${TOOL_SED} -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} >$@
68
69elf32-target.h: elfxx-target.h
70	${_MKTARGET_CREATE}
71	${TOOL_SED} -e s/NN/32/g < $> > $@
72
73elf64-target.h: elfxx-target.h
74	${_MKTARGET_CREATE}
75	${TOOL_SED} -e s/NN/64/g < $> > $@
76
77elf32-ia64.c: elfxx-ia64.c
78	${_MKTARGET_CREATE}
79	${TOOL_SED} -e s/NN/32/g < $> > $@
80
81elf64-ia64.c: elfxx-ia64.c
82	${_MKTARGET_CREATE}
83	${TOOL_SED} -e s/NN/64/g < $> > $@
84
85peigen.c: peXXigen.c
86	${_MKTARGET_CREATE}
87	${TOOL_SED} -e s/XX/pe/g < $> > $@
88
89pepigen.c: peXXigen.c
90	${_MKTARGET_CREATE}
91	${TOOL_SED} -e s/XX/pep/g < $> > $@
92
93pex64igen.c: peXXigen.c
94	${_MKTARGET_CREATE}
95	${TOOL_SED} -e s/XX/pex64/g < $> > $@
96