mknative-gdb revision 1.4 1 #!/bin/sh
2 # $NetBSD: mknative-gdb,v 1.4 2011/10/09 02:03:30 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
20 get_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
38 get_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
54 get_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
68 get_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
83 get_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
101 get_gdb_libgdb () {
102 local _GDBP=$_GDB/lib/libgdb
103 mkdir -p $_TOP/$_GDBP/arch/$MACHINE_ARCH
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 xml-builtin.c
115 do
116 write_c $_GDBP/arch/$MACHINE_ARCH/$i \
117 < $_TMPDIR/gdb/$i
118 done
119
120 for f in nm tm xm; do
121 if [ -f $_TMPDIR/gdb/$f.h ]; then
122 ls -l $_TMPDIR/gdb/$f.h | sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' \
123 | write_c $_GDBP/arch/$MACHINE_ARCH/$f.h
124 fi
125 done
126
127 local _LIBSIM=$_GDB/lib/libsim
128 case $MACHINE_ARCH in
129 powerpc*)
130 mkdir -p $_LIBSIM/arch/$MACHINE_ARCH
131 write_c $_LIBSIM/arch/$MACHINE_ARCH/config.h \
132 <$_TMPDIR/sim/ppc/config.h
133 write_c $_LIBSIM/arch/$MACHINE_ARCH/build-config.h \
134 <$_TMPDIR/sim/ppc/build-config.h
135 write_c $_LIBSIM/arch/$MACHINE_ARCH/cconfig.h \
136 <$_TMPDIR/sim/common/cconfig.h
137 ;;
138 xxmips*)
139 mkdir -p $_LIBSIM/arch/$MACHINE_ARCH
140 write_c $_LIBSIM/arch/$MACHINE_ARCH/config.h \
141 <$_TMPDIR/sim/mips/config.h
142 write_c $_LIBSIM/arch/$MACHINE_ARCH/cconfig.h \
143 <$_TMPDIR/sim/common/cconfig.h
144 {
145 getvars sim/mips/Makefile \
146 LIB_OBJS CONFIG_CFLAGS \
147 BUILT_SRC_FROM_IGEN IGEN_OBJS
148 } | write_mk $_LIBSIM/arch/$MACHINE_ARCH/defs.mk
149 ;;
150 *)
151 ;;
152 esac
153 }
154
155 ##### main #####
156
157 case $1 in
158 all|gdb) # everything (uses "canadian cross" temp environment)
159 get_gdb_libgdb
160 get_gdb_libbfd
161 get_gdb_libopcodes
162 get_gdb_libiberty
163 get_gdb_libreadline
164 get_gdb_libdecnumber
165 exit 0
166 ;;
167
168 *) echo invalid arguments; exit 1;;
169 esac
170