xref: /netbsd-src/tools/gdb/mknative-gdb (revision a5847cc334d9a7029f6352b847e9e8d71a0f9e0c)
1#!/bin/sh
2#	$NetBSD: mknative-gdb,v 1.5 2011/11/06 19:46:12 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
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 $_TOP/$_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*)	# Disabled for now
139		mkdir -p $_TOP/$_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
157case $1 in
158all|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;;
169esac
170