Blob
1 #!/bin/sh3 libsl=""5 doautolib=16 verbose=08 if [ "x$1" = "x-l" ]9 then10 shift11 doautolib=012 elif [ "x$1" = "x-v" ]13 then14 shift15 verbose=116 fi18 if [ $doautolib = 1 ]19 then20 ofiles=""21 for i22 do23 case "$i" in24 [^-]*.o)25 ofiles="$ofiles $i"26 ;;27 esac28 done30 # echo "ofiles $ofiles"31 autolibs=""32 if [ "x$ofiles" != "x" ]33 then34 autolibs=`35 nm $ofiles |36 grep '__p9l_autolib_[a-zA-Z0-9+-]*$' |37 sed 's/.* __p9l_autolib_//' |38 sort -u39 `40 fi41 # echo "autolibs $autolibs"43 libsl=""44 special="mp draw 9pclient mux thread bio" # order matters45 for i in $special46 do47 eval "need$i=0"48 done50 for i in $autolibs51 do52 case "$i" in53 9pclient)54 need9pclient=155 needmux=156 needthread=157 ;;58 bio)59 needbio=160 ;;61 draw)62 needdraw=163 ;;64 mp)65 needmp=166 ;;67 mux)68 needmux=169 needthread=170 ;;71 plumb)72 need9pclient=173 needmux=174 needthread=175 libsl="$libsl -lplumb"76 ;;77 sec)78 needmp=179 libsl="$libsl -lsec"80 ;;81 thread)82 needthread=183 ;;84 venti)85 libsl="$libsl -lventi"86 needthread=187 ;;88 *)89 libsl="$libsl -l$i"90 ;;91 esac92 done94 for i in $special95 do96 if eval "[ \$need$i = 1 ]"97 then98 libsl="$libsl -l$i"99 fi100 done101 libsl="$libsl -l9"103 if [ $needdraw = 1 ]104 then105 if [ "x$X11" = "x" ]106 then107 X11=/usr/X11R6108 fi109 libsl="$libsl -L$X11/lib -lX11"110 fi111 fi113 extralibs="-lm"114 tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"115 case "$tag" in116 *OpenBSD*) ld=gcc117 extralibs="$extralibs -lutil -lpthread"118 ;;119 *BSD*) ld=gcc120 extralibs="$extralibs -lutil"121 ;;122 *Linux*) ld=gcc123 extralibs="$extralibs -lutil"124 case "`uname -r`" in125 2.6.*)126 extralibs="$extralibs -lpthread"127 ;;128 esac129 ;;130 *Darwin*) ld=gcc ;;131 *SunOS*) ld="${CC9:-cc} -g"132 extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"133 # Record paths to shared libraries to avoid needing LD_LIBRARY_PATH134 for i in "$@"135 do136 case "$i" in137 -L*)138 s=`echo $i | sed 's/-L/-R/'`139 extralibs="$extralibs $s"140 ;;141 esac142 done143 ;;144 *)145 echo do not know how to link on "$tag" 1>&2146 exit 1147 esac149 if [ $verbose = 1 ]150 then151 echo $ld -L$PLAN9/lib "$@" $libsl $extralibs152 fi153 exec $ld -L$PLAN9/lib "$@" $libsl $extralibs