source: trunk/third/binutils/ltcf-gcj.sh @ 21000

Revision 21000, 26.7 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20999, which included commits to RCS files with non-trunk default branches.
Line 
1#### This script is meant to be sourced by ltconfig.
2
3# ltcf-gcj.sh - Create a GCJ compiler specific configuration
4#
5# Copyright (C) 1996-1999, 2000, 2001, 2003 Free Software Foundation, Inc.
6# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7#
8# Original GCJ support by:
9#    Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10#
11# This file is free software; you can redistribute it and/or modify it
12# under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# This program is distributed in the hope that it will be useful, but
17# WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19# General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with this program; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24#
25# As a special exception to the GNU General Public License, if you
26# distribute this file as part of a program that contains a
27# configuration script generated by Autoconf, you may include it under
28# the same distribution terms that you use for the rest of that program.
29
30
31# Source file extension for Java test sources.
32ac_ext=java
33
34# Object file extension for compiled Java test sources.
35objext=o
36
37# Code to be used in simple compile tests
38lt_simple_compile_test_code="class foo {}"
39
40# Code to be used in simple link tests
41lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
42
43## Linker Characteristics
44case $host_os in
45cygwin* | mingw*)
46  # FIXME: the MSVC++ port hasn't been tested in a loooong time
47  # When not using gcc, we currently assume that we are using
48  # Microsoft Visual C++.
49  if test "$with_gcc" != yes; then
50    with_gnu_ld=no
51  fi
52  ;;
53
54esac
55
56ld_shlibs=yes
57if test "$with_gnu_ld" = yes; then
58  # If archive_cmds runs LD, not CC, wlarc should be empty
59  wlarc='${wl}'
60
61  # See if GNU ld supports shared libraries.
62  case $host_os in
63  aix3* | aix4* | aix5*)
64    # On AIX/PPC, the GNU linker is very broken
65    if test "$host_cpu" != ia64; then
66      ld_shlibs=no
67      cat <<EOF 1>&2
68
69*** Warning: the GNU linker, at least up to release 2.9.1, is reported
70*** to be unable to reliably create shared libraries on AIX.
71*** Therefore, libtool is disabling shared libraries support.  If you
72*** really care for shared libraries, you may want to modify your PATH
73*** so that a non-GNU linker is found, and then restart.
74
75EOF
76    fi
77    ;;
78
79  amigaos*)
80    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
81    hardcode_libdir_flag_spec='-L$libdir'
82    hardcode_minus_L=yes
83
84    # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
85    # that the semantics of dynamic libraries on AmigaOS, at least up
86    # to version 4, is to share data among multiple programs linked
87    # with the same dynamic library.  Since this doesn't match the
88    # behavior of shared libraries on other platforms, we can use
89    # them.
90    ld_shlibs=no
91    ;;
92
93  beos*)
94    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
95      allow_undefined_flag=unsupported
96      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
97      # support --undefined.  This deserves some investigation.  FIXME
98      archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
99    else
100      ld_shlibs=no
101    fi
102    ;;
103
104  cygwin* | mingw*)
105    # hardcode_libdir_flag_spec is actually meaningless, as there is
106    # no search path for DLLs.
107    hardcode_libdir_flag_spec='-L$libdir'
108    allow_undefined_flag=unsupported
109    always_export_symbols=yes
110
111    extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
112      sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~
113      test -f $output_objdir/impgen.exe || (cd $output_objdir && \
114      if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \
115      else $CC -o impgen impgen.c ; fi)~
116      $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
117
118    old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
119
120    # cygwin and mingw dlls have different entry points and sets of symbols
121    # to exclude.
122    # FIXME: what about values for MSVC?
123    dll_entry=__cygwin_dll_entry@12
124    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
125    case $host_os in
126    mingw*)
127      # mingw values
128      dll_entry=_DllMainCRTStartup@12
129      dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
130      ;;
131    esac
132
133    # mingw and cygwin differ, and it's simplest to just exclude the union
134    # of the two symbol sets.
135    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
136
137    # recent cygwin and mingw systems supply a stub DllMain which the user
138    # can override, but on older systems we have to supply one (in ltdll.c)
139    if test "x$lt_cv_need_dllmain" = "xyes"; then
140      ltdll_obj='$output_objdir/$soname-ltdll.'"$objext "
141      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/$soname-ltdll.c~
142        test -f $output_objdir/$soname-ltdll.$objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
143    else
144      ltdll_obj=
145      ltdll_cmds=
146    fi
147
148    # Extract the symbol export list from an `--export-all' def file,
149    # then regenerate the def file from the symbol export list, so that
150    # the compiled dll only exports the symbol export list.
151    # Be careful not to strip the DATA tag left be newer dlltools.
152    export_symbols_cmds="$ltdll_cmds"'
153      $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
154      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
155
156    # If the export-symbols file already is a .def file (1st line
157    # is EXPORTS), use it as is.
158    # If DATA tags from a recent dlltool are present, honour them!
159    archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
160        cp $export_symbols $output_objdir/$soname-def;
161      else
162        echo EXPORTS > $output_objdir/$soname-def;
163        _lt_hint=1;
164        cat $export_symbols | while read symbol; do
165         set dummy \$symbol;
166         case \[$]# in
167           2) echo "   \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
168           *) echo "     \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
169         esac;
170         _lt_hint=`expr 1 + \$_lt_hint`;
171        done;
172      fi~
173      '"$ltdll_cmds"'
174      $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
175      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
176      $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
177      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
178      $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
179    ;;
180
181  netbsd*)
182    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
183      archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
184      wlarc=
185    else
186      archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
187      archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
188    fi
189    ;;
190
191  solaris* | sysv5*)
192    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
193      ld_shlibs=no
194      cat <<EOF 1>&2
195
196*** Warning: The releases 2.8.* of the GNU linker cannot reliably
197*** create shared libraries on Solaris systems.  Therefore, libtool
198*** is disabling shared libraries support.  We urge you to upgrade GNU
199*** binutils to release 2.9.1 or newer.  Another option is to modify
200*** your PATH or compiler configuration so that the native linker is
201*** used, and then restart.
202
203EOF
204    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
205      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
206      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
207    else
208      ld_shlibs=no
209    fi
210    ;;
211
212  sunos4*)
213    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
214    wlarc=
215    hardcode_direct=yes
216    hardcode_shlibpath_var=no
217    ;;
218
219  *)
220    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
221      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
222      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
223    else
224      ld_shlibs=no
225    fi
226    ;;
227  esac
228
229  if test "$ld_shlibs" = yes; then
230    runpath_var=LD_RUN_PATH
231    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
232    export_dynamic_flag_spec='${wl}--export-dynamic'
233    case $host_os in
234    cygwin* | mingw*)
235      # dlltool doesn't understand --whole-archive et. al.
236      whole_archive_flag_spec=
237      ;;
238    *)
239      # ancient GNU ld didn't support --whole-archive et. al.
240      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
241        whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
242      else
243        whole_archive_flag_spec=
244      fi
245      ;;
246    esac
247  fi
248else
249  # PORTME fill in a description of your system's linker (not GNU ld)
250  case $host_os in
251  aix3*)
252    allow_undefined_flag=unsupported
253    always_export_symbols=yes
254    archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
255    # Note: this linker hardcodes the directories in LIBPATH if there
256    # are no directories specified by -L.
257    hardcode_minus_L=yes
258    if test "$with_gcc" = yes && test -z "$link_static_flag"; then
259      # Neither direct hardcoding nor static linking is supported with a
260      # broken collect2.
261      hardcode_direct=unsupported
262    fi
263    ;;
264
265  aix4* | aix5*)
266    hardcode_direct=yes
267    hardcode_libdir_separator=':'
268    link_all_deplibs=yes
269    # When large executables or shared objects are built, AIX ld can
270    # have problems creating the table of contents.  If linking a library
271    # or program results in "error TOC overflow" add -mminimal-toc to
272    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
273    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
274    if test "$with_gcc" = yes; then
275      case $host_os in aix4.[012]|aix4.[012].*)
276      # We only want to do this on AIX 4.2 and lower, the check
277      # below for broken collect2 doesn't work under 4.3+
278        collect2name=`${CC} -print-prog-name=collect2`
279        if test -f "$collect2name" && \
280           strings "$collect2name" | grep resolve_lib_name >/dev/null
281        then
282          # We have reworked collect2
283          hardcode_direct=yes
284        else
285          # We have old collect2
286          hardcode_direct=unsupported
287          # It fails to find uninstalled libraries when the uninstalled
288          # path is not listed in the libpath.  Setting hardcode_minus_L
289          # to unsupported forces relinking
290          hardcode_minus_L=yes
291          hardcode_libdir_flag_spec='-L$libdir'
292          hardcode_libdir_separator=
293        fi
294      esac
295      shared_flag='-shared'
296    else
297      # not using gcc
298      if test "$host_cpu" = ia64; then
299        shared_flag='${wl}-G'
300      else
301        shared_flag='${wl}-bM:SRE'
302      fi
303    fi
304
305    if test "$host_cpu" = ia64; then
306      # On IA64, the linker does run time linking by default, so we don't
307      # have to do anything special.
308      aix_use_runtimelinking=no
309      if test $with_gnu_ld = no; then
310        exp_sym_flag='-Bexport'
311        no_entry_flag=""
312      fi
313    else
314      # Test if we are trying to use run time linking, or normal AIX style linking.
315      # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
316      aix_use_runtimelinking=no
317      for ld_flag in $LDFLAGS; do
318        if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
319          aix_use_runtimelinking=yes
320          break
321        fi
322      done
323      exp_sym_flag='-bexport'
324      no_entry_flag='-bnoentry'
325    fi
326    # -bexpall does not export symbols beginning with underscore (_)
327    always_export_symbols=yes
328    if test "$aix_use_runtimelinking" = yes; then
329      # Warning - without using the other run time loading flags (-brtl), -berok will
330      #           link without error, but may produce a broken library.
331      allow_undefined_flag=' ${wl}-berok'
332      hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
333      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
334    else
335      if test "$host_cpu" = ia64; then
336        if test $with_gnu_ld = no; then
337          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
338          allow_undefined_flag="-z nodefs"
339          archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
340        fi
341      else
342        allow_undefined_flag=' ${wl}-berok'
343        # -bexpall does not export symbols beginning with underscore (_)
344        always_export_symbols=yes
345        # Exported symbols can be pulled into shared objects from archives
346        whole_archive_flag_spec=' '
347        build_libtool_need_lc=yes
348        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
349        # This is similar to how AIX traditionally builds it's shared libraries.
350        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
351      fi
352    fi
353  ;;
354
355  amigaos*)
356    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
357    hardcode_libdir_flag_spec='-L$libdir'
358    hardcode_minus_L=yes
359    # see comment about different semantics on the GNU ld section
360    ld_shlibs=no
361    ;;
362
363  cygwin* | mingw*)
364    # When not using gcc, we currently assume that we are using
365    # Microsoft Visual C++.
366    # hardcode_libdir_flag_spec is actually meaningless, as there is
367    # no search path for DLLs.
368    hardcode_libdir_flag_spec=' '
369    allow_undefined_flag=unsupported
370    # Tell ltmain to make .lib files, not .a files.
371    libext=lib
372    # FIXME: Setting linknames here is a bad hack.
373    archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
374    # The linker will automatically build a .lib file if we build a DLL.
375    old_archive_from_new_cmds='true'
376    # FIXME: Should let the user specify the lib program.
377    old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
378    fix_srcfile_path='`cygpath -w "$srcfile"`'
379    ;;
380
381  freebsd1*)
382    ld_shlibs=no
383    ;;
384
385  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
386  # support.  Future versions do this automatically, but an explicit c++rt0.o
387  # does not break anything, and helps significantly (at the cost of a little
388  # extra space).
389  freebsd2.2*)
390    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
391    hardcode_libdir_flag_spec='-R$libdir'
392    hardcode_direct=yes
393    hardcode_shlibpath_var=no
394    ;;
395
396  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
397  freebsd2*)
398    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
399    hardcode_direct=yes
400    hardcode_minus_L=yes
401    hardcode_shlibpath_var=no
402    ;;
403
404  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
405  freebsd*)
406    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
407    hardcode_libdir_flag_spec='-R$libdir'
408    hardcode_direct=yes
409    hardcode_shlibpath_var=no
410    ;;
411
412  hpux9* | hpux10* | hpux11*)
413    case $host_os in
414    hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
415    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
416    esac
417    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
418    hardcode_libdir_separator=:
419    hardcode_direct=yes
420    hardcode_minus_L=yes # Not in the search PATH, but as the default
421                         # location of the library.
422    export_dynamic_flag_spec='${wl}-E'
423    ;;
424
425  irix5* | irix6*)
426    if test "$with_gcc" = yes; then
427      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
428    else
429      archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
430    fi
431    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
432    hardcode_libdir_separator=:
433    link_all_deplibs=yes
434    ;;
435
436  netbsd*)
437    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
438      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
439    else
440      archive_cmds='$LD -shared -nodefaultlibs -o $lib $libobjs $deplibs $linker_flags'      # ELF
441    fi
442    hardcode_libdir_flag_spec='${wl}-R$libdir'
443    hardcode_direct=yes
444    hardcode_shlibpath_var=no
445    ;;
446
447  openbsd*)
448    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
449    hardcode_libdir_flag_spec='-R$libdir'
450    hardcode_direct=yes
451    hardcode_shlibpath_var=no
452    ;;
453
454  os2*)
455    hardcode_libdir_flag_spec='-L$libdir'
456    hardcode_minus_L=yes
457    allow_undefined_flag=unsupported
458    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
459    old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
460    ;;
461
462  osf3*)
463    if test "$with_gcc" = yes; then
464      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
465      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
466    else
467      allow_undefined_flag=' -expect_unresolved \*'
468      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
469    fi
470    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
471    hardcode_libdir_separator=:
472    ;;
473
474  osf4* | osf5*)        # as osf3* with the addition of -msym flag
475    if test "$with_gcc" = yes; then
476      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
477      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
478    else
479      allow_undefined_flag=' -expect_unresolved \*'
480      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
481    fi
482    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
483    hardcode_libdir_separator=:
484    ;;
485
486  sco3.2v5*)
487    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
488    hardcode_shlibpath_var=no
489    runpath_var=LD_RUN_PATH
490    hardcode_runpath_var=yes
491    ;;
492
493  solaris*)
494    no_undefined_flag=' ${wl}-z ${wl}defs'
495    archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
496    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
497      $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
498
499    # Commands to make compiler produce verbose output that lists
500    # what "hidden" libraries, object files and flags are used when
501    # linking a shared library.
502    output_verbose_link_cmds="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep \"\-L\""
503
504    hardcode_libdir_flag_spec='${wl}-R $wl$libdir'
505    hardcode_shlibpath_var=no
506    case $host_os in
507    solaris2.[0-5] | solaris2.[0-5].*) ;;
508    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
509      whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
510    esac
511    link_all_deplibs=yes
512    ;;
513
514  sunos4*)
515    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
516    hardcode_libdir_flag_spec='-L$libdir'
517    hardcode_direct=yes
518    hardcode_minus_L=yes
519    hardcode_shlibpath_var=no
520    ;;
521
522  sysv4)
523    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
524    runpath_var='LD_RUN_PATH'
525    hardcode_shlibpath_var=no
526    hardcode_direct=no #Motorola manual says yes, but my tests say they lie
527    ;;
528
529  sysv4.3*)
530    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
531    hardcode_shlibpath_var=no
532    export_dynamic_flag_spec='-Bexport'
533    ;;
534
535  sysv5*)
536    no_undefined_flag=' -z text'
537    # $CC -shared without GNU ld will not create a library from C++
538    # object files and a static libstdc++, better avoid it by now
539    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
540    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
541                $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
542    hardcode_libdir_flag_spec=
543    hardcode_shlibpath_var=no
544    runpath_var='LD_RUN_PATH'
545    ;;
546
547  uts4*)
548    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
549    hardcode_libdir_flag_spec='-L$libdir'
550    hardcode_shlibpath_var=no
551    ;;
552
553  dgux*)
554    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
555    hardcode_libdir_flag_spec='-L$libdir'
556    hardcode_shlibpath_var=no
557    ;;
558
559  sysv4*MP*)
560    if test -d /usr/nec; then
561      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
562      hardcode_shlibpath_var=no
563      runpath_var=LD_RUN_PATH
564      hardcode_runpath_var=yes
565      ld_shlibs=yes
566    fi
567    ;;
568
569  sysv4.2uw2*)
570    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
571    hardcode_direct=yes
572    hardcode_minus_L=no
573    hardcode_shlibpath_var=no
574    hardcode_runpath_var=yes
575    runpath_var=LD_RUN_PATH
576    ;;
577
578  sysv5uw7* | unixware7*)
579    no_undefined_flag='${wl}-z ${wl}text'
580    if test "$GCC" = yes; then
581      archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
582    else
583      archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
584    fi
585    runpath_var='LD_RUN_PATH'
586    hardcode_shlibpath_var=no
587    ;;
588
589  *)
590    ld_shlibs=no
591    ;;
592  esac
593fi
594
595## Compiler Characteristics: PIC flags, static flags, etc
596
597# We don't use cached values here since only the C compiler
598# characteristics should be cached.
599  ac_cv_prog_cc_pic=
600  ac_cv_prog_cc_shlib=
601  ac_cv_prog_cc_wl=
602  ac_cv_prog_cc_static=
603  ac_cv_prog_cc_no_builtin=
604  ac_cv_prog_cc_can_build_shared=$can_build_shared
605
606    ac_cv_prog_cc_wl='-Wl,'
607    ac_cv_prog_cc_static='-static'
608
609    case $host_os in
610    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
611      # PIC is the default for these OSes.
612      ;;
613    aix*)
614      # Below there is a dirty hack to force normal static linking with -ldl
615      # The problem is because libdl dynamically linked with both libc and
616      # libC (AIX C++ library), which obviously doesn't included in libraries
617      # list by gcc. This cause undefined symbols with -static flags.
618      # This hack allows C programs to be linked with "-static -ldl", but
619      # we not sure about C++ programs.
620      ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC"
621      ;;
622    *djgpp*)
623      # DJGPP does not suppot shared libraries at all
624      ac_cv_prog_cc_pic=
625      ;;
626    cygwin* | mingw* | os2*)
627      # This hack is so that the source file can tell whether it is being
628      # built for inclusion in a dll (and should export symbols for example).
629      ac_cv_prog_cc_pic='-DDLL_EXPORT'
630      ;;
631    amigaos*)
632      # FIXME: we need at least 68020 code to build shared libraries, but
633      # adding the `-m68020' flag to GCC prevents building anything better,
634      # like `-m68040'.
635      ac_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
636      ;;
637    sysv4*MP*)
638      if test -d /usr/nec; then
639         ac_cv_prog_cc_pic=-Kconform_pic
640      fi
641      ;;
642    *)
643      ac_cv_prog_cc_pic='-fPIC'
644      ;;
645    esac
646
647# GCJ did not exist at the time GCC didn't implicitly link libc in.
648need_lc=no
649
650# All existing releases of GCJ support `-c -o'.
651lt_cv_compiler_c_o=yes
Note: See TracBrowser for help on using the repository browser.