~vcs-imports/libiconv/trunk

« back to all changes in this revision

Viewing changes to build-aux/ltmain.sh

  • Committer: Bruno Haible
  • Date: 2024-12-15 12:23:08 UTC
  • Revision ID: git-v1:8d618a87265040dc882b451e39c6a39e610395be
Prepare for version 1.18.

* configure.ac: Bump version number to 1.18.
* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7.
* src/iconv.c (print_version): Update copyright year.
* windows/iconv.rc: Likewise.
* windows/libiconv.rc: Likewise.
* README: Update download link.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
3
3
##               by inline-source v2019-02-19.15
4
4
 
5
 
# libtool (GNU libtool) 2.4.7
 
5
# libtool (GNU libtool) 2.5.4
6
6
# Provide generalized library-building support services.
7
7
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8
8
 
9
 
# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
 
9
# Copyright (C) 1996-2019, 2021-2024 Free Software Foundation, Inc.
10
10
# This is free software; see the source for copying conditions.  There is NO
11
11
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
12
 
31
31
 
32
32
PROGRAM=libtool
33
33
PACKAGE=libtool
34
 
VERSION=2.4.7
35
 
package_revision=2.4.7
 
34
VERSION=2.5.4
 
35
package_revision=2.5.4
36
36
 
37
37
 
38
38
## ------ ##
72
72
# This is free software.  There is NO warranty; not even for
73
73
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
74
74
#
75
 
# Copyright (C) 2004-2019, 2021 Bootstrap Authors
 
75
# Copyright (C) 2004-2019, 2021, 2023-2024 Bootstrap Authors
76
76
#
77
77
# This file is dual licensed under the terms of the MIT license
78
 
# <https://opensource.org/license/MIT>, and GPL version 2 or later
79
 
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
 
78
# <https://opensource.org/licenses/MIT>, and GPL version 2 or later
 
79
# <https://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
80
80
# these licenses when using or redistributing this software or any of
81
81
# the files within it.  See the URLs above, or the file `LICENSE`
82
82
# included in the Bootstrap distribution for the full license texts.
143
143
'
144
144
IFS="$sp        $nl"
145
145
 
146
 
# There are apparently some retarded systems that use ';' as a PATH separator!
 
146
# There are apparently some systems that use ';' as a PATH separator!
147
147
if test "${PATH_SEPARATOR+set}" != set; then
148
148
  PATH_SEPARATOR=:
149
149
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
589
589
 
590
590
  # _G_HAVE_PLUSEQ_OP
591
591
  # Can be empty, in which case the shell is probed, "yes" if += is
592
 
  # useable or anything else if it does not work.
 
592
  # usable or anything else if it does not work.
593
593
  test -z "$_G_HAVE_PLUSEQ_OP" \
594
594
    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
595
595
    && _G_HAVE_PLUSEQ_OP=yes
739
739
#             to NONDIR_REPLACEMENT.
740
740
#             value returned in "$func_dirname_result"
741
741
#   basename: Compute filename of FILE.
742
 
#             value retuned in "$func_basename_result"
 
742
#             value returned in "$func_basename_result"
743
743
# For efficiency, we do not delegate to the functions above but instead
744
744
# duplicate the functionality here.
745
745
eval 'func_dirname_and_basename ()
897
897
      # While some portion of DIR does not yet exist...
898
898
      while test ! -d "$_G_directory_path"; do
899
899
        # ...make a list in topmost first order.  Use a colon delimited
900
 
        # list incase some portion of path contains whitespace.
 
900
        # list in case some portion of path contains whitespace.
901
901
        _G_dir_list=$_G_directory_path:$_G_dir_list
902
902
 
903
903
        # If the last portion added has no slash in it, the list is done
1536
1536
# This is free software.  There is NO warranty; not even for
1537
1537
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1538
1538
#
1539
 
# Copyright (C) 2010-2019, 2021 Bootstrap Authors
 
1539
# Copyright (C) 2010-2019, 2021, 2023-2024 Bootstrap Authors
1540
1540
#
1541
1541
# This file is dual licensed under the terms of the MIT license
1542
 
# <https://opensource.org/license/MIT>, and GPL version 2 or later
1543
 
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
 
1542
# <https://opensource.org/licenses/MIT>, and GPL version 2 or later
 
1543
# <https://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
1544
1544
# these licenses when using or redistributing this software or any of
1545
1545
# the files within it.  See the URLs above, or the file `LICENSE`
1546
1546
# included in the Bootstrap distribution for the full license texts.
2215
2215
# End:
2216
2216
 
2217
2217
# Set a version string.
2218
 
scriptversion='(GNU libtool) 2.4.7'
 
2218
scriptversion='(GNU libtool) 2.5.4'
 
2219
 
 
2220
# func_version
 
2221
# ------------
 
2222
# Echo version message to standard output and exit.
 
2223
func_version ()
 
2224
{
 
2225
    $debug_cmd
 
2226
 
 
2227
        year=`date +%Y`
 
2228
 
 
2229
        cat <<EOF
 
2230
$progname $scriptversion
 
2231
Copyright (C) $year Free Software Foundation, Inc.
 
2232
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>
 
2233
This is free software: you are free to change and redistribute it.
 
2234
There is NO WARRANTY, to the extent permitted by law.
 
2235
 
 
2236
Originally written by Gordon Matzigkeit, 1996
 
2237
(See AUTHORS for complete contributor listing)
 
2238
EOF
 
2239
 
 
2240
    exit $?
 
2241
}
2219
2242
 
2220
2243
 
2221
2244
# func_echo ARG...
2238
2261
}
2239
2262
 
2240
2263
 
2241
 
# func_warning ARG...
2242
 
# -------------------
2243
 
# Libtool warnings are not categorized, so override funclib.sh
2244
 
# func_warning with this simpler definition.
2245
 
func_warning ()
2246
 
{
2247
 
    $debug_cmd
2248
 
 
2249
 
    $warning_func ${1+"$@"}
2250
 
}
2251
 
 
2252
 
 
2253
2264
## ---------------- ##
2254
2265
## Options parsing. ##
2255
2266
## ---------------- ##
2261
2272
 
2262
2273
# Short help message in response to '-h'.
2263
2274
usage_message="Options:
2264
 
       --config             show all configuration variables
2265
 
       --debug              enable verbose shell tracing
2266
 
   -n, --dry-run            display commands without modifying any files
2267
 
       --features           display basic configuration information and exit
2268
 
       --mode=MODE          use operation mode MODE
2269
 
       --no-warnings        equivalent to '-Wnone'
2270
 
       --preserve-dup-deps  don't remove duplicate dependency libraries
2271
 
       --quiet, --silent    don't print informational messages
2272
 
       --tag=TAG            use configuration variables from tag TAG
2273
 
   -v, --verbose            print more informational messages than default
2274
 
       --version            print version information
2275
 
   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
2276
 
   -h, --help, --help-all   print short, long, or detailed help message
 
2275
       --config                 show all configuration variables
 
2276
       --debug                  enable verbose shell tracing
 
2277
   -n, --dry-run                display commands without modifying any files
 
2278
       --features               display basic configuration information
 
2279
       --finish                 use operation '--mode=finish'
 
2280
       --mode=MODE              use operation mode MODE
 
2281
       --no-finish              don't update shared library cache
 
2282
       --no-quiet, --no-silent  print default informational messages
 
2283
       --no-warnings            equivalent to '-Wnone'
 
2284
       --preserve-dup-deps      don't remove duplicate dependency libraries
 
2285
       --quiet, --silent        don't print informational messages
 
2286
       --reorder-cache=DIRS     reorder shared library cache for preferred DIRS
 
2287
       --tag=TAG                use configuration variables from tag TAG
 
2288
   -v, --verbose                print more informational messages than default
 
