diff options
| author | mrg <mrg@NetBSD.org> | 2003-11-27 10:12:02 +0000 |
|---|---|---|
| committer | mrg <mrg@NetBSD.org> | 2003-11-27 10:12:02 +0000 |
| commit | 0fcc88b5a2d2c63eba9ea26acd96e4c60cb3e76c (patch) | |
| tree | df2269045d646c53d30eea5d375d957ec45f5c99 /tools/binutils | |
| parent | 7764cab06d12796c8f9b9ad572295301146f1e03 (diff) | |
all `tooldir/nbmake-$ARCH native-binutils' support, to regenerate binutils
configury files for the integrated toolchain.
Diffstat (limited to 'tools/binutils')
| -rw-r--r-- | tools/binutils/Makefile | 55 | ||||
| -rwxr-xr-x | tools/binutils/mknative-binutils | 141 |
2 files changed, 154 insertions, 42 deletions
diff --git a/tools/binutils/Makefile b/tools/binutils/Makefile index 2ab27e47543..288774c4687 100644 --- a/tools/binutils/Makefile +++ b/tools/binutils/Makefile @@ -1,56 +1,36 @@ -# $NetBSD: Makefile,v 1.3 2003/10/26 07:25:38 lukem Exp $ +# $NetBSD: Makefile,v 1.4 2003/11/27 10:12:02 mrg Exp $ .include <bsd.own.mk> -# XXX make this "binutils" when binutils moves to gnu/dist/binutils +.if ${HAVE_BINUTILS214} == "yes" +MODULE= binutils +.else MODULE= toolchain +.endif -FIND_ARGS= \! \( -type d -name sim -prune \) - -#CONFIGURE_ENV= LANGUAGES="c c++ objc f77" CONFIGURE_ARGS= --target=${MACHINE_GNU_PLATFORM} --disable-nls \ --program-transform-name="s,^,${MACHINE_GNU_PLATFORM}-," -MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} \ - LIBGCC= LIBGCC1= LIBGCC1_TEST= LIBGCC2= INSTALL_LIBGCC= +MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} ALL_TARGET= all-binutils all-gas all-ld INSTALL_TARGET= install-binutils install-gas install-ld .include "${.CURDIR}/../Makefile.gnuhost" -CCADDFLAGS= -I${DESTDIR}/usr/include -L${DESTDIR}/usr/lib -B${DESTDIR}/usr/lib/ +CCADDFLAGS= -I${DESTDIR}/usr/include -L${DESTDIR}/usr/lib -L${DESTDIR}/usr/lib -B${DESTDIR}/usr/lib/ NEWCONFIGDIR?= ${.CURDIR}/../.. - -bootstrap-libgcc: .configure_done - @echo 'Creating files needed for libgcc by a native bootstrap build.' - @MAKE=${MAKE:Q} ${HOST_SH} ${.CURDIR}/mknative libgcc \ - ${.OBJDIR}/build ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} - -native: .native/.configure_done - @echo 'Extracting GNU configury for a native toolchain.' - @MAKE=${MAKE:Q} ${HOST_SH} ${.CURDIR}/mknative all \ - ${.OBJDIR}/.native ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} +MKNATIVE?= ${.CURDIR}/mknative-binutils native-binutils: .native/.configure_done @echo 'Extracting GNU binutils configury for a native toolchain.' - @MAKE=${MAKE:Q} ${HOST_SH} ${.CURDIR}/mknative binutils \ - ${.OBJDIR}/.native ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} - -native-gcc: .native/.configure_done - @echo 'Extracting GNU GCC configury for a native toolchain.' - @MAKE=${MAKE:Q} ${HOST_SH} ${.CURDIR}/mknative gcc \ - ${.OBJDIR}/.native ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} - -native-gdb: .native/.configure_done - @echo 'Extracting GNU GDB configury for a native toolchain.' - @MAKE=${MAKE:Q} ${HOST_SH} ${.CURDIR}/mknative gdb \ + @MAKE=${MAKE:Q} ${HOST_SH} ${MKNATIVE} binutils \ ${.OBJDIR}/.native ${NEWCONFIGDIR} ${MACHINE_GNU_PLATFORM} .native/.configure_done: ${_GNU_CFGSRC} ${.CURDIR}/Makefile - @mkdir .native 2>/dev/null || true - @PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ + mkdir .native 2>/dev/null || true + PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ (cd .native && ${CONFIGURE_ENV:NC*:NLD*} \ CC_FOR_BUILD=${HOST_CC:Q} \ CC=${CC:Q}' '${CCADDFLAGS:Q} \ @@ -62,27 +42,18 @@ native-gdb: .native/.configure_done LIBS=-lintl \ ac_cv_prog_cc_cross=yes \ ac_cv_func_strcoll_works=yes \ - gcc_cv_func_printf_ptr=yes \ - gdb_cv_printf_has_long_double=yes \ - gdb_cv_printf_has_long_long=yes \ - gdb_cv_scanf_has_long_double=yes \ ${HOST_SH} ${GNUHOSTDIST}/configure \ --build=`${.CURDIR}/../../gnu/dist/toolchain/config.guess` \ --host=${MACHINE_GNU_PLATFORM} \ --target=${MACHINE_GNU_PLATFORM}) && \ + (cd .native && ${MAKE} configure-host) && \ (cd .native/bfd && ${MAKE} bfd.h) && \ - (cd .native/gcc && ${MAKE} tree-check.h HOST_CC=${HOST_CC:Q}) && \ (cd .native/ld && ${MAKE} ldemul-list.h) && \ - (cd .native && touch gcc/cc1obj gcc/cc1plus gcc/f771 && \ + (cd .native && \ ${MAKE} configure-target-libiberty \ - configure-target-libf2c configure-target-libobjc \ - configure-target-libio configure-target-libstdc++ \ - ALL_GCC_C= ALL_GCC_CXX= \ CC_FOR_TARGET=${CC:Q}' '${CCADDFLAGS:Q} \ CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q} \ CPP=${CPP:Q}' '-I${DESTDIR}/usr/include) && \ - (cd .native/${MACHINE_GNU_PLATFORM}/libio && \ - ${MAKE} _G_config.h) (cd .native/${MACHINE_GNU_PLATFORM}/libiberty && \ ${MAKE} needed-list) @touch $@ diff --git a/tools/binutils/mknative-binutils b/tools/binutils/mknative-binutils new file mode 100755 index 00000000000..245bc10a85d --- /dev/null +++ b/tools/binutils/mknative-binutils @@ -0,0 +1,141 @@ +#!/bin/sh +# $NetBSD: mknative-binutils,v 1.1 2003/11/27 10:12:02 mrg Exp $ +# +# Shell script for generating all the constants needed for a native +# platform build of src/gnu/dist/binutils. +# + +# initialise + +_TMPDIR=$2 +_TOP=$3 +_PLATFORM=$4 +_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*= ,,'` + +. $_TOP/tools/gcc/mknative.common + +##### gnu/lib/libbfd ##### + +get_libbfd () { + mkdir -p $_TOP/gnu/lib/libbfd/arch/$MACHINE_ARCH + + { + getvars bfd/Makefile \ + libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ + INCLUDES TDEFAULTS + } | write_mk gnu/lib/libbfd/arch/$MACHINE_ARCH/defs.mk + + write_c gnu/lib/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h + + { + cat $_TMPDIR/bfd/config.h + } | write_c gnu/lib/libbfd/arch/$MACHINE_ARCH/config.h +} + +##### gnu/lib/libopcodes ##### + +get_libopcodes () { + mkdir -p $_TOP/gnu/lib/libopcodes/arch/$MACHINE_ARCH + + { + getvars opcodes/Makefile \ + archdefs BFD_MACHINES libopcodes_la_SOURCES + } | write_mk gnu/lib/libopcodes/arch/$MACHINE_ARCH/defs.mk + + { + cat $_TMPDIR/opcodes/config.h + } | write_c gnu/lib/libopcodes/arch/$MACHINE_ARCH/config.h +} + +##### gnu/lib/libiberty ##### + +get_libiberty () { + mkdir -p $_TOP/gnu/lib/libiberty + + getvars libiberty/Makefile \ + ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ + | write_mk gnu/lib/libiberty/defs.mk + + write_c gnu/lib/libiberty/config.h \ + <$_TMPDIR/libiberty/config.h +} + +##### gnu/usr.bin/binutils ##### + +get_binutils () { + ### common + + mkdir -p $_TOP/gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH + + { + getvars binutils/Makefile \ + VERSION DEFS INCLUDES PROGRAMS + getvars binutils/doc/Makefile \ + man_MANS TEXINFOS + + for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do + getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES + done + } | write_mk gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/defs.mk + + write_c gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/config.h \ + <$_TMPDIR/binutils/config.h + + ### gas + + mkdir -p $_TOP/gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH + + getvars gas/Makefile \ + DEFS INCLUDES OBJS \ + | write_mk gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/defs.mk + + for f in config itbl-cpu obj-format targ-cpu targ-env; do + write_c gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h + done + + ### gprof + + mkdir -p $_TOP/gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH + + getvars gprof/Makefile \ + DEFS gprof_OBJECTS INCLUDES TEXINFOS \ + | write_mk gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/defs.mk + + write_c gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h + + ### ld + + mkdir -p $_TOP/gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH + + { + getvars ld/Makefile \ + DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS + getvars ld/Makefile \ + target_alias | sed 's,[\._0-9A-Z]*$,,' + } | write_mk gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/defs.mk + + for f in config ldemul-list; do + write_c gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h + done +} + +##### main ##### + +case $1 in +all) # everything (uses "canadian cross" temp environment) + get_binutils + get_libbfd + get_libopcodes + get_libiberty + exit 0 + ;; + +binutils) + get_binutils + get_libbfd + get_libopcodes + exit 0 + ;; + +*) echo invalid arguments; exit 1;; +esac |
