xref: /openbsd-src/gnu/usr.bin/binutils/Makefile.bsd-wrapper (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1#	$OpenBSD: Makefile.bsd-wrapper,v 1.82 2013/07/05 21:29:51 miod Exp $
2
3.include <bsd.own.mk>
4
5CFLAGS+=	${PIE_DEFAULT}
6# This allows moving the whole binutils installation around for
7# testing purposes
8PREFIX=/usr
9.if ${PREFIX} != "/usr"
10MANDIR=${PREFIX}/share/man/man
11.endif
12
13.if ${BINUTILS_VERSION} == "binutils-2.17"
14
15SUBDIRS=	opcodes bfd gdb
16CONF_SUBDIRS=	${SUBDIRS}
17INST_SUBDIRS=	gdb
18MAN=		gdb/gdb.1
19
20.else
21
22SUBDIRS=	opcodes bfd
23CONF_SUBDIRS=	opcodes bfd
24
25MAN=		binutils/doc/addr2line.1 binutils/doc/objcopy.1 \
26		binutils/doc/objdump.1 binutils/doc/readelf.1 \
27		c++filt.1
28
29.if !defined(TARGET_ARCH) && !defined(BOOTSTRAP)
30CONF_SUBDIRS+=	gdb
31SUBDIRS+=	gdb
32INST_SUBDIRS+=	gdb
33MAN+=		gdb/gdb.1
34.endif
35
36SUBDIRS+=	binutils ld gas
37CONF_SUBDIRS+=	binutils ld gas
38INST_SUBDIRS+=	binutils ld gas
39MAN+=		binutils/doc/ar.1 binutils/doc/ranlib.1 \
40		binutils/doc/strings.1 binutils/doc/strip.1 \
41		gas/doc/as.1 ld/ld.1
42
43.endif
44
45# Used by the GNU Makefile
46ALL_MODULES=${SUBDIRS:S/^/all-/g}
47CONFIGURE_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
48CONFIGURE_HOST_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
49ALL_HOST_MODULES=${SUBDIRS:S/^/all-/g}
50INSTALL_MODULES=${INST_SUBDIRS:S/^/install-/g}
51INFO_HOST_MODULES=${SUBDIRS:S/^/info-/g}
52INSTALL_INFO_HOST_MODULES=${INST_SUBDIRS:S/^/install-info-/g}
53
54# cross-compilation
55.if defined(TARGET_ARCH)
56CONFIGTARGET=--target=${TARGET_ARCH}-unknown-openbsd${OSREV}
57.else
58CONFIGTARGET=
59.endif
60
61all:	config.status
62	SUBDIRS='${SUBDIRS}' \
63	  CONFIGURE_HOST_MODULES='${CONFIGURE_HOST_MODULES}' \
64	  ${MAKE} CC="${CC}" \
65	    CFLAGS="${CFLAGS} ${COPTS}" LDFLAGS=${LDSTATIC} \
66	    scriptdir=${PREFIX}/libdata \
67	    tooldir=${PREFIX} \
68	    MAKEINFO='makeinfo --no-split' \
69	    MAKEINFOFLAGS='' \
70	    BSDSRCDIR=${BSDSRCDIR} \
71	    ALL_MODULES="${ALL_MODULES}" \
72	    ALL_HOST_MODULES='${ALL_HOST_MODULES}' \
73	    INFO_HOST_MODULES='${INFO_HOST_MODULES}' all info
74
75.include <bsd.own.mk>
76
77.ifdef GLOBAL_AUTOCONF_CACHE
78CF=	--cache-file=${GLOBAL_AUTOCONF_CACHE}
79.else
80CF=
81.endif
82
83do-config: .USE
84	PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
85	MAKEINFO='makeinfo --no-split' \
86	sh ${.CURDIR}/configure --prefix=${PREFIX} \
87	    --infodir='$${prefix}/share/info' \
88	    --disable-nls --disable-gdbtk --disable-install-libbfd ${CF} \
89	    ${CONFIGTARGET}
90	cd ${.OBJDIR} && \
91	    sed -e 's,SUBDIRS *=,SUBDIRS ?=,' <Makefile >Makefile.tmp && \
92	    mv -f Makefile.tmp Makefile
93	cd ${.OBJDIR} && \
94	    ${MAKE} ${CONFIGURE_MODULES}
95
96gas/doc/as.1: config.status
97	cd ${.OBJDIR}/gas/doc && ${MAKE} as.1
98
99ld/ld.1: config.status
100	cd ${.OBJDIR}/ld && ${MAKE} ld.1
101
102config: do-config
103.ifndef GLOBAL_AUTOCONF_CACHE
104	-rm -f config.cache
105.endif
106
107config.status: do-config
108
109# Need to pass SUBDIRS because of install-info
110install: maninstall
111	SUBDIRS='${INST_SUBDIRS}' ${MAKE} DESTDIR='${DESTDIR}' \
112	    INSTALL_MAN= \
113	    scriptdir=${PREFIX}/libdata \
114	    tooldir=${PREFIX} \
115	    BSDSRCDIR=${BSDSRCDIR} \
116	    INSTALL_MODULES='${INSTALL_MODULES}' \
117	    INSTALL_PROGRAM='install -c -S' \
118	    INSTALL_INFO_HOST_MODULES='${INSTALL_INFO_HOST_MODULES}' \
119	      install install-info
120
121clean cleandir:
122	-@if [ -e Makefile ]; then ${MAKE} distclean; fi
123
124c++filt.1: binutils/cxxfilt.man
125	sed -e 's,@PROGRAM@,c++filt,' <${.CURDIR}/binutils/cxxfilt.man >$@
126
127depend:
128	# Nothing here so far...
129
130lint:
131	# Nothing here so far...
132
133tags:
134	# Nothing here so far...
135
136BEFOREMAN=config.status
137
138.PHONY: config
139
140.include <bsd.obj.mk>
141.include <bsd.subdir.mk>
142
143.ifdef NOMAN
144maninstall:
145	@echo NOMAN is set
146.else
147.include <bsd.man.mk>
148.endif
149