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