2289
       --version                print version information
 
2290
   -W, --warnings=CATEGORY      report the warnings falling in CATEGORY [all]
 
2291
   -h, --help, --help-all       print short, long, or detailed help message
2277
2292
"
2278
2293
 
2279
2294
# Additional text appended to 'usage_message' in response to '--help'.
2306
2321
       compiler:       $LTCC
2307
2322
       compiler flags: $LTCFLAGS
2308
2323
       linker:         $LD (gnu? $with_gnu_ld)
2309
 
       version:        $progname (GNU libtool) 2.4.7
 
2324
       version:        $progname $scriptversion
2310
2325
       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2311
2326
       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
2312
2327
 
2313
2328
Report bugs to <bug-libtool@gnu.org>.
2314
 
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
2315
 
General help using GNU software: <http://www.gnu.org/gethelp/>."
 
2329
GNU libtool home page: <https://www.gnu.org/software/libtool/>.
 
2330
General help using GNU software: <https://www.gnu.org/gethelp/>."
2316
2331
    exit 0
2317
2332
}
2318
2333
 
2502
2517
    opt_dry_run=false
2503
2518
    opt_help=false
2504
2519
    opt_mode=
 
2520
    opt_reorder_cache=false
2505
2521
    opt_preserve_dup_deps=false
2506
2522
    opt_quiet=false
 
2523
    opt_finishing=true
 
2524
    opt_warning=
2507
2525
 
2508
2526
    nonopt=
2509
2527
    preserve_args=
2593
2611
                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
2594
2612
 
2595
2613
                          # Catch anything else as an error
2596
 
                          *) func_error "invalid argument for $_G_opt"
 
2614
                          *) func_error "invalid argument '$1' for $_G_opt"
2597
2615
                             exit_cmd=exit
2598
 
                             break
2599
2616
                             ;;
2600
2617
                        esac
2601
2618
                        shift
2602
2619
                        ;;
2603
2620
 
 
2621
        --no-finish)
 
2622
                        opt_finishing=false
 
2623
                        func_append preserve_args " $_G_opt"
 
2624
                        ;;
 
2625
 
2604
2626
        --no-silent|--no-quiet)
2605
2627
                        opt_quiet=false
2606
2628
                        func_append preserve_args " $_G_opt"
2616
2638
                        func_append preserve_args " $_G_opt"
2617
2639
                        ;;
2618
2640
 
 
2641
        --reorder-cache)
 
2642
                        opt_reorder_cache=true
 
2643
                        shared_lib_dirs=$1
 
2644
                        if test -n "$shared_lib_dirs"; then
 
2645
                          case $1 in
 
2646
                            # Must begin with /:
 
