xref: /netbsd-src/tools/binutils/mknative-binutils (revision ece8a60d7ad30f6f83b2fa8627d7d2deaea266c3)
1#!/bin/sh
2#	$NetBSD: mknative-binutils,v 1.2 2003/11/27 10:52:53 mrg Exp $
3#
4# Shell script for generating all the constants needed for a native
5# platform build of src/gnu/dist/binutils.
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/binutils/libbfd #####
18
19get_libbfd () {
20	mkdir -p $_TOP/gnu/usr.bin/binutils/libbfd/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/binutils/libbfd/arch/$MACHINE_ARCH/defs.mk
27
28	write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
29	write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
30
31	{
32		cat $_TMPDIR/bfd/config.h
33	} | write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/config.h
34}
35
36##### gnu/usr.bin/binutils/libopcodes #####
37
38get_libopcodes () {
39	mkdir -p $_TOP/gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH
40
41	{
42		getvars opcodes/Makefile \
43			archdefs BFD_MACHINES libopcodes_la_SOURCES
44	} | write_mk gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH/defs.mk
45
46	{
47		cat $_TMPDIR/opcodes/config.h
48	} | write_c gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH/config.h
49}
50
51##### gnu/usr.bin/binutils/libiberty #####
52
53get_libiberty () {
54	mkdir -p $_TOP/gnu/usr.bin/binutils/libiberty
55
56	getvars libiberty/Makefile \
57		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
58		| write_mk gnu/usr.bin/binutils/libiberty/defs.mk
59
60	write_c gnu/usr.bin/binutils/libiberty/config.h \
61		<$_TMPDIR/libiberty/config.h
62}
63
64##### gnu/usr.bin/binutils #####
65
66get_binutils () {
67	### common
68
69	mkdir -p $_TOP/gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH
70
71	{
72		getvars binutils/Makefile \
73			VERSION DEFS INCLUDES PROGRAMS
74		getvars binutils/doc/Makefile \
75			man_MANS TEXINFOS
76
77		for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
78			getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
79		done
80	} | write_mk gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/defs.mk
81
82	write_c gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/config.h \
83		<$_TMPDIR/binutils/config.h
84
85	### gas
86
87	mkdir -p $_TOP/gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH
88
89	getvars gas/Makefile \
90		DEFS INCLUDES OBJS \
91		| write_mk gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/defs.mk
92
93	for f in config itbl-cpu obj-format targ-cpu targ-env; do
94		write_c gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
95	done
96
97	### gprof
98
99	mkdir -p $_TOP/gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH
100
101	getvars gprof/Makefile \
102		DEFS gprof_OBJECTS INCLUDES TEXINFOS \
103		| write_mk gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/defs.mk
104
105	write_c gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
106
107	### ld
108
109	mkdir -p $_TOP/gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH
110
111	{
112		getvars ld/Makefile \
113			DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
114		getvars ld/Makefile \
115			target_alias | sed 's,[\._0-9A-Z]*$,,'
116	} | write_mk gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/defs.mk
117
118	for f in config ldemul-list; do
119		write_c gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
120	done
121}
122
123##### main #####
124
125case $1 in
126all|binutils)	# everything (uses "canadian cross" temp environment)
127	get_binutils
128	get_libbfd
129	get_libopcodes
130	get_libiberty
131	exit 0
132	;;
133
134*)	echo invalid arguments; exit 1;;
135esac
136