#!/bin/sh # $NetBSD: mknative-binutils,v 1.16 2024/06/30 16:11:11 christos Exp $ # # Shell script for generating all the constants needed for a native # platform build of src/external/gpl3/binutils # # initialise _TMPDIR=$2 _TOP=$3 _PLATFORM=$4 _VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` . $_TOP/tools/gcc/mknative.common BFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/') ##### external/gpl3/binutils/lib/libbfd ##### get_libbfd () { local d=external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars bfd/Makefile \ libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ INCLUDES TDEFAULTS HAVEVECS | write_mk $d/defs.mk for i in bfd.h bfdver.h config.h; do write_c $d/$i < $_TMPDIR/bfd/$i done } ##### external/gpl3/binutils/lib/libopcodes ##### get_libopcodes () { local d=external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars opcodes/Makefile \ archdefs BFD_MACHINES libopcodes_la_SOURCES | write_mk $d/defs.mk write_c $d/config.h < $_TMPDIR/opcodes/config.h } get_libgnuctf () { local d=external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars libctf/Makefile libctf_la_SOURCES | write_mk $d/defs.mk write_c $d/config.h < $_TMPDIR/libctf/config.h } ##### external/gpl3/binutils/lib/libiberty ##### get_libiberty () { local d=external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars libiberty/Makefile \ ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES | write_mk $d/defs.mk write_c $d/config.h < $_TMPDIR/libiberty/config.h } ##### external/gpl3/binutils/lib/libiberty ##### get_libsframe () { local d=external/gpl3/binutils/lib/libsframe/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars libsframe/Makefile libsframe_la_SOURCES | write_mk $d/defs.mk write_c $d/config.h < $_TMPDIR/libsframe/config.h } ##### external/gpl3/binutils/usr.bin ##### get_binutils () { ### common local d=external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d { getvars binutils/Makefile \ VERSION DEFS INCLUDES PROGRAMS getvars binutils/Makefile \ man_MANS TEXINFOS getvars bfd/Makefile \ PKGVERSION | sed 's,\\\(.\),\1,' getvars bfd/Makefile \ REPORT_BUGS_TEXI for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES done } | write_mk $d/defs.mk write_c $d/config.h < $_TMPDIR/binutils/config.h ### gas d=external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps" getvars gas/Makefile.nodeps \ DEFS INCLUDES as_new_OBJECTS as_new_LDADD | sed -e s/G_as_new_OBJECTS/G_OBJS/ \ -e s/G_as_new_LDADD=/G_OBJS+=/ \ -e s@config/@@g \ -e 's/\.\..*a//' | write_mk $d/defs.mk for f in config.h itbl-cpu.h obj-format.h targ-cpu.h targ-env.h; do write_c $d/$f < $_TMPDIR/gas/$f done ### gprof d=external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d getvars gprof/Makefile \ DEFS gprof_OBJECTS INCLUDES TEXINFOS \ | write_mk $d/defs.mk write_c $d/gconfig.h <$_TMPDIR/gprof/gconfig.h ### ld d=external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH mkdir -p $_TOP/$d { getvars ld/Makefile \ DEFS EMUL EMULATION_OFILES INCLUDES OFILES TEXINFOS getvars ld/Makefile \ target_alias | sed 's,[\._0-9A-Z]*$,,' getvars ld/Makefile \ enable_initfini_array } | write_mk $d/defs.mk for f in config.h ldemul-list.h; do write_c $d/$f <$_TMPDIR/ld/$f done } ##### main ##### case $1 in all|binutils) # everything (uses "canadian cross" temp environment) get_binutils get_libbfd get_libgnuctf get_libopcodes get_libiberty get_libsframe exit 0 ;; *) echo invalid arguments; exit 1;; esac