2647
                            /*) ;;
 
2648
 
 
2649
                            # Catch anything else as an error (relative paths)
 
2650
                            *) func_error "invalid argument '$1' for $_G_opt"
 
2651
                               func_error "absolute paths are required for $_G_opt"
 
2652
                               exit_cmd=exit
 
2653
                               ;;
 
2654
                          esac
 
2655
                        fi
 
2656
                        shift
 
2657
                        ;;
 
2658
 
2619
2659
        --silent|--quiet)
2620
2660
                        opt_quiet=:
2621
2661
                        opt_verbose=false
2652
2692
func_add_hook func_parse_options libtool_parse_options
2653
2693
 
2654
2694
 
 
2695
# func_warning ARG...
 
2696
# -------------------
 
2697
# Libtool warnings are not categorized, so override funclib.sh
 
2698
# func_warning with this simpler definition.
 
2699
func_warning ()
 
2700
{
 
2701
    if $opt_warning; then
 
2702
        $debug_cmd
 
2703
        $warning_func ${1+"$@"}
 
2704
    fi
 
2705
}
 
2706
 
2655
2707
 
2656
2708
# libtool_validate_options [ARG]...
2657
2709
# ---------------------------------
2668
2720
    # preserve --debug
2669
2721
    test : = "$debug_cmd" || func_append preserve_args " --debug"
2670
2722
 
2671
 
    case $host in
 
2723
    case $host_os in
2672
2724
      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
2673
2725
      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
2674
 
      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
 
2726
      cygwin* | mingw* | windows* | pw32* | cegcc* | solaris2* | os2*)
2675
2727
        # don't eliminate duplications in $postdeps and $predeps
2676
2728
        opt_duplicate_compiler_generated_deps=:
2677
2729
        ;;
3003
3055
 
3004
3056
# func_convert_core_file_wine_to_w32 ARG
3005
3057
# Helper function used by file name conversion functions when $build is *nix,
3006
 
# and $host is mingw, cygwin, or some other w32 environment. Relies on a
 
3058
# and $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
3007
3059
# correctly configured wine environment available, with the winepath program
3008
3060
# in $build's $PATH.
3009
3061
#
3035
3087
 
3036
3088
# func_convert_core_path_wine_to_w32 ARG
3037
3089
# Helper function used by path conversion functions when $build is *nix, and
3038
 
# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
3039
 
# configured wine environment available, with the winepath program in $build's
3040
 
# $PATH. Assumes ARG has no leading or trailing path separator characters.
 
3090
# $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
 
3091
# correctly configured wine environment available, with the winepath program
 
3092
# in $build's $PATH. Assumes ARG has no leading or trailing path separator
 
3093
# characters.
3041
3094
#
3042
3095
# ARG is path to be converted from $build format to win32.
3043
3096
# Result is available in $func_convert_core_path_wine_to_w32_result.
3180
3233
# end func_convert_path_front_back_pathsep
3181
3234
 
3182
3235
 
 
3236
# func_convert_delimited_path PATH ORIG_DELIMITER NEW_DELIMITER
 
3237
# Replaces a delimiter for a given path.
 
3238
func_convert_delimited_path ()
 
3239
{
 
3240
        converted_path=`$ECHO "$1" | $SED "s#$2#$3#g"`
 
3241
}
 
3242
# end func_convert_delimited_path
 
3243
 
 
3244
 
3183
3245
##################################################
3184
3246
# $build to $host FILE NAME CONVERSION FUNCTIONS #
3185
3247
##################################################
3514
3576
}
3515
3577
 
3516
3578
 
 
3579
# func_reorder_shared_lib_cache DIRS
 
3580
# Reorder the shared library cache by unconfiguring previous shared library cache
 
3581
# and configuring preferred search directories before previous search directories.
 
3582
# Previous shared library cache: /usr/lib /usr/local/lib
 
3583
# Preferred search directories: /tmp/testing
 
3584
# Reordered shared library cache: /tmp/testing /usr/lib /usr/local/lib
 
3585
func_reorder_shared_lib_cache ()
 
3586
{
 
3587
        $debug_cmd
 
3588
 
 
3589
        case $host_os in
 
3590
          openbsd*)
 
3591
            get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`
 
3592
            func_convert_delimited_path "$get_search_directories" ':' '\ '
 
3593
            save_search_directories=$converted_path
 
3594
            func_convert_delimited_path "$1" ':' '\ '
 
3595
 
 
3596
            # Ensure directories exist
 
3597
            for dir in $converted_path; do
 
3598
              # Ensure each directory is an absolute path
 
3599
              case $dir in
 
3600
                /*) ;;
 
3601
                *) func_error "Directory '$dir' is not an absolute path"
 
3602
                   exit $EXIT_FAILURE ;;
 
3603
              esac
 
3604
              # Ensure no trailing slashes
 
3605
              func_stripname '' '/' "$dir"
 
3606
              dir=$func_stripname_result
 
3607
              if test -d "$dir"; then
 
3608
                if test -n "$preferred_search_directories"; then
 
3609
                  preferred_search_directories="$preferred_search_directories $dir"
 
3610
                else
 
3611
                  preferred_search_directories=$dir
 
3612
                fi
 
3613
              else
 
3614
                func_error "Directory '$dir' does not exist"
 
3615
                exit $EXIT_FAILURE
 
3616
              fi
 
3617
            done
 
3618
 
 
3619
            PATH="$PATH:/sbin" ldconfig -U $save_search_directories
 
3620
            PATH="$PATH:/sbin" ldconfig -m $preferred_search_directories $save_search_directories
 
3621
            get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`
 
3622
            func_convert_delimited_path "$get_search_directories" ':' '\ '
 
3623
            reordered_search_directories=$converted_path
 
3624
 
 
3625
            $ECHO "Original: $save_search_directories"
 
3626
            $ECHO "Reordered: $reordered_search_directories"
 
3627
            exit $EXIT_SUCCESS
 
3628
          ;;
 
3629
          *)
 
3630
            func_error "--reorder-cache is not supported for host_os=$host_os."
 
3631
            exit $EXIT_FAILURE
 
3632
          ;;
 
3633
        esac
 
3634
}
 
3635
# end func_reorder_shared_lib_cache
 
3636
 
 
3637
 
3517
3638
# func_mode_compile arg...
3518
3639
func_mode_compile ()
3519
3640
{
3692
3813
 
3693
3814
    # On Cygwin there's no "real" PIC flag so we must build both object types
3694
3815
    case $host_os in
3695
 
    cygwin* | mingw* | pw32* | os2* | cegcc*)
 
3816
    cygwin* | mingw* | windows* | pw32* | os2* | cegcc*)
3696
3817
      pic_mode=default
3697
3818
      ;;
3698
3819
    esac
4088
4209
fi
4089
4210
 
4090
4211
 
 
4212
# If option '--reorder-cache', reorder the shared library cache and exit.
 
4213
if $opt_reorder_cache; then
 
4214
    func_reorder_shared_lib_cache $shared_lib_dirs
 
4215
fi
 
4216
 
 
4217
 
4091
4218
# func_mode_execute arg...
4092
4219
func_mode_execute ()
4093
4220
{
4272
4399
      fi
4273
4400
    fi
4274
4401
 
4275
 
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
 
4402
    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs" && $opt_finishing; then
4276
4403
      for libdir in $libdirs; do
4277
4404
        if test -n "$finish_cmds"; then
4278
4405
          # Do each command in the finish commands.
4297
4424
      for libdir in $libdirs; do
4298
4425
        $ECHO "   $libdir"
4299
4426
      done
 
4427
      if test "false" = "$opt_finishing"; then
 
4428
        echo
 
4429
        echo "NOTE: finish_cmds were not executed during testing, so you must"
 
4430
        echo "manually run ldconfig to add a given test directory, LIBDIR, to"
 
4431
        echo "the search path for generated executables."
 
4432
      fi
4300
4433
      echo
4301
4434
      echo "If you ever happen to want to link against installed libraries"
4302
4435
      echo "in a given directory, LIBDIR, you must either use libtool, and"
4533
4666
        func_append dir "$objdir"
4534
4667
 
4535
4668
        if test -n "$relink_command"; then
 
4669
          # Strip any trailing slash from the destination.
 
4670
          func_stripname '' '/' "$libdir"
 
4671
          destlibdir=$func_stripname_result
 
4672
 
 
4673
          func_stripname '' '/' "$destdir"
 
4674
          s_destdir=$func_stripname_result
 
4675
 
4536
4676
          # Determine the prefix the user has applied to our future dir.
4537
 
          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
4677
          inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
4538
4678
 
4539
4679
          # Don't allow the user to place us outside of our expected
4540
4680
          # location b/c this prevents finding dependent libraries that
4571
4711
              'exit $?'
4572
4712
          tstripme=$stripme
4573
4713
          case $host_os in
4574
 
          cygwin* | mingw* | pw32* | cegcc*)
 
4714
          cygwin* | mingw* | windows* | pw32* | cegcc*)
4575
4715
            case $realname in
4576
4716
            *.dll.a)
4577
4717
              tstripme=
4684
4824
 
4685
4825
        # Do a test to see if this is really a libtool program.
4686
4826
        case $host in
4687
 
        *cygwin* | *mingw*)
 
4827
        *cygwin* | *mingw* | *windows*)
4688
4828
            if func_ltwrapper_executable_p "$file"; then
4689
4829
              func_ltwrapper_scriptname "$file"
4690
4830
              wrapper=$func_ltwrapper_scriptname_result
4912
5052
              $RM $export_symbols
4913
5053
              eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4914
5054
              case $host in
4915
 
              *cygwin* | *mingw* | *cegcc* )
 
5055
              *cygwin* | *mingw* | *windows* | *cegcc* )
4916
5056
                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4917
5057
                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4918
5058
                ;;
4924
5064
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4925
5065
              eval '$MV "$nlist"T "$nlist"'
4926
5066
              case $host in
4927
 
                *cygwin* | *mingw* | *cegcc* )
 
5067
                *cygwin* | *mingw* | *windows* | *cegcc* )
4928
5068
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4929
5069
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4930
5070
                  ;;
4938
5078
          func_basename "$dlprefile"
4939
5079
          name=$func_basename_result
4940
5080
          case $host in
4941
 
            *cygwin* | *mingw* | *cegcc* )
 
5081
            *cygwin* | *mingw* | *windows* | *cegcc* )
4942
5082
              # if an import library, we need to obtain dlname
4943
5083
              if func_win32_import_lib_p "$dlprefile"; then
4944
5084
                func_tr_sh "$dlprefile"
4964
5104
                    eval '$ECHO ": $name " >> "$nlist"'
4965
5105
                  fi
4966
5106
                  func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
4967
 
                  eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
4968
 
                    $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
 
5107
                  case $host in
 
5108
                    i[3456]86-*-mingw32*)
 
5109
                      eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
 
5110
                        $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
 
5111
                    ;;
 
5112
                    *)
 
5113
                      eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
 
5114
                        $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/__nm_//' >> '$nlist'"
 
5115
                    ;;
 
5116
                  esac
4969
5117
                }
4970
5118
              else # not an import lib
4971
5119
                $opt_dry_run || {
5113
5261
        # Transform the symbol file into the correct name.
5114
5262
        symfileobj=$output_objdir/${my_outputname}S.$objext
5115
5263
        case $host in
5116
 
        *cygwin* | *mingw* | *cegcc* )
 
5264
        *cygwin* | *mingw* | *windows* | *cegcc* )
5117
5265
          if test -f "$output_objdir/$my_outputname.def"; then
5118
5266
            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
5119
5267
            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
5189
5337
  *ar\ archive*) # could be an import, or static
5190
5338
    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
5191
5339
    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
5192
 
       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
 
5340
       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then
5193
5341
      case $nm_interface in
5194
5342
      "MS dumpbin")
5195
5343
        if func_cygming_ms_implib_p "$1" ||
5456
5604
#
5457
5605
# Emit a libtool wrapper script on stdout.
5458
5606
# Don't directly open a file because we may want to
5459
 
# incorporate the script contents within a cygwin/mingw
 
5607
# incorporate the script contents within a cygwin/mingw/windows
5460
5608
# wrapper executable.  Must ONLY be called from within
5461
5609
# func_mode_link because it depends on a number of variables
5462
5610
# set therein.
5464
5612
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
5465
5613
# variable will take.  If 'yes', then the emitted script
5466
5614
# will assume that the directory where it is stored is
5467
 
# the $objdir directory.  This is a cygwin/mingw-specific
 
5615
# the $objdir directory.  This is a cygwin/mingw/windows-specific
5468
5616
# behavior.
5469
5617
func_emit_wrapper ()
5470
5618
{
5589
5737
"
5590
5738
  case $host in
5591
5739
  # Backslashes separate directories on plain windows
5592
 
  *-*-mingw | *-*-os2* | *-cegcc*)
 
5740
  *-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*)
5593
5741
    $ECHO "\
5594
5742
      if test -n \"\$lt_option_debug\"; then
5595
5743
        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
5657
5805
    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
5658
5806
  done
5659
5807
 
5660
 
  # Usually 'no', except on cygwin/mingw when embedded into
 
5808
  # Usually 'no', except on cygwin/mingw/windows when embedded into
5661
5809
  # the cwrapper.
5662
5810
  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
5663
5811
  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
5789
5937
#endif
5790
5938
#include <stdio.h>
5791
5939
#include <stdlib.h>
5792
 
#ifdef _MSC_VER
 
5940
#if defined _WIN32 && !defined __GNUC__
5793
5941
# include <direct.h>
5794
5942
# include <process.h>
5795
5943
# include <io.h>
5814
5962
/* declarations of non-ANSI functions */
5815
5963
#if defined __MINGW32__
5816
5964
# ifdef __STRICT_ANSI__
5817
 
