source: trunk/third/gcc/ltcf-gcj.sh @ 21199

Revision 21199, 28.9 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21198, which included commits to RCS files with non-trunk default branches.
RevLine 
[16959]1#### This script is meant to be sourced by ltconfig.
2
3# ltcf-gcj.sh - Create a GCJ compiler specific configuration
4#
[20088]5# Copyright (C) 1996-1999, 2000, 2001, 2003 Free Software Foundation, Inc.
[16959]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 && \
[21198]114      if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \
[16959]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
[21198]381  darwin* | rhapsody*)
382    case "$host_os" in
383    rhapsody* | darwin1.[[012]])
384        allow_undefined_flag='-undefined suppress'
385        ;;
386    *) # Darwin 1.3 on
387      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
388          allow_undefined_flag='-flat_namespace -undefined suppress'
389      else
390          case ${MACOSX_DEPLOYMENT_TARGET} in
391              10.[[012]])
392                  allow_undefined_flag='-flat_namespace -undefined suppress'
393                  ;;
394              10.*)
395                  allow_undefined_flag='-undefined dynamic_lookup'
396                  ;;
397          esac
398      fi
399      ;;
400    esac
401    # Disable shared library build on OS-X older than 10.3.
402    case $host_os in
403        darwin[1-6]*)
404            can_build_shared=no
405            ;;
406        darwin7*)
407            can_build_shared=yes
408            ;;
409    esac
410    output_verbose_link_cmd='echo'
411    archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
412    module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
413      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
414    archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
415    module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
416    hardcode_direct=no
417    hardcode_automatic=yes
418    hardcode_shlibpath_var=unsupported
419    whole_archive_flag_spec='-all_load $convenience'
420    link_all_deplibs=yes
421    ;;
422
423
[16959]424  freebsd1*)
425    ld_shlibs=no
426    ;;
427
428  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
429  # support.  Future versions do this automatically, but an explicit c++rt0.o
430  # does not break anything, and helps significantly (at the cost of a little
431  # extra space).
432  freebsd2.2*)
433    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
434    hardcode_libdir_flag_spec='-R$libdir'
435    hardcode_direct=yes
436    hardcode_shlibpath_var=no
437    ;;
438
439  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
440  freebsd2*)
441    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
442    hardcode_direct=yes
443    hardcode_minus_L=yes
444    hardcode_shlibpath_var=no
445    ;;
446
447  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
448  freebsd*)
449    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
450    hardcode_libdir_flag_spec='-R$libdir'
451    hardcode_direct=yes
452    hardcode_shlibpath_var=no
453    ;;
454
455  hpux9* | hpux10* | hpux11*)
456    case $host_os in
457    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' ;;
458    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
459    esac
460    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
461    hardcode_libdir_separator=:
462    hardcode_direct=yes
463    hardcode_minus_L=yes # Not in the search PATH, but as the default
464                         # location of the library.
465    export_dynamic_flag_spec='${wl}-E'
466    ;;
467
468  irix5* | irix6*)
469    if test "$with_gcc" = yes; then
470      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'
471    else
472      archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
473    fi
474    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
475    hardcode_libdir_separator=:
476    link_all_deplibs=yes
477    ;;
478
479  netbsd*)
480    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
481      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
482    else
483      archive_cmds='$LD -shared -nodefaultlibs -o $lib $libobjs $deplibs $linker_flags'      # ELF
484    fi
485    hardcode_libdir_flag_spec='${wl}-R$libdir'
486    hardcode_direct=yes
487    hardcode_shlibpath_var=no
488    ;;
489
490  openbsd*)
491    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
492    hardcode_libdir_flag_spec='-R$libdir'
493    hardcode_direct=yes
494    hardcode_shlibpath_var=no
495    ;;
496
497  os2*)
498    hardcode_libdir_flag_spec='-L$libdir'
499    hardcode_minus_L=yes
500    allow_undefined_flag=unsupported
501    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'
502    old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
503    ;;
504
505  osf3*)
506    if test "$with_gcc" = yes; then
507      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
508      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'
509    else
510      allow_undefined_flag=' -expect_unresolved \*'
511      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'
512    fi
513    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
514    hardcode_libdir_separator=:
515    ;;
516
517  osf4* | osf5*)        # as osf3* with the addition of -msym flag
518    if test "$with_gcc" = yes; then
519      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
520      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'
521    else
522      allow_undefined_flag=' -expect_unresolved \*'
523      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'
524    fi
525    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
526    hardcode_libdir_separator=:
527    ;;
528
529  sco3.2v5*)
530    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
531    hardcode_shlibpath_var=no
532    runpath_var=LD_RUN_PATH
533    hardcode_runpath_var=yes
534    ;;
535
536  solaris*)
537    no_undefined_flag=' ${wl}-z ${wl}defs'
[20088]538    archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
[16959]539    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
[20088]540      $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
[16959]541
542    # Commands to make compiler produce verbose output that lists
543    # what "hidden" libraries, object files and flags are used when
544    # linking a shared library.
545    output_verbose_link_cmds="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep \"\-L\""
546
547    hardcode_libdir_flag_spec='${wl}-R $wl$libdir'
548    hardcode_shlibpath_var=no
549    case $host_os in
550    solaris2.[0-5] | solaris2.[0-5].*) ;;
551    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
552      whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
553    esac
554    link_all_deplibs=yes
555    ;;
556
557  sunos4*)
558    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
559    hardcode_libdir_flag_spec='-L$libdir'
560    hardcode_direct=yes
561    hardcode_minus_L=yes
562    hardcode_shlibpath_var=no
563    ;;
564
565  sysv4)
566    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
567    runpath_var='LD_RUN_PATH'
568    hardcode_shlibpath_var=no
569    hardcode_direct=no #Motorola manual says yes, but my tests say they lie
570    ;;
571
572  sysv4.3*)
573    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
574    hardcode_shlibpath_var=no
575    export_dynamic_flag_spec='-Bexport'
576    ;;
577
578  sysv5*)
579    no_undefined_flag=' -z text'
580    # $CC -shared without GNU ld will not create a library from C++
581    # object files and a static libstdc++, better avoid it by now
582    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
583    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
584                $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
585    hardcode_libdir_flag_spec=
586    hardcode_shlibpath_var=no
587    runpath_var='LD_RUN_PATH'
588    ;;
589
590  uts4*)
591    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
592    hardcode_libdir_flag_spec='-L$libdir'
593    hardcode_shlibpath_var=no
594    ;;
595
596  dgux*)
597    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
598    hardcode_libdir_flag_spec='-L$libdir'
599    hardcode_shlibpath_var=no
600    ;;
601
602  sysv4*MP*)
603    if test -d /usr/nec; then
604      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
605      hardcode_shlibpath_var=no
606      runpath_var=LD_RUN_PATH
607      hardcode_runpath_var=yes
608      ld_shlibs=yes
609    fi
610    ;;
611
612  sysv4.2uw2*)
613    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
614    hardcode_direct=yes
615    hardcode_minus_L=no
616    hardcode_shlibpath_var=no
617    hardcode_runpath_var=yes
618    runpath_var=LD_RUN_PATH
619    ;;
620
621  sysv5uw7* | unixware7*)
622    no_undefined_flag='${wl}-z ${wl}text'
623    if test "$GCC" = yes; then
624      archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
625    else
626      archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
627    fi
628    runpath_var='LD_RUN_PATH'
629    hardcode_shlibpath_var=no
630    ;;
631
632  *)
633    ld_shlibs=no
634    ;;
635  esac
636fi
637
638## Compiler Characteristics: PIC flags, static flags, etc
639
640# We don't use cached values here since only the C compiler
641# characteristics should be cached.
642  ac_cv_prog_cc_pic=
643  ac_cv_prog_cc_shlib=
644  ac_cv_prog_cc_wl=
645  ac_cv_prog_cc_static=
646  ac_cv_prog_cc_no_builtin=
647  ac_cv_prog_cc_can_build_shared=$can_build_shared
648
649    ac_cv_prog_cc_wl='-Wl,'
650    ac_cv_prog_cc_static='-static'
651
652    case $host_os in
653    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
654      # PIC is the default for these OSes.
655      ;;
656    aix*)
657      # Below there is a dirty hack to force normal static linking with -ldl
658      # The problem is because libdl dynamically linked with both libc and
659      # libC (AIX C++ library), which obviously doesn't included in libraries
660      # list by gcc. This cause undefined symbols with -static flags.
661      # This hack allows C programs to be linked with "-static -ldl", but
662      # we not sure about C++ programs.
663      ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC"
664      ;;
665    *djgpp*)
666      # DJGPP does not suppot shared libraries at all
667      ac_cv_prog_cc_pic=
668      ;;
669    cygwin* | mingw* | os2*)
670      # This hack is so that the source file can tell whether it is being
671      # built for inclusion in a dll (and should export symbols for example).
672      ac_cv_prog_cc_pic='-DDLL_EXPORT'
673      ;;
[21198]674
675    darwin* | rhapsody*)
676      # PIC is the default on this platform
677      # Common symbols not allowed in MH_DYLIB files
678      ac_cv_prog_cc_pic='-fno-common'
679      ;;
[16959]680    amigaos*)
681      # FIXME: we need at least 68020 code to build shared libraries, but
682      # adding the `-m68020' flag to GCC prevents building anything better,
683      # like `-m68040'.
684      ac_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
685      ;;
686    sysv4*MP*)
687      if test -d /usr/nec; then
688         ac_cv_prog_cc_pic=-Kconform_pic
689      fi
690      ;;
691    *)
692      ac_cv_prog_cc_pic='-fPIC'
693      ;;
694    esac
695
696# GCJ did not exist at the time GCC didn't implicitly link libc in.
697need_lc=no
698
699# All existing releases of GCJ support `-c -o'.
700lt_cv_compiler_c_o=yes
Note: See TracBrowser for help on using the repository browser.