- convert to critical sections
[dragonfly.git] / contrib / libreadline / support / shobj-conf
1 #! /bin/sh
2 #
3 # shobj-conf -- output a series of variable assignments to be substituted
4 #               into a Makefile by configure which specify system-dependent
5 #               information for creating shared objects that may be loaded
6 #               into bash with `enable -f'
7 #
8 # usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor
9 #
10 # Chet Ramey
11 # chet@po.cwru.edu
12
13 #
14 # defaults
15 #
16 SHOBJ_STATUS=supported
17 SHLIB_STATUS=supported
18
19 SHOBJ_CC=cc
20 SHOBJ_CFLAGS=
21 SHOBJ_LD=
22 SHOBJ_LDFLAGS=
23 SHOBJ_XLDFLAGS=
24 SHOBJ_LIBS=
25
26 SHLIB_XLDFLAGS=
27 SHLIB_LIBS=
28 SHLIB_LIBSUFF='so'
29
30 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
31
32 PROGNAME=`basename $0`
33 USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
34
35 while [ $# -gt 0 ]; do
36         case "$1" in
37         -C)     shift; SHOBJ_CC="$1"; shift ;;
38         -c)     shift; host_cpu="$1"; shift ;;
39         -o)     shift; host_os="$1"; shift ;;
40         -v)     shift; host_vendor="$1"; shift ;;
41         *)      echo "$USAGE" >&2 ; exit 2;;
42         esac
43 done
44
45 case "${host_os}-${SHOBJ_CC}" in
46 sunos4*-gcc*)
47         SHOBJ_CFLAGS=-fpic
48         SHOBJ_LD=/usr/bin/ld
49         SHOBJ_LDFLAGS='-assert pure-text'
50
51         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
52         ;;
53
54 sunos4*)
55         SHOBJ_CFLAGS=-pic
56         SHOBJ_LD=/usr/bin/ld
57         SHOBJ_LDFLAGS='-assert pure-text'
58
59         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
60         ;;
61
62 sunos5*-gcc*|solaris2*-gcc*)
63         SHOBJ_CFLAGS=-fpic
64         SHOBJ_LD='${CC}'
65         SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
66
67 #       SHLIB_XLDFLAGS='-R $(libdir)'
68         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
69         ;;
70
71 sunos5*|solaris2*)
72         SHOBJ_CFLAGS='-K pic'
73         SHOBJ_LD=/usr/ccs/bin/ld
74         SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
75
76 #       SHLIB_XLDFLAGS='-R $(libdir)'
77         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
78         ;;
79
80 freebsd2* | netbsd* | openbsd*)
81         SHOBJ_CFLAGS=-fpic
82         SHOBJ_LD=ld
83         SHOBJ_LDFLAGS='-x -Bshareable'
84
85         SHLIB_XLDFLAGS='-R$(libdir)'
86         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
87         ;;
88
89 # FreeBSD-3.x can have either a.out or ELF object files
90 #freebsd3*)
91 #       SHOBJ_CFLAGS=-fpic
92 #       SHOBJ_LD='${CC}'
93 #       SHOBJ_LDFLAGS='-shared'
94 #
95 #       SHLIB_XLDFLAGS='-R$(libdir)'
96 #       SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
97 #       ;;
98
99 # FreeBSD-3.x ELF
100 freebsd3*)
101         SHOBJ_CFLAGS=-fpic
102         SHOBJ_LD='${CC}'
103
104         if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
105                 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
106
107                 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
108                 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
109         else
110                 SHOBJ_LDFLAGS='-shared'
111
112                 SHLIB_XLDFLAGS='-R$(libdir)'
113                 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
114         fi
115         ;;
116
117 linux*)
118         SHOBJ_CFLAGS=-fPIC
119         SHOBJ_LD='${CC}'
120         SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
121
122         SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
123         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
124         ;;
125
126 bsdi2*)
127         SHOBJ_CC=shlicc2
128         SHOBJ_CFLAGS=
129         SHOBJ_LD=ld
130         SHOBJ_LDFLAGS=-r
131         SHOBJ_LIBS=-lc_s.2.1.0
132
133         # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
134         # the ass -- they require changing {/usr/lib,etc}/shlib.map on
135         # each system, and the library creation process is byzantine
136         SHLIB_STATUS=unsupported
137         ;;
138
139 bsdi3*)
140         SHOBJ_CC=shlicc2
141         SHOBJ_CFLAGS=
142         SHOBJ_LD=ld
143         SHOBJ_LDFLAGS=-r
144         SHOBJ_LIBS=-lc_s.3.0.0
145
146         # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
147         # the ass -- they require changing {/usr/lib,etc}/shlib.map on
148         # each system, and the library creation process is byzantine
149         SHLIB_STATUS=unsupported
150         ;;
151
152 bsdi4*)
153         # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
154         # shared libraries.  gcc 2.x is the standard compiler, and the
155         # `normal' gcc options should work as they do in Linux.
156
157         SHOBJ_CFLAGS=-fPIC
158         SHOBJ_LD='${CC}'
159         SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
160
161         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
162         ;;
163
164 osf*-gcc*)
165         # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
166         SHOBJ_LD='${CC}'
167         SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
168
169         SHLIB_XLDFLAGS='-rpath $(libdir)'
170         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
171         ;;
172
173 osf*)
174         SHOBJ_LD=ld
175         SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
176
177         SHLIB_XLDFLAGS='-rpath $(libdir)'
178         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
179         ;;
180
181 aix4.[2-9]*-gcc*)               # lightly tested by jik@cisco.com
182         SHOBJ_CFLAGS=-fpic
183         SHOBJ_LD='ld'
184         SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
185         SHOBJ_XLDFLAGS='-G'
186
187         SHLIB_XLDFLAGS='-bM:SRE'
188         SHLIB_LIBS='-lcurses -lc'
189         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
190         ;;
191
192 aix4.[2-9]*)
193         SHOBJ_CFLAGS=-K
194         SHOBJ_LD='ld'
195         SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
196         SHOBJ_XLDFLAGS='-G'
197
198         SHLIB_XLDFLAGS='-bM:SRE'
199         SHLIB_LIBS='-lcurses -lc'
200         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
201         ;;
202
203 #
204 # THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
205 #
206 irix[56]*-gcc*)
207         SHOBJ_CFLAGS='-fpic'
208         SHOBJ_LD='${CC}'
209         SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
210
211         SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
212         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
213         ;;
214
215 irix[56]*)
216         SHOBJ_CFLAGS='-K PIC'
217         SHOBJ_LD=ld
218 #       SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
219 #       Change from David Kaelbling <drk@sgi.com>
220         SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
221
222         SHLIB_XLDFLAGS='-rpath $(libdir)'
223         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
224         ;;
225
226 hpux9*-gcc*)
227         # must use gcc; the bundled cc cannot compile PIC code
228         SHOBJ_CFLAGS='-fpic'
229         SHOBJ_LD='${CC}'
230         SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
231
232         SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
233         SHLIB_LIBSUFF='sl'
234         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
235         ;;
236
237 hpux9*)
238         SHOBJ_STATUS=unsupported
239         SHLIB_STATUS=unsupported
240         ;;
241
242 hpux10*-gcc*)
243         # must use gcc; the bundled cc cannot compile PIC code
244         SHOBJ_CFLAGS='-fpic'
245         SHOBJ_LD='${CC}'
246         SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
247
248         SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
249         SHLIB_LIBSUFF='sl'
250         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
251         ;;
252
253 hpux10*)
254         SHOBJ_STATUS=unsupported
255         SHLIB_STATUS=unsupported
256         ;;
257
258 hpux11*-gcc*)
259         # must use gcc; the bundled cc cannot compile PIC code
260         SHOBJ_CFLAGS='-fpic'
261         SHOBJ_LD='${CC}'
262 #       SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
263         SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s -Wl,+h,$@'
264
265         SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
266         SHLIB_LIBSUFF='sl'
267         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
268         ;;
269
270 hpux11*)
271         SHOBJ_STATUS=unsupported
272         SHLIB_STATUS=unsupported
273         ;;
274
275 sysv4*-gcc*)
276         SHOBJ_CFLAGS=-shared
277         SHOBJ_LDFLAGS='-shared -h $@'
278         SHOBJ_LD='${CC}'
279
280         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
281         ;;
282
283 sysv4*)
284         SHOBJ_CFLAGS='-K PIC'
285         SHOBJ_LD=ld
286         SHOBJ_LDFLAGS='-dy -z text -G -h $@'
287
288         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
289         ;;
290
291 sco3.2v5*-gcc*)
292         SHOBJ_CFLAGS='-fpic'            # DEFAULTS TO ELF
293         SHOBJ_LD='${CC}'
294         SHOBJ_LDFLAGS='-shared'
295
296         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
297         ;;
298
299 sco3.2v5*)
300         SHOBJ_CFLAGS='-K pic -b elf'
301         SHOBJ_LD=ld
302         SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
303
304         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
305         ;;
306
307 sysv5uw7*-gcc*)
308         SHOBJ_CFLAGS='-fpic'
309         SHOBJ_LD='${CC}'
310         SHOBJ_LDFLAGS='-shared'
311
312         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
313         ;;
314
315 sysv5uw7*)
316         SHOBJ_CFLAGS='-K PIC'
317         SHOBJ_LD=ld
318         SHOBJ_LDFLAGS='-G -dy -z text -h $@'
319
320         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
321         ;;
322         
323 dgux*-gcc*)
324         SHOBJ_CFLAGS=-fpic
325         SHOBJ_LD='${CC}'
326         SHOBJ_LDFLAGS='-shared'
327
328         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
329         ;;
330
331 dgux*)
332         SHOBJ_CFLAGS='-K pic'
333         SHOBJ_LD=ld
334         SHOBJ_LDFLAGS='-G -dy -h $@'
335
336         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
337         ;;
338
339 msdos*)
340         SHOBJ_STATUS=unsupported
341         SHLIB_STATUS=unsupported
342         ;;
343
344 #
345 # Rely on correct gcc configuration for everything else
346 #
347 *-gcc*)
348         SHOBJ_CFLAGS=-fpic
349         SHOBJ_LD='${CC}'
350         SHOBJ_LDFLAGS='-shared'
351
352         SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
353         ;;
354
355 *)
356         SHOBJ_STATUS=unsupported
357         SHLIB_STATUS=unsupported
358         ;;
359
360 esac
361
362 echo SHOBJ_CC=\'"$SHOBJ_CC"\'
363 echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
364 echo SHOBJ_LD=\'"$SHOBJ_LD"\'
365 echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
366 echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
367 echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
368
369 echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
370 echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
371 echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
372 echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
373
374 echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
375 echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
376
377 exit 0