1 # $NetBSD: Makefile,v 1.40 2025/09/08 21:42:32 christos Exp $ 2 3 .include <bsd.hostinit.mk> 4 5 MODULE= binutils 6 7 GNUHOSTDIST= ${.CURDIR}/../../external/gpl3/${EXTERNAL_BINUTILS_SUBDIR}/dist 8 9 BRANDING?= \ 10 --with-pkgversion="NetBSD Binutils nb1" \ 11 --with-bugurl="http://www.NetBSD.org/support/send-pr.html" \ 12 --with-lib-path="=/usr/lib" --with-sysroot 13 14 BASE_CONFIGURE_ARGS= \ 15 --target=${MACHINE_GNU_PLATFORM} \ 16 --enable-initfini-array=yes \ 17 --enable-default-execstack=no \ 18 ${BRANDING} 19 20 CONFIGURE_ARGS= --disable-nls --disable-werror \ 21 --with-zstd=no \ 22 --program-transform-name="s,^,${MACHINE_GNU_PLATFORM}-," \ 23 ${BASE_CONFIGURE_ARGS} 24 25 MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} 26 27 ALL_TARGET= all-binutils all-gas all-ld 28 INSTALL_TARGET= install-binutils install-gas install-ld 29 .if ${MKCROSSGPROF:Uno} != "no" 30 ALL_TARGET+= all-gprof 31 INSTALL_TARGET+=install-gprof 32 .endif 33 34 .include "${.CURDIR}/../Makefile.gnuhost" 35 36 CCADDFLAGS= -I${GNUHOSTDIST}/include -I${DESTDIR}/usr/include 37 CCADDFLAGS+= -B${DESTDIR}/usr/lib/ 38 CCADDFLAGS+= ${HOST_CPPFLAGS} 39 LDADDFLAGS= -L${DESTDIR}/lib -L${DESTDIR}/usr/lib 40 41 # Force avoiding possibly non-executable install-sh. 42 CONFIGURE_ENV+= ac_cv_path_mkdir="${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-install -d" 43 44 NEWCONFIGDIR?= ${.CURDIR}/../.. 45 .if ${EXTERNAL_BINUTILS_SUBDIR} == "binutils.old" 46 MKNATIVE= ${.CURDIR}/mknative-binutils.old 47 .endif 48 MKNATIVE?= ${.CURDIR}/mknative-binutils 49 50 native-binutils: .native/.configure_done 51 @echo 'Extracting GNU binutils configury for a native toolchain.' 52 MAKE=${MAKE:Q} ${HOST_SH} ${MKNATIVE} binutils \ 53 ${.OBJDIR}/.native ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} 54 55 .native/.configure_done: ${_GNU_CFGSRC} ${.CURDIR}/Makefile 56 mkdir .native 2>/dev/null || true 57 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 58 (cd .native && ${CONFIGURE_ENV:NC*:NLD*} \ 59 CC_FOR_BUILD=${HOST_CC:Q} \ 60 CC=${CC:Q}' '${CCADDFLAGS:Q} \ 61 CXX=${CXX:Q}' '${CCADDFLAGS:Q} \ 62 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include \ 63 CFLAGS= CPPFLAGS= CXXFLAGS= \ 64 LDFLAGS=${LDADDFLAGS:Q} \ 65 MSGFMT=${TOOLDIR}/bin/${_TOOL_PREFIX}msgfmt \ 66 XGETTEXT=${TOOLDIR}/bin/${_TOOL_PREFIX}xgettext \ 67 LIBS=-lintl \ 68 ac_cv_prog_cc_cross=yes \ 69 ac_cv_func_strcoll_works=yes \ 70 ${HOST_SH} ${GNUHOSTDIST}/configure \ 71 --build=`${GNUHOSTDIST}/config.guess` \ 72 --host=${MACHINE_GNU_PLATFORM} \ 73 ${BASE_CONFIGURE_ARGS} \ 74 ) 75 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 76 (cd .native && ${MAKE} configure-host) 77 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 78 (cd .native/bfd && ${MAKE} bfd.h bfdver.h) 79 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 80 (cd .native/ld && ${MAKE} ldemul-list.h) 81 @touch $@ 82 83 CLEANFILES+= PREV_BINUTILS 84 85 .if !defined(PREV_BINUTILS) 86 . if exists(PREV_BINUTILS) 87 PREV_BINUTILS!= cat PREV_BINUTILS 88 . else 89 PREV_BINUTILS= 90 . endif 91 .endif 92 93 CLEANFILES+= PREV_BINUTILS 94 95 # Include the local NetBSD BINUTILS version so that bumps to it trigger rebuilds. 96 NETBSD_BINUTILS_VERSION_NOSPACE=nb1 # just to keep it the same with gcc 97 98 realall realdepend: .MAKE 99 .if !empty(PREV_BINUTILS) && "${PREV_BINUTILS}" != "${EXTERNAL_BINUTILS_SUBDIR}-${HAVE_BINUTILS}-${NETBSD_BINUTILS_VERSION_NOSPACE}" 100 @echo "*** WARNING: BINUTILS has changed version?" 101 @echo "*** PREV_BINUTILS '${PREV_BINUTILS}'" 102 @echo "*** NETBSD_BINUTILS_VERSION_NOSPACE '${NETBSD_BINUTILS_VERSION_NOSPACE}'" 103 @echo "*** != EXTERNAL_BINUTILS_SUBDIR-HAVE_BINUTILS-NETBSD_BINUTILS_VERSION_NOSPACE:" 104 @echo "*** != '${EXTERNAL_BINUTILS_SUBDIR}-${HAVE_BINUTILS}-${NETBSD_BINUTILS_VERSION_NOSPACE}'" 105 @echo "*** Cleaning mis-matched tools/binutils" 106 rm -f PREV_BINUTILS 107 (cd ${.CURDIR} && ${MAKE} cleandir) 108 .endif 109 echo ${EXTERNAL_BINUTILS_SUBDIR}-${HAVE_BINUTILS}-${NETBSD_BINUTILS_VERSION_NOSPACE} >PREV_BINUTILS 110 111 clean: clean.native 112 clean.native: 113 -rm -r -f .native 114 115