]> sjero.net Git - wget/blob - config.rpath
Ran update-copyright.
[wget] / config.rpath
1 #! /bin/sh
2 # Output a system dependent set of variables, describing how to set the
3 # run time search path of shared libraries in an executable.
4 #
5 #   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
6 #   2005, 2006, 2007, 2009 Free Software Foundation, Inc.
7 #   Taken from GNU libtool, 2001
8 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
9 #
10 #   This file is free software; the Free Software Foundation gives
11 #   unlimited permission to copy and/or distribute it, with or without
12 #   modifications, as long as this notice is preserved.
13 #
14 # The first argument passed to this file is the canonical host specification,
15 #    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
16 # or
17 #    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
18 # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
19 # should be set by the caller.
20 #
21 # The set of defined variables is at the end of this script.
22
23 # Known limitations:
24 # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
25 #   than 256 bytes, otherwise the compiler driver will dump core. The only
26 #   known workaround is to choose shorter directory names for the build
27 #   directory and/or the installation directory.
28
29 # All known linkers require a `.a' archive for static linking (except MSVC,
30 # which needs '.lib').
31 libext=a
32 shrext=.so
33
34 host="$1"
35 host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
36 host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
37 host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
38
39 # Code taken from libtool.m4's _LT_CC_BASENAME.
40
41 for cc_temp in $CC""; do
42   case $cc_temp in
43     compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
44     distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
45     \-*) ;;
46     *) break;;
47   esac
48 done
49 cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
50
51 # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
52
53 wl=
54 if test "$GCC" = yes; then
55   wl='-Wl,'
56 else
57   case "$host_os" in
58     aix*)
59       wl='-Wl,'
60       ;;
61     darwin*)
62       case $cc_basename in
63         xlc*)
64           wl='-Wl,'
65           ;;
66       esac
67       ;;
68     mingw* | cygwin* | pw32* | os2*)
69       ;;
70     hpux9* | hpux10* | hpux11*)
71       wl='-Wl,'
72       ;;
73     irix5* | irix6* | nonstopux*)
74       wl='-Wl,'
75       ;;
76     newsos6)
77       ;;
78     linux* | k*bsd*-gnu)
79       case $cc_basename in
80         icc* | ecc*)
81           wl='-Wl,'
82           ;;
83         pgcc | pgf77 | pgf90)
84           wl='-Wl,'
85           ;;
86         ccc*)
87           wl='-Wl,'
88           ;;
89         como)
90           wl='-lopt='
91           ;;
92         *)
93           case `$CC -V 2>&1 | sed 5q` in
94             *Sun\ C*)
95               wl='-Wl,'
96               ;;
97           esac
98           ;;
99       esac
100       ;;
101     osf3* | osf4* | osf5*)
102       wl='-Wl,'
103       ;;
104     rdos*)
105       ;;
106     solaris*)
107       wl='-Wl,'
108       ;;
109     sunos4*)
110       wl='-Qoption ld '
111       ;;
112     sysv4 | sysv4.2uw2* | sysv4.3*)
113       wl='-Wl,'
114       ;;
115     sysv4*MP*)
116       ;;
117     sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
118       wl='-Wl,'
119       ;;
120     unicos*)
121       wl='-Wl,'
122       ;;
123     uts4*)
124       ;;
125   esac
126 fi
127
128 # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
129
130 hardcode_libdir_flag_spec=
131 hardcode_libdir_separator=
132 hardcode_direct=no
133 hardcode_minus_L=no
134
135 case "$host_os" in
136   cygwin* | mingw* | pw32*)
137     # FIXME: the MSVC++ port hasn't been tested in a loooong time
138     # When not using gcc, we currently assume that we are using
139     # Microsoft Visual C++.
140     if test "$GCC" != yes; then
141       with_gnu_ld=no
142     fi
143     ;;
144   interix*)
145     # we just hope/assume this is gcc and not c89 (= MSVC++)
146     with_gnu_ld=yes
147     ;;
148   openbsd*)
149     with_gnu_ld=no
150     ;;
151 esac
152
153 ld_shlibs=yes
154 if test "$with_gnu_ld" = yes; then
155   # Set some defaults for GNU ld with shared library support. These
156   # are reset later if shared libraries are not supported. Putting them
157   # here allows them to be overridden if necessary.
158   # Unlike libtool, we use -rpath here, not --rpath, since the documented
159   # option of GNU ld is called -rpath, not --rpath.
160   hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
161   case "$host_os" in
162     aix3* | aix4* | aix5*)
163       # On AIX/PPC, the GNU linker is very broken
164       if test "$host_cpu" != ia64; then
165         ld_shlibs=no
166       fi
167       ;;
168     amigaos*)
169       hardcode_libdir_flag_spec='-L$libdir'
170       hardcode_minus_L=yes
171       # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
172       # that the semantics of dynamic libraries on AmigaOS, at least up
173       # to version 4, is to share data among multiple programs linked
174       # with the same dynamic library.  Since this doesn't match the
175       # behavior of shared libraries on other platforms, we cannot use
176       # them.
177       ld_shlibs=no
178       ;;
179     beos*)
180       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
181         :
182       else
183         ld_shlibs=no
184       fi
185       ;;
186     cygwin* | mingw* | pw32*)
187       # hardcode_libdir_flag_spec is actually meaningless, as there is
188       # no search path for DLLs.
189       hardcode_libdir_flag_spec='-L$libdir'
190       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
191         :
192       else
193         ld_shlibs=no
194       fi
195       ;;
196     interix[3-9]*)
197       hardcode_direct=no
198       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
199       ;;
200     gnu* | linux* | k*bsd*-gnu)
201       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
202         :
203       else
204         ld_shlibs=no
205       fi
206       ;;
207     netbsd*)
208       ;;
209     solaris*)
210       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
211         ld_shlibs=no
212       elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
213         :
214       else
215         ld_shlibs=no
216       fi
217       ;;
218     sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
219       case `$LD -v 2>&1` in
220         *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
221           ld_shlibs=no
222           ;;
223         *)
224           if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
225             hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
226           else
227             ld_shlibs=no
228           fi
229           ;;
230       esac
231       ;;
232     sunos4*)
233       hardcode_direct=yes
234       ;;
235     *)
236       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
237         :
238       else
239         ld_shlibs=no
240       fi
241       ;;
242   esac
243   if test "$ld_shlibs" = no; then
244     hardcode_libdir_flag_spec=
245   fi
246 else
247   case "$host_os" in
248     aix3*)
249       # Note: this linker hardcodes the directories in LIBPATH if there
250       # are no directories specified by -L.
251       hardcode_minus_L=yes
252       if test "$GCC" = yes; then
253         # Neither direct hardcoding nor static linking is supported with a
254         # broken collect2.
255         hardcode_direct=unsupported
256       fi
257       ;;
258     aix4* | aix5*)
259       if test "$host_cpu" = ia64; then
260         # On IA64, the linker does run time linking by default, so we don't
261         # have to do anything special.
262         aix_use_runtimelinking=no
263       else
264         aix_use_runtimelinking=no
265         # Test if we are trying to use run time linking or normal
266         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
267         # need to do runtime linking.
268         case $host_os in aix4.[23]|aix4.[23].*|aix5*)
269           for ld_flag in $LDFLAGS; do
270             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
271               aix_use_runtimelinking=yes
272               break
273             fi
274           done
275           ;;
276         esac
277       fi
278       hardcode_direct=yes
279       hardcode_libdir_separator=':'
280       if test "$GCC" = yes; then
281         case $host_os in aix4.[012]|aix4.[012].*)
282           collect2name=`${CC} -print-prog-name=collect2`
283           if test -f "$collect2name" && \
284             strings "$collect2name" | grep resolve_lib_name >/dev/null
285           then
286             # We have reworked collect2
287             :
288           else
289             # We have old collect2
290             hardcode_direct=unsupported
291             hardcode_minus_L=yes
292             hardcode_libdir_flag_spec='-L$libdir'
293             hardcode_libdir_separator=
294           fi
295           ;;
296         esac
297       fi
298       # Begin _LT_AC_SYS_LIBPATH_AIX.
299       echo 'int main () { return 0; }' > conftest.c
300       ${CC} ${LDFLAGS} conftest.c -o conftest
301       aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
302 }'`
303       if test -z "$aix_libpath"; then
304         aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
305 }'`
306       fi
307       if test -z "$aix_libpath"; then
308         aix_libpath="/usr/lib:/lib"
309       fi
310       rm -f conftest.c conftest
311       # End _LT_AC_SYS_LIBPATH_AIX.
312       if test "$aix_use_runtimelinking" = yes; then
313         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
314       else
315         if test "$host_cpu" = ia64; then
316           hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
317         else
318           hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
319         fi
320       fi
321       ;;
322     amigaos*)
323       hardcode_libdir_flag_spec='-L$libdir'
324       hardcode_minus_L=yes
325       # see comment about different semantics on the GNU ld section
326       ld_shlibs=no
327       ;;
328     bsdi[45]*)
329       ;;
330     cygwin* | mingw* | pw32*)
331       # When not using gcc, we currently assume that we are using
332       # Microsoft Visual C++.
333       # hardcode_libdir_flag_spec is actually meaningless, as there is
334       # no search path for DLLs.
335       hardcode_libdir_flag_spec=' '
336       libext=lib
337       ;;
338     darwin* | rhapsody*)
339       hardcode_direct=no
340       if test "$GCC" = yes ; then
341         :
342       else
343         case $cc_basename in
344           xlc*)
345             ;;
346           *)
347             ld_shlibs=no
348             ;;
349         esac
350       fi
351       ;;
352     dgux*)
353       hardcode_libdir_flag_spec='-L$libdir'
354       ;;
355     freebsd1*)
356       ld_shlibs=no
357       ;;
358     freebsd2.2*)
359       hardcode_libdir_flag_spec='-R$libdir'
360       hardcode_direct=yes
361       ;;
362     freebsd2*)
363       hardcode_direct=yes
364       hardcode_minus_L=yes
365       ;;
366     freebsd* | dragonfly*)
367       hardcode_libdir_flag_spec='-R$libdir'
368       hardcode_direct=yes
369       ;;
370     hpux9*)
371       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
372       hardcode_libdir_separator=:
373       hardcode_direct=yes
374       # hardcode_minus_L: Not really in the search PATH,
375       # but as the default location of the library.
376       hardcode_minus_L=yes
377       ;;
378     hpux10*)
379       if test "$with_gnu_ld" = no; then
380         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
381         hardcode_libdir_separator=:
382         hardcode_direct=yes
383         # hardcode_minus_L: Not really in the search PATH,
384         # but as the default location of the library.
385         hardcode_minus_L=yes
386       fi
387       ;;
388     hpux11*)
389       if test "$with_gnu_ld" = no; then
390         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
391         hardcode_libdir_separator=:
392         case $host_cpu in
393           hppa*64*|ia64*)
394             hardcode_direct=no
395             ;;
396           *)
397             hardcode_direct=yes
398             # hardcode_minus_L: Not really in the search PATH,
399             # but as the default location of the library.
400             hardcode_minus_L=yes
401             ;;
402         esac
403       fi
404       ;;
405     irix5* | irix6* | nonstopux*)
406       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
407       hardcode_libdir_separator=:
408       ;;
409     netbsd*)
410       hardcode_libdir_flag_spec='-R$libdir'
411       hardcode_direct=yes
412       ;;
413     newsos6)
414       hardcode_direct=yes
415       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
416       hardcode_libdir_separator=:
417       ;;
418     openbsd*)
419       if test -f /usr/libexec/ld.so; then
420         hardcode_direct=yes
421         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
422           hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
423         else
424           case "$host_os" in
425             openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
426               hardcode_libdir_flag_spec='-R$libdir'
427               ;;
428             *)
429               hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
430               ;;
431           esac
432         fi
433       else
434         ld_shlibs=no
435       fi
436       ;;
437     os2*)
438       hardcode_libdir_flag_spec='-L$libdir'
439       hardcode_minus_L=yes
440       ;;
441     osf3*)
442       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
443       hardcode_libdir_separator=:
444       ;;
445     osf4* | osf5*)
446       if test "$GCC" = yes; then
447         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
448       else
449         # Both cc and cxx compiler support -rpath directly
450         hardcode_libdir_flag_spec='-rpath $libdir'
451       fi
452       hardcode_libdir_separator=:
453       ;;
454     solaris*)
455       hardcode_libdir_flag_spec='-R$libdir'
456       ;;
457     sunos4*)
458       hardcode_libdir_flag_spec='-L$libdir'
459       hardcode_direct=yes
460       hardcode_minus_L=yes
461       ;;
462     sysv4)
463       case $host_vendor in
464         sni)
465           hardcode_direct=yes # is this really true???
466           ;;
467         siemens)
468           hardcode_direct=no
469           ;;
470         motorola)
471           hardcode_direct=no #Motorola manual says yes, but my tests say they lie
472           ;;
473       esac
474       ;;
475     sysv4.3*)
476       ;;
477     sysv4*MP*)
478       if test -d /usr/nec; then
479         ld_shlibs=yes
480       fi
481       ;;
482     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
483       ;;
484     sysv5* | sco3.2v5* | sco5v6*)
485       hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
486       hardcode_libdir_separator=':'
487       ;;
488     uts4*)
489       hardcode_libdir_flag_spec='-L$libdir'
490       ;;
491     *)
492       ld_shlibs=no
493       ;;
494   esac
495 fi
496
497 # Check dynamic linker characteristics
498 # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
499 # Unlike libtool.m4, here we don't care about _all_ names of the library, but
500 # only about the one the linker finds when passed -lNAME. This is the last
501 # element of library_names_spec in libtool.m4, or possibly two of them if the
502 # linker has special search rules.
503 library_names_spec=      # the last element of library_names_spec in libtool.m4
504 libname_spec='lib$name'
505 case "$host_os" in
506   aix3*)
507     library_names_spec='$libname.a'
508     ;;
509   aix4* | aix5*)
510     library_names_spec='$libname$shrext'
511     ;;
512   amigaos*)
513     library_names_spec='$libname.a'
514     ;;
515   beos*)
516     library_names_spec='$libname$shrext'
517     ;;
518   bsdi[45]*)
519     library_names_spec='$libname$shrext'
520     ;;
521   cygwin* | mingw* | pw32*)
522     shrext=.dll
523     library_names_spec='$libname.dll.a $libname.lib'
524     ;;
525   darwin* | rhapsody*)
526     shrext=.dylib
527     library_names_spec='$libname$shrext'
528     ;;
529   dgux*)
530     library_names_spec='$libname$shrext'
531     ;;
532   freebsd1*)
533     ;;
534   freebsd* | dragonfly*)
535     case "$host_os" in
536       freebsd[123]*)
537         library_names_spec='$libname$shrext$versuffix' ;;
538       *)
539         library_names_spec='$libname$shrext' ;;
540     esac
541     ;;
542   gnu*)
543     library_names_spec='$libname$shrext'
544     ;;
545   hpux9* | hpux10* | hpux11*)
546     case $host_cpu in
547       ia64*)
548         shrext=.so
549         ;;
550       hppa*64*)
551         shrext=.sl
552         ;;
553       *)
554         shrext=.sl
555         ;;
556     esac
557     library_names_spec='$libname$shrext'
558     ;;
559   interix[3-9]*)
560     library_names_spec='$libname$shrext'
561     ;;
562   irix5* | irix6* | nonstopux*)
563     library_names_spec='$libname$shrext'
564     case "$host_os" in
565       irix5* | nonstopux*)
566         libsuff= shlibsuff=
567         ;;
568       *)
569         case $LD in
570           *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
571           *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
572           *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
573           *) libsuff= shlibsuff= ;;
574         esac
575         ;;
576     esac
577     ;;
578   linux*oldld* | linux*aout* | linux*coff*)
579     ;;
580   linux* | k*bsd*-gnu)
581     library_names_spec='$libname$shrext'
582     ;;
583   knetbsd*-gnu)
584     library_names_spec='$libname$shrext'
585     ;;
586   netbsd*)
587     library_names_spec='$libname$shrext'
588     ;;
589   newsos6)
590     library_names_spec='$libname$shrext'
591     ;;
592   nto-qnx*)
593     library_names_spec='$libname$shrext'
594     ;;
595   openbsd*)
596     library_names_spec='$libname$shrext$versuffix'
597     ;;
598   os2*)
599     libname_spec='$name'
600     shrext=.dll
601     library_names_spec='$libname.a'
602     ;;
603   osf3* | osf4* | osf5*)
604     library_names_spec='$libname$shrext'
605     ;;
606   rdos*)
607     ;;
608   solaris*)
609     library_names_spec='$libname$shrext'
610     ;;
611   sunos4*)
612     library_names_spec='$libname$shrext$versuffix'
613     ;;
614   sysv4 | sysv4.3*)
615     library_names_spec='$libname$shrext'
616     ;;
617   sysv4*MP*)
618     library_names_spec='$libname$shrext'
619     ;;
620   sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
621     library_names_spec='$libname$shrext'
622     ;;
623   uts4*)
624     library_names_spec='$libname$shrext'
625     ;;
626 esac
627
628 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
629 escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
630 shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
631 escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
632 escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
633 escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
634
635 LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
636
637 # How to pass a linker flag through the compiler.
638 wl="$escaped_wl"
639
640 # Static library suffix (normally "a").
641 libext="$libext"
642
643 # Shared library suffix (normally "so").
644 shlibext="$shlibext"
645
646 # Format of library name prefix.
647 libname_spec="$escaped_libname_spec"
648
649 # Library names that the linker finds when passed -lNAME.
650 library_names_spec="$escaped_library_names_spec"
651
652 # Flag to hardcode \$libdir into a binary during linking.
653 # This must work even if \$libdir does not exist.
654 hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
655
656 # Whether we need a single -rpath flag with a separated argument.
657 hardcode_libdir_separator="$hardcode_libdir_separator"
658
659 # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
660 # resulting binary.
661 hardcode_direct="$hardcode_direct"
662
663 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
664 # resulting binary.
665 hardcode_minus_L="$hardcode_minus_L"
666
667 EOF