1#!/bin/sh 2# $NetBSD: mknative-gdb,v 1.6 2013/10/03 18:58:37 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_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 14_GDB=external/gpl3/gdb 15 16. $_TOP/tools/gcc/mknative.common 17 18##### gdb/lib/libbfd ##### 19 20get_gdb_libbfd () { 21 local _BFD=$_GDB/lib/libbfd 22 mkdir -p $_TOP/$_BFD/arch/$MACHINE_ARCH 23 24 { 25 getvars bfd/Makefile \ 26 libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 27 INCLUDES TDEFAULTS 28 } | write_mk $_BFD/arch/$MACHINE_ARCH/defs.mk 29 30 for i in bfd-in3.h bfd_stdint.h config.h bfd.h bfdver.h targmatch.h 31 do 32 write_c $_BFD/arch/$MACHINE_ARCH/$i <$_TMPDIR/bfd/$i 33 done 34} 35 36##### gdb/lib/libopcodes ##### 37 38get_gdb_libopcodes () { 39 local _OPCODES=$_GDB/lib/libopcodes 40 mkdir -p $_TOP/$_OPCODES/arch/$MACHINE_ARCH 41 42 { 43 getvars opcodes/Makefile \ 44 archdefs BFD_MACHINES libopcodes_la_SOURCES 45 } | write_mk $_GDB/lib/libopcodes//arch/$MACHINE_ARCH/defs.mk 46 47 { 48 cat $_TMPDIR/opcodes/config.h 49 } | write_c $_OPCODES/arch/$MACHINE_ARCH/config.h 50} 51 52##### gdb/lib/libiberty ##### 53 54get_gdb_libiberty () { 55 local _IBERTY=$_GDB/lib/libiberty 56 mkdir -p $_TOP/$_IBERTY/arch/$MACHINE_ARCH 57 58 getvars libiberty/Makefile \ 59 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 60 | write_mk $_IBERTY/arch/$MACHINE_ARCH/defs.mk 61 62 write_c $_IBERTY/arch/$MACHINE_ARCH/config.h \ 63 <$_TMPDIR/libiberty/config.h 64} 65 66##### gdb/lib/libreadline ##### 67 68get_gdb_libreadline () { 69 local _READLINE=$_GDB/lib/libreadline 70 mkdir -p $_TOP/$_READLINE/arch/$MACHINE_ARCH 71 72 { 73 getvars readline/Makefile \ 74 CCFLAGS OBJECTS 75 } | write_mk $_READLINE/arch/$MACHINE_ARCH/defs.mk 76 77 write_c $_READLINE/arch/$MACHINE_ARCH/config.h \ 78 <$_TMPDIR/readline/config.h 79} 80 81##### gdb/lib/libdecnumber ##### 82 83get_gdb_libdecnumber () { 84 local _DECNUMBER=$_GDB/lib/libdecnumber 85 mkdir -p $_TOP/$_DECNUMBER/arch/$MACHINE_ARCH 86 87 getvars libdecnumber/Makefile \ 88 libdecnumber_a_OBJS | 89 sed -e s/libdecnumber_a_// | 90 write_mk $_DECNUMBER/arch/$MACHINE_ARCH/defs.mk 91 92 write_c $_DECNUMBER/arch/$MACHINE_ARCH/config.h \ 93 <$_TMPDIR/readline/config.h 94 95 write_c $_DECNUMBER/arch/$MACHINE_ARCH/gstdint.h \ 96 < $_TMPDIR/libdecnumber/gstdint.h 97} 98 99##### gdb/lib/libgdb ##### 100 101get_gdb_libgdb () { 102 local _GDBP=$_GDB/lib/libgdb 103 mkdir -p $_TOP/$_GDBP/arch/$MACHINE_ARCH/build-gnulib 104 105 { 106 getvars gdb/Makefile \ 107 INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS 108 } | write_mk $_GDBP/arch/$MACHINE_ARCH/defs.mk 109 110# getvars gdb/gdbserver/Makefile \ 111# INTERNAL_CFLAGS OBS \ 112# | write_mk $_GDB/bin/gdb/arch/$MACHINE_ARCH/gdbserver.mk 113 114 for i in config.h observer.h observer.inc version.c init.c \ 115 xml-builtin.c build-gnulib/config.h jit-reader.h 116 do 117 write_c $_GDBP/arch/$MACHINE_ARCH/$i \ 118 < $_TMPDIR/gdb/$i 119 done 120 121 for f in nm tm xm; do 122 if [ -f $_TMPDIR/gdb/$f.h ]; then 123 ls -l $_TMPDIR/gdb/$f.h | sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' \ 124 | write_c $_GDBP/arch/$MACHINE_ARCH/$f.h 125 fi 126 done 127 128 local _LIBSIM=$_GDB/lib/libsim 129 case $MACHINE_ARCH in 130 powerpc*) 131 mkdir -p $_TOP/$_LIBSIM/arch/$MACHINE_ARCH 132 write_c $_LIBSIM/arch/$MACHINE_ARCH/config.h \ 133 <$_TMPDIR/sim/ppc/config.h 134 write_c $_LIBSIM/arch/$MACHINE_ARCH/build-config.h \ 135 <$_TMPDIR/sim/ppc/build-config.h 136 write_c $_LIBSIM/arch/$MACHINE_ARCH/cconfig.h \ 137 <$_TMPDIR/sim/common/cconfig.h 138 ;; 139 xxmips*) # Disabled for now 140 mkdir -p $_TOP/$_LIBSIM/arch/$MACHINE_ARCH 141 write_c $_LIBSIM/arch/$MACHINE_ARCH/config.h \ 142 <$_TMPDIR/sim/mips/config.h 143 write_c $_LIBSIM/arch/$MACHINE_ARCH/cconfig.h \ 144 <$_TMPDIR/sim/common/cconfig.h 145 { 146 getvars sim/mips/Makefile \ 147 LIB_OBJS CONFIG_CFLAGS \ 148 BUILT_SRC_FROM_IGEN IGEN_OBJS 149 } | write_mk $_LIBSIM/arch/$MACHINE_ARCH/defs.mk 150 ;; 151 *) 152 ;; 153 esac 154} 155 156##### main ##### 157 158case $1 in 159all|gdb) # everything (uses "canadian cross" temp environment) 160 get_gdb_libgdb 161 get_gdb_libbfd 162 get_gdb_libopcodes 163 get_gdb_libiberty 164 get_gdb_libreadline 165 get_gdb_libdecnumber 166 exit 0 167 ;; 168 169*) echo invalid arguments; exit 1;; 170esac 171