int _putenv (const char *);
 
5965
_CRTIMP int __cdecl _putenv (const char *);
5818
5966
# endif
5819
5967
#elif defined __CYGWIN__
5820
5968
# ifdef __STRICT_ANSI__
6012
6160
        {
6013
6161
EOF
6014
6162
            case $host in
6015
 
              *mingw* | *cygwin* )
 
6163
              *mingw* | *windows* | *cygwin* )
6016
6164
                # make stdout use "unix" line endings
6017
6165
                echo "          setmode(1,_O_BINARY);"
6018
6166
                ;;
6031
6179
        {
6032
6180
          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
6033
6181
             namespace, but it is not one of the ones we know about and
6034
 
             have already dealt with, above (inluding dump-script), then
 
6182
             have already dealt with, above (including dump-script), then
6035
6183
             report an error. Otherwise, targets might begin to believe
6036
6184
             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
6037
6185
             namespace. The first time any user complains about this, we'll
6115
6263
EOF
6116
6264
 
6117
6265
            case $host_os in
6118
 
              mingw*)
 
6266
              mingw* | windows*)
6119
6267
            cat <<"EOF"
6120
6268
  {
6121
6269
    char* p;
6157
6305
EOF
6158
6306
 
6159
6307
            case $host_os in
6160
 
              mingw*)
 
6308
              mingw* | windows*)
6161
6309
                cat <<"EOF"
6162
6310
  /* execv doesn't actually work on mingw as expected on unix */
6163
6311
  newargz = prepare_spawn (newargz);
6576
6724
 
6577
6725
EOF
6578
6726
            case $host_os in
6579
 
              mingw*)
 
6727
              mingw* | windows*)
6580
6728
                cat <<"EOF"
6581
6729
 
