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