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