mknative-gdb revision 1.9
11.1Snathanw#!/bin/sh
21.9Schristos#	$NetBSD: mknative-gdb,v 1.9 2020/09/17 02:14:48 christos Exp $
31.1Snathanw#
41.1Snathanw# Shell script for generating all the constants needed for a native
51.3Schristos# platform build of src/external/gpl3/gdb
61.1Snathanw#
71.1Snathanw
81.1Snathanw# initialise
91.1Snathanw
101.1Snathanw_TMPDIR=$2
111.1Snathanw_TOP=$3
121.1Snathanw_PLATFORM=$4
131.7Smrg_MACHINE_SUBDIR=$5
141.1Snathanw_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ 	]*,,'`
151.3Schristos_GDB=external/gpl3/gdb
161.1Snathanw
171.1Snathanw. $_TOP/tools/gcc/mknative.common
181.1Snathanw
191.3Schristos##### gdb/lib/libbfd #####
201.1Snathanw
211.1Snathanwget_gdb_libbfd () {
221.3Schristos	local _BFD=$_GDB/lib/libbfd
231.7Smrg	mkdir -p $_TOP/$_BFD/arch/$_MACHINE_SUBDIR
241.1Snathanw
251.1Snathanw	{
261.1Snathanw		getvars bfd/Makefile \
271.1Snathanw			libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
281.1Snathanw			INCLUDES TDEFAULTS
291.7Smrg	} | write_mk $_BFD/arch/$_MACHINE_SUBDIR/defs.mk
301.1Snathanw
311.3Schristos	for i in bfd-in3.h bfd_stdint.h config.h bfd.h bfdver.h targmatch.h 
321.3Schristos	do
331.7Smrg	    write_c $_BFD/arch/$_MACHINE_SUBDIR/$i <$_TMPDIR/bfd/$i
341.3Schristos	done
351.1Snathanw}
361.1Snathanw
371.3Schristos##### gdb/lib/libopcodes #####
381.1Snathanw
391.1Snathanwget_gdb_libopcodes () {
401.3Schristos	local _OPCODES=$_GDB/lib/libopcodes
411.7Smrg	mkdir -p $_TOP/$_OPCODES/arch/$_MACHINE_SUBDIR
421.1Snathanw
431.1Snathanw	{
441.1Snathanw		getvars opcodes/Makefile \
451.1Snathanw			archdefs BFD_MACHINES libopcodes_la_SOURCES
461.7Smrg	} | write_mk $_GDB/lib/libopcodes//arch/$_MACHINE_SUBDIR/defs.mk
471.1Snathanw
481.1Snathanw	{
491.1Snathanw		cat $_TMPDIR/opcodes/config.h
501.7Smrg	} | write_c $_OPCODES/arch/$_MACHINE_SUBDIR/config.h
511.1Snathanw}
521.1Snathanw
531.3Schristos##### gdb/lib/libiberty #####
541.1Snathanw
551.1Snathanwget_gdb_libiberty () {
561.3Schristos	local _IBERTY=$_GDB/lib/libiberty
571.7Smrg	mkdir -p $_TOP/$_IBERTY/arch/$_MACHINE_SUBDIR
581.1Snathanw
591.1Snathanw	getvars libiberty/Makefile \
601.1Snathanw		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
611.7Smrg		| write_mk $_IBERTY/arch/$_MACHINE_SUBDIR/defs.mk
621.1Snathanw
631.7Smrg	write_c $_IBERTY/arch/$_MACHINE_SUBDIR/config.h \
641.1Snathanw		<$_TMPDIR/libiberty/config.h
651.1Snathanw}
661.1Snathanw
671.3Schristos##### gdb/lib/libreadline #####
681.1Snathanw
691.1Snathanwget_gdb_libreadline () {
701.3Schristos	local _READLINE=$_GDB/lib/libreadline
711.7Smrg	mkdir -p $_TOP/$_READLINE/arch/$_MACHINE_SUBDIR
721.1Snathanw
731.1Snathanw	{
741.9Schristos		getvars readline/readline/Makefile \
751.1Snathanw			CCFLAGS OBJECTS
761.7Smrg	} | write_mk $_READLINE/arch/$_MACHINE_SUBDIR/defs.mk
771.3Schristos
781.7Smrg	write_c $_READLINE/arch/$_MACHINE_SUBDIR/config.h \
791.9Schristos		<$_TMPDIR/readline/readline/config.h
801.3Schristos}
811.3Schristos
821.3Schristos##### gdb/lib/libdecnumber #####
831.3Schristos
841.3Schristosget_gdb_libdecnumber () {
851.3Schristos	local _DECNUMBER=$_GDB/lib/libdecnumber
861.7Smrg	mkdir -p $_TOP/$_DECNUMBER/arch/$_MACHINE_SUBDIR
871.3Schristos
881.3Schristos	getvars libdecnumber/Makefile \
891.3Schristos		libdecnumber_a_OBJS |
901.3Schristos	sed -e s/libdecnumber_a_// |
911.7Smrg	write_mk $_DECNUMBER/arch/$_MACHINE_SUBDIR/defs.mk
921.1Snathanw
931.7Smrg	write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/config.h \
941.9Schristos		<$_TMPDIR/readline/readline/config.h
951.3Schristos
961.7Smrg	write_c $_DECNUMBER/arch/$_MACHINE_SUBDIR/gstdint.h \
971.3Schristos		< $_TMPDIR/libdecnumber/gstdint.h
981.1Snathanw}
991.1Snathanw
1001.3Schristos##### gdb/lib/libgdb #####
1011.1Snathanw
1021.3Schristosget_gdb_libgdb () {
1031.3Schristos	local _GDBP=$_GDB/lib/libgdb
1041.9Schristos	mkdir -p $_TOP/$_GDBP/arch/$_MACHINE_SUBDIR/gnulib/import
1051.9Schristos	mkdir -p $_TOP/$_GDBP/arch/$_MACHINE_SUBDIR/gdbsupport/import
1061.1Snathanw
1071.1Snathanw	{
1081.1Snathanw		getvars gdb/Makefile \
1091.1Snathanw			INTERNAL_CFLAGS LIBGDB_OBS SIM_OBS
1101.8Schristos	} | sed -e s@arch/@@g -e s@cli/@@g -e s@common/agent@common-agent@ \
1111.8Schristos		-e s@common/@@g -e s@compile/@@g -e s@guile/@@g -e s@mi/@@g \
1121.8Schristos		-e s@nat/@@g -e s@python/@@g -e s@target/@@g \
1131.9Schristos		-e s@dwarf2/@@g -e s@unittests/@@g \
1141.8Schristos		-e s@tui/@@g | write_mk $_GDBP/arch/$_MACHINE_SUBDIR/defs.mk
1151.1Snathanw
1161.1Snathanw#	getvars gdb/gdbserver/Makefile \
1171.1Snathanw#		INTERNAL_CFLAGS OBS \
1181.7Smrg#		| write_mk $_GDB/bin/gdb/arch/$_MACHINE_SUBDIR/gdbserver.mk
1191.1Snathanw
1201.8Schristos	for i in config.h version.c init.c \
1211.9Schristos	    xml-builtin.c jit-reader.h
1221.3Schristos	do
1231.7Smrg	    write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \
1241.3Schristos		< $_TMPDIR/gdb/$i
1251.1Snathanw	done
1261.9Schristos	
1271.9Schristos	for i in gnulib/config.h gdbsupport/config.h \
1281.9Schristos	    gnulib/import/alloca.h gnulib/import/ctype.h \
1291.9Schristos	    gnulib/import/dirent.h gnulib/import/fcntl.h \
1301.9Schristos	    gnulib/import/fnmatch.h gnulib/import/glob.h \
1311.9Schristos	    gnulib/import/inttypes.h gnulib/import/limits.h \
1321.9Schristos	    gnulib/import/locale.h gnulib/import/math.h \
1331.9Schristos	    gnulib/import/signal.h gnulib/import/stdint.h \
1341.9Schristos	    gnulib/import/stdio.h gnulib/import/stdlib.h \
1351.9Schristos	    gnulib/import/string.h gnulib/import/time.h \
1361.9Schristos	    gnulib/import/unistd.h gnulib/import/wchar.h \
1371.9Schristos	    gnulib/import/wctype.h
1381.9Schristos	do
1391.9Schristos	    write_c $_GDBP/arch/$_MACHINE_SUBDIR/$i \
1401.9Schristos		< $_TMPDIR/$i
1411.9Schristos	done
1421.1Snathanw
1431.1Snathanw	for f in nm tm xm; do
1441.9Schristos		if [ ! -f $_TMPDIR/gdb/$f.h ]; then 
1451.9Schristos			continue
1461.1Snathanw		fi
1471.9Schristos		ls -l $_TMPDIR/gdb/$f.h | \
1481.9Schristos			sed 's,^.*->.*/gdb/,,;s,^,#include <,;s,$,>,' | \
1491.9Schristos			write_c $_GDBP/arch/$_MACHINE_SUBDIR/$f.h
1501.1Snathanw	done
1511.1Snathanw
1521.3Schristos	local _LIBSIM=$_GDB/lib/libsim
1531.7Smrg	case $_MACHINE_SUBDIR in
1541.1Snathanw	powerpc*)
1551.7Smrg		mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
1561.7Smrg		write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
1571.1Snathanw			<$_TMPDIR/sim/ppc/config.h
1581.7Smrg		write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/build-config.h \
1591.4Schristos			<$_TMPDIR/sim/ppc/build-config.h
1601.7Smrg		#write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
1611.7Smrg		#	<$_TMPDIR/sim/common/cconfig.h
1621.1Snathanw		;;
1631.5Schristos	xxmips*)	# Disabled for now
1641.7Smrg		mkdir -p $_TOP/$_LIBSIM/arch/$_MACHINE_SUBDIR
1651.7Smrg		write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/config.h \
1661.1Snathanw			<$_TMPDIR/sim/mips/config.h
1671.7Smrg		#write_c $_LIBSIM/arch/$_MACHINE_SUBDIR/cconfig.h \
1681.7Smrg		#	<$_TMPDIR/sim/common/cconfig.h
1691.1Snathanw		{
1701.1Snathanw			getvars sim/mips/Makefile \
1711.1Snathanw				LIB_OBJS CONFIG_CFLAGS \
1721.1Snathanw			    	BUILT_SRC_FROM_IGEN IGEN_OBJS
1731.7Smrg		} | write_mk $_LIBSIM/arch/$_MACHINE_SUBDIR/defs.mk
1741.1Snathanw		;;
1751.1Snathanw	*)
1761.1Snathanw		;;
1771.1Snathanw	esac
1781.1Snathanw}
1791.1Snathanw
1801.1Snathanw##### main #####
1811.1Snathanw
1821.1Snathanwcase $1 in
1831.1Snathanwall|gdb)	# everything (uses "canadian cross" temp environment)
1841.3Schristos	get_gdb_libgdb
1851.1Snathanw	get_gdb_libbfd
1861.1Snathanw	get_gdb_libopcodes
1871.1Snathanw	get_gdb_libiberty
1881.1Snathanw	get_gdb_libreadline
1891.3Schristos	get_gdb_libdecnumber
1901.1Snathanw	exit 0
1911.1Snathanw	;;
1921.1Snathanw
1931.1Snathanw*)	echo invalid arguments; exit 1;;
1941.1Snathanwesac
195