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