6582
6730
/* Prepares an argument vector before calling spawn().
6751
6899
    $debug_cmd
6752
6900
 
6753
6901
    case $host in
6754
 
    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 
6902
    *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
6755
6903
      # It is impossible to link a dll without this setting, and
6756
6904
      # we shouldn't force the makefile maintainer to figure out
6757
6905
      # what system we are compiling for in order to pass an extra
6775
6923
    finalize_command=$nonopt
6776
6924
 
6777
6925
    compile_rpath=
 
6926
    compile_rpath_tail=
6778
6927
    finalize_rpath=
6779
6928
    compile_shlibpath=
6780
6929
    finalize_shlibpath=
6815
6964
    xrpath=
6816
6965
    perm_rpath=
6817
6966
    temp_rpath=
 
6967
    temp_rpath_tail=
6818
6968
    thread_safe=no
6819
6969
    vinfo=
6820
6970
    vinfo_number=no
6821
6971
    weak_libs=
 
6972
    rpath_arg=
6822
6973
    single_module=$wl-single_module
6823
6974
    func_infer_tag $base_compile
6824
6975
 
7081
7232
          case $arg in
7082
7233
          [\\/]* | [A-Za-z]:[\\/]*) ;;
7083
7234
          *)
7084
 
            func_fatal_error "only absolute run-paths are allowed"
 
7235
            func_fatal_error "argument to -rpath is not absolute: $arg"
7085
7236
            ;;
7086
7237
          esac
7087
7238
          if test rpath = "$prev"; then
7257
7408
          ;;
7258
7409
        esac
7259
7410
        case $host in
7260
 
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 
7411
        *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
7261
7412
          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
7262
7413
          case :$dllsearchpath: in
7263
7414
          *":$dir:"*) ;;
7277
7428
      -l*)
7278
7429
        if test X-lc = "X$arg" || test X-lm = "X$arg"; then
7279
7430
          case $host in
7280
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
 
7431
          *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
7281
7432
            # These systems don't actually have a C or math library (as such)
7282
7433
            continue
7283
7434
            ;;
7285
7436
            # These systems don't actually have a C library (as such)
7286
7437
            test X-lc = "X$arg" && continue
7287
7438
            ;;
7288
 
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
 
7439
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
7289
7440
            # Do not include libc due to us having libc/libc_r.
7290
7441
            test X-lc = "X$arg" && continue
7291
7442
            ;;
7305
7456
          esac
7306
7457
        elif test X-lc_r = "X$arg"; then
7307
7458
         case $host in
7308
 
         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
 
7459
         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
7309
7460
           # Do not include libc_r directly, use -pthread flag.
7310
7461
           continue
7311
7462
           ;;
7328
7479
      # Tru64 UNIX uses -model [arg] to determine the layout of C++
7329
7480
      # classes, name mangling, and exception handling.
7330
7481
      # Darwin uses the -arch flag to determine output architecture.
7331
 
      -model|-arch|-isysroot|--sysroot)
 
7482
      # -q <option> for IBM XL C/C++ compiler.
 
7483
      -model|-arch|-isysroot|--sysroot|-q)
7332
7484
        func_append compiler_flags " $arg"
7333
7485
        func_append compile_command " $arg"
7334
7486
        func_append finalize_command " $arg"
7349
7501
        continue
7350
7502
        ;;
7351
7503
      -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
7352
 
      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 
7504
      |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7353
7505
        func_append compiler_flags " $arg"
7354
7506
        func_append compile_command " $arg"
7355
7507
        func_append finalize_command " $arg"
7372
7524
 
7373
7525
      -no-install)
7374
7526
        case $host in
7375
 
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
 
7527
        *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
7376
7528
          # The PATH hackery in wrapper scripts is required on Windows
7377
7529
          # and Darwin in order for the loader to find any dlls it needs.
7378
7530
          func_warning "'-no-install' is ignored for $host"
7432
7584
          dir=$lt_sysroot$func_stripname_result
7433
7585
          ;;
7434
7586
        *)
7435
 
          func_fatal_error "only absolute run-paths are allowed"
 
7587
          func_fatal_error "argument ($arg) to '-R' is not an absolute path: $dir"
7436
7588
          ;;
7437
7589
        esac
7438
7590
        case "$xrpath " in
7557
7709
      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
7558
7710
      # -specs=*             GCC specs files
7559
7711
      # -stdlib=*            select c++ std lib with clang
 
7712
      # -fdiagnostics-color* simply affects output
 
7713
      # -frecord-gcc-switches used to verify flags were respected
7560
7714
      # -fsanitize=*         Clang/GCC memory and address sanitizer
 
7715
      # -fno-sanitize*       Clang/GCC memory and address sanitizer
 
7716
      # -shared-libsan       Link with shared sanitizer runtimes (Clang)
 
7717
      # -static-libsan       Link with static sanitizer runtimes (Clang)
 
7718
      # -no-canonical-prefixes Do not expand any symbolic links
7561
7719
      # -fuse-ld=*           Linker select flags for GCC
 
7720
      # -static-*            direct GCC to link specific libraries statically
 
7721
      # -fcilkplus           Cilk Plus language extension features for C/C++
 
7722
      # -rtlib=*             select c runtime lib with clang
 
7723
      # --unwindlib=*        select unwinder library with clang
 
7724
      # -f{file|debug|macro|profile}-prefix-map=* needed for lto linking
7562
7725
      # -Wa,*                Pass flags directly to the assembler
 
7726
      # -Werror, -Werror=*   Report (specified) warnings as errors
7563
7727
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
7564
7728
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
7565
 
      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7566
 
      -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
 
7729
      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-no-canonical-prefixes| \
 
7730
      -stdlib=*|-rtlib=*|--unwindlib=*| \
 
7731
      -specs=*|-fsanitize=*|-fno-sanitize*|-shared-libsan|-static-libsan| \
 
7732
      -ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*| \
 
7733
      -fdiagnostics-color*|-frecord-gcc-switches| \
 
7734
      -fuse-ld=*|-static-*|-fcilkplus|-Wa,*|-Werror|-Werror=*)
7567
7735
        func_quote_arg pretty "$arg"
7568
7736
        arg=$func_quote_arg_result
7569
7737
        func_append compile_command " $arg"
7721
7889
 
7722
7890
      # Now actually substitute the argument into the commands.
7723
7891
      if test -n "$arg"; then
7724
 
        func_append compile_command " $arg"
7725
 
        func_append finalize_command " $arg"
 
7892
        if test -n "$rpath_arg"; then
 
7893
          func_append finalize_rpath " ${arg##*,}"
 
7894
          unset rpath_arg
 
7895
        else
 
7896
          case $arg in
 
7897
          -Wl,-rpath,*)
 
7898
            func_append finalize_rpath " ${arg##*,}";;
 
7899
          -Wl,-rpath)
 
7900
            rpath_arg=1;;
 
7901
          *)
 
7902
            func_append compile_command " $arg"
 
7903
            func_append finalize_command " $arg"
 
7904
          esac
 
7905
        fi
7726
7906
      fi
7727
7907
    done # argument parsing loop
7728
7908
 
7893
8073
        found=false
7894
8074
        case $deplib in
7895
8075
        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
7896
 
        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 
8076
        |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7897
8077
          if test prog,link = "$linkmode,$pass"; then
7898
8078
            compile_deplibs="$deplib $compile_deplibs"
7899
8079
            finalize_deplibs="$deplib $finalize_deplibs"
8070
8250
                ;;
8071
8251
              esac
8072
8252
              if $valid_a_lib; then
8073
 
                echo
8074
 
                $ECHO "*** Warning: Linking the shared library $output against the"
8075
 
                $ECHO "*** static library $deplib is not portable!"
 
8253
                func_warning "Linking the shared library $output against the static library $deplib is not portable!"
8076
8254
                deplibs="$deplib $deplibs"
8077
8255
              else
8078
 
                echo
8079
 
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
8080
 
                echo "*** I have the capability to make that library automatically link in when"
8081
 
                echo "*** you link to this library.  But I can only do this if you have a"
8082
 
                echo "*** shared version of the library, which you do not appear to have"
8083
 
                echo "*** because the file extensions .$libext of this argument makes me believe"
8084
 
                echo "*** that it is just a static archive that I should not use here."
 
8256
                func_warning "Trying to link with static lib archive $deplib."
 
8257
                func_warning "I have the capability to make that library automatically link in when"
 
8258
                func_warning "you link to this library.  But I can only do this if you have a"
 
8259
                func_warning "shared version of the library, which you do not appear to have"
 
8260
                func_warning "because the file extensions .$libext of this argument makes me believe"
 
8261
                func_warning "that it is just a static archive that I should not use here."
8085
8262
              fi
8086
8263
              ;;
8087
8264
            esac
8276
8453
          fi
8277
8454
          case $host in
8278
8455
            # special handling for platforms with PE-DLLs.
8279
 
            *cygwin* | *mingw* | *cegcc* )
 
8456
            *cygwin* | *mingw* | *windows* | *cegcc* )
8280
8457
              # Linker will automatically link against shared library if both
8281
8458
              # static and shared are present.  Therefore, ensure we extract
8282
8459
              # symbols from the import library if a shared library is present
8376
8553
              # Make sure the rpath contains only unique directories.
8377
8554
              case $temp_rpath: in
8378
8555
              *"$absdir:"*) ;;
8379
 
              *) func_append temp_rpath "$absdir:" ;;
 
8556
              *) case $absdir in
 
8557
                 "$progdir/"*) func_append temp_rpath "$absdir:" ;;
 
8558
                 *)            func_append temp_rpath_tail "$absdir:" ;;
 
8559
                 esac
8380
8560
              esac
8381
8561
            fi
8382
8562
 
8386
8566
            case " $sys_lib_dlsearch_path " in
8387
8567
            *" $absdir "*) ;;
8388
8568
            *)
8389
 
              case "$compile_rpath " in
 
8569
              case "$compile_rpath$compile_rpath_tail " in
8390
8570
              *" $absdir "*) ;;
8391
 
              *) func_append compile_rpath " $absdir" ;;
 
8571
              *) case $absdir in
 
8572
                 "$progdir/"*) func_append compile_rpath " $absdir" ;;
 
8573
                 *) func_append compile_rpath_tail " $absdir" ;;
 
8574
                 esac
8392
8575
              esac
8393
8576
              ;;
8394
8577
            esac
8419
8602
        fi
8420
8603
        if test -n "$library_names" &&
8421
8604
           { test no = "$use_static_libs" || test -z "$old_library"; }; then
8422
 
          case $host in
8423
 
          *cygwin* | *mingw* | *cegcc* | *os2*)
 
8605
          case $host_os in
 
8606
          cygwin* | mingw* | windows* | cegcc* | os2*)
8424
8607
              # No point in relinking DLLs because paths are not encoded
8425
8608
              func_append notinst_deplibs " $lib"
8426
8609
              need_relink=no
8446
8629
          if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
8447
8630
            echo
8448
8631
            if test prog = "$linkmode"; then
8449
 
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
 
8632
              func_warning "Linking the executable $output against the loadable module"
8450
8633
            else
8451
 
              $ECHO "*** Warning: Linking the shared library $output against the loadable module"
 
8634
              func_warning "Linking the shared library $output against the loadable module"
8452
8635
            fi
8453
 
            $ECHO "*** $linklib is not portable!"
 
8636
            func_warning "$linklib is not portable!"
8454
8637
          fi
8455
8638
          if test lib = "$linkmode" &&
8456
8639
             test yes = "$hardcode_into_libs"; then
8460
8643
            case " $sys_lib_dlsearch_path " in
8461
8644
            *" $absdir "*) ;;
8462
8645
            *)
8463
 
              case "$compile_rpath " in
 
8646
              case "$compile_rpath$compile_rpath_tail " in
8464
8647
              *" $absdir "*) ;;
8465
 
              *) func_append compile_rpath " $absdir" ;;
 
8648
              *) case $absdir in
 
8649
                 "$progdir/"*) func_append compile_rpath " $absdir" ;;
 
8650
                 *) func_append compile_rpath_tail " $absdir" ;;
 
8651
                 esac
8466
8652
              esac
8467
8653
              ;;
8468
8654
            esac
8489
8675
              soname=$dlname
8490
8676
            elif test -n "$soname_spec"; then
8491
8677
              # bleh windows
8492
 
              case $host in
8493
 
              *cygwin* | mingw* | *cegcc* | *os2*)
 
8678
              case $host_os in
 
8679
              cygwin* | mingw* | windows* | cegcc* | os2*)
8494
8680
                func_arith $current - $age
8495
8681
                major=$func_arith_result
8496
8682
                versuffix=-$major
8537
8723
                case $host in
8538
8724
                  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
8539
8725
                  *-*-sysv4*uw2*) add_dir=-L$dir ;;
 
8726
                  *-*-emscripten*) add_dir=-L$dir ;;
8540
8727
                  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
8541
8728
                    *-*-unixware7*) add_dir=-L$dir ;;
8542
8729
                  *-*-darwin* )
8545
8732
                    if /usr/bin/file -L $add 2> /dev/null |
8546
8733
                         $GREP ": [^:]* bundle" >/dev/null; then
8547
8734
                      if test "X$dlopenmodule" != "X$lib"; then
8548
 
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
 
8735
                        func_warning "lib $linklib is a module, not a shared library"
8549
8736
                        if test -z "$old_library"; then
8550
 
                          echo
8551
 
                          echo "*** And there doesn't seem to be a static archive available"
8552
 
                          echo "*** The link will probably fail, sorry"
 
8737
                          func_warning "And there doesn't seem to be a static archive available"
 
8738
                          func_warning "The link will probably fail, sorry"
8553
8739
                        else
8554
8740
                          add=$dir/$old_library
8555
8741
                        fi
8632
8818
               test no = "$hardcode_direct_absolute"; then
8633
8819
              add=$libdir/$linklib
8634
8820
            elif test yes = "$hardcode_minus_L"; then
8635
 
              add_dir=-L$libdir
 
8821
              add_dir=-L$lt_sysroot$libdir
8636
8822
              add=-l$name
8637
8823
            elif test yes = "$hardcode_shlibpath_var"; then
8638
8824
              case :$finalize_shlibpath: in
8649
8835
              fi
8650
8836
            else
8651
8837
              # We cannot seem to hardcode it, guess we'll fake it.
8652
 
              add_dir=-L$libdir
 
8838
              add_dir=-L$lt_sysroot$libdir
8653
8839
              # Try looking first in the location we're being installed to.
8654
8840
              if test -n "$inst_prefix_dir"; then
8655
8841
                case $libdir in
8689
8875
 
8690
8876
            # Just print a warning and add the library to dependency_libs so
8691
8877
            # that the program can be linked against the static library.
8692
 
            echo
8693
 
            $ECHO "*** Warning: This system cannot link to static lib archive $lib."
8694
 
            echo "*** I have the capability to make that library automatically link in when"
8695
 
            echo "*** you link to this library.  But I can only do this if you have a"
8696
 
            echo "*** shared version of the library, which you do not appear to have."
 
8878
            func_warning "This system cannot link to static lib archive $lib."
 
8879
            func_warning "I have the capability to make that library automatically link in when"
 
8880
            func_warning "you link to this library.  But I can only do this if you have a"
 
8881
            func_warning "shared version of the library, which you do not appear to have."
8697
8882
            if test yes = "$module"; then
8698
 
              echo "*** But as you try to build a module library, libtool will still create "
8699
 
              echo "*** a static module, that should work as long as the dlopening application"
8700
 
              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 
8883
              func_warning "But as you try to build a module library, libtool will still create "
 
8884
              func_warning "a static module, that should work as long as the dlopening application"
 
8885
              func_warning "is linked with the -dlopen flag to resolve symbols at runtime."
8701
8886
              if test -z "$global_symbol_pipe"; then
8702
 
                echo
8703
 
                echo "*** However, this would only work if libtool was able to extract symbol"
8704
 
                echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
8705
 
                echo "*** not find such a program.  So, this module is probably useless."
8706
 
                echo "*** 'nm' from GNU binutils and a full rebuild may help."
 
8887
                func_warning "However, this would only work if libtool was able to extract symbol"
 
8888
                func_warning "lists from a program, using 'nm' or equivalent, but libtool could"
 
8889
                func_warning "not find such a program.  So, this module is probably useless."
 
8890
                func_warning "'nm' from GNU binutils and a full rebuild may help."
8707
8891
              fi
8708
8892
              if test no = "$build_old_libs"; then
8709
8893
                build_libtool_libs=module
8826
9010
          fi # link_all_deplibs != no
8827
9011
        fi # linkmode = lib
8828
9012
      done # for deplib in $libs
 
9013
 
 
9014
      func_append temp_rpath "$temp_rpath_tail"
 
9015
      func_append compile_rpath "$compile_rpath_tail"
 
9016
 
8829
9017
      if test link = "$pass"; then
8830
9018
        if test prog = "$linkmode"; then
8831
9019
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
8863
9051
          # Add libraries to $var in reverse order
8864
9052
          eval tmp_libs=\"\$$var\"
8865
9053
          new_libs=
 
9054
          # FIXME: Pedantically, this is the right thing to do, so
 
9055
          #        that some nasty dependency loop isn't accidentally
 
9056
          #        broken: new_libs="$deplib $new_libs"
8866
9057
          for deplib in $tmp_libs; do
8867
 
            # FIXME: Pedantically, this is the right thing to do, so
8868
 
            #        that some nasty dependency loop isn't accidentally
8869
 
            #        broken:
8870
 
            #new_libs="$deplib $new_libs"
8871
 
            # Pragmatically, this seems to cause very few problems in
8872
 
            # practice:
8873
 
            case $deplib in
8874
 
            -L*) new_libs="$deplib $new_libs" ;;
8875
 
            -R*) ;;
8876
 
            *)
8877
 
              # And here is the reason: when a library appears more
8878
 
              # than once as an explicit dependence of a library, or
8879
 
              # is implicitly linked in more than once by the
8880
 
              # compiler, it is considered special, and multiple
8881
 
              # occurrences thereof are not removed.  Compare this
8882
 
              # with having the same library being listed as a
8883
 
              # dependency of multiple other libraries: in this case,
8884
 
              # we know (pedantically, we assume) the library does not
8885
 
              # need to be listed more than once, so we keep only the
8886
 
              # last copy.  This is not always right, but it is rare
8887
 
              # enough that we require users that really mean to play
8888
 
              # such unportable linking tricks to link the library
8889
 
              # using -Wl,-lname, so that libtool does not consider it
8890
 
              # for duplicate removal.
8891
 
              case " $specialdeplibs " in
8892
 
              *" $deplib "*) new_libs="$deplib $new_libs" ;;
 
9058
            if $opt_preserve_dup_deps; then
 
9059
              new_libs="$deplib $new_libs"
 
9060
            else
 
9061
              # Pragmatically, this seems to cause very few problems in
 
9062
              # practice:
 
9063
              case $deplib in
 
9064
              -L*) new_libs="$deplib $new_libs" ;;
 
9065
              -R*) ;;
8893
9066
              *)
8894
 
                case " $new_libs " in
8895
 
                *" $deplib "*) ;;
8896
 
                *) new_libs="$deplib $new_libs" ;;
8897
 
                esac
8898
 
                ;;
 
9067
                # And here is the reason: when a library appears more
 
9068
                # than once as an explicit dependence of a library, or
 
9069
                # is implicitly linked in more than once by the
 
9070
                # compiler, it is considered special, and multiple
 
9071
                # occurrences thereof are not removed.  Compare this
 
9072
                # with having the same library being listed as a
 
9073
                # dependency of multiple other libraries: in this case,
 
9074
                # we know (pedantically, we assume) the library does not
 
9075
                # need to be listed more than once, so we keep only the
 
9076
                # last copy.  This is not always right, but it is rare
 
9077
                # enough that we require users that really mean to play
 
9078
                # such unportable linking tricks to link the library
 
9079
                # using -Wl,-lname, so that libtool does not consider it
 
9080
                # for duplicate removal.  And if not possible for portability
 
9081
                # reasons, then --preserve-dup-deps should be used.
 
9082
                case " $specialdeplibs " in
 
9083
                *" $deplib "*) new_libs="$deplib $new_libs" ;;
 
9084
                *)
 
9085
                  case " $new_libs " in
 
9086
                  *" $deplib "*) ;;
 
9087
                  *) new_libs="$deplib $new_libs" ;;
 
9088
                  esac
 
9089
                  ;;
 
9090
                esac
 
9091
                ;;
8899
9092
              esac
8900
 
              ;;
8901
 
            esac
 
9093
            fi
8902
9094
          done
8903
9095
          tmp_libs=
8904
9096
          for deplib in $new_libs; do
9030
9222
        if test pass_all != "$deplibs_check_method"; then
9031
9223
          func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
9032
9224
        else
9033
 
          echo
9034
 
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
9035
 
          $ECHO "*** objects $objs is not portable!"
 
9225
          func_warning "Linking the shared library $output against the non-libtool objects $objs is not portable!"
9036
9226
          func_append libobjs " $objs"
9037
9227
        fi
9038
9228
      fi
9093
9283
          #
9094
9284
          case $version_type in
9095
9285
          # correct linux to gnu/linux during the next big refactor
9096
 
          darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
 
9286
          darwin|freebsd-elf|linux|midnightbsd-elf|osf|qnx|windows|none)
9097
9287
            func_arith $number_major + $number_minor
9098
9288
            current=$func_arith_result
9099
9289
            age=$number_minor
9100
9290
            revision=$number_revision
9101
9291
            ;;
9102
 
          freebsd-aout|qnx|sunos)
 
9292
          freebsd-aout|sco|sunos)
9103
9293
            current=$number_major
9104
9294
            revision=$number_minor
9105
9295
            age=0
9111
9301
            revision=$number_minor
9112
9302
            lt_irix_increment=no
9113
9303
            ;;
 
9304
          *)
 
9305
            func_fatal_configuration "$modename: unknown library version type '$version_type'"
 
9306
            ;;
9114
9307
          esac
9115
9308
          ;;
9116
9309
        no)
9246
9439
          ;;
9247
9440
 
9248
9441
        qnx)
9249
 
          major=.$current
9250
 
          versuffix=.$current
 
9442
          func_arith $current - $age
 
9443
          major=.$func_arith_result
 
9444
          versuffix=$major.$age.$revision
9251
9445
          ;;
9252
9446
 
9253
9447
        sco)
9400
9594
      if test yes = "$build_libtool_libs"; then
9401
9595
        if test -n "$rpath"; then
9402
9596
          case $host in
9403
 
          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
 
9597
          *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
9404
9598
            # these systems don't actually have a c library (as such)!
9405
9599
            ;;
9406
9600
          *-*-rhapsody* | *-*-darwin1.[012])
9451
9645
          # implementing what was already the behavior.
9452
9646
          newdeplibs=$deplibs
9453
9647
          ;;
9454
 
        test_compile)
9455
 
          # This code stresses the "libraries are programs" paradigm to its
9456
 
          # limits. Maybe even breaks it.  We compile a program, linking it
9457
 
          # against the deplibs as a proxy for the library.  Then we can check
9458
 
          # whether they linked in statically or dynamically with ldd.
9459
 
          $opt_dry_run || $RM conftest.c
9460
 
          cat > conftest.c <<EOF
9461
 
          int main() { return 0; }
9462
 
EOF
9463
 
          $opt_dry_run || $RM conftest
9464
 
          if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
9465
 
            ldd_output=`ldd conftest`
9466
 
            for i in $deplibs; do
9467
 
              case $i in
9468
 
              -l*)
9469
 
                func_stripname -l '' "$i"
9470
 
                name=$func_stripname_result
9471
 
                if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9472
 
                  case " $predeps $postdeps " in
9473
 
                  *" $i "*)
9474
 
                    func_append newdeplibs " $i"
9475
 
                    i=
9476
 
                    ;;
9477
 
                  esac
9478
 
                fi
9479
 
                if test -n "$i"; then
9480
 
                  libname=`eval "\\$ECHO \"$libname_spec\""`
9481
 
                  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
9482
 
                  set dummy $deplib_matches; shift
9483
 
                  deplib_match=$1
9484
 
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
9485
 
                    func_append newdeplibs " $i"
9486
 
                  else
9487
 
                    droppeddeps=yes
9488
 
                    echo
9489
 
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
9490
 
                    echo "*** I have the capability to make that library automatically link in when"
9491
 
                    echo "*** you link to this library.  But I can only do this if you have a"
9492
 
                    echo "*** shared version of the library, which I believe you do not have"
9493
 
                    echo "*** because a test_compile did reveal that the linker did not use it for"
9494
 
                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
9495
 
                  fi
9496
 
                fi
9497
 
                ;;
9498
 
              *)
9499
 
                func_append newdeplibs " $i"
9500
 
                ;;
9501
 
              esac
9502
 
            done
9503
 
          else
9504
 
            # Error occurred in the first compile.  Let's try to salvage
9505
 
            # the situation: Compile a separate program for each library.
9506
 
            for i in $deplibs; do
9507
 
              case $i in
9508
 
              -l*)
9509
 
                func_stripname -l '' "$i"
9510
 
                name=$func_stripname_result
9511
 
                $opt_dry_run || $RM conftest
9512
 
                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
9513
 
                  ldd_output=`ldd conftest`
9514
 
                  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
9515
 
                    case " $predeps $postdeps " in
9516
 
                    *" $i "*)
9517
 
                      func_append newdeplibs " $i"
9518
 
                      i=
9519
 
                      ;;
9520
 
                    esac
9521
 
                  fi
9522
 
                  if test -n "$i"; then
9523
 
                    libname=`eval "\\$ECHO \"$libname_spec\""`
9524
 
                    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
9525
 
                    set dummy $deplib_matches; shift
9526
 
                    deplib_match=$1
9527
 
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
9528
 
                      func_append newdeplibs " $i"
9529
 
                    else
9530
 
                      droppeddeps=yes
9531
 
                      echo
9532
 
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
9533
 
                      echo "*** I have the capability to make that library automatically link in when"
9534
 
                      echo "*** you link to this library.  But I can only do this if you have a"
9535
 
                      echo "*** shared version of the library, which you do not appear to have"
9536
 
                      echo "*** because a test_compile did reveal that the linker did not use this one"
9537
 
                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
9538
 
                    fi
9539
 
                  fi
9540
 
                else
9541
 
                  droppeddeps=yes
9542
 
                  echo
9543
 
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
9544
 
                  echo "*** make it link in!  You will probably need to install it or some"
9545
 
                  echo "*** library that it depends on before this library will be fully"
9546
 
                  echo "*** functional.  Installing it before continuing would be even better."
9547
 
                fi
9548
 
                ;;
9549
 
              *)
9550
 
                func_append newdeplibs " $i"
9551
 
                ;;
9552
 
              esac
9553
 
            done
9554
 
          fi
9555
 
          ;;
9556
9648
        file_magic*)
9557
9649
          set dummy $deplibs_check_method; shift
9558
9650
          file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
9616
9708
              fi
9617
9709
              if test -n "$a_deplib"; then
9618
9710
                droppeddeps=yes
9619
 
                echo
9620
 
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
9621
 
                echo "*** I have the capability to make that library automatically link in when"
9622
 
                echo "*** you link to this library.  But I can only do this if you have a"
9623
 
                echo "*** shared version of the library, which you do not appear to have"
9624
 
                echo "*** because I did check the linker path looking for a file starting"
 
9711
                func_warning "Linker path does not have real file for library $a_deplib."
 
9712
                func_warning "I have the capability to make that library automatically link in when"
 
9713
                func_warning "you link to this library.  But I can only do this if you have a"
 
9714
                func_warning "shared version of the library, which you do not appear to have"
 
9715
                func_warning "because I did check the linker path looking for a file starting"
9625
9716
                if test -z "$potlib"; then
9626
 
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 
9717
                  func_warning "with $libname but no candidates were found. (...for file magic test)"
9627
9718
                else
9628
 
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
9629
 
                  $ECHO "*** using a file magic. Last file checked: $potlib"
 
9719
                  func_warning "with $libname and none of the candidates passed a file format test"
 
9720
                  func_warning "using a file magic. Last file checked: $potlib"
9630
9721
                fi
9631
9722
              fi
9632
9723
              ;;
9670
9761
              fi
9671
9762
              if test -n "$a_deplib"; then
9672
9763
                droppeddeps=yes
9673
 
                echo
9674
 
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
9675
 
                echo "*** I have the capability to make that library automatically link in when"
9676
 
                echo "*** you link to this library.  But I can only do this if you have a"
9677
 
                echo "*** shared version of the library, which you do not appear to have"
9678
 
                echo "*** because I did check the linker path looking for a file starting"
 
9764
                func_warning "Linker path does not have real file for library $a_deplib."
 
9765
                func_warning "I have the capability to make that library automatically link in when"
 
9766
                func_warning "you link to this library.  But I can only do this if you have a"
 
9767
                func_warning "shared version of the library, which you do not appear to have"
 
9768
                func_warning "because I did check the linker path looking for a file starting"
9679
9769
                if test -z "$potlib"; then
9680
 
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 
9770
                  func_warning "with $libname but no candidates were found. (...for regex pattern test)"
9681
9771
                else
9682
 
                  $ECHO "*** with $libname and none of the candidates passed a file format test"
9683
 
                  $ECHO "*** using a regex pattern. Last file checked: $potlib"
 
9772
                  func_warning "with $libname and none of the candidates passed a file format test"
 
9773
                  func_warning "using a regex pattern. Last file checked: $potlib"
9684
9774
                fi
9685
9775
              fi
9686
9776
              ;;
9704
9794
          *[!\  \ ]*)
9705
9795
            echo
9706
9796
            if test none = "$deplibs_check_method"; then
9707
 
              echo "*** Warning: inter-library dependencies are not supported in this platform."
 
9797
              func_warning "Inter-library dependencies are not supported in this platform."
9708
9798
            else
9709
 
              echo "*** Warning: inter-library dependencies are not known to be supported."
 
9799
              func_warning "Inter-library dependencies are not known to be supported."
9710
9800
            fi
9711
 
            echo "*** All declared inter-library dependencies are being dropped."
 
9801
            func_warning "All declared inter-library dependencies are being dropped."
9712
9802
            droppeddeps=yes
9713
9803
            ;;
9714
9804
          esac
9729
9819
 
9730
9820
        if test yes = "$droppeddeps"; then
9731
9821
          if test yes = "$module"; then
9732
 
            echo
9733
 
            echo "*** Warning: libtool could not satisfy all declared inter-library"
9734
 
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
9735
 
            echo "*** a static module, that should work as long as the dlopening"
9736
 
            echo "*** application is linked with the -dlopen flag."
 
9822
            func_warning "libtool could not satisfy all declared inter-library"
 
9823
            func_warning "dependencies of module $libname.  Therefore, libtool will create"
 
9824
            func_warning "a static module, that should work as long as the dlopening"
 
9825
            func_warning "application is linked with the -dlopen flag."
9737
9826
            if test -z "$global_symbol_pipe"; then
9738
 
              echo
9739
 
              echo "*** However, this would only work if libtool was able to extract symbol"
9740
 
              echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
9741
 
              echo "*** not find such a program.  So, this module is probably useless."
9742
 
              echo "*** 'nm' from GNU binutils and a full rebuild may help."
 
9827
              func_warning "However, this would only work if libtool was able to extract symbol"
 
9828
              func_warning "lists from a program, using 'nm' or equivalent, but libtool could"
 
9829
              func_warning "not find such a program.  So, this module is probably useless."
 
9830
              func_warning "'nm' from GNU binutils and a full rebuild may help."
9743
9831
            fi
9744
9832
            if test no = "$build_old_libs"; then
9745
9833
              oldlibs=$output_objdir/$libname.$libext
9914
10002
 
9915
10003
        orig_export_symbols=
9916
10004
        case $host_os in
9917
 
        cygwin* | mingw* | cegcc*)
 
10005
        cygwin* | mingw* | windows* | cegcc*)
9918
10006
          if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
9919
10007
            # exporting using user supplied symfile
9920
10008
            func_dll_def_p "$export_symbols" || {
10112
10200
          last_robj=
10113
10201
          k=1
10114
10202
 
10115
 
          if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
10116
 
            output=$output_objdir/$output_la.lnkscript
10117
 
            func_verbose "creating GNU ld script: $output"
10118
 
            echo 'INPUT (' > $output
10119
 
            for obj in $save_libobjs
10120
 
            do
10121
 
              func_to_tool_file "$obj"
10122
 
              $ECHO "$func_to_tool_file_result" >> $output
10123
 
            done
10124
 
            echo ')' >> $output
10125
 
            func_append delfiles " $output"
10126
 
            func_to_tool_file "$output"
10127
 
            output=$func_to_tool_file_result
10128
 
          elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
 
10203
          if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
10129
10204
            output=$output_objdir/$output_la.lnk
10130
10205
            func_verbose "creating linker input file list: $output"
10131
10206
            : > $output
10144
10219
            func_append delfiles " $output"
10145
10220
            func_to_tool_file "$output"
10146
10221
            output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
 
10222
          elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
 
10223
            output=$output_objdir/$output_la.lnkscript
 
10224
            func_verbose "creating GNU ld script: $output"
 
10225
            echo 'INPUT (' > $output
 
10226
            for obj in $save_libobjs
 
10227
            do
 
10228
              func_to_tool_file "$obj"
 
10229
              $ECHO "$func_to_tool_file_result" >> $output
 
10230
            done
 
10231
            echo ')' >> $output
 
10232
            func_append delfiles " $output"
 
10233
            func_to_tool_file "$output"
 
10234
            output=$func_to_tool_file_result
10147
10235
          else
10148
10236
            if test -n "$save_libobjs"; then
10149
10237
              func_verbose "creating reloadable object files..."
10584
10672
          esac
10585
10673
        fi
10586
10674
        case $host in
10587
 
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
 
10675
        *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
10588
10676
          testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
10589
10677
          case :$dllsearchpath: in
10590
10678
          *":$libdir:"*) ;;
10662
10750
        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
10663
10751
        wrappers_required=false
10664
10752
        ;;
10665
 
      *cygwin* | *mingw* )
 
10753
      *cygwin* | *mingw* | *windows* )
10666
10754
        test yes = "$build_libtool_libs" || wrappers_required=false
10667
10755
        ;;
10668
10756
      *)
10816
10904
          *) exeext= ;;
10817
10905
        esac
10818
10906
        case $host in
10819
 
          *cygwin* | *mingw* )
 
10907
          *cygwin* | *mingw* | windows* )
10820
10908
            func_dirname_and_basename "$output" "" "."
10821
10909
            output_name=$func_basename_result
10822
10910
            output_path=$func_dirname_result
11150
11238
          # tests/bindir.at for full details.
11151
11239
          tdlname=$dlname
11152
11240
          case $host,$output,$installed,$module,$dlname in
11153
 
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
 
11241
            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *windows*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
11154
11242
              # If a -bindir argument was supplied, place the dll there.
11155
11243
              if test -n "$bindir"; then
11156
11244
                func_relative_path "$install_libdir" "$bindir"