0e306bc1a72133843955a0e80219e966f3d50542
[deliverable/binutils-gdb.git] / readline / 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 # Copyright (C) 1996-2002 Free Software Foundation, Inc.
14 #
15 # This program is free software; you can redistribute it and/or modify
16 # it under the terms of the GNU General Public License as published by
17 # the Free Software Foundation; either version 2, or (at your option)
18 # any later version.
19 #
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
24 #
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write to the Free Software
27 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
28
29 #
30 # defaults
31 #
32 SHOBJ_STATUS=supported
33 SHLIB_STATUS=supported
34
35 SHOBJ_CC=cc
36 SHOBJ_CFLAGS=
37 SHOBJ_LD=
38 SHOBJ_LDFLAGS=
39 SHOBJ_XLDFLAGS=
40 SHOBJ_LIBS=
41
42 SHLIB_XLDFLAGS=
43 SHLIB_LIBS=
44
45 SHLIB_DOT='.'
46 SHLIB_LIBPREF='lib'
47 SHLIB_LIBSUFF='so'
48
49 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
50 SHLIB_DLLVERSION='$(SHLIB_MAJOR)'
51
52 PROGNAME=`basename $0`
53 USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
54
55 while [ $# -gt 0 ]; do
56 case "$1" in
57 -C) shift; SHOBJ_CC="$1"; shift ;;
58 -c) shift; host_cpu="$1"; shift ;;
59 -o) shift; host_os="$1"; shift ;;
60 -v) shift; host_vendor="$1"; shift ;;
61 *) echo "$USAGE" >&2 ; exit 2;;
62 esac
63 done
64
65 case "${host_os}-${SHOBJ_CC}" in
66 sunos4*-*gcc*)
67 SHOBJ_CFLAGS=-fpic
68 SHOBJ_LD=/usr/bin/ld
69 SHOBJ_LDFLAGS='-assert pure-text'
70
71 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
72 ;;
73
74 sunos4*)
75 SHOBJ_CFLAGS=-pic
76 SHOBJ_LD=/usr/bin/ld
77 SHOBJ_LDFLAGS='-assert pure-text'
78
79 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
80 ;;
81
82 sunos5*-*gcc*|solaris2*-*gcc*)
83 SHOBJ_CFLAGS=-fpic
84 SHOBJ_LD='${CC}'
85 ld_used=`gcc -print-prog-name=ld`
86 if ${ld_used} -V 2>&1 | grep GNU >/dev/null 2>&1; then
87 # This line works for the GNU ld
88 SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
89 else
90 # This line works for the Solaris linker in /usr/ccs/bin/ld
91 SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
92 fi
93
94 # SHLIB_XLDFLAGS='-R $(libdir)'
95 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
96 ;;
97
98 sunos5*|solaris2*)
99 SHOBJ_CFLAGS='-K pic'
100 SHOBJ_LD=/usr/ccs/bin/ld
101 SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
102
103 # SHLIB_XLDFLAGS='-R $(libdir)'
104 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
105 ;;
106
107 # All versions of Linux or the semi-mythical GNU Hurd.
108 linux*-*|gnu*-*|k*bsd*-gnu-*)
109 SHOBJ_CFLAGS=-fPIC
110 SHOBJ_LD='${CC}'
111 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
112
113 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
114 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
115 ;;
116
117 freebsd2* | netbsd*)
118 SHOBJ_CFLAGS=-fpic
119 SHOBJ_LD=ld
120 SHOBJ_LDFLAGS='-x -Bshareable'
121
122 SHLIB_XLDFLAGS='-R$(libdir)'
123 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
124 ;;
125
126 # FreeBSD-3.x ELF
127 freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
128 SHOBJ_CFLAGS=-fpic
129 SHOBJ_LD='${CC}'
130
131 if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
132 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
133
134 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
135 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
136 else
137 SHOBJ_LDFLAGS='-shared'
138
139 SHLIB_XLDFLAGS='-R$(libdir)'
140 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
141 fi
142 ;;
143
144 # Darwin/MacOS X
145 darwin*|macosx*)
146 SHOBJ_STATUS=unsupported
147 SHLIB_STATUS=supported
148
149 SHOBJ_CFLAGS='-fno-common'
150
151 SHOBJ_LD='${CC}'
152
153 SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
154 SHLIB_LIBSUFF='dylib'
155
156 case "${host_os}" in
157 darwin[78]*) SHOBJ_LDFLAGS=''
158 SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
159 ;;
160 *) SHOBJ_LDFLAGS='-dynamic'
161 SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
162 ;;
163 esac
164
165 SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
166 ;;
167
168 openbsd*)
169 SHOBJ_CFLAGS=-fPIC
170 SHOBJ_LD='${CC}'
171 SHOBJ_LDFLAGS='-shared'
172
173 SHLIB_XLDFLAGS='-R$(libdir)'
174 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
175 ;;
176
177 bsdi2*)
178 SHOBJ_CC=shlicc2
179 SHOBJ_CFLAGS=
180 SHOBJ_LD=ld
181 SHOBJ_LDFLAGS=-r
182 SHOBJ_LIBS=-lc_s.2.1.0
183
184 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
185 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
186 # each system, and the library creation process is byzantine
187 SHLIB_STATUS=unsupported
188 ;;
189
190 bsdi3*)
191 SHOBJ_CC=shlicc2
192 SHOBJ_CFLAGS=
193 SHOBJ_LD=ld
194 SHOBJ_LDFLAGS=-r
195 SHOBJ_LIBS=-lc_s.3.0.0
196
197 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
198 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
199 # each system, and the library creation process is byzantine
200 SHLIB_STATUS=unsupported
201 ;;
202
203 bsdi4*)
204 # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
205 # shared libraries. gcc 2.x is the standard compiler, and the
206 # `normal' gcc options should work as they do in Linux.
207
208 SHOBJ_CFLAGS=-fPIC
209 SHOBJ_LD='${CC}'
210 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
211
212 SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
213 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
214 ;;
215
216 osf*-*gcc*)
217 # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
218 SHOBJ_LD='${CC}'
219 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
220
221 SHLIB_XLDFLAGS='-rpath $(libdir)'
222 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
223 ;;
224
225 osf*)
226 SHOBJ_LD=ld
227 SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
228
229 SHLIB_XLDFLAGS='-rpath $(libdir)'
230 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
231 ;;
232
233 aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
234 SHOBJ_CFLAGS=-fpic
235 SHOBJ_LD='ld'
236 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
237 SHOBJ_XLDFLAGS='-G'
238
239 SHLIB_XLDFLAGS='-bM:SRE'
240 SHLIB_LIBS='-lcurses -lc'
241 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
242 ;;
243
244 aix4.[2-9]*)
245 SHOBJ_CFLAGS=-K
246 SHOBJ_LD='ld'
247 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
248 SHOBJ_XLDFLAGS='-G'
249
250 SHLIB_XLDFLAGS='-bM:SRE'
251 SHLIB_LIBS='-lcurses -lc'
252 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
253 ;;
254
255 #
256 # THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
257 #
258 irix[56]*-*gcc*)
259 SHOBJ_CFLAGS='-fpic'
260 SHOBJ_LD='${CC}'
261 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
262
263 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
264 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
265 ;;
266
267 irix[56]*)
268 SHOBJ_CFLAGS='-K PIC'
269 SHOBJ_LD=ld
270 # SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
271 # Change from David Kaelbling <drk@sgi.com>. If you have problems,
272 # remove the `-no_unresolved'
273 SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
274
275 SHLIB_XLDFLAGS='-rpath $(libdir)'
276 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
277 ;;
278
279 hpux9*-*gcc*)
280 # must use gcc; the bundled cc cannot compile PIC code
281 SHOBJ_CFLAGS='-fpic'
282 SHOBJ_LD='${CC}'
283 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
284
285 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
286 SHLIB_LIBSUFF='sl'
287 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
288 ;;
289
290 hpux9*)
291 SHOBJ_STATUS=unsupported
292 SHLIB_STATUS=unsupported
293
294 # If you are using the HP ANSI C compiler, you can uncomment and use
295 # this code (I have not tested it)
296 # SHOBJ_STATUS=supported
297 # SHLIB_STATUS=supported
298 #
299 # SHOBJ_CFLAGS='+z'
300 # SHOBJ_LD='ld'
301 # SHOBJ_LDFLAGS='-b +s'
302 #
303 # SHLIB_XLDFLAGS='+b $(libdir)'
304 # SHLIB_LIBSUFF='sl'
305 # SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
306
307 ;;
308
309 hpux10*-*gcc*)
310 # must use gcc; the bundled cc cannot compile PIC code
311 SHOBJ_CFLAGS='-fpic'
312 SHOBJ_LD='${CC}'
313 # if you have problems linking here, moving the `-Wl,+h,$@' from
314 # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
315 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
316
317 SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
318 SHLIB_LIBSUFF='sl'
319 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
320 ;;
321
322 hpux10*)
323 SHOBJ_STATUS=unsupported
324 SHLIB_STATUS=unsupported
325
326 # If you are using the HP ANSI C compiler, you can uncomment and use
327 # this code (I have not tested it)
328 # SHOBJ_STATUS=supported
329 # SHLIB_STATUS=supported
330 #
331 # SHOBJ_CFLAGS='+z'
332 # SHOBJ_LD='ld'
333 # SHOBJ_LDFLAGS='-b +s +h $@'
334 #
335 # SHLIB_XLDFLAGS='+b $(libdir)'
336 # SHLIB_LIBSUFF='sl'
337 # SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
338
339 ;;
340
341 hpux11*-*gcc*)
342 # must use gcc; the bundled cc cannot compile PIC code
343 SHOBJ_CFLAGS='-fpic'
344 SHOBJ_LD='${CC}'
345 # SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
346 SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
347
348 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
349 SHLIB_LIBSUFF='sl'
350 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
351 ;;
352
353 hpux11*)
354 SHOBJ_STATUS=unsupported
355 SHLIB_STATUS=unsupported
356
357 # If you are using the HP ANSI C compiler, you can uncomment and use
358 # this code (I have not tested it)
359 # SHOBJ_STATUS=supported
360 # SHLIB_STATUS=supported
361 #
362 # SHOBJ_CFLAGS='+z'
363 # SHOBJ_LD='ld'
364 # SHOBJ_LDFLAGS='-b +s +h $@'
365 #
366 # SHLIB_XLDFLAGS='+b $(libdir)'
367 # SHLIB_LIBSUFF='sl'
368 # SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
369
370 ;;
371
372 sysv4*-*gcc*)
373 SHOBJ_CFLAGS=-shared
374 SHOBJ_LDFLAGS='-shared -h $@'
375 SHOBJ_LD='${CC}'
376
377 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
378 ;;
379
380 sysv4*)
381 SHOBJ_CFLAGS='-K PIC'
382 SHOBJ_LD=ld
383 SHOBJ_LDFLAGS='-dy -z text -G -h $@'
384
385 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
386 ;;
387
388 sco3.2v5*-*gcc*)
389 SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
390 SHOBJ_LD='${CC}'
391 SHOBJ_LDFLAGS='-shared'
392
393 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
394 ;;
395
396 sco3.2v5*)
397 SHOBJ_CFLAGS='-K pic -b elf'
398 SHOBJ_LD=ld
399 SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
400
401 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
402 ;;
403
404 sysv5uw7*-*gcc*)
405 SHOBJ_CFLAGS='-fpic'
406 SHOBJ_LD='${CC}'
407 SHOBJ_LDFLAGS='-shared'
408
409 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
410 ;;
411
412 sysv5uw7*)
413 SHOBJ_CFLAGS='-K PIC'
414 SHOBJ_LD=ld
415 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
416
417 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
418 ;;
419
420 sysv5UnixWare*-*gcc*)
421 SHOBJ_CFLAGS=-fpic
422 SHOBJ_LD='${CC}'
423 SHOBJ_LDFLAGS='-shared'
424
425 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
426 ;;
427
428 sysv5UnixWare*)
429 SHOBJ_CFLAGS='-K PIC'
430 SHOBJ_LD=ld
431 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
432
433 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
434 ;;
435
436 sysv5OpenUNIX*-*gcc*)
437 SHOBJ_CFLAGS=-fpic
438 SHOBJ_LD='${CC}'
439 SHOBJ_LDFLAGS='-shared'
440
441 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
442 ;;
443
444 sysv5OpenUNIX*)
445 SHOBJ_CFLAGS='-K PIC'
446 SHOBJ_LD=ld
447 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
448
449 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
450 ;;
451
452 dgux*-*gcc*)
453 SHOBJ_CFLAGS=-fpic
454 SHOBJ_LD='${CC}'
455 SHOBJ_LDFLAGS='-shared'
456
457 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
458 ;;
459
460 dgux*)
461 SHOBJ_CFLAGS='-K pic'
462 SHOBJ_LD=ld
463 SHOBJ_LDFLAGS='-G -dy -h $@'
464
465 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
466 ;;
467
468 msdos*)
469 SHOBJ_STATUS=unsupported
470 SHLIB_STATUS=unsupported
471 ;;
472
473 cygwin*)
474 SHOBJ_LD='$(CC)'
475 SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a'
476 SHLIB_LIBPREF='cyg'
477 SHLIB_LIBSUFF='dll'
478 SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)'
479 SHLIB_LIBS='$(TERMCAP_LIB)'
480
481 SHLIB_DOT=
482 # For official cygwin releases, DLLVERSION will be defined in the
483 # environment of configure, and will be incremented any time the API
484 # changes in a non-backwards compatible manner. Otherwise, it is just
485 # SHLIB_MAJOR.
486 if [ -n "$DLLVERSION" ] ; then
487 SHLIB_DLLVERSION="$DLLVERSION"
488 fi
489 ;;
490
491 #
492 # Rely on correct gcc configuration for everything else
493 #
494 *-*gcc*)
495 SHOBJ_CFLAGS=-fpic
496 SHOBJ_LD='${CC}'
497 SHOBJ_LDFLAGS='-shared'
498
499 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
500 ;;
501
502 *)
503 SHOBJ_STATUS=unsupported
504 SHLIB_STATUS=unsupported
505 ;;
506
507 esac
508
509 echo SHOBJ_CC=\'"$SHOBJ_CC"\'
510 echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
511 echo SHOBJ_LD=\'"$SHOBJ_LD"\'
512 echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
513 echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
514 echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
515
516 echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
517 echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
518
519 echo SHLIB_DOT=\'"$SHLIB_DOT"\'
520
521 echo SHLIB_LIBPREF=\'"$SHLIB_LIBPREF"\'
522 echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
523
524 echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
525 echo SHLIB_DLLVERSION=\'"$SHLIB_DLLVERSION"\'
526
527 echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
528 echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
529
530 exit 0
This page took 0.040611 seconds and 3 git commands to generate.