mknative-gdb revision 1.7 1 #!/bin/sh
2 # $NetBSD: mknative-gdb,v 1.7 2016/10/16 04:37:42 mrg 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
21 get_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
39 get_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
55 get_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
69 get_gdb_libreadline () {
70 local _READLINE=$_GDB/lib/libreadline
71 mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR
72
73 {
74 getvars 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/config.h
80 }
81
82 ##### gdb/lib/libdecnumber #####
83
84 get_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/config.h
95
96 write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \
97 < $_TMPDIR/libdecnumber/gstdint.h
98 }
99
100 ##### gdb/lib/libgdb #####
101
102 get_gdb_libgdb () {
103 local _GDBP=$_GDB/lib/libgdb
104 mkdir -p $_TOP/$_GDBP/arch/$_MACHINE_SUBDIR/build-gnulib
105
106 {
107 getvars gdb/Makefile \
108 INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS
109 } | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk
110
111 # getvars gdb/gdbserver/Makefile \
112 # INTERNAL_CFLAGS OBS \
113 # | write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk
114
115 for i in config.h observer.h observer.inc version.c init.c \
116 xml-builtin.c build-gnulib/config.h jit-reader.h
117 do
118 write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \
119 < $_TMPDIR/gdb/$i
120 done
121
122 for f in nm tm xm; do
123 if [ -f $_TMPDIR/gdb/$f.h ]; then
124 ls -l $_TMPDIR/gdb/$f.h | sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' \
125 | write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h
126 fi
127 done
128
129 local _LIBSIM=$_GDB/lib/libsim
130 case $_MACHINE_SUBDIR in
131 powerpc*)
132 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
133 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
134 <$_TMPDIR/sim/ppc/config.h
135 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \
136 <$_TMPDIR/sim/ppc/build-config.h
137 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
138 # <$_TMPDIR/sim/common/cconfig.h
139 ;;
140 xxmips*) # Disabled for now
141 mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
142 write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
143 <$_TMPDIR/sim/mips/config.h
144 #write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
145 # <$_TMPDIR/sim/common/cconfig.h
146 {
147 getvars sim/mips/Makefile \
148 LIB_OBJS CONFIG_CFLAGS \
149 BUILT_SRC_FROM_IGEN IGEN_OBJS
150 } | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk
151 ;;
152 *)
153 ;;
154 esac
155 }
156
157 ##### main #####
158
159 case $1 in
160 all|gdb) # everything (uses "canadian cross" temp environment)
161 get_gdb_libgdb
162 get_gdb_libbfd
163 get_gdb_libopcodes
164 get_gdb_libiberty
165 get_gdb_libreadline
166 get_gdb_libdecnumber
167 exit 0
168 ;;
169
170 *) echo invalid arguments; exit 1;;
171 esac
172