xref: /netbsd-src/tools/binutils/mknative-binutils.old (revision 3af1bc3ccc1de44ac257e05d4367139bb01c74c2)
166738971Srin#!/bin/sh
2*3af1bc3cSchristos#	$NetBSD: mknative-binutils.old,v 1.3 2024/07/01 01:56:52 christos Exp $
366738971Srin#
466738971Srin# Shell script for generating all the constants needed for a native
5*3af1bc3cSchristos# platform build of src/external/gpl3/binutils.old
666738971Srin#
766738971Srin
866738971Srin# initialise
966738971Srin
1066738971Srin_TMPDIR=$2
1166738971Srin_TOP=$3
1266738971Srin_PLATFORM=$4
1366738971Srin_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ 	]*,,'`
1466738971Srin
1566738971Srin. $_TOP/tools/gcc/mknative.common
1666738971Srin
173cfdedbdSchristosBFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/')
183cfdedbdSchristos
193cfdedbdSchristos
20*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libbfd #####
2166738971Srin
2266738971Sringet_libbfd () {
23*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH
2466738971Srin
2566738971Srin	{
2666738971Srin		getvars bfd/Makefile \
2766738971Srin			libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
2866738971Srin			INCLUDES TDEFAULTS HAVEVECS
29*3af1bc3cSchristos	} | write_mk external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/defs.mk
3066738971Srin
31*3af1bc3cSchristos	write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
32*3af1bc3cSchristos	write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
3366738971Srin
3466738971Srin	{
3566738971Srin		cat $_TMPDIR/bfd/config.h
36*3af1bc3cSchristos	} | write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/config.h
3766738971Srin}
3866738971Srin
39*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libopcodes #####
4066738971Srin
4166738971Sringet_libopcodes () {
42*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH
4366738971Srin
4466738971Srin	{
4566738971Srin		getvars opcodes/Makefile \
4666738971Srin			archdefs BFD_MACHINES libopcodes_la_SOURCES
47*3af1bc3cSchristos	} | write_mk external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/defs.mk
4866738971Srin
4966738971Srin	{
5066738971Srin		cat $_TMPDIR/opcodes/config.h
51*3af1bc3cSchristos	} | write_c external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/config.h
5266738971Srin}
5366738971Srin
5466738971Sringet_libgnuctf () {
55*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH
5666738971Srin
5766738971Srin	{
5866738971Srin		getvars libctf/Makefile libctf_la_SOURCES
59*3af1bc3cSchristos	} | write_mk external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/defs.mk
6066738971Srin
6166738971Srin	{
6266738971Srin		cat $_TMPDIR/libctf/config.h
63*3af1bc3cSchristos	} | write_c external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/config.h
6466738971Srin}
6566738971Srin
66*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libiberty #####
6766738971Srin
6866738971Sringet_libiberty () {
69*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH
7066738971Srin
7166738971Srin	getvars libiberty/Makefile \
7266738971Srin		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
73*3af1bc3cSchristos		| write_mk external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/defs.mk
7466738971Srin
75*3af1bc3cSchristos	write_c external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/config.h \
7666738971Srin		<$_TMPDIR/libiberty/config.h
7766738971Srin}
7866738971Srin
79*3af1bc3cSchristos##### external/gpl3/binutils.old/usr.bin #####
8066738971Srin
8166738971Sringet_binutils () {
8266738971Srin	### common
8366738971Srin
84*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH
8566738971Srin
8666738971Srin	{
8766738971Srin		getvars binutils/Makefile \
8866738971Srin			VERSION DEFS INCLUDES PROGRAMS
893cfdedbdSchristos		getvars binutils/Makefile \
9066738971Srin			man_MANS TEXINFOS
913cfdedbdSchristos		getvars bfd/Makefile \
9266738971Srin			PKGVERSION | sed 's,\\\(.\),\1,'
933cfdedbdSchristos		getvars bfd/Makefile \
9466738971Srin			REPORT_BUGS_TEXI
9566738971Srin
9666738971Srin		for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
9766738971Srin			getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
9866738971Srin		done
99*3af1bc3cSchristos	} | write_mk external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/defs.mk
10066738971Srin
101*3af1bc3cSchristos	write_c external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/config.h \
102*3af1bc3cSchristos		<$_TMPDIR/binutils.old/config.h
10366738971Srin
10466738971Srin	### gas
10566738971Srin
106*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH
10766738971Srin
10866738971Srin	grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps"
10966738971Srin	getvars gas/Makefile.nodeps \
11066738971Srin                DEFS INCLUDES as_new_OBJECTS as_new_LDADD |
11166738971Srin	sed	-e s/G_as_new_OBJECTS/G_OBJS/ \
11266738971Srin		-e s/G_as_new_LDADD=/G_OBJS+=/ \
11366738971Srin		-e s@config/@@g \
11466738971Srin		-e 's/\.\..*a//' |
115*3af1bc3cSchristos	write_mk external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/defs.mk
11666738971Srin
11766738971Srin	for f in config itbl-cpu obj-format targ-cpu targ-env; do
118*3af1bc3cSchristos		write_c external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
11966738971Srin	done
12066738971Srin
12166738971Srin	### gprof
12266738971Srin
123*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH
12466738971Srin
12566738971Srin	getvars gprof/Makefile \
12666738971Srin		DEFS gprof_OBJECTS INCLUDES TEXINFOS \
127*3af1bc3cSchristos		| write_mk external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/defs.mk
12866738971Srin
129*3af1bc3cSchristos	write_c external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
13066738971Srin
13166738971Srin	### ld
13266738971Srin
133*3af1bc3cSchristos	mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH
13466738971Srin
13566738971Srin	{
13666738971Srin		getvars ld/Makefile \
13766738971Srin			DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
13866738971Srin		getvars ld/Makefile \
13966738971Srin			target_alias | sed 's,[\._0-9A-Z]*$,,'
14066738971Srin		getvars	ld/Makefile \
14166738971Srin			enable_initfini_array
142*3af1bc3cSchristos	} | write_mk external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/defs.mk
14366738971Srin
14466738971Srin	for f in config ldemul-list; do
145*3af1bc3cSchristos		write_c external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
14666738971Srin	done
14766738971Srin}
14866738971Srin
14966738971Srin##### main #####
15066738971Srin
15166738971Srincase $1 in
15266738971Srinall|binutils)	# everything (uses "canadian cross" temp environment)
15366738971Srin	get_binutils
15466738971Srin	get_libbfd
15566738971Srin	get_libgnuctf
15666738971Srin	get_libopcodes
15766738971Srin	get_libiberty
15866738971Srin	exit 0
15966738971Srin	;;
16066738971Srin
16166738971Srin*)	echo invalid arguments; exit 1;;
16266738971Srinesac
163