]> git.ipfire.org Git - thirdparty/readline.git/blame - support/shobj-conf
Readline-4.2a import
[thirdparty/readline.git] / support / shobj-conf
CommitLineData
d19d2a57
CR
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#
16SHOBJ_STATUS=supported
17SHLIB_STATUS=supported
18
19SHOBJ_CC=cc
20SHOBJ_CFLAGS=
21SHOBJ_LD=
22SHOBJ_LDFLAGS=
23SHOBJ_XLDFLAGS=
24SHOBJ_LIBS=
25
26SHLIB_XLDFLAGS=
27SHLIB_LIBS=
28SHLIB_LIBSUFF='so'
29
30SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
31
32PROGNAME=`basename $0`
33USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
34
35while [ $# -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
43done
44
45case "${host_os}-${SHOBJ_CC}" in
f8d82ba2 46sunos4*-*gcc*)
d19d2a57
CR
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
54sunos4*)
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
f8d82ba2 62sunos5*-*gcc*|solaris2*-*gcc*)
d19d2a57
CR
63 SHOBJ_CFLAGS=-fpic
64 SHOBJ_LD='${CC}'
2916980b 65 SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
d19d2a57 66
2916980b 67# SHLIB_XLDFLAGS='-R $(libdir)'
d19d2a57
CR
68 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
69 ;;
70
71sunos5*|solaris2*)
72 SHOBJ_CFLAGS='-K pic'
73 SHOBJ_LD=/usr/ccs/bin/ld
74 SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
75
2916980b 76# SHLIB_XLDFLAGS='-R $(libdir)'
d19d2a57
CR
77 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
78 ;;
79
abde3125
CR
80# All versions of Linux or the semi-mythical GNU Hurd.
81linux*|gnu*)
82 SHOBJ_CFLAGS=-fPIC
83 SHOBJ_LD='${CC}'
84 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
85
86 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
87 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
88 ;;
89
90freebsd2* | netbsd*)
d19d2a57
CR
91 SHOBJ_CFLAGS=-fpic
92 SHOBJ_LD=ld
93 SHOBJ_LDFLAGS='-x -Bshareable'
94
95 SHLIB_XLDFLAGS='-R$(libdir)'
96 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
97 ;;
98
2916980b 99# FreeBSD-3.x ELF
f8d82ba2 100freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
d19d2a57
CR
101 SHOBJ_CFLAGS=-fpic
102 SHOBJ_LD='${CC}'
d19d2a57 103
2916980b
CR
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
d19d2a57 115 ;;
abde3125
CR
116
117# Darwin/MacOS X
118darwin*|macosx*)
119 SHOBJ_STATUS=unsupported
120 SHLIB_STATUS=supported
121
122 SHOBJ_CFLAGS='-dynamic -fno-common'
123
124 SHOBJ_LD=/usr/bin/libtool
125
126 SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
127 SHLIB_LIBSUFF='dylib'
128
129 SHOBJ_LDFLAGS='-dynamic'
130 SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
131
132 SHLIB_LIBS='-lSystem'
133 ;;
134
135openbsd*)
d19d2a57
CR
136 SHOBJ_CFLAGS=-fPIC
137 SHOBJ_LD='${CC}'
abde3125 138 SHOBJ_LDFLAGS='-shared'
d19d2a57 139
abde3125 140 SHLIB_XLDFLAGS='-R$(libdir)'
d19d2a57
CR
141 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
142 ;;
143
144bsdi2*)
145 SHOBJ_CC=shlicc2
146 SHOBJ_CFLAGS=
147 SHOBJ_LD=ld
148 SHOBJ_LDFLAGS=-r
149 SHOBJ_LIBS=-lc_s.2.1.0
150
151 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
152 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
153 # each system, and the library creation process is byzantine
154 SHLIB_STATUS=unsupported
155 ;;
156
157bsdi3*)
158 SHOBJ_CC=shlicc2
159 SHOBJ_CFLAGS=
160 SHOBJ_LD=ld
161 SHOBJ_LDFLAGS=-r
162 SHOBJ_LIBS=-lc_s.3.0.0
163
164 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
165 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
166 # each system, and the library creation process is byzantine
167 SHLIB_STATUS=unsupported
168 ;;
169
170bsdi4*)
171 # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
172 # shared libraries. gcc 2.x is the standard compiler, and the
173 # `normal' gcc options should work as they do in Linux.
174
175 SHOBJ_CFLAGS=-fPIC
176 SHOBJ_LD='${CC}'
177 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
178
f8d82ba2 179 SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
d19d2a57
CR
180 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
181 ;;
182
f8d82ba2 183osf*-*gcc*)
2916980b
CR
184 # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
185 SHOBJ_LD='${CC}'
186 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
187
188 SHLIB_XLDFLAGS='-rpath $(libdir)'
189 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
190 ;;
191
d19d2a57
CR
192osf*)
193 SHOBJ_LD=ld
194 SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
195
196 SHLIB_XLDFLAGS='-rpath $(libdir)'
197 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
198 ;;
199
f8d82ba2 200aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
d19d2a57
CR
201 SHOBJ_CFLAGS=-fpic
202 SHOBJ_LD='ld'
203 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
204 SHOBJ_XLDFLAGS='-G'
205
206 SHLIB_XLDFLAGS='-bM:SRE'
207 SHLIB_LIBS='-lcurses -lc'
208 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
209 ;;
210
211aix4.[2-9]*)
212 SHOBJ_CFLAGS=-K
213 SHOBJ_LD='ld'
214 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
215 SHOBJ_XLDFLAGS='-G'
216
217 SHLIB_XLDFLAGS='-bM:SRE'
218 SHLIB_LIBS='-lcurses -lc'
219 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
220 ;;
221
222#
223# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
224#
f8d82ba2 225irix[56]*-*gcc*)
d19d2a57
CR
226 SHOBJ_CFLAGS='-fpic'
227 SHOBJ_LD='${CC}'
228 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
229
230 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
231 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
232 ;;
233
234irix[56]*)
235 SHOBJ_CFLAGS='-K PIC'
236 SHOBJ_LD=ld
2916980b 237# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
f8d82ba2
CR
238# Change from David Kaelbling <drk@sgi.com>. If you have problems,
239# remove the `-no_unresolved'
2916980b 240 SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
d19d2a57
CR
241
242 SHLIB_XLDFLAGS='-rpath $(libdir)'
243 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
244 ;;
245
f8d82ba2 246hpux9*-*gcc*)
d19d2a57
CR
247 # must use gcc; the bundled cc cannot compile PIC code
248 SHOBJ_CFLAGS='-fpic'
249 SHOBJ_LD='${CC}'
250 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
251
252 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
253 SHLIB_LIBSUFF='sl'
254 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
255 ;;
256
257hpux9*)
258 SHOBJ_STATUS=unsupported
259 SHLIB_STATUS=unsupported
abde3125
CR
260
261 # If you are using the HP ANSI C compiler, you can uncomment and use
262 # this code (I have not tested it)
263# SHOBJ_STATUS=supported
264# SHLIB_STATUS=supported
265#
266# SHOBJ_CFLAGS='+z'
267# SHOBJ_LD='ld'
268# SHOBJ_LDFLAGS='-b +s'
269#
270# SHLIB_XLDFLAGS='+b $(libdir)'
271# SHLIB_LIBSUFF='sl'
272# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
273
d19d2a57
CR
274 ;;
275
f8d82ba2 276hpux10*-*gcc*)
d19d2a57
CR
277 # must use gcc; the bundled cc cannot compile PIC code
278 SHOBJ_CFLAGS='-fpic'
279 SHOBJ_LD='${CC}'
280 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
281
282 SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
283 SHLIB_LIBSUFF='sl'
284 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
285 ;;
286
287hpux10*)
288 SHOBJ_STATUS=unsupported
289 SHLIB_STATUS=unsupported
f8d82ba2
CR
290
291 # If you are using the HP ANSI C compiler, you can uncomment and use
abde3125
CR
292 # this code (I have not tested it)
293# SHOBJ_STATUS=supported
294# SHLIB_STATUS=supported
f8d82ba2
CR
295#
296# SHOBJ_CFLAGS='+z'
297# SHOBJ_LD='ld'
abde3125 298# SHOBJ_LDFLAGS='-b +s +h $@'
f8d82ba2 299#
abde3125 300# SHLIB_XLDFLAGS='+b $(libdir)'
f8d82ba2
CR
301# SHLIB_LIBSUFF='sl'
302# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
abde3125 303
d19d2a57
CR
304 ;;
305
f8d82ba2 306hpux11*-*gcc*)
d19d2a57
CR
307 # must use gcc; the bundled cc cannot compile PIC code
308 SHOBJ_CFLAGS='-fpic'
309 SHOBJ_LD='${CC}'
310# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
f8d82ba2 311 SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
d19d2a57
CR
312
313 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
314 SHLIB_LIBSUFF='sl'
315 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
316 ;;
317
318hpux11*)
319 SHOBJ_STATUS=unsupported
320 SHLIB_STATUS=unsupported
f8d82ba2
CR
321
322 # If you are using the HP ANSI C compiler, you can uncomment and use
abde3125
CR
323 # this code (I have not tested it)
324# SHOBJ_STATUS=supported
325# SHLIB_STATUS=supported
f8d82ba2
CR
326#
327# SHOBJ_CFLAGS='+z'
328# SHOBJ_LD='ld'
abde3125 329# SHOBJ_LDFLAGS='-b +s +h $@'
f8d82ba2 330#
abde3125 331# SHLIB_XLDFLAGS='+b $(libdir)'
f8d82ba2
CR
332# SHLIB_LIBSUFF='sl'
333# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
334
d19d2a57
CR
335 ;;
336
f8d82ba2 337sysv4*-*gcc*)
d19d2a57
CR
338 SHOBJ_CFLAGS=-shared
339 SHOBJ_LDFLAGS='-shared -h $@'
340 SHOBJ_LD='${CC}'
341
342 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
343 ;;
344
345sysv4*)
346 SHOBJ_CFLAGS='-K PIC'
347 SHOBJ_LD=ld
348 SHOBJ_LDFLAGS='-dy -z text -G -h $@'
349
350 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
351 ;;
352
f8d82ba2 353sco3.2v5*-*gcc*)
d19d2a57
CR
354 SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
355 SHOBJ_LD='${CC}'
356 SHOBJ_LDFLAGS='-shared'
357
358 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
359 ;;
360
361sco3.2v5*)
362 SHOBJ_CFLAGS='-K pic -b elf'
363 SHOBJ_LD=ld
364 SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
365
366 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
367 ;;
368
f8d82ba2 369sysv5uw7*-*gcc*)
d19d2a57
CR
370 SHOBJ_CFLAGS='-fpic'
371 SHOBJ_LD='${CC}'
372 SHOBJ_LDFLAGS='-shared'
373
374 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
375 ;;
376
377sysv5uw7*)
378 SHOBJ_CFLAGS='-K PIC'
379 SHOBJ_LD=ld
380 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
381
382 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
383 ;;
384
f8d82ba2 385dgux*-*gcc*)
d19d2a57
CR
386 SHOBJ_CFLAGS=-fpic
387 SHOBJ_LD='${CC}'
388 SHOBJ_LDFLAGS='-shared'
389
390 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
391 ;;
392
393dgux*)
394 SHOBJ_CFLAGS='-K pic'
395 SHOBJ_LD=ld
396 SHOBJ_LDFLAGS='-G -dy -h $@'
397
398 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
399 ;;
2916980b
CR
400
401msdos*)
402 SHOBJ_STATUS=unsupported
403 SHLIB_STATUS=unsupported
404 ;;
405
d19d2a57
CR
406#
407# Rely on correct gcc configuration for everything else
408#
f8d82ba2 409*-*gcc*)
d19d2a57
CR
410 SHOBJ_CFLAGS=-fpic
411 SHOBJ_LD='${CC}'
412 SHOBJ_LDFLAGS='-shared'
413
414 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
415 ;;
416
417*)
418 SHOBJ_STATUS=unsupported
419 SHLIB_STATUS=unsupported
420 ;;
421
422esac
423
424echo SHOBJ_CC=\'"$SHOBJ_CC"\'
425echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
426echo SHOBJ_LD=\'"$SHOBJ_LD"\'
427echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
428echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
429echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
430
431echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
432echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
433echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
434echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
435
436echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
437echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
438
439exit 0