]>
Commit | Line | Data |
---|---|---|
3ec83fc2 RH |
1 | #!/bin/sh |
2 | # Construct makefile for libgcc. | |
f0df8029 | 3 | # Copyright (C) 2000, 2002 Free Software Foundation, Inc. |
3ec83fc2 | 4 | # |
1322177d | 5 | # This file is part of GCC. |
3ec83fc2 RH |
6 | |
7 | # Arguments, taken from the environment, since there are a lot | |
8 | # of them, and positional args becomes quite ugly. | |
9 | # | |
10 | # objext | |
3ec83fc2 | 11 | # LIB1ASMFUNCS |
f0df8029 DR |
12 | # LIB2FUNCS_1 |
13 | # LIB2FUNCS_2 | |
3fe68d0a | 14 | # LIB2FUNCS_ST |
3ec83fc2 | 15 | # LIB2ADD |
fa9518de | 16 | # LIB2ADD_ST |
52a11cbf RH |
17 | # LIB2ADDEH |
18 | # LIB2ADDEHDEP | |
3ec83fc2 RH |
19 | # FPBIT |
20 | # FPBIT_FUNCS | |
fc6aa0a9 | 21 | # LIB2_DIVMOD_FUNCS |
3ec83fc2 RH |
22 | # DPBIT |
23 | # DPBIT_FUNCS | |
24 | # LIBGCC | |
25 | # MULTILIBS | |
26 | # EXTRA_MULTILIB_PARTS | |
aefa45d3 | 27 | # SHLIB_EXT |
50503ac8 | 28 | # SHLIB_LINK |
50503ac8 | 29 | # SHLIB_MULTILIB |
83dad10c RH |
30 | # SHLIB_MKMAP |
31 | # SHLIB_MAPFILES | |
0ad7574f | 32 | # SHLIB_NM_FLAGS |
2bbea3a6 | 33 | # SHLIB_INSTALL |
3ec83fc2 RH |
34 | |
35 | # Make needs VPATH to be literal. | |
36 | echo 'srcdir = @srcdir@' | |
37 | echo 'VPATH = @srcdir@' | |
842391df | 38 | echo 'EQ = =' |
3ec83fc2 | 39 | echo |
3378216a JM |
40 | echo 'force:' |
41 | echo | |
3ec83fc2 | 42 | |
50503ac8 RH |
43 | # Disable SHLIB_LINK if shared libgcc not enabled. |
44 | if [ "@enable_shared@" = "no" ]; then | |
45 | SHLIB_LINK="" | |
46 | fi | |
3ec83fc2 | 47 | |
8e9bf55e RH |
48 | # Build lines. |
49 | ||
50 | gcc_compile='$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES)' | |
8e9bf55e RH |
51 | make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ |
52 | AR_FOR_TARGET="$(AR_FOR_TARGET)" \ | |
53 | AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ | |
54 | AR_EXTRACT_FOR_TARGET="$(AR_EXTRACT_FOR_TARGET)" \ | |
55 | AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ | |
56 | CC="$(CC)" CFLAGS="$(CFLAGS)" \ | |
57 | HOST_PREFIX="$(HOST_PREFIX)" \ | |
58 | HOST_PREFIX_1="$(HOST_PREFIX_1)" \ | |
59 | LANGUAGES="$(LANGUAGES)"' | |
3ec83fc2 | 60 | |
7857f134 | 61 | # Dependencies for libgcc2.c |
52a11cbf | 62 | libgcc2_c_dep='stmp-dirs $(srcdir)/libgcc2.c $(CONFIG_H) $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs tsystem.h'" $LIB2ADDEHDEP" |
3ec83fc2 | 63 | |
7857f134 | 64 | # Dependencies for fp-bit.c |
2aceb30d | 65 | fpbit_c_dep='stmp-dirs config.status tsystem.h' |
3ec83fc2 RH |
66 | |
67 | # | |
68 | # Build libgcc1 components. | |
69 | # | |
70 | ||
71 | libgcc1_objs="" | |
72 | ||
7857f134 ZW |
73 | for name in $LIB1ASMFUNCS; do |
74 | for ml in $MULTILIBS; do | |
75 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
76 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
77 | out="libgcc/${dir}/${name}${objext}" | |
3ec83fc2 | 78 | |
7857f134 ZW |
79 | echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)' |
80 | echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \ | |
8e9bf55e | 81 | -c '$(srcdir)/config/$(LIB1ASMSRC)' -o $out |
ee95744f | 82 | |
9e23c02d HB |
83 | # Remove any objects from LIB2FUNCS and LIB2_DIVMOD_FUNCS that are |
84 | # defined as optimized assembly code in LIB1ASMFUNCS. | |
f0df8029 DR |
85 | LIB2FUNCS_1=`echo $LIB2FUNCS_1 | sed -e 's/^'$name' //' \ |
86 | -e 's/ '$name' / /' \ | |
87 | -e 's/ '$name'$//'` | |
88 | LIB2FUNCS_2=`echo $LIB2FUNCS_2 | sed -e 's/^'$name' //' \ | |
89 | -e 's/ '$name' / /' \ | |
90 | -e 's/ '$name'$//'` | |
9e23c02d HB |
91 | LIB2_DIVMOD_FUNCS=`echo $LIB2_DIVMOD_FUNCS | sed -e 's/^'$name' //' \ |
92 | -e 's/ '$name' / /' \ | |
93 | -e 's/ '$name'$//'` | |
7857f134 ZW |
94 | done |
95 | libgcc1_objs="$libgcc1_objs ${name}${objext}" | |
96 | done | |
3ec83fc2 RH |
97 | |
98 | # | |
99 | # Build libgcc2 components. | |
100 | # | |
101 | ||
102 | libgcc2_objs="" | |
3fe68d0a | 103 | libgcc2_st_objs="" |
275b60d6 | 104 | libgcc2_eh_objs="" |
3ec83fc2 | 105 | |
f0df8029 | 106 | for name in $LIB2FUNCS_1 $LIB2FUNCS_2; do |
3ec83fc2 | 107 | for ml in $MULTILIBS; do |
842391df | 108 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
3ec83fc2 RH |
109 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; |
110 | out="libgcc/${dir}/${name}${objext}" | |
111 | ||
2aceb30d | 112 | echo $out: $libgcc2_c_dep |
8e9bf55e RH |
113 | echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \ |
114 | -c '$(srcdir)/libgcc2.c' -o $out | |
3ec83fc2 RH |
115 | done |
116 | libgcc2_objs="$libgcc2_objs ${name}${objext}" | |
117 | done | |
118 | ||
3fe68d0a ZW |
119 | for name in $LIB2FUNCS_ST; do |
120 | for ml in $MULTILIBS; do | |
121 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
122 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
123 | out="libgcc/${dir}/${name}${objext}" | |
124 | ||
125 | echo $out: $libgcc2_c_dep | |
126 | echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \ | |
127 | -c '$(srcdir)/libgcc2.c' -o $out | |
128 | done | |
129 | libgcc2_st_objs="$libgcc2_st_objs ${name}${objext}" | |
130 | done | |
131 | ||
fc6aa0a9 AH |
132 | for name in $LIB2_DIVMOD_FUNCS; do |
133 | for ml in $MULTILIBS; do | |
134 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
135 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
136 | out="libgcc/${dir}/${name}${objext}" | |
137 | ||
138 | echo $out: $libgcc2_c_dep | |
139 | echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \ | |
140 | -c '$(srcdir)/libgcc2.c' -fexceptions -fnon-call-exceptions -o $out | |
141 | done | |
142 | libgcc2_objs="$libgcc2_objs ${name}${objext}" | |
143 | done | |
144 | ||
3ec83fc2 RH |
145 | if [ "$FPBIT" ]; then |
146 | for name in $FPBIT_FUNCS; do | |
147 | for ml in $MULTILIBS; do | |
842391df | 148 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
3ec83fc2 RH |
149 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; |
150 | out="libgcc/${dir}/${name}${objext}" | |
151 | ||
2aceb30d | 152 | echo $out: $FPBIT $fpbit_c_dep |
8e9bf55e RH |
153 | echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \ |
154 | -c $FPBIT -o $out | |
3ec83fc2 RH |
155 | done |
156 | libgcc2_objs="$libgcc2_objs ${name}${objext}" | |
157 | done | |
158 | fi | |
159 | ||
160 | if [ "$DPBIT" ]; then | |
161 | for name in $DPBIT_FUNCS; do | |
162 | for ml in $MULTILIBS; do | |
842391df | 163 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
3ec83fc2 RH |
164 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; |
165 | out="libgcc/${dir}/${name}${objext}" | |
166 | ||
2aceb30d | 167 | echo $out: $DPBIT $fpbit_c_dep |
8e9bf55e RH |
168 | echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \ |
169 | -c $DPBIT -o $out | |
3ec83fc2 RH |
170 | done |
171 | libgcc2_objs="$libgcc2_objs ${name}${objext}" | |
172 | done | |
173 | fi | |
174 | ||
175 | for file in $LIB2ADD; do | |
176 | name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'` | |
177 | oname=`echo $name | sed -e 's,.*/,,'` | |
178 | ||
1854631b RH |
179 | for ml in $MULTILIBS; do |
180 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
181 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
182 | out="libgcc/${dir}/${oname}${objext}" | |
183 | if [ ${name}.asm = ${file} ]; then | |
184 | flags="$flags -xassembler-with-cpp" | |
185 | fi | |
3ec83fc2 | 186 | |
1854631b RH |
187 | echo $out: stmp-dirs $file |
188 | echo " $gcc_compile" $flags -c $file -o $out | |
189 | done | |
190 | libgcc2_objs="$libgcc2_objs ${oname}${objext}" | |
3ec83fc2 RH |
191 | done |
192 | ||
52a11cbf RH |
193 | for file in $LIB2ADDEH; do |
194 | name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'` | |
195 | oname=`echo $name | sed -e 's,.*/,,'` | |
196 | ||
197 | for ml in $MULTILIBS; do | |
198 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
199 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
200 | out="libgcc/${dir}/${oname}${objext}" | |
201 | if [ ${name}.asm = ${file} ]; then | |
202 | flags="$flags -xassembler-with-cpp" | |
203 | fi | |
204 | ||
205 | echo $out: stmp-dirs $file | |
206 | echo " $gcc_compile" $flags -fexceptions -c $file -o $out | |
207 | done | |
275b60d6 JJ |
208 | if [ "$SHLIB_LINK" ]; then |
209 | libgcc2_eh_objs="$libgcc2_eh_objs ${oname}${objext}" | |
210 | else | |
211 | libgcc2_objs="$libgcc2_objs ${oname}${objext}" | |
212 | fi | |
52a11cbf RH |
213 | done |
214 | ||
fa9518de FS |
215 | for file in $LIB2ADD_ST; do |
216 | name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'` | |
217 | oname=`echo $name | sed -e 's,.*/,,'` | |
218 | ||
219 | for ml in $MULTILIBS; do | |
220 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
221 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; | |
222 | out="libgcc/${dir}/${oname}${objext}" | |
223 | if [ ${name}.asm = ${file} ]; then | |
224 | flags="$flags -xassembler-with-cpp" | |
225 | fi | |
226 | ||
227 | echo $out: stmp-dirs $file | |
228 | echo " $gcc_compile" $flags -c $file -o $out | |
229 | done | |
230 | libgcc2_st_objs="$libgcc2_st_objs ${oname}${objext}" | |
231 | done | |
232 | ||
83dad10c RH |
233 | # SHLIB_MKMAP |
234 | # SHLIB_MAPFILES | |
3ec83fc2 | 235 | for ml in $MULTILIBS; do |
842391df | 236 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
50503ac8 | 237 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; |
3ec83fc2 RH |
238 | |
239 | libgcc_objs="" | |
275b60d6 | 240 | libgcc_eh_objs="" |
3ec83fc2 | 241 | for o in $libgcc1_objs; do |
7857f134 | 242 | libgcc_objs="$libgcc_objs libgcc/${dir}/$o" |
3ec83fc2 RH |
243 | done |
244 | for o in $libgcc2_objs; do | |
245 | libgcc_objs="$libgcc_objs libgcc/${dir}/$o" | |
246 | done | |
275b60d6 JJ |
247 | for o in $libgcc2_eh_objs; do |
248 | libgcc_eh_objs="$libgcc_eh_objs libgcc/${dir}/$o" | |
249 | done | |
250 | libgcc_sh_objs="$libgcc_objs $libgcc_eh_objs" | |
251 | shlib_deps="$libgcc_sh_objs" | |
83dad10c | 252 | |
fa9518de FS |
253 | libgcc_st_objs="" |
254 | for o in $libgcc2_st_objs; do | |
255 | libgcc_st_objs="$libgcc_st_objs libgcc/${dir}/$o" | |
256 | done | |
257 | ||
83dad10c RH |
258 | if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" -a -z "$mapfile" ]; then |
259 | mapfile="libgcc.map" | |
83dad10c | 260 | echo "" |
275b60d6 JJ |
261 | echo "${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs" |
262 | echo ' { $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; cat $SHLIB_MAPFILES; } | "'$(AWK)'" -f $SHLIB_MKMAP > "'tmp-$@' | |
83dad10c RH |
263 | echo ' mv tmp-$@ $@' |
264 | fi | |
aefa45d3 | 265 | shlib_deps="$shlib_deps $mapfile" |
83dad10c RH |
266 | |
267 | # Depend on EXTRA_MULTILIB_PARTS, since that's where crtbegin/end | |
268 | # usually are put in a true multilib situation. | |
269 | for f in $EXTRA_MULTILIB_PARTS; do | |
270 | shlib_deps="$shlib_deps $dir/$f" | |
271 | done | |
3ec83fc2 | 272 | |
9e944a16 JJ |
273 | libgcc_a_objs="$libgcc_objs $libgcc_st_objs" |
274 | ||
275 | if [ "@libgcc_visibility@" = yes ]; then | |
276 | libgcc_a_objs=`echo "${libgcc_a_objs} " | sed s~${objext}' ~.oS ~g'` | |
277 | ||
278 | # .oS objects will have all non-local symbol definitions .hidden | |
279 | echo "" | |
280 | echo "$libgcc_a_objs: libgcc/${dir}/%.oS: libgcc/${dir}/%${objext}" | |
281 | echo " @\$(NM_FOR_TARGET) $SHLIB_NM_FLAGS \$^" \\ | |
282 | echo " | \$(AWK) 'NF == 3 { printf \".hidden %s\\n\", \$\$3 }'" \\ | |
283 | echo ' | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -Wl,-r -nostdinc' \\ | |
284 | echo ' -nostdlib -o $@ $^ -xassembler -' | |
285 | fi | |
286 | ||
3ec83fc2 | 287 | echo "" |
9e944a16 | 288 | echo "${dir}/libgcc.a: $libgcc_a_objs" |
3ec83fc2 | 289 | echo " -rm -rf ${dir}/libgcc.a" |
9e944a16 | 290 | echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_a_objs |
3ec83fc2 RH |
291 | echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\ |
292 | echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc.a ';' \\ | |
293 | echo ' else true; fi;' | |
50503ac8 RH |
294 | |
295 | if [ "$SHLIB_LINK" ]; then | |
275b60d6 JJ |
296 | |
297 | echo "" | |
298 | echo "${dir}/libgcc_eh.a: $libgcc_eh_objs" | |
299 | echo " -rm -rf ${dir}/libgcc_eh.a" | |
300 | echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a $libgcc_eh_objs | |
301 | echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\ | |
302 | echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc_eh.a ';' \\ | |
303 | echo ' else true; fi;' | |
304 | ||
50503ac8 RH |
305 | if [ -z "$SHLIB_MULTILIB" ]; then |
306 | if [ "$dir" = "." ]; then | |
307 | shlib_base_name="libgcc_s"; | |
308 | else | |
309 | shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g` | |
310 | fi | |
311 | echo "" | |
aefa45d3 RH |
312 | echo "${dir}/${shlib_base_name}${SHLIB_EXT}: $shlib_deps" |
313 | echo " $SHLIB_LINK" \ | |
314 | | sed -e "s%@multilib_flags@%$flags%g" \ | |
315 | -e "s%@multilib_dir@%$dir%g" \ | |
275b60d6 | 316 | -e "s%@shlib_objs@%$libgcc_sh_objs%g" \ |
aefa45d3 RH |
317 | -e "s%@shlib_base_name@%$shlib_base_name%g" \ |
318 | -e "s%@shlib_map_file@%$mapfile%g" | |
50503ac8 RH |
319 | elif [ "$SHLIB_MULTILIB" = "$dir" ]; then |
320 | shlib_base_name="libgcc_s"; | |
321 | echo "" | |
aefa45d3 RH |
322 | echo "${shlib_base_name}${SHLIB_EXT}: $shlib_deps" |
323 | echo " $SHLIB_LINK" \ | |
324 | | sed -e "s%@multilib_flags@%$flags%g" \ | |
325 | -e "s%@multilib_dir@%$dir%g" \ | |
275b60d6 | 326 | -e "s%@shlib_objs@%$libgcc_sh_objs%g" \ |
aefa45d3 RH |
327 | -e "s%@shlib_base_name@%$shlib_base_name%g" \ |
328 | -e "s%@shlib_map_file@%$mapfile%g" | |
50503ac8 RH |
329 | fi |
330 | fi | |
3ec83fc2 RH |
331 | done |
332 | ||
f472a17c AS |
333 | dirs=libgcc |
334 | for ml in $MULTILIBS; do | |
335 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
336 | if [ $dir != . ]; then | |
337 | dirs="$dirs libgcc/${dir}" | |
338 | fi | |
339 | done | |
340 | echo '' | |
341 | echo 'libgcc-stage-start:' | |
342 | echo ' for dir in '"${dirs}"'; do \' | |
343 | echo ' if [ -d $(stage)/$$dir ]; then true; else mkdir $(stage)/$$dir; fi; \' | |
344 | echo ' done' | |
345 | echo ' -for dir in '"${dirs}"'; do \' | |
346 | echo ' mv $$dir/*'"${objext}"' $(stage)/$$dir; \' | |
347 | echo ' done' | |
348 | ||
3ec83fc2 | 349 | echo "" |
2aceb30d JM |
350 | all=stmp-dirs |
351 | dirs=libgcc | |
3ec83fc2 RH |
352 | |
353 | for ml in $MULTILIBS; do | |
842391df | 354 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
34840988 | 355 | if [ $dir != . ]; then |
2aceb30d | 356 | dirs="$dirs ${dir} libgcc/${dir}" |
3ec83fc2 RH |
357 | fi |
358 | all="$all ${dir}/libgcc.a" | |
50503ac8 | 359 | if [ "$SHLIB_LINK" ]; then |
275b60d6 | 360 | all="$all ${dir}/libgcc_eh.a" |
50503ac8 RH |
361 | if [ -z "$SHLIB_MULTILIB" ]; then |
362 | if [ "$dir" = "." ]; then | |
363 | suff=""; | |
364 | else | |
365 | suff=_`echo $dir | sed s,/,_,g` | |
366 | fi | |
aefa45d3 | 367 | all="$all ${dir}/libgcc_s${suff}${SHLIB_EXT}" |
50503ac8 | 368 | elif [ "$SHLIB_MULTILIB" = "$dir" ]; then |
aefa45d3 | 369 | all="$all libgcc_s${SHLIB_EXT}" |
50503ac8 | 370 | fi |
50503ac8 | 371 | fi |
3ec83fc2 RH |
372 | done |
373 | ||
2aceb30d JM |
374 | echo 'stmp-dirs: force' |
375 | echo ' for d in '"$dirs"'; do \' | |
20266bb1 | 376 | echo ' if [ -d $$d ]; then true; else '$mkinstalldirs' $$d; fi; \' |
2aceb30d JM |
377 | echo ' done' |
378 | echo ' if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi' | |
379 | ||
3ec83fc2 | 380 | for f in $EXTRA_MULTILIB_PARTS; do |
3ec83fc2 | 381 | for ml in $MULTILIBS; do |
842391df | 382 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` |
3ec83fc2 | 383 | flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; |
673887d5 AO |
384 | case $dir in |
385 | .) out=$f ; t= ;; | |
6c80a645 AO |
386 | *) out=$dir/$f ; t=$dir/ ;; |
387 | esac | |
388 | case $out in | |
389 | # Prevent `make' from interpreting $out as a macro assignment | |
390 | *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;; | |
391 | *) targ=$out ;; | |
673887d5 | 392 | esac |
3ec83fc2 | 393 | |
673887d5 | 394 | echo $out: stmp-dirs |
8e9bf55e RH |
395 | echo " $make_compile" \\ |
396 | echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\ | |
6c80a645 | 397 | echo ' MULTILIB_CFLAGS="'$flags'"' T=$t $targ |
3ec83fc2 RH |
398 | |
399 | all="$all $out" | |
3ec83fc2 RH |
400 | done |
401 | done | |
402 | ||
403 | echo "" | |
404 | echo "all: $all" | |
2bbea3a6 RH |
405 | |
406 | echo "" | |
407 | echo "install: $all" | |
408 | for ml in $MULTILIBS; do | |
409 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
410 | if [ $dir != . ]; then | |
411 | ldir='$(libsubdir)'/$dir | |
412 | echo " if [ -d $ldir ]; then true; else mkdir $ldir; chmod a+rx $ldir; fi;" | |
413 | else | |
414 | ldir='$(libsubdir)' | |
415 | fi | |
416 | echo ' $(INSTALL_DATA)' ${dir}/libgcc.a ${ldir}/ | |
417 | echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc.a | |
418 | ||
419 | if [ "$SHLIB_LINK" ]; then | |
275b60d6 JJ |
420 | echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/ |
421 | echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a | |
422 | ||
2bbea3a6 RH |
423 | if [ -z "$SHLIB_MULTILIB" ]; then |
424 | if [ "$dir" = "." ]; then | |
425 | shlib_base_name="libgcc_s"; | |
426 | else | |
427 | shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g` | |
428 | fi | |
429 | echo " $SHLIB_INSTALL" \ | |
430 | | sed -e "s%@shlib_base_name@%$shlib_base_name%g" | |
431 | elif [ "$SHLIB_MULTILIB" = "$dir" ]; then | |
432 | shlib_base_name="libgcc_s"; | |
433 | echo " $SHLIB_INSTALL" \ | |
434 | | sed -e "s%@shlib_base_name@%$shlib_base_name%g" | |
435 | fi | |
436 | fi | |
437 | done | |
438 | for f in $EXTRA_MULTILIB_PARTS; do | |
439 | for ml in $MULTILIBS; do | |
440 | dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` | |
441 | if [ $dir != . ]; then | |
442 | out=${dir}/$f | |
443 | ldir='$(libsubdir)'/$dir | |
444 | else | |
445 | out=$f | |
446 | ldir='$(libsubdir)' | |
447 | fi | |
448 | echo ' $(INSTALL_DATA)' $out $ldir/ | |
449 | done | |
450 | done |