1#	$OpenBSD: Makefile.bsd-wrapper,v 1.90 2023/09/06 12:15:30 jca Exp $
2
3.include <bsd.own.mk>
4
5CFLAGS+=	-std=gnu89
6CFLAGS+=	${PIE_DEFAULT}
7XCFLAGS=	CC="${CC}" CFLAGS="${CFLAGS} ${COPTS}" LDFLAGS="${LDSTATIC}"
8# This allows moving the whole binutils installation around for
9# testing purposes
10PREFIX=/usr
11.if ${PREFIX} != "/usr"
12MANDIR=${PREFIX}/share/man/man
13.endif
14
15SUBDIRS=	opcodes bfd gdb
16CONF_SUBDIRS=	${SUBDIRS}
17INST_SUBDIRS=	gdb
18MAN=		gdb/gdb.1
19
20# Used by the GNU Makefile
21ALL_MODULES=${SUBDIRS:S/^/all-/g}
22CONFIGURE_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
23CONFIGURE_HOST_MODULES=${CONF_SUBDIRS:S/^/configure-/g}
24ALL_HOST_MODULES=${SUBDIRS:S/^/all-/g}
25INSTALL_MODULES=${INST_SUBDIRS:S/^/install-/g}
26INFO_HOST_MODULES=${SUBDIRS:S/^/info-/g}
27INSTALL_INFO_HOST_MODULES=${INST_SUBDIRS:S/^/install-info-/g}
28
29# cross-compilation
30.if defined(TARGET_ARCH)
31CONFIGTARGET=--target=${TARGET_ARCH}-unknown-openbsd${OSREV}
32.else
33CONFIGTARGET=
34.endif
35
36all:	config.status
37	SUBDIRS='${SUBDIRS}' \
38	  CONFIGURE_HOST_MODULES='${CONFIGURE_HOST_MODULES}' \
39	  ${MAKE} ${XCFLAGS} \
40	    scriptdir=${PREFIX}/libdata \
41	    tooldir=${PREFIX} \
42	    MAKEINFO='makeinfo --no-split' \
43	    MAKEINFOFLAGS='' \
44	    BSDSRCDIR=${BSDSRCDIR} \
45	    ALL_MODULES="${ALL_MODULES}" \
46	    ALL_HOST_MODULES='${ALL_HOST_MODULES}' \
47	    INFO_HOST_MODULES='${INFO_HOST_MODULES}' all info
48
49.include <bsd.own.mk>
50
51.ifdef GLOBAL_AUTOCONF_CACHE
52CF=	--cache-file=${GLOBAL_AUTOCONF_CACHE}
53.else
54CF=
55.endif
56
57do-config: .USE
58	PATH="/bin:/usr/bin:/sbin:/usr/sbin" \
59	MAKEINFO='makeinfo --no-split' \
60	${XCFLAGS} \
61	sh ${.CURDIR}/configure --prefix=${PREFIX} \
62	    --infodir='$${prefix}/share/info' \
63	    --disable-nls --disable-gdbtk --disable-install-libbfd ${CF} \
64	    ${CONFIGTARGET}
65	cd ${.OBJDIR} && \
66	    sed -e 's,SUBDIRS *=,SUBDIRS ?=,' <Makefile >Makefile.tmp && \
67	    mv -f Makefile.tmp Makefile
68	cd ${.OBJDIR} && \
69	    ${XCFLAGS} \
70	    ${MAKE} ${CONFIGURE_MODULES}
71
72config: do-config
73.ifndef GLOBAL_AUTOCONF_CACHE
74	-rm -f config.cache
75.endif
76
77config.status: do-config
78
79# Need to pass SUBDIRS because of install-info
80install: maninstall
81	SUBDIRS='${INST_SUBDIRS}' ${MAKE} DESTDIR='${DESTDIR}' \
82	    INSTALL_MAN= \
83	    scriptdir=${PREFIX}/libdata \
84	    tooldir=${PREFIX} \
85	    BSDSRCDIR=${BSDSRCDIR} \
86	    INSTALL_MODULES='${INSTALL_MODULES}' \
87	    INSTALL_PROGRAM='${INSTALL} -c ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}' \
88	    INSTALL_DATA='${INSTALL} -c -o ${DOCOWN} -g ${DOCGRP} -m ${NONBINMODE}' \
89	    INSTALL_INFO_HOST_MODULES='${INSTALL_INFO_HOST_MODULES}' \
90	      install install-info
91
92clean cleandir:
93	-@if [ -e Makefile ]; then ${MAKE} distclean; fi
94
95c++filt.1: binutils/cxxfilt.man
96	sed -e 's,@PROGRAM@,c++filt,' <${.CURDIR}/binutils/cxxfilt.man >$@
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