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