Blame


1 dbd7b9a9 2003-11-23 devnull #!/bin/sh
2 dbd7b9a9 2003-11-23 devnull
3 ead3e311 2005-01-04 devnull libsl=""
4 ead3e311 2005-01-04 devnull
5 ead3e311 2005-01-04 devnull doautolib=1
6 ead3e311 2005-01-04 devnull verbose=0
7 ead3e311 2005-01-04 devnull
8 ead3e311 2005-01-04 devnull if [ "x$1" = "x-l" ]
9 ead3e311 2005-01-04 devnull then
10 ead3e311 2005-01-04 devnull shift
11 ead3e311 2005-01-04 devnull doautolib=0
12 ead3e311 2005-01-04 devnull elif [ "x$1" = "x-v" ]
13 ead3e311 2005-01-04 devnull then
14 ead3e311 2005-01-04 devnull shift
15 ead3e311 2005-01-04 devnull verbose=1
16 ead3e311 2005-01-04 devnull fi
17 ead3e311 2005-01-04 devnull
18 ead3e311 2005-01-04 devnull if [ $doautolib = 1 ]
19 ead3e311 2005-01-04 devnull then
20 ead3e311 2005-01-04 devnull ofiles=""
21 ead3e311 2005-01-04 devnull for i
22 ead3e311 2005-01-04 devnull do
23 ead3e311 2005-01-04 devnull case "$i" in
24 ead3e311 2005-01-04 devnull [^-]*.o)
25 ead3e311 2005-01-04 devnull ofiles="$ofiles $i"
26 ead3e311 2005-01-04 devnull ;;
27 ead3e311 2005-01-04 devnull esac
28 ead3e311 2005-01-04 devnull done
29 ead3e311 2005-01-04 devnull
30 ead3e311 2005-01-04 devnull # echo "ofiles $ofiles"
31 ead3e311 2005-01-04 devnull autolibs=""
32 ead3e311 2005-01-04 devnull if [ "x$ofiles" != "x" ]
33 ead3e311 2005-01-04 devnull then
34 ead3e311 2005-01-04 devnull autolibs=`
35 ead3e311 2005-01-04 devnull nm $ofiles |
36 ead3e311 2005-01-04 devnull grep '__p9l_autolib_[a-zA-Z0-9+-]*$' |
37 ead3e311 2005-01-04 devnull sed 's/.* __p9l_autolib_//' |
38 ead3e311 2005-01-04 devnull sort -u
39 ead3e311 2005-01-04 devnull `
40 ead3e311 2005-01-04 devnull fi
41 ead3e311 2005-01-04 devnull # echo "autolibs $autolibs"
42 ead3e311 2005-01-04 devnull
43 ead3e311 2005-01-04 devnull libsl=""
44 ead3e311 2005-01-04 devnull special="mp draw 9pclient mux thread bio" # order matters
45 ead3e311 2005-01-04 devnull for i in $special
46 ead3e311 2005-01-04 devnull do
47 ead3e311 2005-01-04 devnull eval "need$i=0"
48 ead3e311 2005-01-04 devnull done
49 ead3e311 2005-01-04 devnull
50 ead3e311 2005-01-04 devnull for i in $autolibs
51 ead3e311 2005-01-04 devnull do
52 ead3e311 2005-01-04 devnull case "$i" in
53 ead3e311 2005-01-04 devnull 9pclient)
54 ead3e311 2005-01-04 devnull need9pclient=1
55 ead3e311 2005-01-04 devnull needmux=1
56 ead3e311 2005-01-04 devnull needthread=1
57 ead3e311 2005-01-04 devnull ;;
58 ead3e311 2005-01-04 devnull bio)
59 ead3e311 2005-01-04 devnull needbio=1
60 ead3e311 2005-01-04 devnull ;;
61 ead3e311 2005-01-04 devnull draw)
62 ead3e311 2005-01-04 devnull needdraw=1
63 ead3e311 2005-01-04 devnull ;;
64 ead3e311 2005-01-04 devnull mp)
65 ead3e311 2005-01-04 devnull needmp=1
66 ead3e311 2005-01-04 devnull ;;
67 ead3e311 2005-01-04 devnull mux)
68 ead3e311 2005-01-04 devnull needmux=1
69 ead3e311 2005-01-04 devnull needthread=1
70 ead3e311 2005-01-04 devnull ;;
71 ead3e311 2005-01-04 devnull plumb)
72 ead3e311 2005-01-04 devnull need9pclient=1
73 ead3e311 2005-01-04 devnull needmux=1
74 ead3e311 2005-01-04 devnull needthread=1
75 ead3e311 2005-01-04 devnull libsl="$libsl -lplumb"
76 ead3e311 2005-01-04 devnull ;;
77 ead3e311 2005-01-04 devnull sec)
78 ead3e311 2005-01-04 devnull needmp=1
79 ead3e311 2005-01-04 devnull libsl="$libsl -lsec"
80 ead3e311 2005-01-04 devnull ;;
81 ead3e311 2005-01-04 devnull thread)
82 ead3e311 2005-01-04 devnull needthread=1
83 ead3e311 2005-01-04 devnull ;;
84 ead3e311 2005-01-04 devnull venti)
85 ead3e311 2005-01-04 devnull libsl="$libsl -lventi"
86 ead3e311 2005-01-04 devnull needthread=1
87 ead3e311 2005-01-04 devnull ;;
88 ead3e311 2005-01-04 devnull *)
89 ead3e311 2005-01-04 devnull libsl="$libsl -l$i"
90 ead3e311 2005-01-04 devnull ;;
91 ead3e311 2005-01-04 devnull esac
92 ead3e311 2005-01-04 devnull done
93 ead3e311 2005-01-04 devnull
94 ead3e311 2005-01-04 devnull for i in $special
95 ead3e311 2005-01-04 devnull do
96 ead3e311 2005-01-04 devnull if eval "[ \$need$i = 1 ]"
97 ead3e311 2005-01-04 devnull then
98 ead3e311 2005-01-04 devnull libsl="$libsl -l$i"
99 ead3e311 2005-01-04 devnull fi
100 ead3e311 2005-01-04 devnull done
101 ead3e311 2005-01-04 devnull libsl="$libsl -l9"
102 ead3e311 2005-01-04 devnull
103 ead3e311 2005-01-04 devnull if [ $needdraw = 1 ]
104 ead3e311 2005-01-04 devnull then
105 ead3e311 2005-01-04 devnull if [ "x$X11" = "x" ]
106 ead3e311 2005-01-04 devnull then
107 ead3e311 2005-01-04 devnull X11=/usr/X11R6
108 ead3e311 2005-01-04 devnull fi
109 ead3e311 2005-01-04 devnull libsl="$libsl -L$X11/lib -lX11"
110 ead3e311 2005-01-04 devnull fi
111 ead3e311 2005-01-04 devnull fi
112 ead3e311 2005-01-04 devnull
113 2d8fd46b 2004-03-26 devnull extralibs="-lm"
114 8f314994 2004-03-02 devnull tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
115 dbd7b9a9 2003-11-23 devnull case "$tag" in
116 cb27443a 2004-03-25 devnull *OpenBSD*) ld=gcc
117 2d8fd46b 2004-03-26 devnull extralibs="$extralibs -lutil -lpthread"
118 cb27443a 2004-03-25 devnull ;;
119 2d8fd46b 2004-03-26 devnull *BSD*) ld=gcc
120 2d8fd46b 2004-03-26 devnull extralibs="$extralibs -lutil"
121 2d8fd46b 2004-03-26 devnull ;;
122 2d8fd46b 2004-03-26 devnull *Linux*) ld=gcc
123 282c88f9 2004-09-17 devnull extralibs="$extralibs -lutil"
124 282c88f9 2004-09-17 devnull case "`uname -r`" in
125 282c88f9 2004-09-17 devnull 2.6.*)
126 282c88f9 2004-09-17 devnull extralibs="$extralibs -lpthread"
127 282c88f9 2004-09-17 devnull ;;
128 282c88f9 2004-09-17 devnull esac
129 2d8fd46b 2004-03-26 devnull ;;
130 dbd7b9a9 2003-11-23 devnull *Darwin*) ld=gcc ;;
131 64bcfff3 2003-11-25 devnull *SunOS*) ld="${CC9:-cc} -g"
132 1c253ceb 2003-11-23 devnull extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
133 cb27443a 2004-03-25 devnull # Record paths to shared libraries to avoid needing LD_LIBRARY_PATH
134 cb27443a 2004-03-25 devnull for i in "$@"
135 cb27443a 2004-03-25 devnull do
136 cb27443a 2004-03-25 devnull case "$i" in
137 cb27443a 2004-03-25 devnull -L*)
138 cb27443a 2004-03-25 devnull s=`echo $i | sed 's/-L/-R/'`
139 cb27443a 2004-03-25 devnull extralibs="$extralibs $s"
140 cb27443a 2004-03-25 devnull ;;
141 cb27443a 2004-03-25 devnull esac
142 cb27443a 2004-03-25 devnull done
143 1c253ceb 2003-11-23 devnull ;;
144 dbd7b9a9 2003-11-23 devnull *)
145 dbd7b9a9 2003-11-23 devnull echo do not know how to link on "$tag" 1>&2
146 dbd7b9a9 2003-11-23 devnull exit 1
147 dbd7b9a9 2003-11-23 devnull esac
148 dbd7b9a9 2003-11-23 devnull
149 ead3e311 2005-01-04 devnull if [ $verbose = 1 ]
150 ead3e311 2005-01-04 devnull then
151 ead3e311 2005-01-04 devnull echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
152 ead3e311 2005-01-04 devnull fi
153 ead3e311 2005-01-04 devnull exec $ld -L$PLAN9/lib "$@" $libsl $extralibs