]> git.ipfire.org Git - thirdparty/bash.git/blame - support/shobj-conf
Imported from ../bash-2.05.tar.gz.
[thirdparty/bash.git] / support / shobj-conf
CommitLineData
b72432fd
JA
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
28ef6c31 46sunos4*-*gcc*)
b72432fd
JA
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
28ef6c31 62sunos5*-*gcc*|solaris2*-*gcc*)
b72432fd
JA
63 SHOBJ_CFLAGS=-fpic
64 SHOBJ_LD='${CC}'
bb70624e 65 SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
b72432fd 66
bb70624e 67# SHLIB_XLDFLAGS='-R $(libdir)'
b72432fd
JA
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
bb70624e 76# SHLIB_XLDFLAGS='-R $(libdir)'
b72432fd
JA
77 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
78 ;;
79
80freebsd2* | 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
bb70624e
JA
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
28ef6c31 100freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
b72432fd
JA
101 SHOBJ_CFLAGS=-fpic
102 SHOBJ_LD='${CC}'
b72432fd 103
bb70624e
JA
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
b72432fd 115 ;;
28ef6c31
JA
116# All versions of Linux or the semi-mythical GNU Hurd.
117linux*|gnu*)
b72432fd
JA
118 SHOBJ_CFLAGS=-fPIC
119 SHOBJ_LD='${CC}'
120 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
121
28ef6c31 122 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
b72432fd
JA
123 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
124 ;;
125
126bsdi2*)
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
139bsdi3*)
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
152bsdi4*)
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
28ef6c31 161 SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
b72432fd
JA
162 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
163 ;;
164
28ef6c31 165osf*-*gcc*)
bb70624e
JA
166 # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
167 SHOBJ_LD='${CC}'
168 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
169
170 SHLIB_XLDFLAGS='-rpath $(libdir)'
171 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
172 ;;
173
b72432fd
JA
174osf*)
175 SHOBJ_LD=ld
176 SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
177
178 SHLIB_XLDFLAGS='-rpath $(libdir)'
179 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
180 ;;
181
28ef6c31 182aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
b72432fd
JA
183 SHOBJ_CFLAGS=-fpic
184 SHOBJ_LD='ld'
185 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
186 SHOBJ_XLDFLAGS='-G'
187
188 SHLIB_XLDFLAGS='-bM:SRE'
189 SHLIB_LIBS='-lcurses -lc'
190 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
191 ;;
192
193aix4.[2-9]*)
194 SHOBJ_CFLAGS=-K
195 SHOBJ_LD='ld'
196 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
197 SHOBJ_XLDFLAGS='-G'
198
199 SHLIB_XLDFLAGS='-bM:SRE'
200 SHLIB_LIBS='-lcurses -lc'
201 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
202 ;;
203
204#
205# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
206#
28ef6c31 207irix[56]*-*gcc*)
b72432fd
JA
208 SHOBJ_CFLAGS='-fpic'
209 SHOBJ_LD='${CC}'
210 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
211
212 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
213 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
214 ;;
215
216irix[56]*)
217 SHOBJ_CFLAGS='-K PIC'
218 SHOBJ_LD=ld
bb70624e 219# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
28ef6c31
JA
220# Change from David Kaelbling <drk@sgi.com>. If you have problems,
221# remove the `-no_unresolved'
bb70624e 222 SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
b72432fd
JA
223
224 SHLIB_XLDFLAGS='-rpath $(libdir)'
225 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
226 ;;
227
28ef6c31 228hpux9*-*gcc*)
b72432fd
JA
229 # must use gcc; the bundled cc cannot compile PIC code
230 SHOBJ_CFLAGS='-fpic'
231 SHOBJ_LD='${CC}'
232 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
233
234 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
235 SHLIB_LIBSUFF='sl'
236 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
237 ;;
238
239hpux9*)
240 SHOBJ_STATUS=unsupported
241 SHLIB_STATUS=unsupported
242 ;;
243
28ef6c31 244hpux10*-*gcc*)
b72432fd
JA
245 # must use gcc; the bundled cc cannot compile PIC code
246 SHOBJ_CFLAGS='-fpic'
247 SHOBJ_LD='${CC}'
248 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
249
250 SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
251 SHLIB_LIBSUFF='sl'
252 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
253 ;;
254
255hpux10*)
256 SHOBJ_STATUS=unsupported
257 SHLIB_STATUS=unsupported
28ef6c31
JA
258
259 # If you are using the HP ANSI C compiler, you can uncomment and use
260 # this code
261# SHOBJ_STATUS=unsupported
262# SHLIB_STATUS=unsupported
263#
264# SHOBJ_CFLAGS='+z'
265# SHOBJ_LD='ld'
266# SHOBJ_LDFLAGS='-b'
267#
268# SHLIB_XLDFLAGS=''
269# SHLIB_LIBSUFF='sl'
270# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
b72432fd
JA
271 ;;
272
28ef6c31 273hpux11*-*gcc*)
b72432fd
JA
274 # must use gcc; the bundled cc cannot compile PIC code
275 SHOBJ_CFLAGS='-fpic'
276 SHOBJ_LD='${CC}'
277# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
28ef6c31 278 SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
b72432fd
JA
279
280 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
281 SHLIB_LIBSUFF='sl'
282 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
283 ;;
284
285hpux11*)
286 SHOBJ_STATUS=unsupported
287 SHLIB_STATUS=unsupported
28ef6c31
JA
288
289 # If you are using the HP ANSI C compiler, you can uncomment and use
290 # this code
291# SHOBJ_STATUS=unsupported
292# SHLIB_STATUS=unsupported
293#
294# SHOBJ_CFLAGS='+z'
295# SHOBJ_LD='ld'
296# SHOBJ_LDFLAGS='-b'
297#
298# SHLIB_XLDFLAGS=''
299# SHLIB_LIBSUFF='sl'
300# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
301
b72432fd
JA
302 ;;
303
28ef6c31 304sysv4*-*gcc*)
b72432fd
JA
305 SHOBJ_CFLAGS=-shared
306 SHOBJ_LDFLAGS='-shared -h $@'
307 SHOBJ_LD='${CC}'
308
309 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
310 ;;
311
312sysv4*)
313 SHOBJ_CFLAGS='-K PIC'
314 SHOBJ_LD=ld
315 SHOBJ_LDFLAGS='-dy -z text -G -h $@'
316
317 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
318 ;;
319
28ef6c31 320sco3.2v5*-*gcc*)
b72432fd
JA
321 SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
322 SHOBJ_LD='${CC}'
323 SHOBJ_LDFLAGS='-shared'
324
325 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
326 ;;
327
328sco3.2v5*)
329 SHOBJ_CFLAGS='-K pic -b elf'
330 SHOBJ_LD=ld
331 SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
332
333 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
334 ;;
335
28ef6c31 336sysv5uw7*-*gcc*)
b72432fd
JA
337 SHOBJ_CFLAGS='-fpic'
338 SHOBJ_LD='${CC}'
339 SHOBJ_LDFLAGS='-shared'
340
341 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
342 ;;
343
344sysv5uw7*)
345 SHOBJ_CFLAGS='-K PIC'
346 SHOBJ_LD=ld
347 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
348
349 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
350 ;;
351
28ef6c31 352dgux*-*gcc*)
b72432fd
JA
353 SHOBJ_CFLAGS=-fpic
354 SHOBJ_LD='${CC}'
355 SHOBJ_LDFLAGS='-shared'
356
357 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
358 ;;
359
360dgux*)
361 SHOBJ_CFLAGS='-K pic'
362 SHOBJ_LD=ld
363 SHOBJ_LDFLAGS='-G -dy -h $@'
364
365 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
366 ;;
bb70624e
JA
367
368msdos*)
369 SHOBJ_STATUS=unsupported
370 SHLIB_STATUS=unsupported
371 ;;
372
b72432fd
JA
373#
374# Rely on correct gcc configuration for everything else
375#
28ef6c31 376*-*gcc*)
b72432fd
JA
377 SHOBJ_CFLAGS=-fpic
378 SHOBJ_LD='${CC}'
379 SHOBJ_LDFLAGS='-shared'
380
381 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
382 ;;
383
384*)
385 SHOBJ_STATUS=unsupported
386 SHLIB_STATUS=unsupported
387 ;;
388
389esac
390
391echo SHOBJ_CC=\'"$SHOBJ_CC"\'
392echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
393echo SHOBJ_LD=\'"$SHOBJ_LD"\'
394echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
395echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
396echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
397
398echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
399echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
400echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
401echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
402
403echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
404echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
405
406exit 0