blob: 1f64433dea83763eabe496c35bc99d3fb18cee49 [file] [log] [blame]
Jari Aaltob72432f1999-02-19 17:11:39 +00001#! /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
Chet Rameyac50fba2014-02-26 09:36:43 -050013# Copyright (C) 1996-2014 Free Software Foundation, Inc.
Jari Aalto7117c2d2002-07-17 14:10:11 +000014#
Jari Aalto31859422009-01-12 13:36:28 +000015# This file is part of GNU Bash, the Bourne Again SHell.
Jari Aalto7117c2d2002-07-17 14:10:11 +000016#
Jari Aalto31859422009-01-12 13:36:28 +000017# This program is free software: you can redistribute it and/or modify
18# it under the terms of the GNU General Public License as published by
19# the Free Software Foundation, either version 3 of the License, or
20# (at your option) any later version.
Jari Aalto7117c2d2002-07-17 14:10:11 +000021#
Jari Aalto31859422009-01-12 13:36:28 +000022# This program is distributed in the hope that it will be useful,
23# but WITHOUT ANY WARRANTY; without even the implied warranty of
24# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25# GNU General Public License for more details.
26#
27# You should have received a copy of the GNU General Public License
28# along with this program. If not, see <http://www.gnu.org/licenses/>.
29#
Jari Aalto7117c2d2002-07-17 14:10:11 +000030
Jari Aaltob72432f1999-02-19 17:11:39 +000031#
32# defaults
33#
34SHOBJ_STATUS=supported
35SHLIB_STATUS=supported
36
37SHOBJ_CC=cc
38SHOBJ_CFLAGS=
39SHOBJ_LD=
40SHOBJ_LDFLAGS=
41SHOBJ_XLDFLAGS=
42SHOBJ_LIBS=
43
44SHLIB_XLDFLAGS=
45SHLIB_LIBS=
Jari Aalto95732b42005-12-07 14:08:12 +000046
47SHLIB_DOT='.'
48SHLIB_LIBPREF='lib'
Jari Aaltob72432f1999-02-19 17:11:39 +000049SHLIB_LIBSUFF='so'
50
51SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
Jari Aalto95732b42005-12-07 14:08:12 +000052SHLIB_DLLVERSION='$(SHLIB_MAJOR)'
Jari Aaltob72432f1999-02-19 17:11:39 +000053
54PROGNAME=`basename $0`
55USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
56
57while [ $# -gt 0 ]; do
58 case "$1" in
59 -C) shift; SHOBJ_CC="$1"; shift ;;
60 -c) shift; host_cpu="$1"; shift ;;
61 -o) shift; host_os="$1"; shift ;;
62 -v) shift; host_vendor="$1"; shift ;;
63 *) echo "$USAGE" >&2 ; exit 2;;
64 esac
65done
66
Chet Ramey00018032011-11-21 20:51:19 -050067case "${host_os}-${SHOBJ_CC}-${host_vendor}" in
Chet Rameyac50fba2014-02-26 09:36:43 -050068nsk-cc-tandem)
69 SHOBJ_CFLAGS=-Wglobalized
70 case `uname -m` in
71 NSR*)
72 SHOBJ_CFLAGS="${SHOBJ_CFLAGS} -Wcall_shared" # default on TNS/E, needed on TNS/R
73 SHOBJ_LD=/usr/bin/ld # for TNS/R
74 ;;
75 NSE*|NEO*)
76 SHOBJ_LD=/usr/bin/eld
77 ;;
78 esac
79 SHOBJ_LDFLAGS='-shared -bglobalized -unres_symbols ignore'
80 ;;
81
Jari Aalto28ef6c32001-04-06 19:14:31 +000082sunos4*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +000083 SHOBJ_CFLAGS=-fpic
84 SHOBJ_LD=/usr/bin/ld
85 SHOBJ_LDFLAGS='-assert pure-text'
86
87 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
88 ;;
89
90sunos4*)
91 SHOBJ_CFLAGS=-pic
92 SHOBJ_LD=/usr/bin/ld
93 SHOBJ_LDFLAGS='-assert pure-text'
94
95 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
96 ;;
97
Jari Aalto28ef6c32001-04-06 19:14:31 +000098sunos5*-*gcc*|solaris2*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +000099 SHOBJ_LD='${CC}'
Jari Aalto95732b42005-12-07 14:08:12 +0000100 ld_used=`gcc -print-prog-name=ld`
101 if ${ld_used} -V 2>&1 | grep GNU >/dev/null 2>&1; then
102 # This line works for the GNU ld
103 SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
Jari Aalto31859422009-01-12 13:36:28 +0000104 # http://sourceware.org/ml/binutils/2001-08/msg00361.html
105 SHOBJ_CFLAGS=-fPIC
Jari Aalto95732b42005-12-07 14:08:12 +0000106 else
107 # This line works for the Solaris linker in /usr/ccs/bin/ld
108 SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
Jari Aalto31859422009-01-12 13:36:28 +0000109 SHOBJ_CFLAGS=-fpic
Jari Aalto95732b42005-12-07 14:08:12 +0000110 fi
Jari Aaltob72432f1999-02-19 17:11:39 +0000111
Jari Aaltobb706242000-03-17 21:46:59 +0000112# SHLIB_XLDFLAGS='-R $(libdir)'
Jari Aaltob72432f1999-02-19 17:11:39 +0000113 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
114 ;;
115
116sunos5*|solaris2*)
117 SHOBJ_CFLAGS='-K pic'
118 SHOBJ_LD=/usr/ccs/bin/ld
119 SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
120
Jari Aaltobb706242000-03-17 21:46:59 +0000121# SHLIB_XLDFLAGS='-R $(libdir)'
Jari Aaltob72432f1999-02-19 17:11:39 +0000122 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
123 ;;
124
Chet Ramey00018032011-11-21 20:51:19 -0500125# All versions of Linux (including Gentoo/FreeBSD) or the semi-mythical GNU Hurd.
126linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
Jari Aaltof73dda02001-11-13 17:56:06 +0000127 SHOBJ_CFLAGS=-fPIC
128 SHOBJ_LD='${CC}'
129 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
130
131 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
132 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
133 ;;
134
Jari Aalto31859422009-01-12 13:36:28 +0000135freebsd2*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000136 SHOBJ_CFLAGS=-fpic
137 SHOBJ_LD=ld
138 SHOBJ_LDFLAGS='-x -Bshareable'
139
140 SHLIB_XLDFLAGS='-R$(libdir)'
141 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
142 ;;
143
Jari Aaltobb706242000-03-17 21:46:59 +0000144# FreeBSD-3.x ELF
Chet Ramey00018032011-11-21 20:51:19 -0500145freebsd3*|freebsdaout*)
Jari Aalto31859422009-01-12 13:36:28 +0000146 SHOBJ_CFLAGS=-fPIC
Jari Aaltob72432f1999-02-19 17:11:39 +0000147 SHOBJ_LD='${CC}'
Jari Aaltob72432f1999-02-19 17:11:39 +0000148
Jari Aaltobb706242000-03-17 21:46:59 +0000149 if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
150 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
151
152 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
153 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
154 else
155 SHOBJ_LDFLAGS='-shared'
156
157 SHLIB_XLDFLAGS='-R$(libdir)'
158 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
159 fi
Jari Aaltob72432f1999-02-19 17:11:39 +0000160 ;;
Jari Aaltof73dda02001-11-13 17:56:06 +0000161
Chet Ramey00018032011-11-21 20:51:19 -0500162# FreeBSD-4.x and later have only ELF
Chet Rameyac50fba2014-02-26 09:36:43 -0500163freebsd[4-9]*|freebsd1[0-9]*|freebsdelf*|dragonfly*)
Chet Ramey00018032011-11-21 20:51:19 -0500164 SHOBJ_CFLAGS=-fPIC
165 SHOBJ_LD='${CC}'
166
167 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
168 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
169
170 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
171 ;;
172
Jari Aaltof73dda02001-11-13 17:56:06 +0000173# Darwin/MacOS X
Chet Rameyac50fba2014-02-26 09:36:43 -0500174darwin*)
175 # Common definitions for all darwin/mac os x versions
Jari Aaltob80f6442004-07-27 13:29:18 +0000176 SHOBJ_CFLAGS='-fno-common'
Jari Aaltof73dda02001-11-13 17:56:06 +0000177
Jari Aaltob80f6442004-07-27 13:29:18 +0000178 SHOBJ_LD='${CC}'
Jari Aaltof73dda02001-11-13 17:56:06 +0000179
180 SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
181 SHLIB_LIBSUFF='dylib'
182
Chet Rameyac50fba2014-02-26 09:36:43 -0500183 # unused at this time
184 SHLIB_SONAME='$(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF)'
185
Jari Aaltob80f6442004-07-27 13:29:18 +0000186 case "${host_os}" in
Chet Rameyac50fba2014-02-26 09:36:43 -0500187 # Darwin versions 1, 5, 6, 7 correspond to Mac OS X 10.0, 10.1, 10.2,
188 # and 10.3, respectively.
189 darwin[1-7].*)
190 SHOBJ_STATUS=unsupported
191 SHOBJ_LDFLAGS='-dynamic'
192 SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF) -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
193 ;;
194 # Darwin 8 == Mac OS X 10.4; Mac OS X 10.N == Darwin N+4
195 *)
196 case "${host_os}" in
197 darwin[89]*|darwin1[012]*)
198 SHOBJ_ARCHFLAGS='-arch_only `/usr/bin/arch`'
Jari Aaltob80f6442004-07-27 13:29:18 +0000199 ;;
Chet Rameyac50fba2014-02-26 09:36:43 -0500200 *) # Mac OS X 10.9 (Mavericks) and later
201 SHOBJ_ARCHFLAGS=
202 # for 32 and 64bit universal library
203 #SHOBJ_ARCHFLAGS='-arch i386 -arch x86_64'
204 #SHOBJ_CFLAGS=${SHOBJ_CFLAGS}' -arch i386 -arch x86_64'
Jari Aaltob80f6442004-07-27 13:29:18 +0000205 ;;
Chet Rameyac50fba2014-02-26 09:36:43 -0500206 esac
207 SHOBJ_LDFLAGS="-dynamiclib -dynamic -undefined dynamic_lookup ${SHOBJ_ARCHFLAGS}"
208 SHLIB_XLDFLAGS="-dynamiclib ${SHOBJ_ARCHFLAGS}"' -install_name $(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF) -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
209 ;;
Jari Aaltob80f6442004-07-27 13:29:18 +0000210 esac
Jari Aaltof73dda02001-11-13 17:56:06 +0000211
Jari Aaltob80f6442004-07-27 13:29:18 +0000212 SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
Jari Aaltof73dda02001-11-13 17:56:06 +0000213 ;;
214
Chet Rameyac50fba2014-02-26 09:36:43 -0500215openbsd*|netbsd*|mirbsd*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000216 SHOBJ_CFLAGS=-fPIC
217 SHOBJ_LD='${CC}'
Jari Aaltof73dda02001-11-13 17:56:06 +0000218 SHOBJ_LDFLAGS='-shared'
Jari Aaltob72432f1999-02-19 17:11:39 +0000219
Jari Aaltof73dda02001-11-13 17:56:06 +0000220 SHLIB_XLDFLAGS='-R$(libdir)'
Jari Aaltob72432f1999-02-19 17:11:39 +0000221 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
222 ;;
223
224bsdi2*)
225 SHOBJ_CC=shlicc2
226 SHOBJ_CFLAGS=
227 SHOBJ_LD=ld
228 SHOBJ_LDFLAGS=-r
229 SHOBJ_LIBS=-lc_s.2.1.0
230
231 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
232 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
233 # each system, and the library creation process is byzantine
234 SHLIB_STATUS=unsupported
235 ;;
236
237bsdi3*)
238 SHOBJ_CC=shlicc2
239 SHOBJ_CFLAGS=
240 SHOBJ_LD=ld
241 SHOBJ_LDFLAGS=-r
242 SHOBJ_LIBS=-lc_s.3.0.0
243
244 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
245 # the ass -- they require changing {/usr/lib,etc}/shlib.map on
246 # each system, and the library creation process is byzantine
247 SHLIB_STATUS=unsupported
248 ;;
249
250bsdi4*)
251 # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
252 # shared libraries. gcc 2.x is the standard compiler, and the
253 # `normal' gcc options should work as they do in Linux.
254
255 SHOBJ_CFLAGS=-fPIC
256 SHOBJ_LD='${CC}'
257 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
258
Jari Aalto28ef6c32001-04-06 19:14:31 +0000259 SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
Jari Aaltob72432f1999-02-19 17:11:39 +0000260 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
261 ;;
262
Jari Aalto28ef6c32001-04-06 19:14:31 +0000263osf*-*gcc*)
Jari Aaltobb706242000-03-17 21:46:59 +0000264 # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
265 SHOBJ_LD='${CC}'
266 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
267
268 SHLIB_XLDFLAGS='-rpath $(libdir)'
269 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
270 ;;
271
Jari Aaltob72432f1999-02-19 17:11:39 +0000272osf*)
273 SHOBJ_LD=ld
274 SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
275
276 SHLIB_XLDFLAGS='-rpath $(libdir)'
277 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
278 ;;
279
Jari Aalto31859422009-01-12 13:36:28 +0000280aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com
Jari Aaltob72432f1999-02-19 17:11:39 +0000281 SHOBJ_CFLAGS=-fpic
282 SHOBJ_LD='ld'
283 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
284 SHOBJ_XLDFLAGS='-G'
285
286 SHLIB_XLDFLAGS='-bM:SRE'
287 SHLIB_LIBS='-lcurses -lc'
288 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
289 ;;
290
Jari Aalto31859422009-01-12 13:36:28 +0000291aix4.[2-9]*|aix[5-9].*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000292 SHOBJ_CFLAGS=-K
293 SHOBJ_LD='ld'
294 SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
295 SHOBJ_XLDFLAGS='-G'
296
297 SHLIB_XLDFLAGS='-bM:SRE'
298 SHLIB_LIBS='-lcurses -lc'
299 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
300 ;;
301
302#
303# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
304#
Jari Aalto28ef6c32001-04-06 19:14:31 +0000305irix[56]*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000306 SHOBJ_CFLAGS='-fpic'
307 SHOBJ_LD='${CC}'
308 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
309
310 SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
311 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
312 ;;
313
314irix[56]*)
315 SHOBJ_CFLAGS='-K PIC'
316 SHOBJ_LD=ld
Jari Aaltobb706242000-03-17 21:46:59 +0000317# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000318# Change from David Kaelbling <drk@sgi.com>. If you have problems,
319# remove the `-no_unresolved'
Jari Aaltobb706242000-03-17 21:46:59 +0000320 SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
Jari Aaltob72432f1999-02-19 17:11:39 +0000321
322 SHLIB_XLDFLAGS='-rpath $(libdir)'
323 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
324 ;;
325
Jari Aalto28ef6c32001-04-06 19:14:31 +0000326hpux9*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000327 # must use gcc; the bundled cc cannot compile PIC code
328 SHOBJ_CFLAGS='-fpic'
329 SHOBJ_LD='${CC}'
330 SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
331
332 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
333 SHLIB_LIBSUFF='sl'
334 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
335 ;;
336
337hpux9*)
338 SHOBJ_STATUS=unsupported
339 SHLIB_STATUS=unsupported
Jari Aaltof73dda02001-11-13 17:56:06 +0000340
341 # If you are using the HP ANSI C compiler, you can uncomment and use
342 # this code (I have not tested it)
343# SHOBJ_STATUS=supported
344# SHLIB_STATUS=supported
345#
346# SHOBJ_CFLAGS='+z'
347# SHOBJ_LD='ld'
348# SHOBJ_LDFLAGS='-b +s'
349#
350# SHLIB_XLDFLAGS='+b $(libdir)'
351# SHLIB_LIBSUFF='sl'
352# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
353
Jari Aaltob72432f1999-02-19 17:11:39 +0000354 ;;
355
Jari Aalto28ef6c32001-04-06 19:14:31 +0000356hpux10*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000357 # must use gcc; the bundled cc cannot compile PIC code
358 SHOBJ_CFLAGS='-fpic'
359 SHOBJ_LD='${CC}'
Jari Aaltob80f6442004-07-27 13:29:18 +0000360 # if you have problems linking here, moving the `-Wl,+h,$@' from
361 # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
Jari Aalto31859422009-01-12 13:36:28 +0000362 SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s'
Jari Aaltob72432f1999-02-19 17:11:39 +0000363
364 SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
365 SHLIB_LIBSUFF='sl'
366 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
367 ;;
368
369hpux10*)
370 SHOBJ_STATUS=unsupported
371 SHLIB_STATUS=unsupported
Jari Aalto28ef6c32001-04-06 19:14:31 +0000372
373 # If you are using the HP ANSI C compiler, you can uncomment and use
Jari Aaltof73dda02001-11-13 17:56:06 +0000374 # this code (I have not tested it)
375# SHOBJ_STATUS=supported
376# SHLIB_STATUS=supported
Jari Aalto28ef6c32001-04-06 19:14:31 +0000377#
378# SHOBJ_CFLAGS='+z'
379# SHOBJ_LD='ld'
Jari Aaltof73dda02001-11-13 17:56:06 +0000380# SHOBJ_LDFLAGS='-b +s +h $@'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000381#
Jari Aaltof73dda02001-11-13 17:56:06 +0000382# SHLIB_XLDFLAGS='+b $(libdir)'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000383# SHLIB_LIBSUFF='sl'
384# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
Jari Aaltof73dda02001-11-13 17:56:06 +0000385
Jari Aaltob72432f1999-02-19 17:11:39 +0000386 ;;
387
Jari Aalto28ef6c32001-04-06 19:14:31 +0000388hpux11*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000389 # must use gcc; the bundled cc cannot compile PIC code
390 SHOBJ_CFLAGS='-fpic'
391 SHOBJ_LD='${CC}'
392# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000393 SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
Jari Aaltob72432f1999-02-19 17:11:39 +0000394
395 SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
396 SHLIB_LIBSUFF='sl'
397 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
398 ;;
399
400hpux11*)
401 SHOBJ_STATUS=unsupported
402 SHLIB_STATUS=unsupported
Jari Aalto28ef6c32001-04-06 19:14:31 +0000403
404 # If you are using the HP ANSI C compiler, you can uncomment and use
Jari Aaltof73dda02001-11-13 17:56:06 +0000405 # this code (I have not tested it)
406# SHOBJ_STATUS=supported
407# SHLIB_STATUS=supported
Jari Aalto28ef6c32001-04-06 19:14:31 +0000408#
409# SHOBJ_CFLAGS='+z'
410# SHOBJ_LD='ld'
Jari Aaltof73dda02001-11-13 17:56:06 +0000411# SHOBJ_LDFLAGS='-b +s +h $@'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000412#
Jari Aaltof73dda02001-11-13 17:56:06 +0000413# SHLIB_XLDFLAGS='+b $(libdir)'
Jari Aalto28ef6c32001-04-06 19:14:31 +0000414# SHLIB_LIBSUFF='sl'
415# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
416
Jari Aaltob72432f1999-02-19 17:11:39 +0000417 ;;
418
Jari Aalto28ef6c32001-04-06 19:14:31 +0000419sysv4*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000420 SHOBJ_CFLAGS=-shared
421 SHOBJ_LDFLAGS='-shared -h $@'
422 SHOBJ_LD='${CC}'
423
424 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
425 ;;
426
427sysv4*)
428 SHOBJ_CFLAGS='-K PIC'
429 SHOBJ_LD=ld
430 SHOBJ_LDFLAGS='-dy -z text -G -h $@'
431
432 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
433 ;;
434
Jari Aalto28ef6c32001-04-06 19:14:31 +0000435sco3.2v5*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000436 SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
437 SHOBJ_LD='${CC}'
438 SHOBJ_LDFLAGS='-shared'
439
440 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
441 ;;
442
443sco3.2v5*)
444 SHOBJ_CFLAGS='-K pic -b elf'
445 SHOBJ_LD=ld
446 SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
447
448 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
449 ;;
450
Jari Aalto28ef6c32001-04-06 19:14:31 +0000451sysv5uw7*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000452 SHOBJ_CFLAGS='-fpic'
453 SHOBJ_LD='${CC}'
454 SHOBJ_LDFLAGS='-shared'
455
456 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
457 ;;
458
459sysv5uw7*)
460 SHOBJ_CFLAGS='-K PIC'
461 SHOBJ_LD=ld
462 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
463
464 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
465 ;;
Jari Aalto95732b42005-12-07 14:08:12 +0000466
467sysv5UnixWare*-*gcc*)
468 SHOBJ_CFLAGS=-fpic
469 SHOBJ_LD='${CC}'
470 SHOBJ_LDFLAGS='-shared'
471
472 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
473 ;;
474
475sysv5UnixWare*)
476 SHOBJ_CFLAGS='-K PIC'
477 SHOBJ_LD=ld
478 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
479
480 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
481 ;;
482
483sysv5OpenUNIX*-*gcc*)
484 SHOBJ_CFLAGS=-fpic
485 SHOBJ_LD='${CC}'
486 SHOBJ_LDFLAGS='-shared'
487
488 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
489 ;;
490
491sysv5OpenUNIX*)
492 SHOBJ_CFLAGS='-K PIC'
493 SHOBJ_LD=ld
494 SHOBJ_LDFLAGS='-G -dy -z text -h $@'
495
496 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
497 ;;
498
Jari Aalto28ef6c32001-04-06 19:14:31 +0000499dgux*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000500 SHOBJ_CFLAGS=-fpic
501 SHOBJ_LD='${CC}'
502 SHOBJ_LDFLAGS='-shared'
503
504 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
505 ;;
506
507dgux*)
508 SHOBJ_CFLAGS='-K pic'
509 SHOBJ_LD=ld
510 SHOBJ_LDFLAGS='-G -dy -h $@'
511
512 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
513 ;;
Jari Aaltobb706242000-03-17 21:46:59 +0000514
515msdos*)
516 SHOBJ_STATUS=unsupported
517 SHLIB_STATUS=unsupported
518 ;;
519
Jari Aalto95732b42005-12-07 14:08:12 +0000520cygwin*)
521 SHOBJ_LD='$(CC)'
Jari Aalto31859422009-01-12 13:36:28 +0000522 SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a'
523 SHLIB_LIBPREF='cyg'
524 SHLIB_LIBSUFF='dll'
525 SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)'
526 SHLIB_LIBS='$(TERMCAP_LIB)'
Jari Aalto95732b42005-12-07 14:08:12 +0000527
528 SHLIB_DOT=
Jari Aalto31859422009-01-12 13:36:28 +0000529 # For official cygwin releases, DLLVERSION will be defined in the
530 # environment of configure, and will be incremented any time the API
531 # changes in a non-backwards compatible manner. Otherwise, it is just
532 # SHLIB_MAJOR.
533 if [ -n "$DLLVERSION" ] ; then
Jari Aalto95732b42005-12-07 14:08:12 +0000534 SHLIB_DLLVERSION="$DLLVERSION"
Jari Aalto31859422009-01-12 13:36:28 +0000535 fi
536 ;;
537
538mingw*)
539 SHOBJ_LD='$(CC)'
540 SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a'
541 SHLIB_LIBSUFF='dll'
542 SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)'
543 SHLIB_LIBS='$(TERMCAP_LIB)'
544
545 SHLIB_DOT=
546 # For official cygwin releases, DLLVERSION will be defined in the
547 # environment of configure, and will be incremented any time the API
548 # changes in a non-backwards compatible manner. Otherwise, it is just
549 # SHLIB_MAJOR.
550 if [ -n "$DLLVERSION" ] ; then
551 SHLIB_DLLVERSION="$DLLVERSION"
552 fi
Jari Aalto95732b42005-12-07 14:08:12 +0000553 ;;
554
Jari Aaltob72432f1999-02-19 17:11:39 +0000555#
556# Rely on correct gcc configuration for everything else
557#
Jari Aalto28ef6c32001-04-06 19:14:31 +0000558*-*gcc*)
Jari Aaltob72432f1999-02-19 17:11:39 +0000559 SHOBJ_CFLAGS=-fpic
560 SHOBJ_LD='${CC}'
561 SHOBJ_LDFLAGS='-shared'
562
563 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
564 ;;
565
566*)
567 SHOBJ_STATUS=unsupported
568 SHLIB_STATUS=unsupported
569 ;;
570
571esac
572
573echo SHOBJ_CC=\'"$SHOBJ_CC"\'
574echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
575echo SHOBJ_LD=\'"$SHOBJ_LD"\'
576echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
577echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
578echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
579
580echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
581echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
Jari Aalto95732b42005-12-07 14:08:12 +0000582
583echo SHLIB_DOT=\'"$SHLIB_DOT"\'
584
585echo SHLIB_LIBPREF=\'"$SHLIB_LIBPREF"\'
Jari Aaltob72432f1999-02-19 17:11:39 +0000586echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
Jari Aalto95732b42005-12-07 14:08:12 +0000587
Jari Aaltob72432f1999-02-19 17:11:39 +0000588echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
Jari Aalto95732b42005-12-07 14:08:12 +0000589echo SHLIB_DLLVERSION=\'"$SHLIB_DLLVERSION"\'
Jari Aaltob72432f1999-02-19 17:11:39 +0000590
591echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
592echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
593
594exit 0