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