xref: /netbsd-src/tools/gdb/mknative-gdb (revision 274254cdae52594c1aa480a736aef78313d15c9c)
1#!/bin/sh
2#	$NetBSD: mknative-gdb,v 1.2 2007/02/19 18:26:22 chs Exp $
3#
4# Shell script for generating all the constants needed for a native
5# platform build of src/gnu/dist/gdb6.
6#
7
8# initialise
9
10_TMPDIR=$2
11_TOP=$3
12_PLATFORM=$4
13_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ 	]*,,'`
14
15. $_TOP/tools/gcc/mknative.common
16
17##### gnu/usr.bin/gdb6/bfd #####
18
19get_gdb_libbfd () {
20	mkdir -p $_TOP/gnu/usr.bin/gdb6/bfd/arch/$MACHINE_ARCH
21
22	{
23		getvars bfd/Makefile \
24			libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
25			INCLUDES TDEFAULTS
26	} | write_mk gnu/usr.bin/gdb6/bfd/arch/$MACHINE_ARCH/defs.mk
27
28	write_c gnu/usr.bin/gdb6/bfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
29	write_c gnu/usr.bin/gdb6/bfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
30
31	{
32		cat $_TMPDIR/bfd/config.h
33	} | write_c gnu/usr.bin/gdb6/bfd/arch/$MACHINE_ARCH/config.h
34}
35
36##### gnu/lib/opcodes #####
37
38get_gdb_libopcodes () {
39	mkdir -p $_TOP/gnu/usr.bin/gdb6/opcodes/arch/$MACHINE_ARCH
40
41	{
42		getvars opcodes/Makefile \
43			archdefs BFD_MACHINES libopcodes_la_SOURCES
44	} | write_mk gnu/usr.bin/gdb6/opcodes/arch/$MACHINE_ARCH/defs.mk
45
46	{
47		cat $_TMPDIR/opcodes/config.h
48	} | write_c gnu/usr.bin/gdb6/opcodes/arch/$MACHINE_ARCH/config.h
49}
50
51##### gnu/lib/libiberty #####
52
53get_gdb_libiberty () {
54	mkdir -p $_TOP/gnu/usr.bin/gdb6/libiberty/arch/$MACHINE_ARCH
55
56	getvars libiberty/Makefile \
57		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
58		| write_mk gnu/usr.bin/gdb6/libiberty/arch/$MACHINE_ARCH/defs.mk
59
60	write_c gnu/usr.bin/gdb6/libiberty/arch/$MACHINE_ARCH/config.h \
61		<$_TMPDIR/libiberty/config.h
62}
63
64##### gnu/usr.bin/gdb6/readline #####
65
66get_gdb_libreadline () {
67	mkdir -p $_TOP/gnu/usr.bin/gdb6/readline/arch/$MACHINE_ARCH
68
69	{
70		getvars readline/Makefile \
71			CCFLAGS OBJECTS
72	} | write_mk gnu/usr.bin/gdb6/readline/arch/$MACHINE_ARCH/defs.mk
73
74	write_c gnu/usr.bin/gdb6/readline/arch/$MACHINE_ARCH/config.h \
75		<$_TMPDIR/readline/config.h
76}
77
78##### gnu/usr.bin/gdb6 #####
79
80get_gdb () {
81	mkdir -p $_TOP/gnu/usr.bin/gdb6/arch/$MACHINE_ARCH
82
83	{
84		getvars gdb/Makefile \
85			INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS
86	} | write_mk gnu/usr.bin/gdb6/arch/$MACHINE_ARCH/defs.mk
87
88#	getvars gdb/gdbserver/Makefile \
89#		INTERNAL_CFLAGS OBS \
90#		| write_mk gnu/usr.bin/gdb/arch/$MACHINE_ARCH/gdbserver.mk
91
92	write_c gnu/usr.bin/gdb6/arch/$MACHINE_ARCH/config.h \
93		< $_TMPDIR/gdb/config.h
94
95	for f in init version; do
96		write_c gnu/usr.bin/gdb6/arch/$MACHINE_ARCH/$f.c <$_TMPDIR/gdb/$f.c
97	done
98
99	for f in nm tm xm; do
100		if [ -f $_TMPDIR/gdb/$f.h ]; then
101			ls -l $_TMPDIR/gdb/$f.h | sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' \
102				| write_c gnu/usr.bin/gdb6/arch/$MACHINE_ARCH/$f.h
103		fi
104	done
105
106	case $MACHINE_ARCH in
107	powerpc*)
108		mkdir -p $_TOP/gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH
109		write_c gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH/config.h \
110			<$_TMPDIR/sim/ppc/config.h
111		write_c gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH/cconfig.h \
112			<$_TMPDIR/sim/common/cconfig.h
113		;;
114	xxmips*)
115		mkdir -p $_TOP/gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH
116		write_c gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH/config.h \
117			<$_TMPDIR/sim/mips/config.h
118		write_c gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH/cconfig.h \
119			<$_TMPDIR/sim/common/cconfig.h
120		{
121			getvars sim/mips/Makefile \
122				LIB_OBJS CONFIG_CFLAGS \
123			    	BUILT_SRC_FROM_IGEN IGEN_OBJS
124		} | write_mk gnu/usr.bin/gdb6/sim/arch/$MACHINE_ARCH/defs.mk
125		;;
126	*)
127		;;
128	esac
129}
130
131##### main #####
132
133case $1 in
134all|gdb)	# everything (uses "canadian cross" temp environment)
135	get_gdb
136	get_gdb_libbfd
137	get_gdb_libopcodes
138	get_gdb_libiberty
139	get_gdb_libreadline
140	exit 0
141	;;
142
143*)	echo invalid arguments; exit 1;;
144esac
145