#!/bin/sh # $NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp $ # # Shell script for generating all the constants needed for a native # platform build of src/external/gpl3/gdb # # initialise _TMPDIR=$2 _TOP=$3 _PLATFORM=$4 _MACHINE_SUBDIR=$5 _VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` _GDB=external/gpl3/gdb . $_TOP/tools/gcc/mknative.common ##### gdb/lib/libbfd ##### get_gdb_libbfd () { local _BFD=$_GDB/lib/libbfd mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR { getvars bfd/Makefile \ libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ INCLUDES TDEFAULTS } | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk for i in bfd-in3.h config.h bfd.h bfdver.h targmatch.h do write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i done } ##### gdb/lib/libopcodes ##### get_gdb_libopcodes () { local _OPCODES=$_GDB/lib/libopcodes mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR { getvars opcodes/Makefile \ archdefs BFD_MACHINES libopcodes_la_SOURCES } | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk { cat $_TMPDIR/opcodes/config.h } | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h } ##### gdb/lib/libiberty ##### get_gdb_libiberty () { local _IBERTY=$_GDB/lib/libiberty mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR getvars libiberty/Makefile \ ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ | write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/libiberty/config.h } ##### gdb/lib/libreadline ##### get_gdb_libreadline () { local _READLINE=$_GDB/lib/libreadline mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR { getvars readline/readline/Makefile \ CCFLAGS OBJECTS } | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/readline/readline/config.h } ##### gdb/lib/libdecnumber ##### get_gdb_libdecnumber () { local _DECNUMBER=$_GDB/lib/libdecnumber mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR getvars libdecnumber/Makefile libdecnumber_a_OBJS | sed -e s/libdecnumber_a_//g | write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/readline/readline/config.h write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \ < $_TMPDIR/libdecnumber/gstdint.h } ##### gdb/lib/libgdbsupport ##### get_gdb_libgdbsupport () { local _GDBSUPPORT=$_GDB/lib/libgdbsupport mkdir -p $_TOP/$_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport getvars gdbsupport/Makefile libgdbsupport_a_OBJECTS | sed -e s/libgdbsupport_a_//g | write_mk $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/defs.mk write_c $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport/config.h \ <$_TMPDIR/gdbsupport/config.h } ##### gdb/lib/libctf ##### get_gdb_libctf () { local _CTF=$_GDB/lib/libctf mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR getvars libctf/Makefile libctf_la_OBJECTS | sed -e s/libctf_la_//g -e 's/\.lo/.o/g' -e s/libctf_la-//g | write_mk $_CTF/arch/$_MACHINE_SUBDIR/defs.mk write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/libctf/config.h } ##### gdb/lib/libbacktrace ##### get_gdb_libbacktrace () { local _BACKTRACE=$_GDB/lib/libbacktrace mkdir -p $_TOP/$_BACKTRACE/arch/$_MACHINE_SUBDIR getvars libbacktrace/Makefile libbacktrace_la_OBJECTS \ libbacktrace_la_LIBADD | sed -e s/libbacktrace_la_//g -e 's/\.lo/.o/g' -e s/libbacktrace_la-//g | write_mk $_BACKTRACE/arch/$_MACHINE_SUBDIR/defs.mk write_c $_BACKTRACE/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/libbacktrace/config.h write_c $_BACKTRACE/arch/$_MACHINE_SUBDIR/backtrace-supported.h \ <$_TMPDIR/libbacktrace/backtrace-supported.h } ##### gdb/lib/libsframe ##### get_gdb_libsframe () { local _SFRAME=$_GDB/lib/libsframe mkdir -p $_TOP/$_SFRAME/arch/$_MACHINE_SUBDIR getvars libsframe/Makefile libsframe_la_OBJECTS | sed -e s/libsframe_la_//g -e 's/\.lo/.o/g' -e s/libsframe_la-//g | write_mk $_SFRAME/arch/$_MACHINE_SUBDIR/defs.mk } ##### gdb/lib/libgnulib ##### get_gdb_libgnulib () { local _GNULIB=$_GDB/lib/libgnulib mkdir -p $_TOP/$_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/import/malloc (getvars gnulib/Makefile gl_LIBOBJS | sed -e s/gl_LIB//g && getvars gnulib/import/Makefile libgnu_a_OBJECTS | sed -e s/libgnu_a-//g -e s@glthread/@@g -e s@malloc/@@g) | write_mk $_GNULIB/arch/$_MACHINE_SUBDIR/defs.mk for i in config.h \ import/alloca.h import/ctype.h \ import/dirent.h import/fcntl.h \ import/fnmatch.h import/glob.h \ import/glob-libc.gl.h \ import/inttypes.h import/limits.h \ import/locale.h import/math.h \ import/malloc/scratch_buffer.gl.h \ import/signal.h import/stdint.h \ import/stdio.h import/stdlib.h \ import/string.h import/time.h \ import/unistd.h import/wchar.h \ import/wctype.h do write_c $_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/$i \ < $_TMPDIR/gnulib/$i done } ##### gdb/lib/libgdb ##### get_gdb_libgdb () { local _GDBP=$_GDB/lib/libgdb { getvars gdb/Makefile \ INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS } | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \ -e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \ -e s@nat/@@g -e s@python/@@g -e s@target/@@g \ -e s@dwarf2/@@g -e s@unittests/@@g \ -e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk # getvars gdb/gdbserver/Makefile \ # INTERNAL_CFLAGS OBS \ # | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk for i in config.h version.c init.c \ xml-builtin.c jit-reader.h do write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \ < $_TMPDIR/gdb/$i done for f in nm tm xm; do if [ ! -f $_TMPDIR/gdb/$f.h ]; then continue fi ls -l $_TMPDIR/gdb/$f.h | \ sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \ write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h done local _LIBSIM=$_GDB/lib/libsim case $_MACHINE_SUBDIR in powerpc*) mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/sim/ppc/config.h write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \ <$_TMPDIR/sim/ppc/build-config.h #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ # <$_TMPDIR/sim/common/cconfig.h ;; xxmips*) # Disabled for now mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/sim/mips/config.h #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ # <$_TMPDIR/sim/common/cconfig.h { getvars sim/mips/Makefile \ LIB_OBJS CONFIG_CFLAGS \ BUILT_SRC_FROM_IGEN IGEN_OBJS } | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk ;; *) ;; esac } # gdb/bin/gdbserver` get_gdb_bingdbserver () { local _CTF=$_GDB/bin/gdbserver if [ ! -f $_CTF/arch/$_MACHINE_SUBDIR/config.h ]; then return fi mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ <$_TMPDIR/gdbserver/config.h write_c $_CTF/arch/$_MACHINE_SUBDIR/version.cc \ <$_TMPDIR/gdbserver/version-generated.cc } ##### main ##### case $1 in all|gdb) # everything (uses "canadian cross" temp environment) get_gdb_libgdb get_gdb_libgdbsupport get_gdb_libctf get_gdb_libbacktrace get_gdb_libsframe get_gdb_libgnulib get_gdb_libbfd get_gdb_libopcodes get_gdb_libiberty get_gdb_libreadline get_gdb_libdecnumber get_gdb_bingdbserver exit 0 ;; *) echo invalid arguments; exit 1;; esac