mknative-gdb revision 1.13
11.1Snathanw#!/bin/sh 21.13Schristos# $NetBSD: mknative-gdb,v 1.13 2020/09/23 23:21:29 christos Exp $ 31.1Snathanw# 41.1Snathanw# Shell script for generating all the constants needed for a native 51.3Schristos# platform build of src/external/gpl3/gdb 61.1Snathanw# 71.1Snathanw 81.1Snathanw# initialise 91.1Snathanw 101.1Snathanw_TMPDIR=$2 111.1Snathanw_TOP=$3 121.1Snathanw_PLATFORM=$4 131.7Smrg_MACHINE_SUBDIR=$5 141.1Snathanw_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 151.3Schristos_GDB=external/gpl3/gdb 161.1Snathanw 171.1Snathanw. $_TOP/tools/gcc/mknative.common 181.1Snathanw 191.3Schristos##### gdb/lib/libbfd ##### 201.1Snathanw 211.1Snathanwget_gdb_libbfd () { 221.3Schristos local _BFD=$_GDB/lib/libbfd 231.7Smrg mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR 241.1Snathanw 251.1Snathanw { 261.1Snathanw getvars bfd/Makefile \ 271.1Snathanw libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 281.1Snathanw INCLUDES TDEFAULTS 291.7Smrg } | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk 301.1Snathanw 311.3Schristos for i in bfd-in3.h bfd_stdint.h config.h bfd.h bfdver.h targmatch.h 321.3Schristos do 331.7Smrg write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i 341.3Schristos done 351.1Snathanw} 361.1Snathanw 371.3Schristos##### gdb/lib/libopcodes ##### 381.1Snathanw 391.1Snathanwget_gdb_libopcodes () { 401.3Schristos local _OPCODES=$_GDB/lib/libopcodes 411.7Smrg mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR 421.1Snathanw 431.1Snathanw { 441.1Snathanw getvars opcodes/Makefile \ 451.1Snathanw archdefs BFD_MACHINES libopcodes_la_SOURCES 461.7Smrg } | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk 471.1Snathanw 481.1Snathanw { 491.1Snathanw cat $_TMPDIR/opcodes/config.h 501.7Smrg } | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h 511.1Snathanw} 521.1Snathanw 531.3Schristos##### gdb/lib/libiberty ##### 541.1Snathanw 551.1Snathanwget_gdb_libiberty () { 561.3Schristos local _IBERTY=$_GDB/lib/libiberty 571.7Smrg mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR 581.1Snathanw 591.1Snathanw getvars libiberty/Makefile \ 601.1Snathanw ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 611.7Smrg | write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk 621.1Snathanw 631.7Smrg write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \ 641.1Snathanw <$_TMPDIR/libiberty/config.h 651.1Snathanw} 661.1Snathanw 671.3Schristos##### gdb/lib/libreadline ##### 681.1Snathanw 691.1Snathanwget_gdb_libreadline () { 701.3Schristos local _READLINE=$_GDB/lib/libreadline 711.7Smrg mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR 721.1Snathanw 731.1Snathanw { 741.9Schristos getvars readline/readline/Makefile \ 751.1Snathanw CCFLAGS OBJECTS 761.7Smrg } | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk 771.3Schristos 781.7Smrg write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \ 791.9Schristos <$_TMPDIR/readline/readline/config.h 801.3Schristos} 811.3Schristos 821.3Schristos##### gdb/lib/libdecnumber ##### 831.3Schristos 841.3Schristosget_gdb_libdecnumber () { 851.3Schristos local _DECNUMBER=$_GDB/lib/libdecnumber 861.7Smrg mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR 871.3Schristos 881.10Schristos getvars libdecnumber/Makefile libdecnumber_a_OBJS | 891.3Schristos sed -e s/libdecnumber_a_// | 901.7Smrg write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk 911.1Snathanw 921.7Smrg write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \ 931.9Schristos <$_TMPDIR/readline/readline/config.h 941.3Schristos 951.7Smrg write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \ 961.3Schristos < $_TMPDIR/libdecnumber/gstdint.h 971.1Snathanw} 981.1Snathanw 991.10Schristos##### gdb/lib/libgdbsupport ##### 1001.10Schristos 1011.10Schristosget_gdb_libgdbsupport () { 1021.10Schristos local _GDBSUPPORT=$_GDB/lib/libgdbsupport 1031.10Schristos mkdir -p $_TOP/$_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport 1041.10Schristos 1051.10Schristos getvars gdbsupport/Makefile libgdbsupport_a_OBJECTS | 1061.10Schristos sed -e s/libgdbsupport_a_// | 1071.10Schristos write_mk $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/defs.mk 1081.10Schristos 1091.10Schristos write_c $_GDBSUPPORT/arch/$_MACHINE_SUBDIR/gdbsupport/config.h \ 1101.10Schristos <$_TMPDIR/gdbsupport/config.h 1111.10Schristos} 1121.10Schristos 1131.10Schristosget_gdb_libctf () { 1141.10Schristos local _CTF=$_GDB/lib/libctf 1151.10Schristos mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR 1161.10Schristos 1171.10Schristos getvars libctf/Makefile libctf_la_OBJECTS | 1181.10Schristos sed -e s/libctf_la_// -e 's/\.lo/.o/g' -e s/libctf_la-//g | 1191.10Schristos write_mk $_CTF/arch/$_MACHINE_SUBDIR/defs.mk 1201.10Schristos 1211.10Schristos write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ 1221.10Schristos <$_TMPDIR/libctf/config.h 1231.10Schristos} 1241.10Schristos 1251.10Schristos##### gdb/lib/libgnulib ##### 1261.10Schristos 1271.10Schristosget_gdb_libgnulib () { 1281.10Schristos local _GNULIB=$_GDB/lib/libgnulib 1291.12Schristos mkdir -p $_TOP/$_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/import 1301.10Schristos 1311.10Schristos (getvars gnulib/Makefile gl_LIBOBJS | 1321.10Schristos sed -e s/gl_LIB// && 1331.10Schristos getvars gnulib/import/Makefile libgnu_a_OBJECTS | 1341.10Schristos sed -e s/libgnu_a_// -e s@glthread/@@g -e s@malloc/@@g) | 1351.10Schristos write_mk $_GNULIB/arch/$_MACHINE_SUBDIR/defs.mk 1361.10Schristos 1371.10Schristos for i in config.h \ 1381.10Schristos import/alloca.h import/ctype.h \ 1391.10Schristos import/dirent.h import/fcntl.h \ 1401.10Schristos import/fnmatch.h import/glob.h \ 1411.10Schristos import/inttypes.h import/limits.h \ 1421.10Schristos import/locale.h import/math.h \ 1431.10Schristos import/signal.h import/stdint.h \ 1441.10Schristos import/stdio.h import/stdlib.h \ 1451.10Schristos import/string.h import/time.h \ 1461.10Schristos import/unistd.h import/wchar.h \ 1471.10Schristos import/wctype.h 1481.10Schristos do 1491.12Schristos write_c $_GNULIB/arch/$_MACHINE_SUBDIR/gnulib/$i \ 1501.10Schristos < $_TMPDIR/gnulib/$i 1511.10Schristos done 1521.10Schristos} 1531.1Snathanw 1541.13Schristos##### gdb/lib/libgdb ##### 1551.13Schristos 1561.3Schristosget_gdb_libgdb () { 1571.3Schristos local _GDBP=$_GDB/lib/libgdb 1581.1Snathanw 1591.1Snathanw { 1601.1Snathanw getvars gdb/Makefile \ 1611.1Snathanw INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS 1621.8Schristos } | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \ 1631.8Schristos -e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \ 1641.8Schristos -e s@nat/@@g -e s@python/@@g -e s@target/@@g \ 1651.9Schristos -e s@dwarf2/@@g -e s@unittests/@@g \ 1661.8Schristos -e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk 1671.1Snathanw 1681.1Snathanw# getvars gdb/gdbserver/Makefile \ 1691.1Snathanw# INTERNAL_CFLAGS OBS \ 1701.7Smrg# | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk 1711.1Snathanw 1721.8Schristos for i in config.h version.c init.c \ 1731.9Schristos xml-builtin.c jit-reader.h 1741.3Schristos do 1751.7Smrg write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \ 1761.3Schristos < $_TMPDIR/gdb/$i 1771.1Snathanw done 1781.9Schristos 1791.1Snathanw 1801.1Snathanw for f in nm tm xm; do 1811.9Schristos if [ ! -f $_TMPDIR/gdb/$f.h ]; then 1821.9Schristos continue 1831.1Snathanw fi 1841.9Schristos ls -l $_TMPDIR/gdb/$f.h | \ 1851.9Schristos sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \ 1861.9Schristos write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h 1871.1Snathanw done 1881.1Snathanw 1891.3Schristos local _LIBSIM=$_GDB/lib/libsim 1901.7Smrg case $_MACHINE_SUBDIR in 1911.1Snathanw powerpc*) 1921.7Smrg mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 1931.7Smrg write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 1941.1Snathanw <$_TMPDIR/sim/ppc/config.h 1951.7Smrg write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \ 1961.4Schristos <$_TMPDIR/sim/ppc/build-config.h 1971.7Smrg #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 1981.7Smrg # <$_TMPDIR/sim/common/cconfig.h 1991.1Snathanw ;; 2001.5Schristos xxmips*) # Disabled for now 2011.7Smrg mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 2021.7Smrg write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 2031.1Snathanw <$_TMPDIR/sim/mips/config.h 2041.7Smrg #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 2051.7Smrg # <$_TMPDIR/sim/common/cconfig.h 2061.1Snathanw { 2071.1Snathanw getvars sim/mips/Makefile \ 2081.1Snathanw LIB_OBJS CONFIG_CFLAGS \ 2091.1Snathanw BUILT_SRC_FROM_IGEN IGEN_OBJS 2101.7Smrg } | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk 2111.1Snathanw ;; 2121.1Snathanw *) 2131.1Snathanw ;; 2141.1Snathanw esac 2151.1Snathanw} 2161.1Snathanw 2171.13Schristos# gdb/bin/gdbserver` 2181.13Schristos 2191.13Schristosget_gdb_bingdbserver () { 2201.13Schristos local _CTF=$_GDB/bin/gdbserver 2211.13Schristos mkdir -p $_TOP/$_CTF/arch/$_MACHINE_SUBDIR 2221.13Schristos 2231.13Schristos write_c $_CTF/arch/$_MACHINE_SUBDIR/config.h \ 2241.13Schristos <$_TMPDIR/gdbserver/config.h 2251.13Schristos} 2261.13Schristos 2271.1Snathanw##### main ##### 2281.1Snathanw 2291.1Snathanwcase $1 in 2301.1Snathanwall|gdb) # everything (uses "canadian cross" temp environment) 2311.3Schristos get_gdb_libgdb 2321.10Schristos get_gdb_libgdbsupport 2331.10Schristos get_gdb_libctf 2341.10Schristos get_gdb_libgnulib 2351.1Snathanw get_gdb_libbfd 2361.1Snathanw get_gdb_libopcodes 2371.1Snathanw get_gdb_libiberty 2381.1Snathanw get_gdb_libreadline 2391.3Schristos get_gdb_libdecnumber 2401.13Schristos get_gdb_bingdbserver 2411.1Snathanw exit 0 2421.1Snathanw ;; 2431.1Snathanw 2441.1Snathanw*) echo invalid arguments; exit 1;; 2451.1Snathanwesac 246