1#	$OpenBSD: Makefile.bsd-wrapper,v 1.86 2017/06/12 18:49:34 espie 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
13SUBDIRS=	opcodes bfd gdb
14CONF_SUBDIRS=	${SUBDIRS}
15INST_SUBDIRS=	gdb
16MAN=		gdb/gdb.1
17
18# Used by the GNU Makefile
19ALL_MODULES=${SUBDIRS:S/^/all-/g}
20CONFIGURE_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
21CONFIGURE_HOST_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
22ALL_HOST_MODULES=${SUBDIRS:S/^/all-/g}
23INSTALL_MODULES=${INST_SUBDIRS:S/^/install-/g}
24INFO_HOST_MODULES=${SUBDIRS:S/^/info-/g}
25INSTALL_INFO_HOST_MODULES=${INST_SUBDIRS:S/^/install-info-/g}
26
27# cross-compilation
28.if defined(TARGET_ARCH)
29CONFIGTARGET=--target=${TARGET_ARCH}-unknown-openbsd${OSREV}
30.else
31CONFIGTARGET=
32.endif
33
34all:	config.status
35	SUBDIRS='${SUBDIRS}' \
36	  CONFIGURE_HOST_MODULES='${CONFIGURE_HOST_MODULES}' \
37	  ${MAKE} CC="${CC}" \
38	    CFLAGS="${CFLAGS} ${COPTS}" LDFLAGS=${LDSTATIC} \
39	    scriptdir=${PREFIX}/libdata \
40	    tooldir=${PREFIX} \
41	    MAKEINFO='makeinfo --no-split' \
42	    MAKEINFOFLAGS='' \
43	    BSDSRCDIR=${BSDSRCDIR} \
44	    ALL_MODULES="${ALL_MODULES}" \
45	    ALL_HOST_MODULES='${ALL_HOST_MODULES}' \
46	    INFO_HOST_MODULES='${INFO_HOST_MODULES}' all info
47
48.include <bsd.own.mk>
49
50.ifdef GLOBAL_AUTOCONF_CACHE
51CF=	--cache-file=${GLOBAL_AUTOCONF_CACHE}
52.else
53CF=
54.endif
55
56do-config: .USE
57	PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
58	MAKEINFO='makeinfo --no-split' \
59	sh ${.CURDIR}/configure --prefix=${PREFIX} \
60	    --infodir='$${prefix}/share/info' \
61	    --disable-nls --disable-gdbtk --disable-install-libbfd ${CF} \
62	    ${CONFIGTARGET}
63	cd ${.OBJDIR} && \
64	    sed -e 's,SUBDIRS *=,SUBDIRS ?=,' <Makefile >Makefile.tmp && \
65	    mv -f Makefile.tmp Makefile
66	cd ${.OBJDIR} && \
67	    ${MAKE} ${CONFIGURE_MODULES}
68
69config: do-config
70.ifndef GLOBAL_AUTOCONF_CACHE
71	-rm -f config.cache
72.endif
73
74config.status: do-config
75
76# Need to pass SUBDIRS because of install-info
77install: maninstall
78	SUBDIRS='${INST_SUBDIRS}' ${MAKE} DESTDIR='${DESTDIR}' \
79	    INSTALL_MAN= \
80	    scriptdir=${PREFIX}/libdata \
81	    tooldir=${PREFIX} \
82	    BSDSRCDIR=${BSDSRCDIR} \
83	    INSTALL_MODULES='${INSTALL_MODULES}' \
84	    INSTALL_PROGRAM='${INSTALL} -c -S ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}' \
85	    INSTALL_DATA='${INSTALL} -c -o ${DOCOWN} -g ${DOCGRP} -m ${NONBINMODE}' \
86	    INSTALL_INFO_HOST_MODULES='${INSTALL_INFO_HOST_MODULES}' \
87	      install install-info
88
89clean cleandir:
90	-@if [ -e Makefile ]; then ${MAKE} distclean; fi
91
92c++filt.1: binutils/cxxfilt.man
93	sed -e 's,@PROGRAM@,c++filt,' <${.CURDIR}/binutils/cxxfilt.man >$@
94
95depend:
96	# Nothing here so far...
97
98tags:
99	# Nothing here so far...
100
101BEFOREMAN=config.status
102
103.PHONY: config
104
105.include <bsd.obj.mk>
106.include <bsd.subdir.mk>
107
108.ifdef NOMAN
109maninstall:
110	@echo NOMAN is set
111.else
112.include <bsd.man.mk>
113.endif
114