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