2002-07-31 H.J. Lu <hjl@gnu.org>
[binutils.git] / mpw-build.in
blob86d9530fa3b564689219d3cb2ffde4fa08a93a28
1 # Top-level script fragment to build everything for MPW.
3 Set savedir "`Directory`"
5 #Set Echo 1
7 Set ThisScript "{0}"
9 Set objdir ":"
11 Set verify 0
13 Set BuildTarget "none"
15 # Parse arguments.
17 Loop
18         Break If {#} == 0
19                 If "{BuildTarget}" =~ /none/
20                         Set BuildTarget "{1}"
21                 Else
22                         Echo Only one build target allowed, ignoring "{1}"
23                 End If
24         Shift 1
25 End Loop
27 If "{BuildTarget}" =~ /none/
28         Set BuildTarget "all"
29 End If
31 If {verify} == 1
32         Echo "#" Doing "{ThisScript}" "{BuildTarget}" in "`Directory`" ... 
33 End If
35 Set ranmake 0
37 If "`Exists Makefile`" != ""
38         Echo "Set Echo 1" >{BuildTarget}.makeout
39         Make -f Makefile {BuildTarget} >>{BuildTarget}.makeout
40         {BuildTarget}.makeout
41         Delete {BuildTarget}.makeout
42         Set ranmake 1
43 End If
45 If "`Exists Makefile.PPC`" != ""
46         Echo "Set Echo 1" >{BuildTarget}.makeout.ppc
47         Make -f Makefile.PPC {BuildTarget} >>{BuildTarget}.makeout.ppc
48         {BuildTarget}.makeout.ppc
49         Delete {BuildTarget}.makeout.ppc
50         Set ranmake 1
51 End If
53 If {ranmake} == 1
54         Exit
55 End If
57 # Dispatch on various pseudo-targets.
59 If "{BuildTarget}" =~ /all/
60         Echo Started `Date`
61         "{ThisScript}" all-gcc
62         "{ThisScript}" all-gdb
63         Echo Finished `Date`
64 Else If "{BuildTarget}" =~ /all-libiberty/
65         "{ThisScript}" do-libiberty
66 Else If "{BuildTarget}" =~ /all-bfd/
67         "{ThisScript}" do-bfd
68 Else If "{BuildTarget}" =~ /all-opcodes/
69         "{ThisScript}" do-opcodes
70 Else If "{BuildTarget}" =~ /all-byacc/
71         "{ThisScript}" do-byacc
72 Else If "{BuildTarget}" =~ /all-flex/
73         "{ThisScript}" all-libiberty
74         "{ThisScript}" do-flex
75 Else If "{BuildTarget}" =~ /all-binutils/
76         "{ThisScript}" all-libiberty
77         "{ThisScript}" all-bfd
78         "{ThisScript}" all-opcodes
79         "{ThisScript}" do-binutils
80 Else If "{BuildTarget}" =~ /all-gas/
81         "{ThisScript}" all-libiberty
82         "{ThisScript}" all-bfd
83         "{ThisScript}" all-opcodes
84         "{ThisScript}" do-gas
85 Else If "{BuildTarget}" =~ /all-gcc/
86         "{ThisScript}" all-libiberty
87         "{ThisScript}" all-gas
88         "{ThisScript}" all-binutils
89         "{ThisScript}" all-ld
90         "{ThisScript}" do-gcc
91 Else If "{BuildTarget}" =~ /all-gdb/
92         "{ThisScript}" all-libiberty
93         "{ThisScript}" all-bfd
94         "{ThisScript}" all-opcodes
95         "{ThisScript}" do-gdb
96 Else If "{BuildTarget}" =~ /all-grez/
97         "{ThisScript}" all-libiberty
98         "{ThisScript}" all-bfd
99         "{ThisScript}" do-grez
100 Else If "{BuildTarget}" =~ /all-ld/
101         "{ThisScript}" all-libiberty
102         "{ThisScript}" all-bfd
103         "{ThisScript}" all-opcodes
104         "{ThisScript}" do-ld
105 Else If "{BuildTarget}" =~ /do-byacc/
106         SetDirectory :byacc:
107         ::mpw-build all
108 Else If "{BuildTarget}" =~ /do-flex/
109         SetDirectory :flex:
110         ::mpw-build _bootstrap
111         ::mpw-build all
112 Else If "{BuildTarget}" =~ /do-bfd/
113         SetDirectory :bfd:
114         ::mpw-build all
115 Else If "{BuildTarget}" =~ /do-libiberty/
116         SetDirectory :libiberty:
117         ::mpw-build all
118 Else If "{BuildTarget}" =~ /do-opcodes/
119         SetDirectory :opcodes:
120         ::mpw-build all
121 Else If "{BuildTarget}" =~ /do-binutils/
122         SetDirectory :binutils:
123         ::mpw-build stamps
124         ::mpw-build all
125 Else If "{BuildTarget}" =~ /do-gas/
126         SetDirectory :gas:
127         ::mpw-build stamps
128         ::mpw-build all
129 Else If "{BuildTarget}" =~ /do-gcc/
130         SetDirectory :gcc:
131         :mpw-build all
132 Else If "{BuildTarget}" =~ /do-gdb/
133         SetDirectory :gdb:
134         ::mpw-build all
135 Else If "{BuildTarget}" =~ /do-grez/
136         SetDirectory :grez:
137         ::mpw-build all
138 Else If "{BuildTarget}" =~ /do-ld/
139         SetDirectory :ld:
140         ::mpw-build all
141 Else If "{BuildTarget}" =~ /do-newlib/
142         SetDirectory :newlib:
143         ::mpw-build all
144 Else If "{BuildTarget}" =~ /install/
145         "{ThisScript}" install-only-top
146         "{ThisScript}" install-binutils
147         "{ThisScript}" install-gas
148         "{ThisScript}" install-gcc
149         "{ThisScript}" install-ld
150         "{ThisScript}" install-gdb
151 Else If "{BuildTarget}" =~ /install-binutils/
152         SetDirectory :binutils:
153         ::mpw-build install
154 Else If "{BuildTarget}" =~ /install-gas/
155         SetDirectory :gas:
156         ::mpw-build install
157 Else If "{BuildTarget}" =~ /install-gcc/
158         SetDirectory :gcc:
159         :mpw-build install
160 Else If "{BuildTarget}" =~ /install-gdb/
161         SetDirectory :gdb:
162         ::mpw-build install
163 Else If "{BuildTarget}" =~ /install-grez/
164         SetDirectory :grez:
165         ::mpw-build install
166 Else If "{BuildTarget}" =~ /install-ld/
167         SetDirectory :ld:
168         ::mpw-build install
169 Else If "{BuildTarget}" =~ /install-only/
170         "{ThisScript}" install-only-top
171         "{ThisScript}" install-only-binutils
172         "{ThisScript}" install-only-gas
173         "{ThisScript}" install-only-gcc
174         "{ThisScript}" install-only-gdb
175         "{ThisScript}" install-only-ld
176 Else If "{BuildTarget}" =~ /install-only-binutils/
177         SetDirectory :binutils:
178         ::mpw-build install-only
179 Else If "{BuildTarget}" =~ /install-only-gas/
180         SetDirectory :gas:
181         ::mpw-build install-only
182 Else If "{BuildTarget}" =~ /install-only-gcc/
183         SetDirectory :gcc:
184         :mpw-build install-only
185 Else If "{BuildTarget}" =~ /install-only-gdb/
186         SetDirectory :gdb:
187         ::mpw-build install-only
188 Else If "{BuildTarget}" =~ /install-only-grez/
189         SetDirectory :grez:
190         ::mpw-build install-only
191 Else If "{BuildTarget}" =~ /install-only-ld/
192         SetDirectory :ld:
193         ::mpw-build install-only
194 Else If "{BuildTarget}" =~ /install-only-top/
195         NewFolderRecursive "{prefix}"
196         If "{prefix}" != "`Directory`"
197                 Duplicate -y 'Read Me for MPW' "{prefix}"'Read Me for MPW'
198                 Duplicate -y Install "{prefix}"Install
199         End If
200 Else
201         Echo {BuildTarget} not understood, ignoring
202 End If
204 SetDirectory "{savedir}"