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