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