1#	$OpenBSD: Makefile.bsd-wrapper,v 1.89 2019/12/21 21:40:00 espie Exp $
2
3.include <bsd.own.mk>
4
5CFLAGS+=	${PIE_DEFAULT}
6XCFLAGS=	CC="${CC}" CFLAGS="${CFLAGS} ${COPTS}" LDFLAGS="${LDSTATIC}"
7# This allows moving the whole binutils installation around for
8# testing purposes
9PREFIX=/usr
10.if ${PREFIX} != "/usr"
11MANDIR=${PREFIX}/share/man/man
12.endif
13
14SUBDIRS=	opcodes bfd gdb
15CONF_SUBDIRS=	${SUBDIRS}
16INST_SUBDIRS=	gdb
17MAN=		gdb/gdb.1
18
19# Used by the GNU Makefile
20ALL_MODULES=${SUBDIRS:S/^/all-/g}
21CONFIGURE_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
22CONFIGURE_HOST_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
23ALL_HOST_MODULES=${SUBDIRS:S/^/all-/g}
24INSTALL_MODULES=${INST_SUBDIRS:S/^/install-/g}
25INFO_HOST_MODULES=${SUBDIRS:S/^/info-/g}
26INSTALL_INFO_HOST_MODULES=${INST_SUBDIRS:S/^/install-info-/g}
27
28# cross-compilation
29.if defined(TARGET_ARCH)
30CONFIGTARGET=--target=${TARGET_ARCH}-unknown-openbsd${OSREV}
31.else
32CONFIGTARGET=
33.endif
34
35all:	config.status
36	SUBDIRS='${SUBDIRS}' \
37	  CONFIGURE_HOST_MODULES='${CONFIGURE_HOST_MODULES}' \
38	  ${MAKE} ${XCFLAGS} \
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	${XCFLAGS} \
60	sh ${.CURDIR}/configure --prefix=${PREFIX} \
61	    --infodir='$${prefix}/share/info' \
62	    --disable-nls --disable-gdbtk --disable-install-libbfd ${CF} \
63	    ${CONFIGTARGET}
64	cd ${.OBJDIR} && \
65	    sed -e 's,SUBDIRS *=,SUBDIRS ?=,' <Makefile >Makefile.tmp && \
66	    mv -f Makefile.tmp Makefile
67	cd ${.OBJDIR} && \
68	    ${XCFLAGS} \
69	    ${MAKE} ${CONFIGURE_MODULES}
70
71config: do-config
72.ifndef GLOBAL_AUTOCONF_CACHE
73	-rm -f config.cache
74.endif
75
76config.status: do-config
77
78# Need to pass SUBDIRS because of install-info
79install: maninstall
80	SUBDIRS='${INST_SUBDIRS}' ${MAKE} DESTDIR='${DESTDIR}' \
81	    INSTALL_MAN= \
82	    scriptdir=${PREFIX}/libdata \
83	    tooldir=${PREFIX} \
84	    BSDSRCDIR=${BSDSRCDIR} \
85	    INSTALL_MODULES='${INSTALL_MODULES}' \
86	    INSTALL_PROGRAM='${INSTALL} -c ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}' \
87	    INSTALL_DATA='${INSTALL} -c -o ${DOCOWN} -g ${DOCGRP} -m ${NONBINMODE}' \
88	    INSTALL_INFO_HOST_MODULES='${INSTALL_INFO_HOST_MODULES}' \
89	      install install-info
90
91clean cleandir:
92	-@if [ -e Makefile ]; then ${MAKE} distclean; fi
93
94c++filt.1: binutils/cxxfilt.man
95	sed -e 's,@PROGRAM@,c++filt,' <${.CURDIR}/binutils/cxxfilt.man >$@
96
97tags:
98	# Nothing here so far...
99
100BEFOREMAN=config.status
101
102.PHONY: config
103
104.include <bsd.obj.mk>
105.include <bsd.subdir.mk>
106
107.ifdef NOMAN
108maninstall:
109	@echo NOMAN is set
110.else
111.include <bsd.man.mk>
112.endif
113