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