2 # Construct makefile for libgcc.
3 # Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
5 # This file is part of GCC.
7 # Arguments, taken from the environment, since there are a lot
8 # of them, and positional args becomes quite ugly.
27 # EXTRA_MULTILIB_PARTS
38 # Make needs VPATH to be literal.
39 echo 'srcdir = @srcdir@'
40 echo 'VPATH = @srcdir@'
46 # Library members defined in libgcc2.c.
47 lib2funcs='_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3
48 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi
49 _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi
50 _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf _clear_cache
51 _enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3
52 _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors
53 _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab
54 _popcountsi2 _popcountdi2 _paritysi2 _paritydi2'
56 # Disable SHLIB_LINK if shared libgcc not enabled.
57 if [ "@enable_shared@" = "no" ]; then
63 gcc_compile='$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES)'
64 make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
65 AR_FOR_TARGET="$(AR_FOR_TARGET)" \
66 AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \
67 AR_EXTRACT_FOR_TARGET="$(AR_EXTRACT_FOR_TARGET)" \
68 AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \
69 CC="$(CC)" CFLAGS="$(CFLAGS)" \
70 BUILD_PREFIX="$(BUILD_PREFIX)" \
71 BUILD_PREFIX_1="$(BUILD_PREFIX_1)" \
72 LANGUAGES="$(LANGUAGES)"'
74 # Generic dependencies for libgcc
75 libgcc_dep='$(CONFIG_H) coretypes.h $(TM_H) $(MACHMODE_H) longlong.h config.status stmp-int-hdrs tsystem.h'
77 # Dependencies for libgcc2.c
78 libgcc2_c_dep='stmp-dirs $(srcdir)/libgcc2.c gbl-ctors.h'" $libgcc_dep"
80 # Dependencies for libgcov.c
81 libgcov_c_dep='stmp-dirs $(srcdir)/libgcov.c $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h'" $libgcc_dep"
83 # Dependencies for fp-bit.c
84 fpbit_c_dep='stmp-dirs config.status tsystem.h'
87 # Build libgcc1 components.
92 for name in $LIB1ASMFUNCS; do
93 for ml in $MULTILIBS; do
94 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
95 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
96 out="libgcc/${dir}/${name}${objext}"
98 echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
99 echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \
100 -c '$(srcdir)/config/$(LIB1ASMSRC)' -o $out
102 # Remove any objects from lib2funcs and LIB2_DIVMOD_FUNCS that are
103 # defined as optimized assembly code in LIB1ASMFUNCS.
104 lib2funcs=`echo $lib2funcs | sed -e 's/^'$name' //' \
105 -e 's/ '$name' / /' \
107 LIB2_DIVMOD_FUNCS=`echo $LIB2_DIVMOD_FUNCS | sed -e 's/^'$name' //' \
108 -e 's/ '$name' / /' \
111 libgcc1_objs="$libgcc1_objs ${name}${objext}"
115 # Build libgcc2 components.
122 for name in $lib2funcs; do
123 for ml in $MULTILIBS; do
124 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
125 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
126 out="libgcc/${dir}/${name}${objext}"
128 echo $out: $libgcc2_c_dep
129 echo " $gcc_compile" $flags -DL$name \
130 -c '$(srcdir)/libgcc2.c' -o $out
132 libgcc2_objs="$libgcc2_objs ${name}${objext}"
135 for name in $LIB2FUNCS_ST; do
136 for ml in $MULTILIBS; do
137 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
138 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
139 out="libgcc/${dir}/${name}${objext}"
141 echo $out: $libgcc2_c_dep
142 echo " $gcc_compile" $flags -DL$name \
143 -c '$(srcdir)/libgcc2.c' -o $out
145 libgcc2_st_objs="$libgcc2_st_objs ${name}${objext}"
148 for name in $LIB2_DIVMOD_FUNCS; do
149 for ml in $MULTILIBS; do
150 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
151 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
152 out="libgcc/${dir}/${name}${objext}"
154 echo $out: $libgcc2_c_dep
155 echo " $gcc_compile" $flags -DL$name \
156 -c '$(srcdir)/libgcc2.c' -fexceptions -fnon-call-exceptions -o $out
158 libgcc2_objs="$libgcc2_objs ${name}${objext}"
161 if [ "$FPBIT" ]; then
162 for name in $FPBIT_FUNCS; do
163 for ml in $MULTILIBS; do
164 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
165 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
166 out="libgcc/${dir}/${name}${objext}"
168 echo $out: $FPBIT $fpbit_c_dep
169 echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
172 libgcc2_objs="$libgcc2_objs ${name}${objext}"
176 if [ "$DPBIT" ]; then
177 for name in $DPBIT_FUNCS; do
178 for ml in $MULTILIBS; do
179 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
180 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
181 out="libgcc/${dir}/${name}${objext}"
183 echo $out: $DPBIT $fpbit_c_dep
184 echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
187 libgcc2_objs="$libgcc2_objs ${name}${objext}"
191 if [ "$TPBIT" ]; then
192 for name in $TPBIT_FUNCS; do
193 for ml in $MULTILIBS; do
194 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
195 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
196 out="libgcc/${dir}/${name}${objext}"
198 echo $out: $TPBIT $fpbit_c_dep
199 echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
202 libgcc2_objs="$libgcc2_objs ${name}${objext}"
206 for file in $LIB2ADD; do
207 name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
208 oname=`echo $name | sed -e 's,.*/,,'`
210 for ml in $MULTILIBS; do
211 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
212 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
213 out="libgcc/${dir}/${oname}${objext}"
214 if [ ${name}.asm = ${file} ]; then
215 flags="$flags -xassembler-with-cpp"
218 echo $out: stmp-dirs $file $libgcc_dep
219 echo " $gcc_compile" $flags -c $file -o $out
221 libgcc2_objs="$libgcc2_objs ${oname}${objext}"
224 for file in $LIB2ADDEH; do
225 name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
226 oname=`echo $name | sed -e 's,.*/,,'`
228 for ml in $MULTILIBS; do
229 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
230 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
231 out="libgcc/${dir}/${oname}${objext}"
232 if [ ${name}.asm = ${file} ]; then
233 flags="$flags -xassembler-with-cpp"
236 echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
237 echo " $gcc_compile" $flags -fexceptions -c $file -o $out
239 if [ "$SHLIB_LINK" ]; then
240 libgcc2_eh_objs="$libgcc2_eh_objs ${oname}${objext}"
242 libgcc2_objs="$libgcc2_objs ${oname}${objext}"
246 for file in $LIB2ADD_ST; do
247 name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
248 oname=`echo $name | sed -e 's,.*/,,'`
250 for ml in $MULTILIBS; do
251 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
252 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
253 out="libgcc/${dir}/${oname}${objext}"
254 if [ ${name}.asm = ${file} ]; then
255 flags="$flags -xassembler-with-cpp"
258 echo $out: stmp-dirs $file $libgcc_dep
259 echo " $gcc_compile" $flags -c $file -o $out
261 libgcc2_st_objs="$libgcc2_st_objs ${oname}${objext}"
265 # build libgcov components
270 for name in $LIBGCOV; do
271 for ml in $MULTILIBS; do
272 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
273 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
274 out="libgcc/${dir}/${name}${objext}"
276 echo $out: $libgcov_c_dep
277 echo " $gcc_compile" $flags -DL$name \
278 -c '$(srcdir)/libgcov.c' -o $out
280 libgcov_objs="$libgcov_objs ${name}${objext}"
286 for ml in $MULTILIBS; do
287 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
288 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
292 for o in $libgcc1_objs; do
293 libgcc_objs="$libgcc_objs libgcc/${dir}/$o"
295 for o in $libgcc2_objs; do
296 libgcc_objs="$libgcc_objs libgcc/${dir}/$o"
298 for o in $libgcc2_eh_objs; do
299 libgcc_eh_objs="$libgcc_eh_objs libgcc/${dir}/$o"
301 libgcc_sh_objs="$libgcc_objs $libgcc_eh_objs"
302 shlib_deps="$libgcc_sh_objs"
305 for o in $libgcc2_st_objs; do
306 libgcc_st_objs="$libgcc_st_objs libgcc/${dir}/$o"
310 for o in $libgcov_objs; do
311 libgcov_a_objs="$libgcov_a_objs libgcc/${dir}/$o"
314 if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" ]; then
315 mapfile="libgcc/${dir}/libgcc.map"
316 tmpmapfile="libgcc/${dir}/tmp-libgcc.map"
317 # This uses a here document instead of echos because some shells
318 # will convert the \1 in the second sed command to a control-A.
319 # The behavior of here documents is more predictable.
322 ${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs
323 { \$(NM_FOR_TARGET) $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; \\
324 cat $SHLIB_MAPFILES \\
325 | sed -e '/^[ ]*#/d' \\
326 -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \\
327 | $gcc_compile $flags -E -xassembler-with-cpp -; \\
328 } | \$(AWK) -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}
332 shlib_deps="$shlib_deps $mapfile"
334 # Depend on EXTRA_MULTILIB_PARTS, since that's where crtbegin/end
335 # usually are put in a true multilib situation.
336 for f in $EXTRA_MULTILIB_PARTS; do
337 shlib_deps="$shlib_deps $dir/$f"
340 libgcc_a_objs="$libgcc_objs $libgcc_st_objs"
342 if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
345 echo "libgcc/${dir}/stacknote.s: stmp-dirs"
346 echo ' @( echo | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -S -o - -xc - | grep .note.GNU-stack || : ) > $@.tmp'
347 echo ' @mv -f $@.tmp $@'
349 for o in $libgcc_objs $libgcc_st_objs; do
350 # .oS objects will have all non-local symbol definitions .hidden
351 oS=`echo ${o} | sed s~${objext}'$~.oS~g'`
352 echo "${oS}: stmp-dirs libgcc/${dir}/stacknote.s ${o}"
353 # non-GNU nm emits three fields even for undefined and typeless symbols,
354 # so explicitly omit them
355 echo ' ( $(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 && $$2 !~ /^[UN]$$/ { print "\t.hidden", $$3 }'\''; cat libgcc/${dir}/stacknote.s ) | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
356 libgcc_a_objs="${libgcc_a_objs} ${oS}"
360 # Each of these .a files depends on stmp-dirs. It would seem that
361 # this dependency is redundant, since each of the object files
362 # itself depends on stmp-dirs. However, it is possible that there
363 # are in fact no object files. In that case, the stmp-dirs
364 # dependency is required; the directory containing the archive must
365 # exist before the archive itself can be created.
367 echo "${dir}/libgcc.a: stmp-dirs $libgcc_a_objs"
368 echo " -rm -rf ${dir}/libgcc.a"
369 echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_a_objs
370 echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc.a
373 echo "${dir}/libgcov.a: stmp-dirs $libgcov_a_objs"
374 echo " -rm -rf ${dir}/libgcov.a"
375 echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcov.a $libgcov_a_objs
376 echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcov.a
378 if [ "$SHLIB_LINK" ]; then
381 echo "${dir}/libgcc_eh.a: stmp-dirs $libgcc_eh_objs"
382 echo " -rm -rf ${dir}/libgcc_eh.a"
383 echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a $libgcc_eh_objs
384 echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc_eh.a
386 if [ -z "$SHLIB_MULTILIB" ]; then
387 if [ "$dir" = . ]; then
388 shlib_base_name=libgcc_s
390 shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g`
392 shlib_so_name="$shlib_base_name"
395 if [ -n "$MULTILIB_OSDIRNAMES" ]; then
396 if [ "$dir" != . ]; then
397 gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
398 os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
400 gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
401 os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
402 if [ -z "$os_multilib_base" ]; then
403 shlib_so_name=libgcc_s
404 if [ "$os_multilib_dir" != "." ]; then
405 shlib_slibdir_qual="/$os_multilib_dir"
408 shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
409 shlib_slibdir_qual="/$os_multilib_base"
414 echo "${dir}/${shlib_base_name}${SHLIB_EXT}: $shlib_deps"
415 echo " $SHLIB_LINK" \
416 | sed -e "s%@multilib_flags@%$flags%g" \
417 -e "s%@multilib_dir@%$dir%g" \
418 -e "s%@shlib_objs@%$libgcc_sh_objs%g" \
419 -e "s%@shlib_base_name@%$shlib_base_name%g" \
420 -e "s%@shlib_map_file@%$mapfile%g" \
421 -e "s%@shlib_so_name@%$shlib_so_name%g" \
422 -e "s%@shlib_dir@%$shlib_dir%g" \
423 -e "s%@shlib_slibdir_qual@%%g"
424 elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
425 shlib_base_name="libgcc_s";
427 echo "${shlib_base_name}${SHLIB_EXT}: $shlib_deps"
428 echo " $SHLIB_LINK" \
429 | sed -e "s%@multilib_flags@%$flags%g" \
430 -e "s%@multilib_dir@%$dir%g" \
431 -e "s%@shlib_objs@%$libgcc_sh_objs%g" \
432 -e "s%@shlib_base_name@%$shlib_base_name%g" \
433 -e "s%@shlib_map_file@%$mapfile%g" \
434 -e "s%@shlib_so_name@%$shlib_base_name%g" \
435 -e "s%@shlib_dir@%%g" \
436 -e "s%@shlib_slibdir_qual@%%g"
442 for ml in $MULTILIBS; do
443 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
444 if [ $dir != . ]; then
445 dirs="$dirs ${dir} libgcc/${dir}"
449 echo 'libgcc-stage-start:'
450 echo ' for dir in '"${dirs}"'; do \'
451 echo ' if [ -d $(stage)/$$dir ]; then true; else '$mkinstalldirs' $(stage)/$$dir; fi; \'
453 echo ' -for dir in '"${dirs}"'; do \'
454 echo ' mv $$dir/*'"${objext}"' $(stage)/$$dir; \'
455 echo ' test ! -f $$dir/stacknote.s || mv $$dir/stacknote.s $(stage)/$$dir; \'
456 echo ' test ! -f $$dir/libgcc.a || mv $$dir/lib* $(stage)/$$dir; \'
463 for ml in $MULTILIBS; do
464 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
465 if [ $dir != . ]; then
466 dirs="$dirs ${dir} libgcc/${dir}"
468 all="$all ${dir}/libgcc.a ${dir}/libgcov.a"
469 if [ "$SHLIB_LINK" ]; then
470 all="$all ${dir}/libgcc_eh.a"
471 if [ -z "$SHLIB_MULTILIB" ]; then
472 if [ "$dir" = "." ]; then
475 suff=_`echo $dir | sed s,/,_,g`
477 all="$all ${dir}/libgcc_s${suff}${SHLIB_EXT}"
478 elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
479 all="$all libgcc_s${SHLIB_EXT}"
484 echo 'stmp-dirs: force'
485 echo ' for d in '"$dirs"'; do \'
486 echo ' if [ -d $$d ]; then true; else '$mkinstalldirs' $$d; fi; \'
488 echo ' if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi'
490 for f in $EXTRA_MULTILIB_PARTS; do
491 for ml in $MULTILIBS; do
492 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
493 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
496 *) out=$dir/$f ; t=$dir/ ;;
499 # Prevent `make' from interpreting $out as a macro assignment
500 *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;;
505 echo " $make_compile" \\
506 echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
507 echo ' MULTILIB_CFLAGS="'$flags'"' T=$t $targ
518 for ml in $MULTILIBS; do
519 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
520 flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
521 if [ $dir != . ]; then
522 ldir='$(DESTDIR)$(libsubdir)'/$dir
523 echo " if [ -d $ldir ]; then true; else $mkinstalldirs $ldir; chmod a+rx $ldir; fi;"
525 ldir='$(DESTDIR)$(libsubdir)'
527 echo ' $(INSTALL_DATA)' ${dir}/libgcc.a ${ldir}/
528 echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc.a
529 echo ' $(INSTALL_DATA)' ${dir}/libgcov.a ${ldir}/
530 echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcov.a
532 if [ "$SHLIB_LINK" ]; then
533 echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
534 echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
536 if [ -z "$SHLIB_MULTILIB" ]; then
537 if [ "$dir" = . ]; then
538 shlib_base_name=libgcc_s
540 shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g`
542 shlib_so_name="$shlib_base_name"
545 if [ -n "$MULTILIB_OSDIRNAMES" ]; then
546 gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
547 os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
548 if [ "$dir" != . ]; then
551 gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
552 os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
553 if [ -z "$os_multilib_base" ]; then
554 shlib_so_name=libgcc_s
555 if [ "$os_multilib_dir" != "." ]; then
556 shlib_slibdir_qual="/$os_multilib_dir"
559 shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
560 shlib_slibdir_qual="/$os_multilib_base"
563 echo " $SHLIB_INSTALL" \
564 | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
565 -e "s%@shlib_so_name@%$shlib_so_name%g" \
566 -e "s%@shlib_dir@%$shlib_dir%g" \
567 -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
568 elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
569 shlib_base_name="libgcc_s";
570 echo " $SHLIB_INSTALL" \
571 | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
572 -e "s%@shlib_so_name@%$shlib_base_name%g" \
573 -e "s%@shlib_dir@%%g" \
574 -e "s%@shlib_slibdir_qual@%%g"
578 for f in $EXTRA_MULTILIB_PARTS; do
579 for ml in $MULTILIBS; do
580 dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
581 if [ $dir != . ]; then
583 ldir='$(DESTDIR)$(libsubdir)'/$dir
586 ldir='$(DESTDIR)$(libsubdir)'
588 echo ' $(INSTALL_DATA)' $out $ldir/