mknative-binutils.old revision 1.2 1 #!/bin/sh
2 # $NetBSD: mknative-binutils.old,v 1.2 2024/06/30 16:11:11 christos Exp $
3 #
4 # Shell script for generating all the constants needed for a native
5 # platform build of src/external/gpl3/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 BFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/')
18
19
20 ##### external/gpl3/binutils/lib/libbfd #####
21
22 get_libbfd () {
23 mkdir -p $_TOP/external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH
24
25 {
26 getvars bfd/Makefile \
27 libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
28 INCLUDES TDEFAULTS HAVEVECS
29 } | write_mk external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/defs.mk
30
31 write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
32 write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
33
34 {
35 cat $_TMPDIR/bfd/config.h
36 } | write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/config.h
37 }
38
39 ##### external/gpl3/binutils/lib/libopcodes #####
40
41 get_libopcodes () {
42 mkdir -p $_TOP/external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH
43
44 {
45 getvars opcodes/Makefile \
46 archdefs BFD_MACHINES libopcodes_la_SOURCES
47 } | write_mk external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH/defs.mk
48
49 {
50 cat $_TMPDIR/opcodes/config.h
51 } | write_c external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH/config.h
52 }
53
54 get_libgnuctf () {
55 mkdir -p $_TOP/external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH
56
57 {
58 getvars libctf/Makefile libctf_la_SOURCES
59 } | write_mk external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/defs.mk
60
61 {
62 cat $_TMPDIR/libctf/config.h
63 } | write_c external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/config.h
64 }
65
66 ##### external/gpl3/binutils/lib/libiberty #####
67
68 get_libiberty () {
69 mkdir -p $_TOP/external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH
70
71 getvars libiberty/Makefile \
72 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
73 | write_mk external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH/defs.mk
74
75 write_c external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH/config.h \
76 <$_TMPDIR/libiberty/config.h
77 }
78
79 ##### external/gpl3/binutils/usr.bin #####
80
81 get_binutils () {
82 ### common
83
84 mkdir -p $_TOP/external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH
85
86 {
87 getvars binutils/Makefile \
88 VERSION DEFS INCLUDES PROGRAMS
89 getvars binutils/Makefile \
90 man_MANS TEXINFOS
91 getvars bfd/Makefile \
92 PKGVERSION | sed 's,\\\(.\),\1,'
93 getvars bfd/Makefile \
94 REPORT_BUGS_TEXI
95
96 for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
97 getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
98 done
99 } | write_mk external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH/defs.mk
100
101 write_c external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH/config.h \
102 <$_TMPDIR/binutils/config.h
103
104 ### gas
105
106 mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH
107
108 grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps"
109 getvars gas/Makefile.nodeps \
110 DEFS INCLUDES as_new_OBJECTS as_new_LDADD |
111 sed -e s/G_as_new_OBJECTS/G_OBJS/ \
112 -e s/G_as_new_LDADD=/G_OBJS+=/ \
113 -e s@config/@@g \
114 -e 's/\.\..*a//' |
115 write_mk external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH/defs.mk
116
117 for f in config itbl-cpu obj-format targ-cpu targ-env; do
118 write_c external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
119 done
120
121 ### gprof
122
123 mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH
124
125 getvars gprof/Makefile \
126 DEFS gprof_OBJECTS INCLUDES TEXINFOS \
127 | write_mk external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/defs.mk
128
129 write_c external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
130
131 ### ld
132
133 mkdir -p $_TOP/external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH
134
135 {
136 getvars ld/Makefile \
137 DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
138 getvars ld/Makefile \
139 target_alias | sed 's,[\._0-9A-Z]*$,,'
140 getvars ld/Makefile \
141 enable_initfini_array
142 } | write_mk external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH/defs.mk
143
144 for f in config ldemul-list; do
145 write_c external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
146 done
147 }
148
149 ##### main #####
150
151 case $1 in
152 all|binutils) # everything (uses "canadian cross" temp environment)
153 get_binutils
154 get_libbfd
155 get_libgnuctf
156 get_libopcodes
157 get_libiberty
158 exit 0
159 ;;
160
161 *) echo invalid arguments; exit 1;;
162 esac
163