mknative-gdb revision 1.9
1#!/bin/sh 2# $NetBSD: mknative-gdb,v 1.9 2020/09/17 02:14:48 christos Exp $ 3# 4# Shell script for generating all the constants needed for a native 5# platform build of src/external/gpl3/gdb 6# 7 8# initialise 9 10_TMPDIR=$2 11_TOP=$3 12_PLATFORM=$4 13_MACHINE_SUBDIR=$5 14_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 15_GDB=external/gpl3/gdb 16 17. $_TOP/tools/gcc/mknative.common 18 19##### gdb/lib/libbfd ##### 20 21get_gdb_libbfd () { 22 local _BFD=$_GDB/lib/libbfd 23 mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR 24 25 { 26 getvars bfd/Makefile \ 27 libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 28 INCLUDES TDEFAULTS 29 } | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk 30 31 for i in bfd-in3.h bfd_stdint.h config.h bfd.h bfdver.h targmatch.h 32 do 33 write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i 34 done 35} 36 37##### gdb/lib/libopcodes ##### 38 39get_gdb_libopcodes () { 40 local _OPCODES=$_GDB/lib/libopcodes 41 mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR 42 43 { 44 getvars opcodes/Makefile \ 45 archdefs BFD_MACHINES libopcodes_la_SOURCES 46 } | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk 47 48 { 49 cat $_TMPDIR/opcodes/config.h 50 } | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h 51} 52 53##### gdb/lib/libiberty ##### 54 55get_gdb_libiberty () { 56 local _IBERTY=$_GDB/lib/libiberty 57 mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR 58 59 getvars libiberty/Makefile \ 60 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 61 | write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk 62 63 write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \ 64 <$_TMPDIR/libiberty/config.h 65} 66 67##### gdb/lib/libreadline ##### 68 69get_gdb_libreadline () { 70 local _READLINE=$_GDB/lib/libreadline 71 mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR 72 73 { 74 getvars readline/readline/Makefile \ 75 CCFLAGS OBJECTS 76 } | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk 77 78 write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \ 79 <$_TMPDIR/readline/readline/config.h 80} 81 82##### gdb/lib/libdecnumber ##### 83 84get_gdb_libdecnumber () { 85 local _DECNUMBER=$_GDB/lib/libdecnumber 86 mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR 87 88 getvars libdecnumber/Makefile \ 89 libdecnumber_a_OBJS | 90 sed -e s/libdecnumber_a_// | 91 write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk 92 93 write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \ 94 <$_TMPDIR/readline/readline/config.h 95 96 write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \ 97 < $_TMPDIR/libdecnumber/gstdint.h 98} 99 100##### gdb/lib/libgdb ##### 101 102get_gdb_libgdb () { 103 local _GDBP=$_GDB/lib/libgdb 104 mkdir -p $_TOP/$_GDBP/arch/$_MACHINE_SUBDIR/gnulib/import 105 mkdir -p $_TOP/$_GDBP/arch/$_MACHINE_SUBDIR/gdbsupport/import 106 107 { 108 getvars gdb/Makefile \ 109 INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS 110 } | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \ 111 -e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \ 112 -e s@nat/@@g -e s@python/@@g -e s@target/@@g \ 113 -e s@dwarf2/@@g -e s@unittests/@@g \ 114 -e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk 115 116# getvars gdb/gdbserver/Makefile \ 117# INTERNAL_CFLAGS OBS \ 118# | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk 119 120 for i in config.h version.c init.c \ 121 xml-builtin.c jit-reader.h 122 do 123 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \ 124 < $_TMPDIR/gdb/$i 125 done 126 127 for i in gnulib/config.h gdbsupport/config.h \ 128 gnulib/import/alloca.h gnulib/import/ctype.h \ 129 gnulib/import/dirent.h gnulib/import/fcntl.h \ 130 gnulib/import/fnmatch.h gnulib/import/glob.h \ 131 gnulib/import/inttypes.h gnulib/import/limits.h \ 132 gnulib/import/locale.h gnulib/import/math.h \ 133 gnulib/import/signal.h gnulib/import/stdint.h \ 134 gnulib/import/stdio.h gnulib/import/stdlib.h \ 135 gnulib/import/string.h gnulib/import/time.h \ 136 gnulib/import/unistd.h gnulib/import/wchar.h \ 137 gnulib/import/wctype.h 138 do 139 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \ 140 < $_TMPDIR/$i 141 done 142 143 for f in nm tm xm; do 144 if [ ! -f $_TMPDIR/gdb/$f.h ]; then 145 continue 146 fi 147 ls -l $_TMPDIR/gdb/$f.h | \ 148 sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \ 149 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h 150 done 151 152 local _LIBSIM=$_GDB/lib/libsim 153 case $_MACHINE_SUBDIR in 154 powerpc*) 155 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 156 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 157 <$_TMPDIR/sim/ppc/config.h 158 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \ 159 <$_TMPDIR/sim/ppc/build-config.h 160 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 161 # <$_TMPDIR/sim/common/cconfig.h 162 ;; 163 xxmips*) # Disabled for now 164 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR 165 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \ 166 <$_TMPDIR/sim/mips/config.h 167 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \ 168 # <$_TMPDIR/sim/common/cconfig.h 169 { 170 getvars sim/mips/Makefile \ 171 LIB_OBJS CONFIG_CFLAGS \ 172 BUILT_SRC_FROM_IGEN IGEN_OBJS 173 } | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk 174 ;; 175 *) 176 ;; 177 esac 178} 179 180##### main ##### 181 182case $1 in 183all|gdb) # everything (uses "canadian cross" temp environment) 184 get_gdb_libgdb 185 get_gdb_libbfd 186 get_gdb_libopcodes 187 get_gdb_libiberty 188 get_gdb_libreadline 189 get_gdb_libdecnumber 190 exit 0 191 ;; 192 193*) echo invalid arguments; exit 1;; 194esac 195