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