1: 2### this script contains archaic constructs that work with all sh variants ### 3# Glenn Fowler 4# AT&T Research 5# 6# @(#)make.probe (AT&T Research) 2011-06-01 7# 8# C probe for make 9# 10# NOTE: C.probe must be included or .'d here 11# 12 13cc_dll_def=-D_BLD_DLL 14 15probe_ar_arflags="-Xany" 16probe_arflags="-xar" 17probe_ccs="strip size nm ld ar" # longest to shortest 18probe_debug="-g" 19probe_dll="'-G 0' -Wc,dll,exportall,longname,rent -Wc,exportall -dynamic $cc_dll_def" 20probe_export_dynamic="-rdynamic -export-dynamic -Wl,-export-dynamic -Wl,-E -bexpall -force_flat_namespace" 21probe_gcc_optimize="-O2" 22probe_gcc_version="*[Gg][Cc][Cc]*" 23probe_include_local="'-ignore-source-dir -iquote' -iquote -I-" 24probe_ldlazy='-zlazyload -znolazyload -Wl,-zlazyload -Wl,-znolazyload' 25probe_ldlib="LD_LIBRARY_PATH LIBPATH LPATH" 26probe_ldmap="'-Wl,-M' '-Qoption ld -M' '-Wl,-m' '-m'" 27probe_ldorigin="-Wl,-z,origin" 28probe_ldrecord='-zrecord -zignore -Wl,-zrecord -Wl,-zignore' 29probe_ldrunpath="-Wl,-R, -R -Wl,-rpath, -L" 30probe_ldstrip="'-s -mr' -Wl,-s" 31probe_lib="a lib" 32probe_lib_append="/usr/lib/pa1.1" 33probe_lib_all_undef="-all -notall -all -none -Bwhole-archive -Bno-whole-archive -whole-archive -no-whole-archive -Wl,-whole-archive -Wl,-no-whole-archive -all_load '' -Wl,-zallextract -Wl,-zdefaultextract +forceload +noforceload" 34probe_lib_multiple="-Wl,-zmuldefs" 35probe_libdir="shlib lib" 36probe_nmflags="'' -p -B" 37probe_optimize="-O" 38probe_pic="-Kpic -KPIC -fpic -fPIC -pic -PIC +z +Z" 39probe_no_protect="'-fno-stack-protector -fno-stack-protector-all' -GS-" 40probe_readonly="-R -Krodata -xMerge -Wa,-r" 41probe_shared="'' -G -b -c -shared -Wl,dll" 42probe_shared_name="-Wl,-soname= -h" 43probe_shared_nostart="-nostartfiles" 44probe_shared_registry='"-update_registry $probe_shared_registry_file"' 45probe_shared_registry_file='registry.ld' 46probe_shared_registry_path="\$(LIBDIR)/$probe_shared_registry_file" 47probe_strict="'-ansi -pedantic' '-ansi -strict' -strict -ansi" 48probe_stripflags="'-f -s' -f -s" 49probe_unresolved="'-expect_unresolved \"*\"'" 50probe_warn="-Wall -fullwarn -w3 '-A -A' +w1" 51 52echo '#pragma pp:version' > libpp.$src 53echo '#define dDflag on' > dDflag.$src 54echo 'int main(){return 0;}' > doti.$src 55echo 'int code(){return 0;} int main(){return code();}' > export.$src 56echo '#include <stdio.h>' > imstd.$src 57echo '#include "_i_.h"' > imusr.$src 58echo 'int x;' > _i_.h 59mkdir im 60echo '(' > im/stdio.h 61echo '#include "implc_x.h" 62int main(){f(1);return 0;}' > implc.$src 63echo 'template <class T> void f(T){}' > implc_x.$src 64echo 'template <class T> void f(T);' > implc_x.h 65echo 'extern int NotalL(){return(0);}' > notall.$src 66echo '#include <stdio.h> 67extern int i; 68int i = 1; 69extern int f(){return(!i);} 70int main(){FILE* fp=stdin;return(f());}' > pic.$src 71echo 'class x {int n;} m;' > plusplus.$src 72echo 'int prefix(){return 0;}' > prefix.$src 73echo 'template<class T> int gt(T a, T b); 74template<class T> int gt(T a, T b) { return a > b; } 75int main () { return gt(2,1); }' > ptr.$src 76echo 'int main(){return 0;}' > require.$src 77echo '#if mips && !sgi || __CYGWIN__ 78( /* some systems choke on this probe */ 79#else 80#if test_const 81#define CONST const 82#else 83#define CONST 84#endif 85CONST char x[]={1,2,3,4,5,6,7,8,9,0}; 86int main(){*(char*)x=0; return x[0];} 87#endif' > readonly.$src 88# NOTE: sfclose() defined on uwin, not defined on all other systems 89echo 'extern int sfclose(); extern int ShareD(){return(sfclose());}' > shared.$src 90echo '#define g(a,b) a ## b 91volatile int a; 92const int g(x,y)=1; 93extern int c(int);' > stdc.$src 94echo 'extern int f(); int main() { return f(); }' > sovmain.$src 95echo 'int f() { return 0; }' > sovlib.$src 96echo '#include <stdio.h> 97int i; 98int main(){int j;j = i * 10;return j;}' > strip.$src 99echo 'template <class T> void f(T){} 100int main(){f(1);return 0;}' > toucho.$src 101echo '#if defined(__STDC__) || defined(__cplusplus) 102extern type call(int); 103#endif 104int main() {call(0);return(0);}' > tstlib.$src 105echo 'int main(){return 0;}' > warn.$src 106echo 'int f(){return 0;}' > warn1.$src 107echo 'int f(){}' > warn2.$src 108echo 'int f(){int i; return 0;}' > warn3.$src 109echo 'int f(){int i; return i;}' > warn4.$src 110echo 'int f(){return g();}' > warn5.$src 111warn_enum="1 2 3 4 5" 112 113chmod -w *.$src 114 115ar_arflags= 116arflags= 117cc_dll= 118cc_pic= 119cc_PIC= 120dDflag= 121debug= 122dialect= 123dll_dir='$(LIBDIR)' 124dll_libraries= 125dll_variants= 126doti= 127exectype= 128export_dynamic= 129gnu= 130implicitc= 131include_local= 132lddynamic= 133ldlazy= 134ldnolazy= 135ldnorecord= 136ldorigin= 137ldrecord= 138ldrunpath= 139ldscript= 140ldstatic= 141ldstrip= 142Lflag= 143lib_dll= 144lib_all= 145lib_undef= 146libpath= 147libpp= 148makeoptions= 149nmedit= 150nmflags= 151no_protect= 152optimize= 153plusplus= 154prefix_archive=lib 155prefix_dynamic= 156prefix_shared=lib 157ptrcopy= 158ptrimplicit= 159ptrmkdir= 160readonly= 161repository= 162require= 163runpath= 164shared= 165shared_name= 166shared_registry= 167shellmagic= 168soversion= 169stdc= 170strict= 171stripflags= 172symprefix= 173toucho= 174warn= 175 176set $probe_lib 177lib=$1 178 179d= 180for f in $stdinclude $usrinclude 181do case $f in 182 -I*) ;; 183 *) d="$d $f" ;; 184 esac 185done 186stdinclude=$d 187 188set x $cc 189cc_dir=`echo $2 | sed -e 's,/*[^/]*$,,'` 190for c in $probe_ccs 191do if $executable $cc_dir/$c 192 then x=$cc_dir/$c 193 else x=$c 194 fi 195 eval $c='$x' 196done 197ld_dir= 198rm -f doti.$obj 199if $cc -c doti.$src 200then eval set x $probe_verbose 201 shift 202 for o 203 do $cc $o doti.$obj 204 $cc $o doti.$obj -lF0oB@r 205 done 2>&1 | sed -e 's/^[+ ]*//' -e 's/[ ].*//' -e '/^\//!d' -e 's/:$//' -e '/ld[a-zA-Z0-9.]*$/!d' -e 's,///*,/,g' > t 206 for i in `cat t` 207 do rm -f t.$obj 208 if test -x $i && $i -r -o t.$obj doti.$obj && test -f t.$obj 209 then case $ld in 210 ld) ld=$i ;; 211 esac 212 ld_dir=`echo $i | sed 's,/[^/]*$,,'` 213 break 214 fi 215 done 216fi 217IFS=: 218set x $PATH 219IFS=$ifs 220path=$* 221m= 222for c in $probe_ccs 223do eval o='$'$c 224 case $o in 225 $c) ;; 226 *) continue ;; 227 esac 228 C='${c}' 229 for x in $cc_dir $ld_dir 230 do cd $x 231 for p in "${C}" "${C}[!a-zA-Z]*" "*[!a-zA-Z]${C}" "*[!a-zA-Z]${C}[!a-zA-Z]*" 232 do eval set x $p 233 case $# in 234 2) if $executable $2 235 then case $2 in 236 *$c*$c*);; 237 *) m=$p 238 break 3 239 ;; 240 esac 241 fi 242 ;; 243 esac 244 done 245 done 246done 247cd $tmpdir 248for c in $probe_ccs 249do eval o='$'$c 250 case $o in 251 $c) ;; 252 *) continue ;; 253 esac 254 for x in $cc_dir $ld_dir 255 do if $executable $x/$c 256 then eval $c='$x/$c' 257 continue 2 258 fi 259 case $m in 260 ?*) eval set x $x/$m 261 case $# in 262 2) if $executable $2 263 then eval $c='$2' 264 continue 2 265 fi 266 ;; 267 esac 268 ;; 269 esac 270 done 271 for x in $path 272 do if $executable $x/$c 273 then eval $c='$x/$c' 274 break 275 fi 276 done 277done 278dld=$cc 279 280rm -f dynamic.$exe 281if $cc -o dynamic.$exe dynamic.$obj && $executable dynamic.$exe 282then mkdir mylib 283 echo > mylib/libc.$lib 284 eval set x $probe_ldlib 285 while : 286 do shift 287 case $# in 288 0) break ;; 289 esac 290 rm -f dynamic.$exe 291 if eval $1=./mylib '$'cc -o dynamic.$exe dynamic.$obj 292 then : 293 else libpath=$1 294 break 295 fi 296 done 297fi 298test `$cc -E libpp.$src | grep -c '^#pragma pp:version "libpp '` -eq 1 && libpp=1 299$cc -E doti.$src > doti.i && $cc -c doti.i && test -s doti.$obj && doti=1 300if $cc -c imusr.$src 301then eval set x $probe_include_local 302 while : 303 do shift 304 case $# in 305 0) break ;; 306 esac 307 if $cc -c $1 imusr.$src 308 then : "$1 should skip \"_i_.h\" in ." 309 elif $cc -c imstd.$src 310 then if $cc -c -Iim imstd.$src 311 then : '-Idir should find <stdio.h> in dir' 312 elif $cc -c $1 -Iim imstd.$src 313 then : "$1 -Idir should find <stdio.h> in dir" 314 elif $cc -c -Iim $1 imstd.$src 315 then include_local=$1 316 break 317 else : "-Idir $1 should skip <stdio.h> in dir" 318 fi 319 else : should find stdio.h 320 fi 321 done 322else : 'should find "_i_.h" in .' 323fi 324 325if $cc -c pic.$src 2>e 326then e=`wc -l e` 327 s=`$size pic.$obj; wc pic.$obj` 328 eval set x $probe_pic 329 shift 330 while : 331 do case $# in 332 0|1) break ;; 333 esac 334 pic=$1 335 shift 336 PIC=$1 337 shift 338 rm -f pic.$obj 339 $cc $pic -c pic.$src 2>e && test -f pic.$obj || continue 340 $cc $pic -o pic.$exe pic.$obj && test -f pic.$exe || { 341 rm -f pic.$exe 342 $cc -o pic.$exe pic.$obj && test -f pic.$exe && continue 343 } 344 case `wc -l e` in 345 $e) ;; 346 *) continue ;; 347 esac 348 case $pic in 349 ???*) m=`echo " $pic" | sed -e 's/^ [-+]//g' -e 's/./-& /g' -e 's/[-+] //g'` 350 rm -f pic.$obj pic1.$exe 351 if $cc $m -c pic.$src 2>e && test -f pic.$obj && 352 $cc -o pic1.$exe pic.$obj && test -f pic1.$exe 353 then case `wc -l e` in 354 $e) cc_pic=$m 355 break 356 ;; 357 esac 358 fi 359 cc_pic=$pic 360 break 361 ;; 362 *) case `$size pic.$obj; wc pic.$obj` in 363 $s) ;; 364 *) cc_pic=$pic 365 break 366 ;; 367 esac 368 ;; 369 esac 370 done 371 # this works around gcc 2.95 sun4 -fpic a.out core dump after exit 372 case $hosted:$cc_pic in 373 1:?*) if ./pic.$exe 374 then # this catches lynxos.ppc gcc that dumps -fpic and not -mshared 375 echo 'static int* f() { static int v; return &v; } 376int main() { f(); return 0; }' > picok.$src 377 $cc $cc_pic -o picok.$exe picok.$src && ./picok.$exe || cc_pic= 378 else cc_pic= 379 fi 380 ;; 381 esac 382 case $cc_pic in 383 ?*) rm -f pic.$obj 384 if $cc $PIC -c pic.$src 2>e && test -f pic.$obj 385 then cc_PIC=$PIC 386 else cc_PIC=$cc_pic 387 fi 388 ;; 389 *) eval set x $probe_dll 390 while : 391 do shift 392 case $# in 393 0) break ;; 394 esac 395 rm -f pic.$obj pic.$exe 396 $cc $1 -c pic.$src 2>e && test -f pic.$obj || continue 397 $cc $1 -o pic.$exe pic.$obj && test -f pic.$exe || { 398 rm -f pic.$exe 399 $cc -o pic.$exe pic.$obj && test -f pic.$exe && continue 400 } 401 case $1 in 402 -Wc,*exportall*) 403 # get specific since sgi gets this far too 404 rm -f pic.$exe pic.x 405 $cc -Wl,dll -o pic.$exe pic.$obj || continue 406 test -f pic.$exe || continue 407 test -f pic.x || continue 408 cc_dll="-D_SHARE_EXT_VARS $1" 409 so=.x 410 sd=.dll 411 dld=$cc 412 shared=-Wl,dll 413 prefix_shared= 414 probe_sd= 415 probe_shared= 416 #unused# lddynamic=-Bdynamic 417 #unused# ldstatic=-Bstatic 418 lib_dll=SYMBOL 419 break 420 ;; 421 esac 422 case `wc -l e` in 423 $e) cc_dll=$1 424 break 425 ;; 426 esac 427 done 428 ;; 429 esac 430fi 431 432$cc -c plusplus.$src && plusplus=1 433$cc -E -dD dDflag.$src > t 434case `grep '#define[ ][ ]*dDflag[ ][ ]*on' t` in 435?*) dDflag=1 ;; 436esac 437case `grep '#define.*_GNUC_' t` in 438?*) gnu=1 ;; 439esac 440case $plusplus in 441"") $cc -c stdc.$src && stdc=1 ;; 442*) mkdir ptr 443 cd ptr 444 $cc -c ../ptr.$src & 445 NFS_locks_are_botched=$! 446 cd .. 447 if $cc -c require.$src && $cc require.$obj 448 then set x `$cc require.$obj 2>&1` 449 d= 450 while : 451 do shift 452 case $# in 453 0) break ;; 454 esac 455 case $1 in 456 -l*) d="$d $1" ;; 457 esac 458 done 459 for f in ++ 460 do if $cc require.$obj -l$f 461 then set x `$cc require.$obj -l$f 2>&1` 462 r= 463 while : 464 do shift 465 case $# in 466 0) break ;; 467 esac 468 case $1 in 469 -l*) case " $d $r " in 470 *" "$1" "*) ;; 471 *) r="$r $1" ;; 472 esac 473 esac 474 done 475 case $r in 476 ?*) require="$require $f" 477 echo '' $r > req.$f 478 ;; 479 esac 480 fi 481 done 482 fi 483 cd ptr 484 for i in * 485 do if test -d $i 486 then repository=$i 487 break 488 fi 489 done 490 cd .. 491 kill -9 $NFS_locks_are_botched 492 rm -rf ptr 493 case $repository in 494 *?) mkdir ptr 495 cd ptr 496 i=PTR 497 case $repository in 498 $i) i=$i$i ;; 499 esac 500 $cc -ptr$i -c ../ptr.$src & 501 NFS_locks_are_botched=$! 502 cd .. 503 sleep 5 504 if test -d ptr/$i/$repository 505 then ptrimplicit=1 506 fi 507 kill -9 $NFS_locks_are_botched 508 rm -rf ptr 509 ;; 510 esac 511 $cc -o implc implc.$src && $executable implc && implicitc=1 512 if $cc -c toucho.$src && test -f toucho.$obj 513 then o=`ls -l toucho.$obj` 514 if $cc -o toucho toucho.$obj && $executable toucho 515 then n=`ls -l touch.$obj` 516 case $n in 517 "$o") ;; 518 *) toucho=1 ;; 519 esac 520 fi 521 fi 522 ;; 523esac 524 525if $cc -c pic.$src 526then eval set x $probe_nmflags 527 while : 528 do shift 529 case $# in 530 0) break ;; 531 esac 532 case `$nm $1 pic.$obj | grep -c '[0123456789][ ][ ]*T[ ][ ]*[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]'` in 533 0) ;; 534 *) nmflags=$1 535 break 536 ;; 537 esac 538 done 539 case $# in 540 0) case `$nm -gh pic.$obj | grep -c '|\.*[TtDdBbC][EeAaSsOo][XxTtSsMm]'` in 541 0) ;; 542 *) nmflags=-gh 543 nmedit="-e '/\.*[TtDdBbC][EeAaSsOo][XxTtSsMm]/!d' -e 's/[| ].*//'" 544 ;; 545 esac 546 ;; 547 *) nmedit="-e '/[ ]T[ ][ ]*[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]/!d' -e 's/.*[ ]T[ ][ ]*//'" 548 ;; 549 esac 550fi 551 552if $cc -c doti.$src 553then eval set x $probe_stripflags 554 while : 555 do shift 556 case $# in 557 0) break ;; 558 esac 559 if $strip $1 doti.$obj 560 then stripflags=$1 561 break 562 fi 563 done 564fi 565 566rm -f export.$obj export.exe 567if $cc -c export.$src 568then lm= 569 if $cc -o export.exe export.$obj -lm 2>e && lm=-lm || 570 $cc -o export.exe export.$obj 2>e 571 then z=`wc -c < export.exe; $size export.exe 2>/dev/null` 572 eval set x $probe_export_dynamic 573 while : 574 do shift 575 case $# in 576 0) break ;; 577 esac 578 rm -f export.exe 579 if $cc -o export.exe $1 export.$obj $lm 2>f && $executable export.exe 580 then y=`wc -c < export.exe; $size export.exe 2>/dev/null` 581 case $y in 582 $z) ;; 583 *) if cmp -s e f 584 then export_dynamic=$1 585 break 586 fi 587 ;; 588 esac 589 fi 590 done 591 fi 592fi 593rm -f export.$obj export.exe 594 595rm -f strip.exe 596if $cc -o strip.exe strip.$src 597then z=`wc -c < strip.exe` 598 eval set x $probe_ldstrip 599 while : 600 do shift 601 case $# in 602 0) break ;; 603 esac 604 rm -f strip.exe 605 if $cc -o strip.exe $1 strip.$src 606 then case `wc -c < strip.exe` in 607 $z) ;; 608 *) ldstrip=$1 609 break 610 ;; 611 esac 612 fi 613 done 614fi 615 616rm -f strip.exe strip.$obj 617if $cc -c strip.$src && $cc -o strip.exe strip.$obj 2>e 618then eval set x x $probe_ldlazy 619 while : 620 do shift 621 shift 622 case $# in 623 0) break ;; 624 esac 625 rm -f strip.$exe 626 $cc -o strip.$exe $1 strip.$obj $2 2>f && test -f strip.$exe || continue 627 cmp -s e f || continue 628 ldlazy=$1 629 ldnolazy=$2 630 break 631 done 632 eval set x x $probe_ldrecord 633 while : 634 do shift 635 shift 636 case $# in 637 0) break ;; 638 esac 639 rm -f strip.$exe 640 $cc -o strip.$exe $1 strip.$obj $2 2>f && test -f strip.$exe || continue 641 cmp -s e f || continue 642 ldrecord=$1 643 ldnorecord=$2 644 break 645 done 646fi 647 648case $cc_dll:$cc_pic:$so:$dynamic:$static in 649::::|$cc_dll_def::::) 650 : last chance dynamic checks 651 while : 652 do 653 echo '__declspec(dllexport) int fun() { return 0; }' > exp.$src 654 if $cc -c $cc_dll_def exp.$src 655 then rm -f xxx.dll xxx.lib 656 if $cc -shared -Wl,--enable-auto-image-base -Wl,--out-implib=xxx.lib -o xxx.dll exp.$obj && 657 test -f xxx.lib -a -f xxx.dll 658 then 659 : cygwin 660 cc_dll=$cc_dll_def 661 dll_dir='$(BINDIR)' 662 sd=.dll 663 so=.dll.a 664 ldscript=".def .exp .ign .res" 665 lib_dll=option 666 lib_all=-Wl,-whole-archive 667 lib_undef=-Wl,-no-whole-archive 668 dld=$cc 669 shared='-shared -Wl,--enable-auto-image-base -Wl,--out-implib=$(<:N=*'$so')' 670 prefix_dynamic=cyg 671 prefix_shared=lib 672 break 673 fi 674 fi 675 break 676 done 677 ;; 678*) if $cc -c $cc_dll $cc_pic shared.$src && $cc -c $cc_dll $cc_pic notall.$src 679 then for xx in "$cc" "$ld" 680 do eval set x $probe_shared 681 while : 682 do shift 683 case $# in 684 0) break ;; 685 esac 686 rm -f xxx$dll 687 # UNDENT ... 688 689 if $xx $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll 690 then if test -s e && egrep -i 'unknown|invalid|option' e > /dev/null 691 then continue 692 fi 693 case `PATH=/bin:/usr/bin:$PATH file xxx$dll` in 694 *lib*|*obj*|*shared*) 695 ;; 696 "") $executable xxx$dll || continue 697 ;; 698 *ELF*|*elf*) 699 $executable xxx$dll || continue 700 case `strings xxx$dll | sed -e 's,.*[ |],,' | sort -u | egrep -i '^([._](dynamic|dynstr|dynsym))$'` in 701 [012]) continue ;; 702 esac 703 ;; 704 *archive*not*stripped*|*data*dynamic*not*stripped*) 705 $executable xxx$dll || continue 706 ;; 707 *) continue 708 ;; 709 esac 710 dld=$xx 711 shared=$1 712 # does -nostartfiles make sense for C? 713 case $plusplus in 714 '') z=`wc -c < xxx$dll` 715 eval set x $probe_shared_nostart 716 while : 717 do shift 718 case $# in 719 0) break ;; 720 esac 721 rm -f xxx$dll 722 if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll 723 then case `wc -c < xxx$dll` in 724 $z) ;; 725 *) if test -s e 726 then case `cat e` in 727 *[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*) 728 continue 729 ;; 730 esac 731 fi 732 case $shared in 733 '') shared=$1 ;; 734 *) shared="$shared $1" ;; 735 esac 736 break 737 ;; 738 esac 739 fi 740 done 741 ;; 742 esac 743 case $cc_dll in 744 "") cc_dll=$cc_dll_def ;; 745 esac 746 eval set x x $probe_sd 747 while : 748 do shift 749 shift 750 case $# in 751 [01]) break ;; 752 esac 753 rm -f xxx xxx$1 xxx$2 754 if $dld $shared -o xxx shared.$obj 2>e 755 then if test -f xxx$1 -a \( -f xxx$2 -o "$cc_dll" = "$cc_dll_def" \) 756 then sd=$1 757 so=$2 758 lddynamic=-Bdynamic 759 ldstatic=-Bstatic 760 break 2 761 elif test -f xxx -a -f xxx$2 762 then sd=$1 763 so=$2 764 break 2 765 else case $so in 766 '') so=$1 ;; 767 esac 768 break 769 fi 770 fi 771 done 772 rm -f libxxx.$lib 773 $ar cr libxxx.$lib shared.$obj 774 ranlib libxxx.$lib 775 eval set x x $probe_lib_all_undef 776 rm -f xxx$dll 777 if $dld $shared -o xxx$dll libxxx.$lib && test -r xxx$dll 778 then if $nm $nmflags xxx$dll | grep ShareD 779 then lib_dll=OPTION 780 set x x 781 fi 782 fi 783 while : 784 do shift 785 shift 786 case $# in 787 0|1) break ;; 788 esac 789 rm -f xxx$dll 790 if $dld $shared -o xxx$dll $1 libxxx.$lib $2 && test -r xxx$dll 791 then if $nm $nmflags xxx$dll | grep ShareD 792 then lib_dll=option 793 lib_all=$1 794 lib_undef=$2 795 break 796 fi 797 fi 798 case $2 in 799 ?*) if $dld $shared -o xxx$dll $1 libxxx.$lib && test -r xxx$dll 800 then if $nm $nmflags xxx$dll | grep ShareD 801 then lib_dll=option 802 lib_all=$1 803 break 804 fi 805 fi 806 ;; 807 esac 808 done 809 case $lib_dll in 810 OPTION) lib_dll=option 811 ;; 812 option) case $lib_undef in 813 "") rm -f libyyy.$lib 814 $ar cr libyyy.$lib notall.$obj 815 ranlib libyyy.$lib 816 $cc -c prefix.$src 817 eval set x x $probe_lib_all_undef 818 while : 819 do shift 820 shift 821 case $# in 822 0|1) break ;; 823 esac 824 rm -f xxx$dll 825 if $dld $shared -o xxx$dll prefix.$obj $lib_all libxxx.$lib $2 libyyy.$lib && test -r xxx$dll 826 then rm -f t 827 $nm $nmflags xxx$dll > t 828 case `grep -c ShareD t`:`grep -c NotalL t` in 829 0:*) ;; 830 *:0) lib_undef=$2 831 break 832 ;; 833 esac 834 fi 835 done 836 ;; 837 esac 838 case $lib_undef in 839 "") eval set x $probe_lib_multiple 840 rm -f libyyy.$lib 841 cp libxxx.$lib libyyy.$lib 842 rm -f xxx$dll 843 if $dld $shared -o xxx$dll prefix.$obj $lib_all libxxx.$lib libyyy.$lib && test -r xxx$dll 844 then : 845 else while : 846 do shift 847 case $# in 848 0) break ;; 849 esac 850 rm -f xxx$dll 851 if $dld $shared -o xxx$dll prefix.$obj $lib_all $1 libxxx.$lib libyyy.$lib && test -r xxx$dll 852 then rm -f t 853 $nm $nmflags xxx$dll > t 854 case `grep -c ShareD t` in 855 0) ;; 856 *) lib_all="$lib_all $1" 857 break 858 ;; 859 esac 860 fi 861 done 862 fi 863 lib_dll=symbol 864 ;; 865 esac 866 ;; 867 *) lib_dll=symbol 868 ;; 869 esac 870 case `cat e` in 871 ?*) eval set x $probe_unresolved 872 while : 873 do shift 874 case $# in 875 0) break ;; 876 esac 877 rm -f xxx$dll 878 if eval '$dld $shared' $1 '-o xxx$dll shared.$obj 2>e && test -r xxx$dll' 879 then case `cat e` in 880 "") shared="$shared $1"; break ;; 881 esac 882 fi 883 done 884 ;; 885 esac 886 r= 887 eval set x $probe_shared_registry 888 while : 889 do shift 890 r=x$r 891 case $# in 892 0) break ;; 893 esac 894 rm -f xxx$dll 895 if eval \$dld \$shared -o xxx\$dll $1 shared.\$obj && 896 test -r xxx$dll -a -r $probe_shared_registry_file 897 then probe_shared_registry_file='$(CC.SHARED.REGISTRY.PATH)' 898 eval set x $probe_shared_registry 899 i= 900 while : 901 do shift 902 i=x$i 903 case $i in 904 $r) break ;; 905 esac 906 done 907 shared_registry=$1 908 fi 909 done 910 break 2 911 fi 912 913 # ... INDENT 914 done 915 done 916 fi 917 case $so in 918 ?*) rm -f xxx* 919 if $dld $shared -g -o xxx shared.$obj 2>e 920 then set x $probe_sdb 921 while : 922 do shift 923 case $1 in 924 0) break ;; 925 esac 926 if test -f xxx$1 927 then sdb=$1 928 break 929 fi 930 done 931 fi 932 if $cc -c require.$src 933 then p=' 934/usr/proberun/lib:/local/runprobe/lib 935' 936 eval set x $probe_ldrunpath 937 while : 938 do shift 939 case $# in 940 0) break ;; 941 esac 942 rm -f require.exe 943 if $cc -o require.exe $1"$p" require.$obj && 944 grep -c /proberun/ require.exe >/dev/null && 945 grep -c /runprobe/ require.exe > /dev/null 946 then ldrunpath=$1 947 eval set x $probe_ldorigin 948 while : 949 do shift 950 case $# in 951 0) break ;; 952 esac 953 rm -f origin.exe 954 if $cc -o origin.exe $1 $ldrunpath'$ORIGIN' require.$obj 955 then if ./origin.exe > /dev/null 2>&1 956 then ldorigin="$1 $ldrunpath"'\$ORIGIN/$(BINDIR:P=R=$(DLLDIR))' 957 fi 958 break 959 fi 960 done 961 break 962 fi 963 done 964 fi 965 rm -f libxxx$so 966 if $cc -c sovmain.$src && 967 $cc -c $cc_dll $cc_pic sovlib.c && 968 $dld $shared -o libxxx$so sovlib.$obj && 969 $cc -o sovmain.$exe -L. sovmain.$obj -lxxx 970 then rm -f sovmain.$exe 971 mv libxxx$so libxxx$so.5.6 972 if $cc -o sovmain.$exe -L. sovmain.$obj -lxxx 973 then soversion=1 974 fi 975 fi 976 rm -f doti.$obj 977 std64=/lib64 978 lcl64=/usr/local/lib64 979 if test -d $std64 -a -d $lcl64 && $cc -c doti.$src 980 then for i in `cd $lcl64; ls *$so 2>/dev/null | sed 's/lib\([^.]*\).*/\1/'` 981 do if $cc -o runpath.$exe doti.$obj -l$i >/dev/null 2>&1 982 then LD_LIBRARY_PATH= ./runpath.$exe >/dev/null 2>&1 && continue 983 if LD_LIBRARY_PATH=$lcl64 ./runpath.$exe >/dev/null 2>&1 984 then runpath=$lcl64 985 break 986 elif LD_LIBRARY_PATH=$std64 ./runpath.$exe >/dev/null 2>&1 987 then runpath=$std64 988 break 989 elif LD_LIBRARY_PATH=$lcl64:$std64 ./runpath.$exe >/dev/null 2>&1 990 then runpath=$lcl64:$std64 991 break 992 fi 993 fi 994 done 995 fi 996 ;; 997 esac 998 ;; 999esac 1000 1001rm -f shared.$obj 1002if $cc -c shared.$src 1003then eval set x $probe_ar_arflags 1004 while : 1005 do shift 1006 case $# in 1007 0) break ;; 1008 esac 1009 rm -f libxxx.$lib 1010 if $ar $1 r libxxx.$lib shared.$obj && $ar $1 t libxxx.$lib 2>&1 | grep shared.$obj >/dev/null 1011 then ar_arflags=$1 1012 break 1013 fi 1014 done 1015 eval set x $probe_arflags 1016 while : 1017 do shift 1018 case $# in 1019 0) break ;; 1020 esac 1021 rm -f libxxx.$lib 1022 if $cc $1 -o libxxx.$lib shared.$obj && $ar t libxxx.$lib 2>&1 | grep shared.$obj >/dev/null 1023 then arflags=$1 1024 break 1025 fi 1026 done 1027fi 1028 1029case $shared in 1030-G) case $cc_dll in 1031 "") cc_dll=$cc_dll_def ;; 1032 esac 1033 ;; 1034*) case $lib_dll in 1035 symbol) echo 'extern int f(); 1036 int main() { f(); return 0; }' > main.$src 1037 echo '#include <stdio.h> 1038 int f() { printf("hello world"); return 0; }' > member.$src 1039 if $cc -c main.$src && $cc -c member.$src 1040 then echo f > lib.exp 1041 rm -f lib.$obj main.exe 1042 if $ld -o lib.$obj -L: -bexport:lib.exp -berok -bmodtype:SRE -T512 -H512 -lm -lc member.$obj && $cc -o main.exe main.$obj lib.$obj 1043 then dld=$ld 1044 shared='-T512 -H512 -L$(LIBDIR): -berok -bmodtype:SRE' 1045 lib_dll=export 1046 dll_libraries='-lm -lc' 1047 ldscript=.exp 1048 case $cc_dll in 1049 "") cc_dll=$cc_dll_def ;; 1050 esac 1051 case $so in 1052 "") so=.$obj ;; 1053 esac 1054 fi 1055 fi 1056 ;; 1057 esac 1058 ;; 1059esac 1060case $shared in 1061?*) if $cc -c $cc_dll $cc_pic shared.$src 1062 then eval set x $probe_shared_name 1063 while : 1064 do shift 1065 case $# in 1066 0) break ;; 1067 esac 1068 rm -f xxx$dll 1069 if $dld $shared ${1}libfoo.1.2 -o xxx$dll shared.$obj 2>e && test -r xxx$dll 1070 then shared_name=$1 1071 break 1072 fi 1073 done 1074 fi 1075 ;; 1076esac 1077case " $cc_dll " in 1078*" $cc_dll_def "*) 1079 ;; 1080" ") ;; 1081*) cc_dll="$cc_dll_def $cc_dll" 1082 ;; 1083esac 1084 1085case $hosttype in 1086win32.*|cygwin.*|os2.*) 1087 Lflag=1 1088 ;; 1089*) if $cc -c doti.$src 1090 then if $cc -L. doti.$obj -lc >/dev/null 1091 then case $cc_dll in 1092 '') ;; 1093 *) Lflag=1 ;; 1094 esac 1095 fi 1096 fi 1097 ;; 1098esac 1099 1100case $lib_dll in 1101option) case $hosttype in 1102 linux.*) dll_libraries=-lc ;; 1103 esac 1104 ;; 1105SYMBOL) lib_dll=symbol 1106 ;; 1107symbol) echo "#include <stdio.h> 1108extern int fun() 1109{ 1110 puts(\"fun\"); 1111 return 0; 1112}" > dllib.$src 1113 echo "extern int fun(); 1114int 1115main() 1116{ 1117 return fun(); 1118}" > dlmain.$src 1119 pwd=`pwd` 1120 while : 1121 do 1122 if $cc -c $cc_dll $cc_pic dlmain.$src && 1123 $cc -c $cc_dll $cc_pic dllib.$src 1124 then rm -f libxxx$so 1125 if $dld $shared -o libxxx$so dllib.$obj && 1126 chmod 555 libxxx$so 1127 then rm -f dlmain.$exe 1128 if $cc -o dlmain.$exe dlmain.$obj $pwd/libxxx$so && 1129 (./dlmain.$exe) >/dev/null 2>&1 1130 then break 1131 fi 1132 fi 1133 rm -f libxxx$so dlmain.$exe 1134 if $dld $shared -o libxxx$so dllib.$obj -lm -lc && 1135 chmod 555 libxxx$so && 1136 $cc -o dlmain.$exe dlmain.$obj $pwd/libxxx$so && 1137 (./dlmain.$exe) >/dev/null 2>&1 1138 then dll_libraries='-lm -lc' 1139 fi 1140 fi 1141 break 1142 done 1143 # the dll_libraries probe is still lame 1144 case $dll_libraries in 1145 '') case $hosttype in 1146 sco.*|sol*.*|sun*) ;; 1147 *) dll_libraries='-lm -lc' ;; 1148 esac 1149 ;; 1150 esac 1151 ;; 1152esac 1153 1154stdlib= 1155a=`$cc -print-multi-directory 2>/dev/null` 1156case $a in 1157.) ;; 1158*) for d in `$cc -print-search-dirs 2>/dev/null | sed -e '/^libraries:/!d' -e 's/.*=//' | tr : '\n' | grep /lib/` 1159 do if [ -d ${d}${a} ] 1160 then stdlib="$stdlib ${d}${a}" 1161 else case $d in 1162 */lib/) d=`echo '' $d | sed -e 's,/$,,'` 1163 if [ -d ${d}${a} ] 1164 then stdlib="$stdlib ${d}${a}" 1165 fi 1166 ;; 1167 esac 1168 fi 1169 done 1170 ;; 1171esac 1172case $stdlib in 1173'') stdlib=`$cc -v doti.$src 2>&1 | 1174 sed 's/ */\n/g' | 1175 sed -e '/^-L/!d' -e 's/^-L//' | 1176 while read dir 1177 do if test -d "$dir" 1178 then (cd "$dir"; pwd) 1179 fi 1180 done` 1181 ;; 1182*) eval set x $probe_verbose 1183 shift 1184 for o in "$@" 1185 do stdlib="$stdlib "`$cc $o doti.$src 2>&1 | 1186 sed 's/ */\n/g' | 1187 sed -e '/^-L/!d' -e '/\/lib64$/!d' -e 's/^-L//'` 1188 done 1189 ;; 1190esac 1191case $stdlib in 1192?*) keepstdlib=1 1193 o=$stdlib 1194 stdlib= 1195 for dir in $o 1196 do case " $stdlib " in 1197 *" $o "*) continue ;; 1198 esac 1199 case $dir in 1200 /usr/lib64) 1201 i=/usr/local/lib64 1202 a=/lib64 1203 ;; 1204 /lib64) i=/usr/local/lib64 1205 a=/usr/lib64 1206 ;; 1207 /usr/lib) 1208 i=/usr/local/lib 1209 a=/lib 1210 ;; 1211 lib) i=/usr/local/lib 1212 a=/usr/lib 1213 ;; 1214 *) i= 1215 a= 1216 ;; 1217 esac 1218 if test "" != "$i" -a -d "$i" 1219 then case " $o " in 1220 *" $i "*) 1221 ;; 1222 *) stdlib="$stdlib $i" 1223 ;; 1224 esac 1225 fi 1226 stdlib="$stdlib $dir" 1227 if test "" != "$a" -a -d "$a" 1228 then case " $o " in 1229 *" $a "*) 1230 ;; 1231 *) stdlib="$stdlib $a" 1232 ;; 1233 esac 1234 fi 1235 done 1236 case $hosted in 1237 1) case " $stdlib " in 1238 *" /usr/lib "*) 1239 ;; 1240 *) case " $stdlib " in 1241 *" /usr/local/lib "*) 1242 ;; 1243 *) stdlib="$stdlib /usr/local/lib" 1244 ;; 1245 esac 1246 stdlib="$stdlib /usr/lib" 1247 ;; 1248 esac 1249 case " $stdlib " in 1250 *" /lib "*) 1251 ;; 1252 *) stdlib="$stdlib /lib" 1253 ;; 1254 esac 1255 esac 1256 ;; 1257*) keepstdlib=0 1258 case $dir in 1259 */arch/$hosttype/lib/*) 1260 notlib=`echo $dir | sed "s,/arch/$hosttype/lib/.*,/arch/$hosttype/lib,"` 1261 ;; 1262 *) notlib=//// 1263 ;; 1264 esac 1265 tstlib= 1266 implib= 1267 if $cc -c hosted.$src 1268 then for f in `( 1269 eval set x $probe_verbose 1270 while : 1271 do shift 1272 case $# in 1273 0) break ;; 1274 esac 1275 $cc $1 hosted.$obj 1276 done 1277 ) 2>&1 | sed -e 's/[ :]/\\ 1278 /g' -e 's/-L//g' -e 's/^P,//' -e "s/[\"']//g" -e 's,^[\\\\/]*[\\\\/],/,' | sed -e '/^\$/d' -e '/^[-+]/d' -e '/^[^\\\\\\/]/d' -e '/[\\\\\\/]tmp[\\\\\\/]/d' -e 's/:\$//' -e 's,//*$,,'` 1279 do case " $tstlib $implib " in 1280 *" $f "*) continue ;; 1281 esac 1282 case $f in 1283 $notlib) continue ;; 1284 esac 1285 if test -d $f 1286 then tstlib="$tstlib $f" 1287 elif test -f $f 1288 then d=`echo $f | sed -e 's,[\\\\/]*[^\\\\/]*\$,,'` 1289 case " $tstlib $implib " in 1290 *" $d "*) continue ;; 1291 esac 1292 case $d in 1293 *[\\/]usr[\\/]lib) 1294 x=$d 1295 d="`echo $d | sed -e 's,[\\\\/][\\\\/]*usr[\\\\/]lib\$,/lib,'`" 1296 case " $tstlib $implib " in 1297 *" $d "*) ;; 1298 *) implib="$implib $d" ;; 1299 esac 1300 implib="$implib $x" 1301 ;; 1302 *[\\/]lib) 1303 implib="$implib $d" 1304 d="`echo $d | sed -e 's,[\\\\/][\\\\/]*lib\$,/usr/lib,'`" 1305 case " $tstlib $implib " in 1306 *" $d "*) ;; 1307 *) implib="$implib $d" ;; 1308 esac 1309 ;; 1310 *) implib="$implib $d" 1311 ;; 1312 esac 1313 fi 1314 done 1315 fi 1316 tstlib="$tstlib $implib" 1317 if $cc -Dtype=void -Dcall=exit -c tstlib.$src && mv tstlib.$obj tst.$obj 1318 then case $plusplus in 1319 '') probe_lxx= ;; 1320 esac 1321 l= 1322 for sym in $probe_l $probe_lxx 1323 do case $l in 1324 "") l=$sym; continue ;; 1325 esac 1326 rm -f tstlib.$exe 1327 if $cc -o tstlib.$exe tst.$obj -l$l 1328 then eval set x $probe_ldmap 1329 while : 1330 do shift 1331 case $# in 1332 0) break ;; 1333 esac 1334 d=`$cc -Dtype=int -Dcall=$sym $static $1 tstlib.$src -l$l 2>&1 | sed -e '/[\\\\\\/].*[\\\\\\/]lib[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+]*\.[^\\\\\\/]*\$/!d' -e 's,^[^\\\\\/]*,,' -e 's,[\\\\\\/]lib[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+]*\.[^\\\\\\/]*\$,,' -e '/^[\\\\\\/]/!d' | sort -u` 1335 case $d in 1336 ?*) tstlib="$tstlib $d" ;; 1337 esac 1338 done 1339 fi 1340 l= 1341 done 1342 fi 1343 libstd= 1344 libset= 1345 stdlibroot="/ /usr/" 1346 for d in $tstlib 1347 do case $d in 1348 [\\/]lib|[\\/]usr[\\/]lib) 1349 ;; 1350 *) case " $stdlib " in 1351 *\ $d\ *) 1352 ;; 1353 *) if ls $d ${PREROOT+$PREROOT/../$d} > tmp.tmp && test -s tmp.tmp 1354 then for i in $probe_lib $obj 1355 do if grep -i "\\.$i\$" tmp.tmp >/dev/null 1356 then case " $probe_lib_append " in 1357 *\ $d\ *) 1358 libstd="$libstd $d" 1359 ;; 1360 *) stdlib="$stdlib $d" 1361 case $d in 1362 /usr/lib|/usr/lib/*) 1363 ;; 1364 /usr/lib?*) 1365 e=`echo $d | sed -e 's,/usr,,'` 1366 g=`echo $d/libc.* $e/libc.*` 1367 case "$e $g " in 1368 *".* "*);; 1369 *) stdlib="$stdlib $e" 1370 stdlibroot= 1371 ;; 1372 esac 1373 ;; 1374 esac 1375 ;; 1376 esac 1377 case $libset in 1378 "") case $i in 1379 $obj) ;; 1380 *) libset=1 1381 lib=$i 1382 ;; 1383 esac 1384 ;; 1385 esac 1386 break 1387 fi 1388 done 1389 fi 1390 ;; 1391 esac 1392 ;; 1393 esac 1394 done 1395 for d in `$ld --verbose 2>&1 | sed -e '/SEARCH_DIR/!d' -e 's/[ ][ ][ ]*/ /g' -e 's/SEARCH_DIR(\([^ ]*\));/\1/g' -e 's, //[^ ]*,,' -e 's,",,g'` 1396 do if test -d $d 1397 then case " $stdlib $libstd " in 1398 *\ ${d}\ *) 1399 ;; 1400 *) libstd="$libstd $d" 1401 ;; 1402 esac 1403 fi 1404 done 1405 case $hosted in 1406 "") tstlib= ;; 1407 *) tstlib="$stdlibroot /usr/ccs/ /usr/local/" ;; 1408 esac 1409 case $stdlibroot in 1410 ?*) d= 1411 for f in $stdinclude 1412 do f=`echo $f | sed -e 's,[^\\\\/]*\$,,'` 1413 d="$d $f" 1414 done 1415 tstlib="$d $tstlib" 1416 ;; 1417 esac 1418 $cc -c doti.$src > all.tmp 1419 for f in $probe_libdir 1420 do for d in $stdlib $libstd $tstlib 1421 do if test -d ${d}${f} 1422 then ls ${d}${f} ${PREROOT:+$PREROOT/../${d}${f}} | 1423 while read i 1424 do for j in ${d}${f}/${i} ${PREROOT:+$PREROOT/../${d}${f}/${i}} 1425 do if test -f $j -a -r $j -a -s $j 1426 then echo $i 1427 break 1428 fi 1429 done 1430 done > tmp.tmp 1431 if test -s tmp.tmp 1432 then if egrep -i "^${prefix_archive}[abcdefghijklmnopqrstuvwxyz0123456789_][abcdefghijklmnopqrstuvwxyz0123456789_]*\\.$lib\$" tmp.tmp >lib.tmp || 1433 egrep -i "\\.$obj\$" tmp.tmp >/dev/null || 1434 egrep -i "^${prefix_shared}[abcdefghijklmnopqrstuvwxyz0123456789_][abcdefghijklmnopqrstuvwxyz0123456789_]*\\$so(.[0-9]+)*\$" tmp.tmp >>lib.tmp 1435 then if test -s lib.tmp 1436 then sed -e "s,.*/,," -e 's,^'${prefix_archive}'\(.*\)\.'$lib'$,\1,g' -e 's,^'${prefix_shared}'\(.*\)\'$so'[.0-9]*,\1,g' lib.tmp | sort -u > tmp.tmp 1437 xs=`sort all.tmp all.tmp tmp.tmp | uniq -u` 1438 case $xs in 1439 '') continue ;; 1440 esac 1441 ok=0 1442 for x in $xs 1443 do case $x in 1444 *_p) continue ;; # linux gcc known to hang for -lc_p 1445 esac 1446 if $cc -o doti.$exe doti.$obj -l$x 2>e 1447 then ok=1 1448 else if test -s e && egrep -i ":.*[ ](find|found|locate|search|-l$x)[ ]" e > /dev/null 1449 then if egrep -i ":.*[ ](access|permission)[ ]" e 1450 then : maybe 1451 else ok=0 1452 break 1453 fi 1454 fi 1455 case $Lflag in 1456 1) if $cc -L${d}${f} -o doti.$exe doti.$obj -l$x 1457 then ok=0 1458 break 1459 fi 1460 ;; 1461 esac 1462 fi 1463 done 1464 case $ok in 1465 0) continue ;; 1466 esac 1467 sort -u all.tmp tmp.tmp > lib.tmp 1468 mv lib.tmp all.tmp 1469 fi 1470 case " $stdlib $libstd " in 1471 *" ${d}${f} "*) 1472 ;; 1473 *) if test -d ${d}${f}/fsoft 1474 then stdlib="$stdlib ${d}${f}/"'$(FLOAT_OPTION)' 1475 fi 1476 stdlib="$stdlib ${d}${f}" 1477 ;; 1478 esac 1479 fi 1480 fi 1481 fi 1482 done 1483 done 1484 stdlib="$stdlib $libstd" 1485 case $stdlib in 1486 */shlib*) 1487 dy= 1488 st= 1489 for i in $stdlib $libstd 1490 do case $i in 1491 */shlib) dy="$dy $i" ;; 1492 *) st="$st $i" ;; 1493 esac 1494 done 1495 for i in /var 1496 do if test -d $i/shlib 1497 then dy="$dy $i/shlib" 1498 fi 1499 done 1500 stdlib="$dy $st" 1501 ;; 1502 esac 1503 ;; 1504esac 1505 1506if $cc -c prefix.$src 1507then eval set x $probe_symprefix 1508 while : 1509 do shift 1510 case $# in 1511 0) break ;; 1512 esac 1513 if $nm $nmflags prefix.$obj | grep -c ${1}prefix >/dev/null 1514 then symprefix=$1 1515 break 1516 fi 1517 done 1518fi 1519 1520if $cc -c warn.$src 2>e && test -f warn.$obj 1521then e=`wc -c < e` 1522 1523 eval set x $probe_debug 1524 while : 1525 do shift 1526 case $# in 1527 0) break ;; 1528 esac 1529 rm -f warn.$obj 1530 $cc $1 -c warn.$src 2>e && test -f warn.$obj || continue 1531 case `wc -c < e` in 1532 $e) debug=$1; break ;; 1533 esac 1534 done 1535 1536 eval set x $probe_no_protect 1537 while : 1538 do shift 1539 case $# in 1540 0) break ;; 1541 esac 1542 rm -f warn.$obj 1543 $cc $1 -c warn.$src 2>e && test -f warn.$obj || continue 1544 case `wc -c < e` in 1545 $e) no_protect=$1; break ;; 1546 esac 1547 done 1548 1549 case $version_string in 1550 $probe_gcc_version) probe_optimize="$probe_gcc_optimize $probe_optimize" ;; 1551 esac 1552 eval set x $probe_optimize 1553 while : 1554 do shift 1555 case $# in 1556 0) break ;; 1557 esac 1558 rm -f warn.$obj 1559 $cc $1 -c warn.$src 2>e && test -f warn.$obj || continue 1560 case `wc -c < e` in 1561 $e) optimize=$1; break ;; 1562 esac 1563 done 1564 1565 eval set x $probe_strict 1566 while : 1567 do shift 1568 case $# in 1569 0) break ;; 1570 esac 1571 rm -f warn.$obj 1572 $cc $1 -c warn.$src 2>e && test -f warn.$obj || continue 1573 n=`wc -c < e` 1574 if test $n -ge $e 1575 then strict=$1 1576 break 1577 fi 1578 done 1579 1580 $cc -c warn1.$src 2>e 1581 o=`wc -c < e` 1582 eval set x $probe_warn 1583 while : 1584 do shift 1585 case $# in 1586 0) break ;; 1587 esac 1588 rm -f warn.$obj warn.$exe 1589 $cc -o warn.$exe $1 warn.$src 2>e && test -f warn.$exe || continue 1590 n=`wc -c < e` 1591 for i in $warn_enum 1592 do rm -f warn$i.$obj 1593 $cc -c $1 warn$i.$src 2>e && test -f warn$i.$obj || continue 1594 n=`wc -c < e` 1595 if test $n -gt $o 1596 then warn=$1 1597 break 2 1598 fi 1599 done 1600 done 1601 1602fi 1603 1604while : 1605do case $hosted in 1606 1) rm -f readonly.$exe 1607 eval set x '""' $probe_readonly 1608 while : 1609 do shift 1610 case $# in 1611 0) break ;; 1612 esac 1613 for co in '' -Dtest_const 1614 do rm -f readonly.$exe 1615 if $cc -o readonly.$exe $co $1 readonly.$src && $executable readonly.$exe 1616 then if ./readonly.$exe >/dev/null 2>&1 1617 then : 1618 else readonly=$1 1619 break 3 1620 fi 1621 fi 1622 done 1623 done 1624 rm -f readonly.$exe readonly.s 1625 if $cc -S readonly.$src && test -f readonly.s 1626 then if sed -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)data/\1text/' \ 1627 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)zero[ ][ ]*/\1set .,.+/' \ 1628 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*1/\1byte 0/' \ 1629 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*2/\1byte 0,0/' \ 1630 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*3/\1byte 0,0,0/' \ 1631 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*4/\1byte 0,0,0,0/' \ 1632 readonly.s > ro.s && $cc -o readonly.$exe ro.s && $executable readonly.$exe 1633 then if ./readonly.$exe >/dev/null 2>&1 1634 then : 1635 else readonly='-S.data' 1636 break 1637 fi 1638 fi 1639 rm -f readonly.$exe 1640 if sed -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)idat/\1code/' \ 1641 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)zero[ ][ ]*/\1set .,.+/' \ 1642 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*1/\1byte 0/' \ 1643 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*2/\1byte 0,0/' \ 1644 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*3/\1byte 0,0,0/' \ 1645 -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)space[ ][ ]*4/\1byte 0,0,0,0/' \ 1646 readonly.s > ro.s && $cc -o readonly.$exe ro.s && $executable readonly.$exe 1647 then if ./readonly.$exe >/dev/null 2>&1 1648 then : 1649 else readonly='-S.idat' 1650 break 1651 fi 1652 fi 1653 if sed -e 's/^\([ ]*[.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$:]*[ ]*\.*\)data/\1rdata/' \ 1654 readonly.s > ro.s && $cc -o readonly.$exe ro.s && $executable readonly.$exe 1655 then if ./readonly.$exe >/dev/null 2>&1 1656 then : 1657 else readonly='-S.rdata' 1658 break 1659 fi 1660 fi 1661 fi 1662 ;; 1663 esac 1664 break 1665done 1666 1667case $stdc in 1668?*) dialect="$dialect ANSI" ;; 1669esac 1670case $plusplus in 1671?*) dialect="$dialect C++" ;; 1672esac 1673case $hosted in 1674"") dialect="$dialect CROSS" ;; 1675esac 1676case $doti in 1677?*) dialect="$dialect DOTI" ;; 1678esac 1679case $gnu in 1680?*) dialect="$dialect GNU" ;; 1681esac 1682case $so:$dynamic:$static in 1683::) ;; 1684*) dialect="$dialect DYNAMIC" 1685 case $soversion in 1686 ?*) dialect="$dialect VERSION" ;; 1687 esac 1688 ;; 1689esac 1690case $implicitc in 1691?*) dialect="$dialect IMPLICITC" ;; 1692esac 1693case $ptrcopy in 1694?*) dialect="$dialect PTRCOPY" ;; 1695esac 1696case $ptrimplicit in 1697?*) dialect="$dialect PTRIMPLICIT" ;; 1698esac 1699case $ptrmkdir in 1700?*) dialect="$dialect PTRMKDIR" ;; 1701esac 1702case $libpp in 1703?*) dialect="$dialect LIBPP" ;; 1704esac 1705case $toucho in 1706?*) dialect="$dialect TOUCHO" ;; 1707esac 1708case $dDflag in 1709?*) dialect="$dialect -dD" ;; 1710esac 1711# 2005-05-25 use $(CC.INCLUDE.LOCAL) instead 1712case $include_local in 1713?*) dialect="$dialect -I-" ;; 1714esac 1715case $Lflag in 1716?*) dialect="$dialect -L" ;; 1717esac 1718 1719ppcmd='$(CPP)' 1720ppdir='$(CPP:D)' 1721eval ppopt='"'$ppopt'"' 1722eval ppenv='"'$ppenv'"' 1723 1724set x "" .$exe 1725shift 1726exe= 1727for i 1728do rm -f require$i 1729done 1730if $cc -o require require.$src 1731then for i 1732 do if $executable require$i 1733 then exe=$i 1734 break 1735 fi 1736 done 1737fi 1738case $sa:$sd:$so in 1739::?*) eval set x $probe_sa 1740 while : 1741 do shift 1742 case $# in 1743 0) break ;; 1744 esac 1745 for i in $stdlib 1746 do eval j="'" $i/lib*$1 "'" 1747 case $j in 1748 " $i/lib*$1 ") 1749 eval j="'" $i/lib*$1.[0123456789]* "'" 1750 case $j in 1751 " $i/lib*$1.[0123456789]* ") 1752 continue 1753 ;; 1754 esac 1755 ;; 1756 esac 1757 sa=$1 1758 lddynamic=-Bdynamic 1759 ldstatic=-Bstatic 1760 break 2 1761 done 1762 done 1763 ;; 1764esac 1765case $ldscript in 1766"") case $so in 1767 .lib) ldscript=".def .exp" ;; 1768 *) ldscript=".ld" ;; 1769 esac 1770 ;; 1771esac 1772case $hosttype in 1773'') hosttype=unknown ;; 1774sgi.mips3) dll_variants='sgi.mips2:o32:-mips2 sgi.mips4:64:-mips4' ;; 1775sgi.mips4) dll_variants='sgi.mips2:o32:-mips2 sgi.mips3:n32:-mips3' ;; 1776esac 1777 1778case $hosted in 1779"") ccnative=`echo $cc | sed -e 's,.*/,,'` 1780 ccs=$ccnative 1781 for c in cc gcc 1782 do case " $ccs " in 1783 *" $c "*) ;; 1784 *) ccs="$ccs $c" ;; 1785 esac 1786 done 1787 for p in $path 1788 do for c in $ccs 1789 do if $executable $p/$c 1790 then rm -f native.$exe 1791 if $p/$c -o native.$exe doti.$src && ./native.$exe 1792 then ccnative=$p/$c 1793 exectype=`package CC="$ccnative" || $SHELL -c "package CC='$ccnative'"` 1794 case $exectype in 1795 *[Uu][Ss][Aa][Gg][Ee]:*) 1796 exectype=`PATH=$_probe_PATH; export PATH; package CC="$ccnative" || $SHELL -c "package CC='$ccnative'"` 1797 ;; 1798 esac 1799 break 2 1800 fi 1801 fi 1802 done 1803 done 1804 ;; 1805*) ccnative=$cc 1806 exectype=$hosttype 1807 ;; 1808esac 1809 1810# runtime shared lib exported symbol resolution 1811 1812case $cc_dll:$shared in 1813:|:*|*:);; 1814*) cat > cmd.c <<'!' 1815#include <stdio.h> 1816#include <dlfcn.h> 1817typedef int (*Lib_f)(int**, int**, int**); 1818int gbl_def = 1; 1819int gbl_ref = 1; 1820int gbl_ext; 1821int main(int argc, char** argv) 1822{ 1823 void* dll; 1824 Lib_f lib; 1825 int* def; 1826 int* ref; 1827 int* ext; 1828 1829 if (!(dll = dlopen(*++argv, RTLD_LAZY))) 1830 fprintf(stderr, "library not found\n"); 1831 else if (!((lib = (Lib_f)dlsym(dll, "lib"))) && !(lib = (Lib_f)dlsym(dll, "_lib"))) 1832 fprintf(stderr, "symbol not found\n"); 1833 else if ((*lib)(&def, &ref, &ext)) 1834 fprintf(stderr, "function failed\n"); 1835 else if (def == &gbl_def && ref == &gbl_ref && ext == &gbl_ext) 1836 printf("ALL\n"); 1837 else if (ref == &gbl_ref && ext == &gbl_ext) 1838 printf("REF\n"); 1839 else if (ext == &gbl_ext) 1840 printf("EXT\n"); 1841 return 0; 1842} 1843! 1844 cat > lib.c <<'!' 1845int gbl_def = 1; 1846int gbl_ref; 1847int gbl_ext; 1848int lib(int** def, int** ref, int** ext) 1849{ 1850 *def = &gbl_def; 1851 *ref = &gbl_ref; 1852 *ext = &gbl_ext; 1853 return 0; 1854} 1855! 1856 if $cc -c $cc_dll $cc_pic cmd.c && 1857 $cc -c $cc_dll $cc_pic lib.c && { 1858 $cc $cc_dll $export_dynamic -o cmd.exe cmd.o || 1859 $cc $cc_dll $export_dynamic -o cmd.exe cmd.o -ldl 1860 } && 1861 $dld $shared -o libgbl.dll lib.o 1862 then x=`./cmd.exe ./libgbl.dll` 1863 case $x in 1864 ?*) dialect="$dialect EXPORT=$x" ;; 1865 esac 1866 else case $sd:$hosttype in 1867 .dll:*win*) dialect="$dialect EXPORT=DLL" ;; 1868 esac 1869 fi 1870 ;; 1871esac 1872 1873# shellmagic defined if installed shell scripts need magic 1874 1875echo ': got magic : 1876echo ok' > ok 1877chmod +x ok 1878case `(eval ./ok | /bin/sh) 2>/dev/null` in 1879ok) ;; 1880*) echo '#!/bin/env sh 1881: got magic : 1882echo ok' > ok 1883 chmod +x ok 1884 case `(eval ./ok | /bin/sh) 2>/dev/null` in 1885 ok) shellmagic='$("#")!/bin/env sh' 1886 ;; 1887 *) for i in /emx/bin/bash.exe /emx/bin/sh.exe 1888 do if test -x $i 1889 then shellmagic='$("#")!'$i 1890 break 1891 fi 1892 done 1893 ;; 1894 esac 1895 ;; 1896esac 1897 1898# 1899# path cleanup 1900# 1901 1902for i in ar ccnative dld ld nm size stdinclude stdlib strip 1903do eval o='$'$i 1904 v=$o 1905 case $v in 1906 *//*) v=`echo $v | sed 's,///*,/,g'` ;; 1907 esac 1908 if (test . -ef "`pwd`") 1909 then k= 1910 for x in $v 1911 do case $x in 1912 */../*|*/..) 1913 case $x in 1914 /*) a=/ ;; 1915 *) a= ;; 1916 esac 1917 IFS=/ 1918 set '' $x 1919 IFS=$ifs 1920 r= 1921 for d 1922 do r="$d $r" 1923 done 1924 p= 1925 g= 1926 for d in $r 1927 do case $d in 1928 ..) g="$g $d" ;; 1929 *) case $g in 1930 '') case $p in 1931 '') p=$d ;; 1932 *) p=$d/$p ;; 1933 esac 1934 ;; 1935 *) set $g 1936 shift 1937 g=$* 1938 ;; 1939 esac 1940 ;; 1941 esac 1942 done 1943 case $a in 1944 '') for d in $g 1945 do p=$d/$p 1946 done 1947 ;; 1948 *) p=$a$p 1949 ;; 1950 esac 1951 case $p in 1952 /) continue ;; 1953 esac 1954 test $x -ef $p && x=$p 1955 ;; 1956 esac 1957 k="$k $x" 1958 done 1959 set '' $k 1960 shift 1961 v=$1 1962 case $# in 1963 0) ;; 1964 *) shift 1965 while : 1966 do case $# in 1967 0) break ;; 1968 esac 1969 k= 1970 for d 1971 do for j in $v 1972 do test $d -ef $j && continue 2 1973 done 1974 k="$k $d" 1975 done 1976 set '' $k 1977 case $# in 1978 1) break ;; 1979 esac 1980 shift 1981 v="$v $1" 1982 shift 1983 done 1984 ;; 1985 esac 1986 fi 1987 case $v in 1988 $o) ;; 1989 *) eval $i='$'v ;; 1990 esac 1991done 1992 1993case $keepstdlib in 19941) ;; 1995*) # 1996 # favor lib64 over lib 1997 # 1998 case $hosttype in 1999 *64|*[!0-9]64[!a-zA-Z0-9]*) 2000 o=$stdlib 2001 stdlib= 2002 for i in $o 2003 do case " $stdlib " in 2004 *" $i "*) 2005 continue 2006 ;; 2007 esac 2008 case $i in 2009 *64) stdlib="$stdlib $i" 2010 continue 2011 ;; 2012 esac 2013 case " $o " in 2014 *" ${i}64 "*) 2015 case " $stdlib " in 2016 *" ${i}64 "*) 2017 ;; 2018 *) stdlib="$stdlib ${i}64" 2019 ;; 2020 esac 2021 ;; 2022 esac 2023 stdlib="$stdlib $i" 2024 done 2025 ;; 2026 esac 2027 ;; 2028esac 2029 2030# 2031# set up for local override 2032# 2033 2034CC_VERSION_STAMP=$version_stamp 2035CC_VERSION_STRING=$version_string 2036CC_CC=$cc 2037CC_NATIVE=$ccnative 2038CC_EXECTYPE=$exectype 2039CC_HOSTTYPE=$hosttype 2040CC_ALTPP_FLAGS=$ppopt 2041CC_ALTPP_ENV=$ppenv 2042CC_AR=$ar 2043CC_AR_ARFLAGS=$ar_arflags 2044CC_ARFLAGS=$arflags 2045CC_DEBUG=$debug 2046CC_DIALECT=$dialect 2047CC_PICBIG=$cc_PIC 2048CC_PICSMALL=$cc_pic 2049CC_PIC=$CC_PICBIG 2050CC_DLL_ONLY=$cc_dll 2051case $CC_DLL_ONLY in 2052'') CC_DLLBIG= 2053 CC_DLLSMALL= 2054 CC_DLL= 2055 ;; 2056*) CC_DLLBIG="$CC_DLL_ONLY $CC_PICBIG" 2057 CC_DLLSMALL="$CC_DLL_ONLY $CC_PICSMALL" 2058 CC_DLL="$CC_DLL_ONLY $CC_PICBIG" 2059 ;; 2060esac 2061CC_DLL_DIR=$dll_dir 2062CC_DLL_LIBRARIES=$dll_libraries 2063CC_DLL_VARIANTS=$dll_variants 2064CC_DYNAMIC=$dynamic 2065CC_EXPORT_DYNAMIC=$export_dynamic 2066CC_INCLUDE_LOCAL=$include_local 2067CC_LD=$ld 2068CC_LD_DYNAMIC=$lddynamic 2069CC_LD_LAZY=$ldlazy 2070CC_LD_NOLAZY=$ldnolazy 2071CC_LD_ORIGIN=$ldorigin 2072CC_LD_RECORD=$ldrecord 2073CC_LD_NORECORD=$ldnorecord 2074CC_LD_RUNPATH=$ldrunpath 2075CC_LD_STATIC=$ldstatic 2076CC_LD_STRIP=$ldstrip 2077CC_LIB_DLL=$lib_dll 2078CC_LIB_ALL=$lib_all 2079CC_LIB_UNDEF=$lib_undef 2080CC_MAKE_OPTIONS=$makeoptions 2081CC_NM=$nm 2082CC_NMEDIT=$nmedit 2083CC_NMFLAGS=$nmflags 2084CC_NOPROTECT=$no_protect 2085CC_OPTIMIZE=$optimize 2086CC_READONLY=$readonly 2087CC_REPOSITORY=$repository 2088CC_REQUIRE=$require 2089CC_RUNPATH=$runpath 2090CC_SHARED=$shared 2091CC_SHARED_LD=$dld 2092CC_SHARED_NAME=$shared_name 2093CC_SHARED_REGISTRY=$shared_registry 2094CC_SHARED_REGISTRY_PATH=$probe_shared_registry_path 2095CC_SHELLMAGIC=$shellmagic 2096CC_SIZE=$size 2097CC_STATIC=$static 2098CC_STDINCLUDE=$stdinclude 2099CC_STDLIB=$stdlib 2100CC_STRICT=$strict 2101CC_STRIP=$strip 2102CC_STRIP_FLAGS=$stripflags 2103CC_PREFIX_ARCHIVE=$prefix_archive 2104CC_PREFIX_DYNAMIC=$prefix_dynamic 2105CC_PREFIX_SHARED=$prefix_shared 2106CC_PREFIX_SYMBOL=$symprefix 2107CC_SUFFIX_ARCHIVE=.$lib 2108CC_SUFFIX_COMMAND=$suffix_command 2109CC_SUFFIX_DEBUG=$sdb 2110CC_SUFFIX_DYNAMIC=$sd 2111CC_SUFFIX_LD=$ldscript 2112CC_SUFFIX_OBJECT=.$obj 2113CC_SUFFIX_SHARED=$so 2114CC_SUFFIX_SOURCE=.$src 2115CC_SUFFIX_STATIC=$sa 2116CC_VERSION=$version_flags 2117CC_WARN=$warn 2118CC_ATTRIBUTES=$ATTRIBUTES 2119 2120exec >&3 2121 2122# 2123# check for local override 2124# all CC_* but { CC_CC CC_VERSION_STAMP CC_VERSION_STRING } may be modified 2125# additional CC.* may be printed on stdout 2126# 2127 2128if test -f "$dir/probe.lcl" 2129then . "$dir/probe.lcl" 2130fi 2131 2132# 2133# the payoff 2134# 2135 2136case $version_stamp in 2137?*) echo "# $version_stamp" ;; 2138esac 2139echo CC.CC = $cc 2140echo CC.NATIVE = $CC_NATIVE 2141echo CC.EXECTYPE = $CC_EXECTYPE 2142echo CC.HOSTTYPE = $CC_HOSTTYPE 2143echo CC.ALTPP.FLAGS = $CC_ALTPP_FLAGS 2144echo CC.ALTPP.ENV = $CC_ALTPP_ENV 2145echo CC.AR = $CC_AR 2146echo CC.AR.ARFLAGS = $CC_AR_ARFLAGS 2147echo CC.ARFLAGS = $CC_ARFLAGS 2148echo CC.DEBUG = $CC_DEBUG 2149echo CC.DIALECT = $CC_DIALECT 2150echo CC.DLLBIG = $CC_DLLBIG 2151echo CC.DLLSMALL = $CC_DLLSMALL 2152echo CC.DLL = $CC_DLL 2153echo CC.DLL.DEF = $cc_dll_def 2154echo CC.DLL.DIR = $CC_DLL_DIR 2155echo CC.DLL.LIBRARIES = $CC_DLL_LIBRARIES 2156echo CC.DLL.VARIANTS = $CC_DLL_VARIANTS 2157echo CC.DYNAMIC = $CC_DYNAMIC 2158echo CC.EXPORT.DYNAMIC = $CC_EXPORT_DYNAMIC 2159echo CC.INCLUDE.LOCAL = $CC_INCLUDE_LOCAL 2160# 2161# 2004-02-14 release workaround 2162# 2163case $CC_SHARED_LD in 2164$CC_CC) echo if LDSHARED 2165 echo CC.LD = $CC_LD 2166 echo else 2167 echo CC.LD = $CC_CC 2168 echo end 2169 ;; 2170*) echo CC.LD = $CC_LD 2171 ;; 2172esac 2173echo CC.LD.DYNAMIC = $CC_LD_DYNAMIC 2174echo CC.LD.LAZY = $CC_LD_LAZY 2175echo CC.LD.NOLAZY = $CC_LD_NOLAZY 2176echo CC.LD.ORIGIN = $CC_LD_ORIGIN 2177echo CC.LD.RECORD = $CC_LD_RECORD 2178echo CC.LD.NORECORD = $CC_LD_NORECORD 2179echo CC.LD.RUNPATH = $CC_LD_RUNPATH 2180echo CC.LD.STATIC = $CC_LD_STATIC 2181echo CC.LD.STRIP = $CC_LD_STRIP 2182echo CC.LIB.DLL = $CC_LIB_DLL 2183echo CC.LIB.ALL = $CC_LIB_ALL 2184echo CC.LIB.UNDEF = $CC_LIB_UNDEF 2185echo CC.MAKE.OPTIONS = $CC_MAKE_OPTIONS 2186echo CC.NM = $CC_NM 2187case $CC_NMEDIT in 2188?*) CC_NMEDIT=" $CC_NMEDIT" ;; 2189esac 2190echo CC.NMEDIT ="$CC_NMEDIT" 2191echo CC.NMFLAGS = $CC_NMFLAGS 2192echo CC.NOPROTECT = $CC_NOPROTECT 2193echo CC.OPTIMIZE = $CC_OPTIMIZE 2194echo CC.PICBIG = $CC_PICBIG 2195echo CC.PICSMALL = $CC_PICSMALL 2196echo CC.PIC = $CC_PIC 2197echo CC.READONLY = $CC_READONLY 2198echo CC.REPOSITORY = $CC_REPOSITORY 2199for f in $CC_REQUIRE 2200do echo CC.REQUIRE.$f =`cat req.$f` 2201done 2202echo CC.RUNPATH = $CC_RUNPATH 2203echo CC.SHARED = $CC_SHARED 2204echo CC.SHARED.LD = $CC_SHARED_LD 2205echo CC.SHARED.NAME = $CC_SHARED_NAME 2206echo CC.SHARED.REGISTRY = $CC_SHARED_REGISTRY 2207echo CC.SHARED.REGISTRY.PATH = $CC_SHARED_REGISTRY_PATH 2208echo CC.SHELLMAGIC = $CC_SHELLMAGIC 2209echo CC.SIZE = $CC_SIZE 2210echo CC.STATIC = $CC_STATIC 2211echo CC.STDINCLUDE = $CC_STDINCLUDE 2212echo CC.STDLIB = $CC_STDLIB 2213echo CC.STRICT = $CC_STRICT 2214echo CC.STRIP = $CC_STRIP 2215echo CC.STRIP.FLAGS = $CC_STRIP_FLAGS 2216echo CC.PREFIX.ARCHIVE = $CC_PREFIX_ARCHIVE 2217echo CC.PREFIX.DYNAMIC = $CC_PREFIX_DYNAMIC 2218echo CC.PREFIX.SHARED = $CC_PREFIX_SHARED 2219echo CC.PREFIX.SYMBOL = $CC_PREFIX_SYMBOL 2220echo CC.SUFFIX.ARCHIVE = $CC_SUFFIX_ARCHIVE 2221echo CC.SUFFIX.COMMAND = $CC_SUFFIX_COMMAND 2222echo CC.SUFFIX.DEBUG = $CC_SUFFIX_DEBUG 2223echo CC.SUFFIX.DYNAMIC = $CC_SUFFIX_DYNAMIC 2224echo CC.SUFFIX.LD = $CC_SUFFIX_LD 2225echo CC.SUFFIX.OBJECT = $CC_SUFFIX_OBJECT 2226echo CC.SUFFIX.SHARED = $CC_SUFFIX_SHARED 2227echo CC.SUFFIX.SOURCE = $CC_SUFFIX_SOURCE 2228echo CC.SUFFIX.STATIC = $CC_SUFFIX_STATIC 2229echo CC.VERSION = $CC_VERSION 2230case $CC_VERSION_STRING in 2231*\"*) i=`echo " $CC_VERSION_STRING" | sed -e 's,",\\\\",g' -e 's,^ ,,' -e 's,.*,"&",'` ;; 2232*\'*) i=\"$CC_VERSION_STRING\" ;; 2233*) i=$CC_VERSION_STRING ;; 2234esac 2235cat <<! 2236CC.VERSION.STRING = $i 2237! 2238echo CC.WARN = $CC_WARN 2239 2240for i in $CC_ATTRIBUTES 2241do eval echo CC.$i = \$$i 2242done 2243