xref: /netbsd-src/tools/gdb/mknative-gdb (revision 6a493d6bc668897c91594964a732d38505b70cbb)
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