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
136
137
138
139
140
141
142
143
144
145
146
|
#!/bin/sh
# $NetBSD: mknative-binutils,v 1.9 2013/10/01 15:41:17 skrll Exp $
#
# Shell script for generating all the constants needed for a native
# platform build of src/external/gpl3/binutils
#
# initialise
_TMPDIR=$2
_TOP=$3
_PLATFORM=$4
_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'`
. $_TOP/tools/gcc/mknative.common
##### external/gpl3/binutils/lib/libbfd #####
get_libbfd () {
mkdir -p $_TOP/external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH
{
getvars bfd/Makefile \
libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
INCLUDES TDEFAULTS
} | write_mk external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/defs.mk
write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd_stdint.h <$_TMPDIR/bfd/bfd_stdint.h
{
cat $_TMPDIR/bfd/config.h
} | write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/config.h
}
##### external/gpl3/binutils/lib/libopcodes #####
get_libopcodes () {
mkdir -p $_TOP/external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH
{
getvars opcodes/Makefile \
archdefs BFD_MACHINES libopcodes_la_SOURCES
} | write_mk external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/defs.mk
{
cat $_TMPDIR/opcodes/config.h
} | write_c external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/config.h
}
##### external/gpl3/binutils/lib/libiberty #####
get_libiberty () {
mkdir -p $_TOP/external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH
getvars libiberty/Makefile \
ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
| write_mk external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/defs.mk
write_c external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/config.h \
<$_TMPDIR/libiberty/config.h
}
##### external/gpl3/binutils/usr.bin #####
get_binutils () {
### common
mkdir -p $_TOP/external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH
{
getvars binutils/Makefile \
VERSION DEFS INCLUDES PROGRAMS
getvars binutils/doc/Makefile \
man_MANS TEXINFOS
getvars bfd/doc/Makefile \
PKGVERSION | sed 's,\\\(.\),\1,'
getvars bfd/doc/Makefile \
REPORT_BUGS_TEXI
for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
done
} | write_mk external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/defs.mk
write_c external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/config.h \
<$_TMPDIR/binutils/config.h
### gas
mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH
grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps"
getvars gas/Makefile.nodeps \
DEFS INCLUDES as_new_OBJECTS as_new_LDADD |
sed -e s/G_as_new_OBJECTS/G_OBJS/ \
-e s/G_as_new_LDADD=/G_OBJS+=/ \
-e 's/\.\..*a//' |
write_mk external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/defs.mk
for f in config itbl-cpu obj-format targ-cpu targ-env; do
write_c external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
done
### gprof
mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH
getvars gprof/Makefile \
DEFS gprof_OBJECTS INCLUDES TEXINFOS \
| write_mk external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/defs.mk
write_c external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
### ld
mkdir -p $_TOP/external/gpl3/binutils/usr.bin/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]*$,,'
getvars ld/Makefile \
enable_initfini_array
} | write_mk external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/defs.mk
for f in config ldemul-list; do
write_c external/gpl3/binutils/usr.bin/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
|