/ Check-in [048865e8]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add the files used to build the amalgamation-autoconf package.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | autoconf-package
Files: files | file ages | folders
SHA1: 048865e8fdd2bef6b43b6cebd45fae94c8a1ab20
User & Date: dan 2013-05-27 17:19:58
Context
2013-05-27
18:37
Add the "dist" target to main.mk. For building the amalgamation autoconf package. Closed-Leaf check-in: 3fdc8b56 user: dan tags: autoconf-package
17:19
Add the files used to build the amalgamation-autoconf package. check-in: 048865e8 user: dan tags: autoconf-package
10:11
When writing to an FTS table, take an exclusive shared-cache lock on the %_segdir table before writing. Otherwise, an xCommit() call may report an SQLITE_LOCKED error. check-in: 3cd2da42 user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Show Whitespace Changes Patch

Added autoconf/INSTALL.

            1  +Installation Instructions
            2  +*************************
            3  +
            4  +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
            5  +Inc.
            6  +
            7  +   Copying and distribution of this file, with or without modification,
            8  +are permitted in any medium without royalty provided the copyright
            9  +notice and this notice are preserved.  This file is offered as-is,
           10  +without warranty of any kind.
           11  +
           12  +Basic Installation
           13  +==================
           14  +
           15  +   Briefly, the shell commands `./configure; make; make install' should
           16  +configure, build, and install this package.  The following
           17  +more-detailed instructions are generic; see the `README' file for
           18  +instructions specific to this package.  Some packages provide this
           19  +`INSTALL' file but do not implement all of the features documented
           20  +below.  The lack of an optional feature in a given package is not
           21  +necessarily a bug.  More recommendations for GNU packages can be found
           22  +in *note Makefile Conventions: (standards)Makefile Conventions.
           23  +
           24  +   The `configure' shell script attempts to guess correct values for
           25  +various system-dependent variables used during compilation.  It uses
           26  +those values to create a `Makefile' in each directory of the package.
           27  +It may also create one or more `.h' files containing system-dependent
           28  +definitions.  Finally, it creates a shell script `config.status' that
           29  +you can run in the future to recreate the current configuration, and a
           30  +file `config.log' containing compiler output (useful mainly for
           31  +debugging `configure').
           32  +
           33  +   It can also use an optional file (typically called `config.cache'
           34  +and enabled with `--cache-file=config.cache' or simply `-C') that saves
           35  +the results of its tests to speed up reconfiguring.  Caching is
           36  +disabled by default to prevent problems with accidental use of stale
           37  +cache files.
           38  +
           39  +   If you need to do unusual things to compile the package, please try
           40  +to figure out how `configure' could check whether to do them, and mail
           41  +diffs or instructions to the address given in the `README' so they can
           42  +be considered for the next release.  If you are using the cache, and at
           43  +some point `config.cache' contains results you don't want to keep, you
           44  +may remove or edit it.
           45  +
           46  +   The file `configure.ac' (or `configure.in') is used to create
           47  +`configure' by a program called `autoconf'.  You need `configure.ac' if
           48  +you want to change it or regenerate `configure' using a newer version
           49  +of `autoconf'.
           50  +
           51  +   The simplest way to compile this package is:
           52  +
           53  +  1. `cd' to the directory containing the package's source code and type
           54  +     `./configure' to configure the package for your system.
           55  +
           56  +     Running `configure' might take a while.  While running, it prints
           57  +     some messages telling which features it is checking for.
           58  +
           59  +  2. Type `make' to compile the package.
           60  +
           61  +  3. Optionally, type `make check' to run any self-tests that come with
           62  +     the package, generally using the just-built uninstalled binaries.
           63  +
           64  +  4. Type `make install' to install the programs and any data files and
           65  +     documentation.  When installing into a prefix owned by root, it is
           66  +     recommended that the package be configured and built as a regular
           67  +     user, and only the `make install' phase executed with root
           68  +     privileges.
           69  +
           70  +  5. Optionally, type `make installcheck' to repeat any self-tests, but
           71  +     this time using the binaries in their final installed location.
           72  +     This target does not install anything.  Running this target as a
           73  +     regular user, particularly if the prior `make install' required
           74  +     root privileges, verifies that the installation completed
           75  +     correctly.
           76  +
           77  +  6. You can remove the program binaries and object files from the
           78  +     source code directory by typing `make clean'.  To also remove the
           79  +     files that `configure' created (so you can compile the package for
           80  +     a different kind of computer), type `make distclean'.  There is
           81  +     also a `make maintainer-clean' target, but that is intended mainly
           82  +     for the package's developers.  If you use it, you may have to get
           83  +     all sorts of other programs in order to regenerate files that came
           84  +     with the distribution.
           85  +
           86  +  7. Often, you can also type `make uninstall' to remove the installed
           87  +     files again.  In practice, not all packages have tested that
           88  +     uninstallation works correctly, even though it is required by the
           89  +     GNU Coding Standards.
           90  +
           91  +  8. Some packages, particularly those that use Automake, provide `make
           92  +     distcheck', which can by used by developers to test that all other
           93  +     targets like `make install' and `make uninstall' work correctly.
           94  +     This target is generally not run by end users.
           95  +
           96  +Compilers and Options
           97  +=====================
           98  +
           99  +   Some systems require unusual options for compilation or linking that
          100  +the `configure' script does not know about.  Run `./configure --help'
          101  +for details on some of the pertinent environment variables.
          102  +
          103  +   You can give `configure' initial values for configuration parameters
          104  +by setting variables in the command line or in the environment.  Here
          105  +is an example:
          106  +
          107  +     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
          108  +
          109  +   *Note Defining Variables::, for more details.
          110  +
          111  +Compiling For Multiple Architectures
          112  +====================================
          113  +
          114  +   You can compile the package for more than one kind of computer at the
          115  +same time, by placing the object files for each architecture in their
          116  +own directory.  To do this, you can use GNU `make'.  `cd' to the
          117  +directory where you want the object files and executables to go and run
          118  +the `configure' script.  `configure' automatically checks for the
          119  +source code in the directory that `configure' is in and in `..'.  This
          120  +is known as a "VPATH" build.
          121  +
          122  +   With a non-GNU `make', it is safer to compile the package for one
          123  +architecture at a time in the source code directory.  After you have
          124  +installed the package for one architecture, use `make distclean' before
          125  +reconfiguring for another architecture.
          126  +
          127  +   On MacOS X 10.5 and later systems, you can create libraries and
          128  +executables that work on multiple system types--known as "fat" or
          129  +"universal" binaries--by specifying multiple `-arch' options to the
          130  +compiler but only a single `-arch' option to the preprocessor.  Like
          131  +this:
          132  +
          133  +     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
          134  +                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
          135  +                 CPP="gcc -E" CXXCPP="g++ -E"
          136  +
          137  +   This is not guaranteed to produce working output in all cases, you
          138  +may have to build one architecture at a time and combine the results
          139  +using the `lipo' tool if you have problems.
          140  +
          141  +Installation Names
          142  +==================
          143  +
          144  +   By default, `make install' installs the package's commands under
          145  +`/usr/local/bin', include files under `/usr/local/include', etc.  You
          146  +can specify an installation prefix other than `/usr/local' by giving
          147  +`configure' the option `--prefix=PREFIX', where PREFIX must be an
          148  +absolute file name.
          149  +
          150  +   You can specify separate installation prefixes for
          151  +architecture-specific files and architecture-independent files.  If you
          152  +pass the option `--exec-prefix=PREFIX' to `configure', the package uses
          153  +PREFIX as the prefix for installing programs and libraries.
          154  +Documentation and other data files still use the regular prefix.
          155  +
          156  +   In addition, if you use an unusual directory layout you can give
          157  +options like `--bindir=DIR' to specify different values for particular
          158  +kinds of files.  Run `configure --help' for a list of the directories
          159  +you can set and what kinds of files go in them.  In general, the
          160  +default for these options is expressed in terms of `${prefix}', so that
          161  +specifying just `--prefix' will affect all of the other directory
          162  +specifications that were not explicitly provided.
          163  +
          164  +   The most portable way to affect installation locations is to pass the
          165  +correct locations to `configure'; however, many packages provide one or
          166  +both of the following shortcuts of passing variable assignments to the
          167  +`make install' command line to change installation locations without
          168  +having to reconfigure or recompile.
          169  +
          170  +   The first method involves providing an override variable for each
          171  +affected directory.  For example, `make install
          172  +prefix=/alternate/directory' will choose an alternate location for all
          173  +directory configuration variables that were expressed in terms of
          174  +`${prefix}'.  Any directories that were specified during `configure',
          175  +but not in terms of `${prefix}', must each be overridden at install
          176  +time for the entire installation to be relocated.  The approach of
          177  +makefile variable overrides for each directory variable is required by
          178  +the GNU Coding Standards, and ideally causes no recompilation.
          179  +However, some platforms have known limitations with the semantics of
          180  +shared libraries that end up requiring recompilation when using this
          181  +method, particularly noticeable in packages that use GNU Libtool.
          182  +
          183  +   The second method involves providing the `DESTDIR' variable.  For
          184  +example, `make install DESTDIR=/alternate/directory' will prepend
          185  +`/alternate/directory' before all installation names.  The approach of
          186  +`DESTDIR' overrides is not required by the GNU Coding Standards, and
          187  +does not work on platforms that have drive letters.  On the other hand,
          188  +it does better at avoiding recompilation issues, and works well even
          189  +when some directory options were not specified in terms of `${prefix}'
          190  +at `configure' time.
          191  +
          192  +Optional Features
          193  +=================
          194  +
          195  +   If the package supports it, you can cause programs to be installed
          196  +with an extra prefix or suffix on their names by giving `configure' the
          197  +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
          198  +
          199  +   Some packages pay attention to `--enable-FEATURE' options to
          200  +`configure', where FEATURE indicates an optional part of the package.
          201  +They may also pay attention to `--with-PACKAGE' options, where PACKAGE
          202  +is something like `gnu-as' or `x' (for the X Window System).  The
          203  +`README' should mention any `--enable-' and `--with-' options that the
          204  +package recognizes.
          205  +
          206  +   For packages that use the X Window System, `configure' can usually
          207  +find the X include and library files automatically, but if it doesn't,
          208  +you can use the `configure' options `--x-includes=DIR' and
          209  +`--x-libraries=DIR' to specify their locations.
          210  +
          211  +   Some packages offer the ability to configure how verbose the
          212  +execution of `make' will be.  For these packages, running `./configure
          213  +--enable-silent-rules' sets the default to minimal output, which can be
          214  +overridden with `make V=1'; while running `./configure
          215  +--disable-silent-rules' sets the default to verbose, which can be
          216  +overridden with `make V=0'.
          217  +
          218  +Particular systems
          219  +==================
          220  +
          221  +   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
          222  +CC is not installed, it is recommended to use the following options in
          223  +order to use an ANSI C compiler:
          224  +
          225  +     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
          226  +
          227  +and if that doesn't work, install pre-built binaries of GCC for HP-UX.
          228  +
          229  +   HP-UX `make' updates targets which have the same time stamps as
          230  +their prerequisites, which makes it generally unusable when shipped
          231  +generated files such as `configure' are involved.  Use GNU `make'
          232  +instead.
          233  +
          234  +   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
          235  +parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
          236  +a workaround.  If GNU CC is not installed, it is therefore recommended
          237  +to try
          238  +
          239  +     ./configure CC="cc"
          240  +
          241  +and if that doesn't work, try
          242  +
          243  +     ./configure CC="cc -nodtk"
          244  +
          245  +   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
          246  +directory contains several dysfunctional programs; working variants of
          247  +these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
          248  +in your `PATH', put it _after_ `/usr/bin'.
          249  +
          250  +   On Haiku, software installed for all users goes in `/boot/common',
          251  +not `/usr/local'.  It is recommended to use the following options:
          252  +
          253  +     ./configure --prefix=/boot/common
          254  +
          255  +Specifying the System Type
          256  +==========================
          257  +
          258  +   There may be some features `configure' cannot figure out
          259  +automatically, but needs to determine by the type of machine the package
          260  +will run on.  Usually, assuming the package is built to be run on the
          261  +_same_ architectures, `configure' can figure that out, but if it prints
          262  +a message saying it cannot guess the machine type, give it the
          263  +`--build=TYPE' option.  TYPE can either be a short name for the system
          264  +type, such as `sun4', or a canonical name which has the form:
          265  +
          266  +     CPU-COMPANY-SYSTEM
          267  +
          268  +where SYSTEM can have one of these forms:
          269  +
          270  +     OS
          271  +     KERNEL-OS
          272  +
          273  +   See the file `config.sub' for the possible values of each field.  If
          274  +`config.sub' isn't included in this package, then this package doesn't
          275  +need to know the machine type.
          276  +
          277  +   If you are _building_ compiler tools for cross-compiling, you should
          278  +use the option `--target=TYPE' to select the type of system they will
          279  +produce code for.
          280  +
          281  +   If you want to _use_ a cross compiler, that generates code for a
          282  +platform different from the build platform, you should specify the
          283  +"host" platform (i.e., that on which the generated programs will
          284  +eventually be run) with `--host=TYPE'.
          285  +
          286  +Sharing Defaults
          287  +================
          288  +
          289  +   If you want to set default values for `configure' scripts to share,
          290  +you can create a site shell script called `config.site' that gives
          291  +default values for variables like `CC', `cache_file', and `prefix'.
          292  +`configure' looks for `PREFIX/share/config.site' if it exists, then
          293  +`PREFIX/etc/config.site' if it exists.  Or, you can set the
          294  +`CONFIG_SITE' environment variable to the location of the site script.
          295  +A warning: not all `configure' scripts look for a site script.
          296  +
          297  +Defining Variables
          298  +==================
          299  +
          300  +   Variables not defined in a site shell script can be set in the
          301  +environment passed to `configure'.  However, some packages may run
          302  +configure again during the build, and the customized values of these
          303  +variables may be lost.  In order to avoid this problem, you should set
          304  +them in the `configure' command line, using `VAR=value'.  For example:
          305  +
          306  +     ./configure CC=/usr/local2/bin/gcc
          307  +
          308  +causes the specified `gcc' to be used as the C compiler (unless it is
          309  +overridden in the site shell script).
          310  +
          311  +Unfortunately, this technique does not work for `CONFIG_SHELL' due to
          312  +an Autoconf bug.  Until the bug is fixed you can use this workaround:
          313  +
          314  +     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
          315  +
          316  +`configure' Invocation
          317  +======================
          318  +
          319  +   `configure' recognizes the following options to control how it
          320  +operates.
          321  +
          322  +`--help'
          323  +`-h'
          324  +     Print a summary of all of the options to `configure', and exit.
          325  +
          326  +`--help=short'
          327  +`--help=recursive'
          328  +     Print a summary of the options unique to this package's
          329  +     `configure', and exit.  The `short' variant lists options used
          330  +     only in the top level, while the `recursive' variant lists options
          331  +     also present in any nested packages.
          332  +
          333  +`--version'
          334  +`-V'
          335  +     Print the version of Autoconf used to generate the `configure'
          336  +     script, and exit.
          337  +
          338  +`--cache-file=FILE'
          339  +     Enable the cache: use and save the results of the tests in FILE,
          340  +     traditionally `config.cache'.  FILE defaults to `/dev/null' to
          341  +     disable caching.
          342  +
          343  +`--config-cache'
          344  +`-C'
          345  +     Alias for `--cache-file=config.cache'.
          346  +
          347  +`--quiet'
          348  +`--silent'
          349  +`-q'
          350  +     Do not print messages saying which checks are being made.  To
          351  +     suppress all normal output, redirect it to `/dev/null' (any error
          352  +     messages will still be shown).
          353  +
          354  +`--srcdir=DIR'
          355  +     Look for the package's source code in directory DIR.  Usually
          356  +     `configure' can determine that directory automatically.
          357  +
          358  +`--prefix=DIR'
          359  +     Use DIR as the installation prefix.  *note Installation Names::
          360  +     for more details, including other options available for fine-tuning
          361  +     the installation locations.
          362  +
          363  +`--no-create'
          364  +`-n'
          365  +     Run the configure checks, but stop before creating any output
          366  +     files.
          367  +
          368  +`configure' also accepts some other, not widely useful, options.  Run
          369  +`configure --help' for more details.
          370  +

Added autoconf/Makefile.am.

            1  +
            2  +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE
            3  +
            4  +lib_LTLIBRARIES = libsqlite3.la
            5  +libsqlite3_la_SOURCES = sqlite3.c
            6  +libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8
            7  +
            8  +bin_PROGRAMS = sqlite3
            9  +sqlite3_SOURCES = shell.c sqlite3.h
           10  +sqlite3_LDADD = $(top_builddir)/libsqlite3.la @READLINE_LIBS@
           11  +sqlite3_DEPENDENCIES = $(top_builddir)/libsqlite3.la
           12  +
           13  +include_HEADERS = sqlite3.h sqlite3ext.h
           14  +
           15  +EXTRA_DIST = sqlite3.1 tea
           16  +pkgconfigdir = ${libdir}/pkgconfig
           17  +pkgconfig_DATA = sqlite3.pc
           18  +
           19  +man_MANS = sqlite3.1

Added autoconf/README.

            1  +
            2  +This package contains:
            3  +
            4  + * the SQLite library amalgamation (single file) source code distribution,
            5  + * the shell.c file used to build the sqlite3 shell too, and
            6  + * the sqlite3.h and sqlite3ext.h header files required to link programs
            7  +   and sqlite extensions against the installed libary.
            8  + * autoconf/automake installation infrastucture.
            9  +
           10  +The generic installation instructions for autoconf/automake are found
           11  +in the INSTALL file.
           12  +
           13  +The following SQLite specific boolean options are supported:
           14  +
           15  +  --enable-readline           use readline in shell tool   [default=yes]
           16  +  --enable-threadsafe         build a thread-safe library  [default=yes]
           17  +  --enable-dynamic-extensions support loadable extensions  [default=yes]
           18  +
           19  +The default value for the CFLAGS variable (options passed to the C 
           20  +compiler) includes debugging symbols in the build, resulting in larger
           21  +binaries than are necessary. Override it on the configure command
           22  +line like this:
           23  +
           24  +  $ CFLAGS="-Os" ./configure
           25  +
           26  +to produce a smaller installation footprint.
           27  +
           28  +Other SQLite compilation parameters can also be set using CFLAGS. For
           29  +example:
           30  +
           31  +  $ CFLAGS="-Os -DSQLITE_OMIT_TRIGGERS" ./configure
           32  +

Added autoconf/README.first.

            1  +
            2  +This file describes how to use the files in this directory to create a new
            3  +version of the "autoconf-amalgamation" package.
            4  +
            5  +1. The following files should have executable permission:
            6  +
            7  +  chmod 755 install-sh 
            8  +  chmod 755 missing 
            9  +  chmod 755 depcomp
           10  +  chmod 755 config.sub
           11  +  chmod 755 config.guess
           12  +
           13  +2. Copy new versions of the following SQLite files into this directory:
           14  +
           15  +  sqlite3.c
           16  +  sqlite3.h
           17  +  sqlite3ext.h
           18  +  sqlite3.1
           19  +  sqlite3.pc.in
           20  +  shell.c
           21  +
           22  +3. Update the SQLite version number in the AC_INIT macro in file 
           23  +   configure.ac:
           24  +
           25  +     AC_INIT(sqlite, 3.6.3, http://www.sqlite.org)
           26  +
           27  +4. Run the following commands to push the version number change through
           28  +   to the generated files.
           29  +
           30  +  aclocal
           31  +  autoconf
           32  +  automake
           33  +
           34  +5. Create the tclsqlite3.c file in the tea/generic directory. As follows:
           35  +
           36  +  mkdir -p tea/generic
           37  +  echo "#ifdef USE_SYSTEM_SQLITE"      > tea/generic/tclsqlite3.c 
           38  +  echo "# include <sqlite3.h>"        >> tea/generic/tclsqlite3.c
           39  +  echo "#else"                        >> tea/generic/tclsqlite3.c
           40  +  echo "#include \"../../sqlite3.c\"" >> tea/generic/tclsqlite3.c
           41  +  echo "#endif"                       >> tea/generic/tclsqlite3.c
           42  +  cat  ../src/tclsqlite.c             >> tea/generic/tclsqlite3.c
           43  +
           44  +6. Update the SQLite version in the AC_INIT macro in file tea/configure.in:
           45  +
           46  +  AC_INIT([sqlite], [3.6.3])
           47  +
           48  +7. From the 'tea' directory, run the following commands:
           49  +
           50  +  autoconf
           51  +  rm -rf autom4te.cache
           52  +
           53  +8. Run "./configure && make dist". This builds a distribution package
           54  +   named something like "sqlite-3.6.3.tar.gz". Rename to 
           55  +   "sqlite-amalgamation-3.6.3.tar.gz" and use.
           56  +
           57  +

Added autoconf/config.guess.

            1  +#! /bin/sh
            2  +# Attempt to guess a canonical system name.
            3  +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
            4  +#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
            5  +#   2011, 2012 Free Software Foundation, Inc.
            6  +
            7  +timestamp='2012-02-10'
            8  +
            9  +# This file is free software; you can redistribute it and/or modify it
           10  +# under the terms of the GNU General Public License as published by
           11  +# the Free Software Foundation; either version 2 of the License, or
           12  +# (at your option) any later version.
           13  +#
           14  +# This program is distributed in the hope that it will be useful, but
           15  +# WITHOUT ANY WARRANTY; without even the implied warranty of
           16  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
           17  +# General Public License for more details.
           18  +#
           19  +# You should have received a copy of the GNU General Public License
           20  +# along with this program; if not, see <http://www.gnu.org/licenses/>.
           21  +#
           22  +# As a special exception to the GNU General Public License, if you
           23  +# distribute this file as part of a program that contains a
           24  +# configuration script generated by Autoconf, you may include it under
           25  +# the same distribution terms that you use for the rest of that program.
           26  +
           27  +
           28  +# Originally written by Per Bothner.  Please send patches (context
           29  +# diff format) to <config-patches@gnu.org> and include a ChangeLog
           30  +# entry.
           31  +#
           32  +# This script attempts to guess a canonical system name similar to
           33  +# config.sub.  If it succeeds, it prints the system name on stdout, and
           34  +# exits with 0.  Otherwise, it exits with 1.
           35  +#
           36  +# You can get the latest version of this script from:
           37  +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
           38  +
           39  +me=`echo "$0" | sed -e 's,.*/,,'`
           40  +
           41  +usage="\
           42  +Usage: $0 [OPTION]
           43  +
           44  +Output the configuration name of the system \`$me' is run on.
           45  +
           46  +Operation modes:
           47  +  -h, --help         print this help, then exit
           48  +  -t, --time-stamp   print date of last modification, then exit
           49  +  -v, --version      print version number, then exit
           50  +
           51  +Report bugs and patches to <config-patches@gnu.org>."
           52  +
           53  +version="\
           54  +GNU config.guess ($timestamp)
           55  +
           56  +Originally written by Per Bothner.
           57  +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
           58  +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
           59  +Free Software Foundation, Inc.
           60  +
           61  +This is free software; see the source for copying conditions.  There is NO
           62  +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
           63  +
           64  +help="
           65  +Try \`$me --help' for more information."
           66  +
           67  +# Parse command line
           68  +while test $# -gt 0 ; do
           69  +  case $1 in
           70  +    --time-stamp | --time* | -t )
           71  +       echo "$timestamp" ; exit ;;
           72  +    --version | -v )
           73  +       echo "$version" ; exit ;;
           74  +    --help | --h* | -h )
           75  +       echo "$usage"; exit ;;
           76  +    -- )     # Stop option processing
           77  +       shift; break ;;
           78  +    - )	# Use stdin as input.
           79  +       break ;;
           80  +    -* )
           81  +       echo "$me: invalid option $1$help" >&2
           82  +       exit 1 ;;
           83  +    * )
           84  +       break ;;
           85  +  esac
           86  +done
           87  +
           88  +if test $# != 0; then
           89  +  echo "$me: too many arguments$help" >&2
           90  +  exit 1
           91  +fi
           92  +
           93  +trap 'exit 1' 1 2 15
           94  +
           95  +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
           96  +# compiler to aid in system detection is discouraged as it requires
           97  +# temporary files to be created and, as you can see below, it is a
           98  +# headache to deal with in a portable fashion.
           99  +
          100  +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
          101  +# use `HOST_CC' if defined, but it is deprecated.
          102  +
          103  +# Portable tmp directory creation inspired by the Autoconf team.
          104  +
          105  +set_cc_for_build='
          106  +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
          107  +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
          108  +: ${TMPDIR=/tmp} ;
          109  + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
          110  + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
          111  + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
          112  + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
          113  +dummy=$tmp/dummy ;
          114  +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
          115  +case $CC_FOR_BUILD,$HOST_CC,$CC in
          116  + ,,)    echo "int x;" > $dummy.c ;
          117  +	for c in cc gcc c89 c99 ; do
          118  +	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
          119  +	     CC_FOR_BUILD="$c"; break ;
          120  +	  fi ;
          121  +	done ;
          122  +	if test x"$CC_FOR_BUILD" = x ; then
          123  +	  CC_FOR_BUILD=no_compiler_found ;
          124  +	fi
          125  +	;;
          126  + ,,*)   CC_FOR_BUILD=$CC ;;
          127  + ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
          128  +esac ; set_cc_for_build= ;'
          129  +
          130  +# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
          131  +# (ghazi@noc.rutgers.edu 1994-08-24)
          132  +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
          133  +	PATH=$PATH:/.attbin ; export PATH
          134  +fi
          135  +
          136  +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
          137  +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
          138  +UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
          139  +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
          140  +
          141  +# Note: order is significant - the case branches are not exclusive.
          142  +
          143  +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          144  +    *:NetBSD:*:*)
          145  +	# NetBSD (nbsd) targets should (where applicable) match one or
          146  +	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
          147  +	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
          148  +	# switched to ELF, *-*-netbsd* would select the old
          149  +	# object file format.  This provides both forward
          150  +	# compatibility and a consistent mechanism for selecting the
          151  +	# object file format.
          152  +	#
          153  +	# Note: NetBSD doesn't particularly care about the vendor
          154  +	# portion of the name.  We always set it to "unknown".
          155  +	sysctl="sysctl -n hw.machine_arch"
          156  +	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
          157  +	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
          158  +	case "${UNAME_MACHINE_ARCH}" in
          159  +	    armeb) machine=armeb-unknown ;;
          160  +	    arm*) machine=arm-unknown ;;
          161  +	    sh3el) machine=shl-unknown ;;
          162  +	    sh3eb) machine=sh-unknown ;;
          163  +	    sh5el) machine=sh5le-unknown ;;
          164  +	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
          165  +	esac
          166  +	# The Operating System including object format, if it has switched
          167  +	# to ELF recently, or will in the future.
          168  +	case "${UNAME_MACHINE_ARCH}" in
          169  +	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
          170  +		eval $set_cc_for_build
          171  +		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
          172  +			| grep -q __ELF__
          173  +		then
          174  +		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
          175  +		    # Return netbsd for either.  FIX?
          176  +		    os=netbsd
          177  +		else
          178  +		    os=netbsdelf
          179  +		fi
          180  +		;;
          181  +	    *)
          182  +		os=netbsd
          183  +		;;
          184  +	esac
          185  +	# The OS release
          186  +	# Debian GNU/NetBSD machines have a different userland, and
          187  +	# thus, need a distinct triplet. However, they do not need
          188  +	# kernel version information, so it can be replaced with a
          189  +	# suitable tag, in the style of linux-gnu.
          190  +	case "${UNAME_VERSION}" in
          191  +	    Debian*)
          192  +		release='-gnu'
          193  +		;;
          194  +	    *)
          195  +		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
          196  +		;;
          197  +	esac
          198  +	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
          199  +	# contains redundant information, the shorter form:
          200  +	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
          201  +	echo "${machine}-${os}${release}"
          202  +	exit ;;
          203  +    *:OpenBSD:*:*)
          204  +	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
          205  +	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
          206  +	exit ;;
          207  +    *:ekkoBSD:*:*)
          208  +	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
          209  +	exit ;;
          210  +    *:SolidBSD:*:*)
          211  +	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
          212  +	exit ;;
          213  +    macppc:MirBSD:*:*)
          214  +	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
          215  +	exit ;;
          216  +    *:MirBSD:*:*)
          217  +	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
          218  +	exit ;;
          219  +    alpha:OSF1:*:*)
          220  +	case $UNAME_RELEASE in
          221  +	*4.0)
          222  +		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
          223  +		;;
          224  +	*5.*)
          225  +		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
          226  +		;;
          227  +	esac
          228  +	# According to Compaq, /usr/sbin/psrinfo has been available on
          229  +	# OSF/1 and Tru64 systems produced since 1995.  I hope that
          230  +	# covers most systems running today.  This code pipes the CPU
          231  +	# types through head -n 1, so we only detect the type of CPU 0.
          232  +	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
          233  +	case "$ALPHA_CPU_TYPE" in
          234  +	    "EV4 (21064)")
          235  +		UNAME_MACHINE="alpha" ;;
          236  +	    "EV4.5 (21064)")
          237  +		UNAME_MACHINE="alpha" ;;
          238  +	    "LCA4 (21066/21068)")
          239  +		UNAME_MACHINE="alpha" ;;
          240  +	    "EV5 (21164)")
          241  +		UNAME_MACHINE="alphaev5" ;;
          242  +	    "EV5.6 (21164A)")
          243  +		UNAME_MACHINE="alphaev56" ;;
          244  +	    "EV5.6 (21164PC)")
          245  +		UNAME_MACHINE="alphapca56" ;;
          246  +	    "EV5.7 (21164PC)")
          247  +		UNAME_MACHINE="alphapca57" ;;
          248  +	    "EV6 (21264)")
          249  +		UNAME_MACHINE="alphaev6" ;;
          250  +	    "EV6.7 (21264A)")
          251  +		UNAME_MACHINE="alphaev67" ;;
          252  +	    "EV6.8CB (21264C)")
          253  +		UNAME_MACHINE="alphaev68" ;;
          254  +	    "EV6.8AL (21264B)")
          255  +		UNAME_MACHINE="alphaev68" ;;
          256  +	    "EV6.8CX (21264D)")
          257  +		UNAME_MACHINE="alphaev68" ;;
          258  +	    "EV6.9A (21264/EV69A)")
          259  +		UNAME_MACHINE="alphaev69" ;;
          260  +	    "EV7 (21364)")
          261  +		UNAME_MACHINE="alphaev7" ;;
          262  +	    "EV7.9 (21364A)")
          263  +		UNAME_MACHINE="alphaev79" ;;
          264  +	esac
          265  +	# A Pn.n version is a patched version.
          266  +	# A Vn.n version is a released version.
          267  +	# A Tn.n version is a released field test version.
          268  +	# A Xn.n version is an unreleased experimental baselevel.
          269  +	# 1.2 uses "1.2" for uname -r.
          270  +	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
          271  +	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
          272  +	exitcode=$?
          273  +	trap '' 0
          274  +	exit $exitcode ;;
          275  +    Alpha\ *:Windows_NT*:*)
          276  +	# How do we know it's Interix rather than the generic POSIX subsystem?
          277  +	# Should we change UNAME_MACHINE based on the output of uname instead
          278  +	# of the specific Alpha model?
          279  +	echo alpha-pc-interix
          280  +	exit ;;
          281  +    21064:Windows_NT:50:3)
          282  +	echo alpha-dec-winnt3.5
          283  +	exit ;;
          284  +    Amiga*:UNIX_System_V:4.0:*)
          285  +	echo m68k-unknown-sysv4
          286  +	exit ;;
          287  +    *:[Aa]miga[Oo][Ss]:*:*)
          288  +	echo ${UNAME_MACHINE}-unknown-amigaos
          289  +	exit ;;
          290  +    *:[Mm]orph[Oo][Ss]:*:*)
          291  +	echo ${UNAME_MACHINE}-unknown-morphos
          292  +	exit ;;
          293  +    *:OS/390:*:*)
          294  +	echo i370-ibm-openedition
          295  +	exit ;;
          296  +    *:z/VM:*:*)
          297  +	echo s390-ibm-zvmoe
          298  +	exit ;;
          299  +    *:OS400:*:*)
          300  +	echo powerpc-ibm-os400
          301  +	exit ;;
          302  +    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
          303  +	echo arm-acorn-riscix${UNAME_RELEASE}
          304  +	exit ;;
          305  +    arm:riscos:*:*|arm:RISCOS:*:*)
          306  +	echo arm-unknown-riscos
          307  +	exit ;;
          308  +    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
          309  +	echo hppa1.1-hitachi-hiuxmpp
          310  +	exit ;;
          311  +    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
          312  +	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
          313  +	if test "`(/bin/universe) 2>/dev/null`" = att ; then
          314  +		echo pyramid-pyramid-sysv3
          315  +	else
          316  +		echo pyramid-pyramid-bsd
          317  +	fi
          318  +	exit ;;
          319  +    NILE*:*:*:dcosx)
          320  +	echo pyramid-pyramid-svr4
          321  +	exit ;;
          322  +    DRS?6000:unix:4.0:6*)
          323  +	echo sparc-icl-nx6
          324  +	exit ;;
          325  +    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
          326  +	case `/usr/bin/uname -p` in
          327  +	    sparc) echo sparc-icl-nx7; exit ;;
          328  +	esac ;;
          329  +    s390x:SunOS:*:*)
          330  +	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          331  +	exit ;;
          332  +    sun4H:SunOS:5.*:*)
          333  +	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          334  +	exit ;;
          335  +    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
          336  +	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          337  +	exit ;;
          338  +    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
          339  +	echo i386-pc-auroraux${UNAME_RELEASE}
          340  +	exit ;;
          341  +    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
          342  +	eval $set_cc_for_build
          343  +	SUN_ARCH="i386"
          344  +	# If there is a compiler, see if it is configured for 64-bit objects.
          345  +	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
          346  +	# This test works for both compilers.
          347  +	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
          348  +	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
          349  +		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
          350  +		grep IS_64BIT_ARCH >/dev/null
          351  +	    then
          352  +		SUN_ARCH="x86_64"
          353  +	    fi
          354  +	fi
          355  +	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          356  +	exit ;;
          357  +    sun4*:SunOS:6*:*)
          358  +	# According to config.sub, this is the proper way to canonicalize
          359  +	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
          360  +	# it's likely to be more like Solaris than SunOS4.
          361  +	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          362  +	exit ;;
          363  +    sun4*:SunOS:*:*)
          364  +	case "`/usr/bin/arch -k`" in
          365  +	    Series*|S4*)
          366  +		UNAME_RELEASE=`uname -v`
          367  +		;;
          368  +	esac
          369  +	# Japanese Language versions have a version number like `4.1.3-JL'.
          370  +	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
          371  +	exit ;;
          372  +    sun3*:SunOS:*:*)
          373  +	echo m68k-sun-sunos${UNAME_RELEASE}
          374  +	exit ;;
          375  +    sun*:*:4.2BSD:*)
          376  +	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
          377  +	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
          378  +	case "`/bin/arch`" in
          379  +	    sun3)
          380  +		echo m68k-sun-sunos${UNAME_RELEASE}
          381  +		;;
          382  +	    sun4)
          383  +		echo sparc-sun-sunos${UNAME_RELEASE}
          384  +		;;
          385  +	esac
          386  +	exit ;;
          387  +    aushp:SunOS:*:*)
          388  +	echo sparc-auspex-sunos${UNAME_RELEASE}
          389  +	exit ;;
          390  +    # The situation for MiNT is a little confusing.  The machine name
          391  +    # can be virtually everything (everything which is not
          392  +    # "atarist" or "atariste" at least should have a processor
          393  +    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
          394  +    # to the lowercase version "mint" (or "freemint").  Finally
          395  +    # the system name "TOS" denotes a system which is actually not
          396  +    # MiNT.  But MiNT is downward compatible to TOS, so this should
          397  +    # be no problem.
          398  +    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
          399  +	echo m68k-atari-mint${UNAME_RELEASE}
          400  +	exit ;;
          401  +    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
          402  +	echo m68k-atari-mint${UNAME_RELEASE}
          403  +	exit ;;
          404  +    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
          405  +	echo m68k-atari-mint${UNAME_RELEASE}
          406  +	exit ;;
          407  +    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
          408  +	echo m68k-milan-mint${UNAME_RELEASE}
          409  +	exit ;;
          410  +    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
          411  +	echo m68k-hades-mint${UNAME_RELEASE}
          412  +	exit ;;
          413  +    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
          414  +	echo m68k-unknown-mint${UNAME_RELEASE}
          415  +	exit ;;
          416  +    m68k:machten:*:*)
          417  +	echo m68k-apple-machten${UNAME_RELEASE}
          418  +	exit ;;
          419  +    powerpc:machten:*:*)
          420  +	echo powerpc-apple-machten${UNAME_RELEASE}
          421  +	exit ;;
          422  +    RISC*:Mach:*:*)
          423  +	echo mips-dec-mach_bsd4.3
          424  +	exit ;;
          425  +    RISC*:ULTRIX:*:*)
          426  +	echo mips-dec-ultrix${UNAME_RELEASE}
          427  +	exit ;;
          428  +    VAX*:ULTRIX*:*:*)
          429  +	echo vax-dec-ultrix${UNAME_RELEASE}
          430  +	exit ;;
          431  +    2020:CLIX:*:* | 2430:CLIX:*:*)
          432  +	echo clipper-intergraph-clix${UNAME_RELEASE}
          433  +	exit ;;
          434  +    mips:*:*:UMIPS | mips:*:*:RISCos)
          435  +	eval $set_cc_for_build
          436  +	sed 's/^	//' << EOF >$dummy.c
          437  +#ifdef __cplusplus
          438  +#include <stdio.h>  /* for printf() prototype */
          439  +	int main (int argc, char *argv[]) {
          440  +#else
          441  +	int main (argc, argv) int argc; char *argv[]; {
          442  +#endif
          443  +	#if defined (host_mips) && defined (MIPSEB)
          444  +	#if defined (SYSTYPE_SYSV)
          445  +	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
          446  +	#endif
          447  +	#if defined (SYSTYPE_SVR4)
          448  +	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
          449  +	#endif
          450  +	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
          451  +	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
          452  +	#endif
          453  +	#endif
          454  +	  exit (-1);
          455  +	}
          456  +EOF
          457  +	$CC_FOR_BUILD -o $dummy $dummy.c &&
          458  +	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
          459  +	  SYSTEM_NAME=`$dummy $dummyarg` &&
          460  +	    { echo "$SYSTEM_NAME"; exit; }
          461  +	echo mips-mips-riscos${UNAME_RELEASE}
          462  +	exit ;;
          463  +    Motorola:PowerMAX_OS:*:*)
          464  +	echo powerpc-motorola-powermax
          465  +	exit ;;
          466  +    Motorola:*:4.3:PL8-*)
          467  +	echo powerpc-harris-powermax
          468  +	exit ;;
          469  +    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
          470  +	echo powerpc-harris-powermax
          471  +	exit ;;
          472  +    Night_Hawk:Power_UNIX:*:*)
          473  +	echo powerpc-harris-powerunix
          474  +	exit ;;
          475  +    m88k:CX/UX:7*:*)
          476  +	echo m88k-harris-cxux7
          477  +	exit ;;
          478  +    m88k:*:4*:R4*)
          479  +	echo m88k-motorola-sysv4
          480  +	exit ;;
          481  +    m88k:*:3*:R3*)
          482  +	echo m88k-motorola-sysv3
          483  +	exit ;;
          484  +    AViiON:dgux:*:*)
          485  +	# DG/UX returns AViiON for all architectures
          486  +	UNAME_PROCESSOR=`/usr/bin/uname -p`
          487  +	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
          488  +	then
          489  +	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
          490  +	       [ ${TARGET_BINARY_INTERFACE}x = x ]
          491  +	    then
          492  +		echo m88k-dg-dgux${UNAME_RELEASE}
          493  +	    else
          494  +		echo m88k-dg-dguxbcs${UNAME_RELEASE}
          495  +	    fi
          496  +	else
          497  +	    echo i586-dg-dgux${UNAME_RELEASE}
          498  +	fi
          499  +	exit ;;
          500  +    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
          501  +	echo m88k-dolphin-sysv3
          502  +	exit ;;
          503  +    M88*:*:R3*:*)
          504  +	# Delta 88k system running SVR3
          505  +	echo m88k-motorola-sysv3
          506  +	exit ;;
          507  +    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
          508  +	echo m88k-tektronix-sysv3
          509  +	exit ;;
          510  +    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
          511  +	echo m68k-tektronix-bsd
          512  +	exit ;;
          513  +    *:IRIX*:*:*)
          514  +	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
          515  +	exit ;;
          516  +    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
          517  +	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
          518  +	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
          519  +    i*86:AIX:*:*)
          520  +	echo i386-ibm-aix
          521  +	exit ;;
          522  +    ia64:AIX:*:*)
          523  +	if [ -x /usr/bin/oslevel ] ; then
          524  +		IBM_REV=`/usr/bin/oslevel`
          525  +	else
          526  +		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
          527  +	fi
          528  +	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
          529  +	exit ;;
          530  +    *:AIX:2:3)
          531  +	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
          532  +		eval $set_cc_for_build
          533  +		sed 's/^		//' << EOF >$dummy.c
          534  +		#include <sys/systemcfg.h>
          535  +
          536  +		main()
          537  +			{
          538  +			if (!__power_pc())
          539  +				exit(1);
          540  +			puts("powerpc-ibm-aix3.2.5");
          541  +			exit(0);
          542  +			}
          543  +EOF
          544  +		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
          545  +		then
          546  +			echo "$SYSTEM_NAME"
          547  +		else
          548  +			echo rs6000-ibm-aix3.2.5
          549  +		fi
          550  +	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
          551  +		echo rs6000-ibm-aix3.2.4
          552  +	else
          553  +		echo rs6000-ibm-aix3.2
          554  +	fi
          555  +	exit ;;
          556  +    *:AIX:*:[4567])
          557  +	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
          558  +	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
          559  +		IBM_ARCH=rs6000
          560  +	else
          561  +		IBM_ARCH=powerpc
          562  +	fi
          563  +	if [ -x /usr/bin/oslevel ] ; then
          564  +		IBM_REV=`/usr/bin/oslevel`
          565  +	else
          566  +		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
          567  +	fi
          568  +	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
          569  +	exit ;;
          570  +    *:AIX:*:*)
          571  +	echo rs6000-ibm-aix
          572  +	exit ;;
          573  +    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
          574  +	echo romp-ibm-bsd4.4
          575  +	exit ;;
          576  +    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
          577  +	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
          578  +	exit ;;                             # report: romp-ibm BSD 4.3
          579  +    *:BOSX:*:*)
          580  +	echo rs6000-bull-bosx
          581  +	exit ;;
          582  +    DPX/2?00:B.O.S.:*:*)
          583  +	echo m68k-bull-sysv3
          584  +	exit ;;
          585  +    9000/[34]??:4.3bsd:1.*:*)
          586  +	echo m68k-hp-bsd
          587  +	exit ;;
          588  +    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
          589  +	echo m68k-hp-bsd4.4
          590  +	exit ;;
          591  +    9000/[34678]??:HP-UX:*:*)
          592  +	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
          593  +	case "${UNAME_MACHINE}" in
          594  +	    9000/31? )            HP_ARCH=m68000 ;;
          595  +	    9000/[34]?? )         HP_ARCH=m68k ;;
          596  +	    9000/[678][0-9][0-9])
          597  +		if [ -x /usr/bin/getconf ]; then
          598  +		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
          599  +		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
          600  +		    case "${sc_cpu_version}" in
          601  +		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
          602  +		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
          603  +		      532)                      # CPU_PA_RISC2_0
          604  +			case "${sc_kernel_bits}" in
          605  +			  32) HP_ARCH="hppa2.0n" ;;
          606  +			  64) HP_ARCH="hppa2.0w" ;;
          607  +			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
          608  +			esac ;;
          609  +		    esac
          610  +		fi
          611  +		if [ "${HP_ARCH}" = "" ]; then
          612  +		    eval $set_cc_for_build
          613  +		    sed 's/^		//' << EOF >$dummy.c
          614  +
          615  +		#define _HPUX_SOURCE
          616  +		#include <stdlib.h>
          617  +		#include <unistd.h>
          618  +
          619  +		int main ()
          620  +		{
          621  +		#if defined(_SC_KERNEL_BITS)
          622  +		    long bits = sysconf(_SC_KERNEL_BITS);
          623  +		#endif
          624  +		    long cpu  = sysconf (_SC_CPU_VERSION);
          625  +
          626  +		    switch (cpu)
          627  +			{
          628  +			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
          629  +			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
          630  +			case CPU_PA_RISC2_0:
          631  +		#if defined(_SC_KERNEL_BITS)
          632  +			    switch (bits)
          633  +				{
          634  +				case 64: puts ("hppa2.0w"); break;
          635  +				case 32: puts ("hppa2.0n"); break;
          636  +				default: puts ("hppa2.0"); break;
          637  +				} break;
          638  +		#else  /* !defined(_SC_KERNEL_BITS) */
          639  +			    puts ("hppa2.0"); break;
          640  +		#endif
          641  +			default: puts ("hppa1.0"); break;
          642  +			}
          643  +		    exit (0);
          644  +		}
          645  +EOF
          646  +		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
          647  +		    test -z "$HP_ARCH" && HP_ARCH=hppa
          648  +		fi ;;
          649  +	esac
          650  +	if [ ${HP_ARCH} = "hppa2.0w" ]
          651  +	then
          652  +	    eval $set_cc_for_build
          653  +
          654  +	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
          655  +	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
          656  +	    # generating 64-bit code.  GNU and HP use different nomenclature:
          657  +	    #
          658  +	    # $ CC_FOR_BUILD=cc ./config.guess
          659  +	    # => hppa2.0w-hp-hpux11.23
          660  +	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
          661  +	    # => hppa64-hp-hpux11.23
          662  +
          663  +	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
          664  +		grep -q __LP64__
          665  +	    then
          666  +		HP_ARCH="hppa2.0w"
          667  +	    else
          668  +		HP_ARCH="hppa64"
          669  +	    fi
          670  +	fi
          671  +	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
          672  +	exit ;;
          673  +    ia64:HP-UX:*:*)
          674  +	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
          675  +	echo ia64-hp-hpux${HPUX_REV}
          676  +	exit ;;
          677  +    3050*:HI-UX:*:*)
          678  +	eval $set_cc_for_build
          679  +	sed 's/^	//' << EOF >$dummy.c
          680  +	#include <unistd.h>
          681  +	int
          682  +	main ()
          683  +	{
          684  +	  long cpu = sysconf (_SC_CPU_VERSION);
          685  +	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
          686  +	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
          687  +	     results, however.  */
          688  +	  if (CPU_IS_PA_RISC (cpu))
          689  +	    {
          690  +	      switch (cpu)
          691  +		{
          692  +		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
          693  +		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
          694  +		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
          695  +		  default: puts ("hppa-hitachi-hiuxwe2"); break;
          696  +		}
          697  +	    }
          698  +	  else if (CPU_IS_HP_MC68K (cpu))
          699  +	    puts ("m68k-hitachi-hiuxwe2");
          700  +	  else puts ("unknown-hitachi-hiuxwe2");
          701  +	  exit (0);
          702  +	}
          703  +EOF
          704  +	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
          705  +		{ echo "$SYSTEM_NAME"; exit; }
          706  +	echo unknown-hitachi-hiuxwe2
          707  +	exit ;;
          708  +    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
          709  +	echo hppa1.1-hp-bsd
          710  +	exit ;;
          711  +    9000/8??:4.3bsd:*:*)
          712  +	echo hppa1.0-hp-bsd
          713  +	exit ;;
          714  +    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
          715  +	echo hppa1.0-hp-mpeix
          716  +	exit ;;
          717  +    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
          718  +	echo hppa1.1-hp-osf
          719  +	exit ;;
          720  +    hp8??:OSF1:*:*)
          721  +	echo hppa1.0-hp-osf
          722  +	exit ;;
          723  +    i*86:OSF1:*:*)
          724  +	if [ -x /usr/sbin/sysversion ] ; then
          725  +	    echo ${UNAME_MACHINE}-unknown-osf1mk
          726  +	else
          727  +	    echo ${UNAME_MACHINE}-unknown-osf1
          728  +	fi
          729  +	exit ;;
          730  +    parisc*:Lites*:*:*)
          731  +	echo hppa1.1-hp-lites
          732  +	exit ;;
          733  +    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
          734  +	echo c1-convex-bsd
          735  +	exit ;;
          736  +    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
          737  +	if getsysinfo -f scalar_acc
          738  +	then echo c32-convex-bsd
          739  +	else echo c2-convex-bsd
          740  +	fi
          741  +	exit ;;
          742  +    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
          743  +	echo c34-convex-bsd
          744  +	exit ;;
          745  +    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
          746  +	echo c38-convex-bsd
          747  +	exit ;;
          748  +    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
          749  +	echo c4-convex-bsd
          750  +	exit ;;
          751  +    CRAY*Y-MP:*:*:*)
          752  +	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
          753  +	exit ;;
          754  +    CRAY*[A-Z]90:*:*:*)
          755  +	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
          756  +	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
          757  +	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
          758  +	      -e 's/\.[^.]*$/.X/'
          759  +	exit ;;
          760  +    CRAY*TS:*:*:*)
          761  +	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
          762  +	exit ;;
          763  +    CRAY*T3E:*:*:*)
          764  +	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
          765  +	exit ;;
          766  +    CRAY*SV1:*:*:*)
          767  +	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
          768  +	exit ;;
          769  +    *:UNICOS/mp:*:*)
          770  +	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
          771  +	exit ;;
          772  +    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
          773  +	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
          774  +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
          775  +	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
          776  +	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
          777  +	exit ;;
          778  +    5000:UNIX_System_V:4.*:*)
          779  +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
          780  +	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
          781  +	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
          782  +	exit ;;
          783  +    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
          784  +	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
          785  +	exit ;;
          786  +    sparc*:BSD/OS:*:*)
          787  +	echo sparc-unknown-bsdi${UNAME_RELEASE}
          788  +	exit ;;
          789  +    *:BSD/OS:*:*)
          790  +	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
          791  +	exit ;;
          792  +    *:FreeBSD:*:*)
          793  +	UNAME_PROCESSOR=`/usr/bin/uname -p`
          794  +	case ${UNAME_PROCESSOR} in
          795  +	    amd64)
          796  +		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
          797  +	    *)
          798  +		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
          799  +	esac
          800  +	exit ;;
          801  +    i*:CYGWIN*:*)
          802  +	echo ${UNAME_MACHINE}-pc-cygwin
          803  +	exit ;;
          804  +    *:MINGW*:*)
          805  +	echo ${UNAME_MACHINE}-pc-mingw32
          806  +	exit ;;
          807  +    i*:MSYS*:*)
          808  +	echo ${UNAME_MACHINE}-pc-msys
          809  +	exit ;;
          810  +    i*:windows32*:*)
          811  +	# uname -m includes "-pc" on this system.
          812  +	echo ${UNAME_MACHINE}-mingw32
          813  +	exit ;;
          814  +    i*:PW*:*)
          815  +	echo ${UNAME_MACHINE}-pc-pw32
          816  +	exit ;;
          817  +    *:Interix*:*)
          818  +	case ${UNAME_MACHINE} in
          819  +	    x86)
          820  +		echo i586-pc-interix${UNAME_RELEASE}
          821  +		exit ;;
          822  +	    authenticamd | genuineintel | EM64T)
          823  +		echo x86_64-unknown-interix${UNAME_RELEASE}
          824  +		exit ;;
          825  +	    IA64)
          826  +		echo ia64-unknown-interix${UNAME_RELEASE}
          827  +		exit ;;
          828  +	esac ;;
          829  +    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
          830  +	echo i${UNAME_MACHINE}-pc-mks
          831  +	exit ;;
          832  +    8664:Windows_NT:*)
          833  +	echo x86_64-pc-mks
          834  +	exit ;;
          835  +    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
          836  +	# How do we know it's Interix rather than the generic POSIX subsystem?
          837  +	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
          838  +	# UNAME_MACHINE based on the output of uname instead of i386?
          839  +	echo i586-pc-interix
          840  +	exit ;;
          841  +    i*:UWIN*:*)
          842  +	echo ${UNAME_MACHINE}-pc-uwin
          843  +	exit ;;
          844  +    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
          845  +	echo x86_64-unknown-cygwin
          846  +	exit ;;
          847  +    p*:CYGWIN*:*)
          848  +	echo powerpcle-unknown-cygwin
          849  +	exit ;;
          850  +    prep*:SunOS:5.*:*)
          851  +	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
          852  +	exit ;;
          853  +    *:GNU:*:*)
          854  +	# the GNU system
          855  +	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
          856  +	exit ;;
          857  +    *:GNU/*:*:*)
          858  +	# other systems with GNU libc and userland
          859  +	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
          860  +	exit ;;
          861  +    i*86:Minix:*:*)
          862  +	echo ${UNAME_MACHINE}-pc-minix
          863  +	exit ;;
          864  +    aarch64:Linux:*:*)
          865  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          866  +	exit ;;
          867  +    aarch64_be:Linux:*:*)
          868  +	UNAME_MACHINE=aarch64_be
          869  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          870  +	exit ;;
          871  +    alpha:Linux:*:*)
          872  +	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          873  +	  EV5)   UNAME_MACHINE=alphaev5 ;;
          874  +	  EV56)  UNAME_MACHINE=alphaev56 ;;
          875  +	  PCA56) UNAME_MACHINE=alphapca56 ;;
          876  +	  PCA57) UNAME_MACHINE=alphapca56 ;;
          877  +	  EV6)   UNAME_MACHINE=alphaev6 ;;
          878  +	  EV67)  UNAME_MACHINE=alphaev67 ;;
          879  +	  EV68*) UNAME_MACHINE=alphaev68 ;;
          880  +	esac
          881  +	objdump --private-headers /bin/sh | grep -q ld.so.1
          882  +	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
          883  +	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
          884  +	exit ;;
          885  +    arm*:Linux:*:*)
          886  +	eval $set_cc_for_build
          887  +	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
          888  +	    | grep -q __ARM_EABI__
          889  +	then
          890  +	    echo ${UNAME_MACHINE}-unknown-linux-gnu
          891  +	else
          892  +	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
          893  +		| grep -q __ARM_PCS_VFP
          894  +	    then
          895  +		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
          896  +	    else
          897  +		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
          898  +	    fi
          899  +	fi
          900  +	exit ;;
          901  +    avr32*:Linux:*:*)
          902  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          903  +	exit ;;
          904  +    cris:Linux:*:*)
          905  +	echo ${UNAME_MACHINE}-axis-linux-gnu
          906  +	exit ;;
          907  +    crisv32:Linux:*:*)
          908  +	echo ${UNAME_MACHINE}-axis-linux-gnu
          909  +	exit ;;
          910  +    frv:Linux:*:*)
          911  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          912  +	exit ;;
          913  +    hexagon:Linux:*:*)
          914  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          915  +	exit ;;
          916  +    i*86:Linux:*:*)
          917  +	LIBC=gnu
          918  +	eval $set_cc_for_build
          919  +	sed 's/^	//' << EOF >$dummy.c
          920  +	#ifdef __dietlibc__
          921  +	LIBC=dietlibc
          922  +	#endif
          923  +EOF
          924  +	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
          925  +	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
          926  +	exit ;;
          927  +    ia64:Linux:*:*)
          928  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          929  +	exit ;;
          930  +    m32r*:Linux:*:*)
          931  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          932  +	exit ;;
          933  +    m68*:Linux:*:*)
          934  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          935  +	exit ;;
          936  +    mips:Linux:*:* | mips64:Linux:*:*)
          937  +	eval $set_cc_for_build
          938  +	sed 's/^	//' << EOF >$dummy.c
          939  +	#undef CPU
          940  +	#undef ${UNAME_MACHINE}
          941  +	#undef ${UNAME_MACHINE}el
          942  +	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
          943  +	CPU=${UNAME_MACHINE}el
          944  +	#else
          945  +	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
          946  +	CPU=${UNAME_MACHINE}
          947  +	#else
          948  +	CPU=
          949  +	#endif
          950  +	#endif
          951  +EOF
          952  +	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
          953  +	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
          954  +	;;
          955  +    or32:Linux:*:*)
          956  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          957  +	exit ;;
          958  +    padre:Linux:*:*)
          959  +	echo sparc-unknown-linux-gnu
          960  +	exit ;;
          961  +    parisc64:Linux:*:* | hppa64:Linux:*:*)
          962  +	echo hppa64-unknown-linux-gnu
          963  +	exit ;;
          964  +    parisc:Linux:*:* | hppa:Linux:*:*)
          965  +	# Look for CPU level
          966  +	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
          967  +	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
          968  +	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
          969  +	  *)    echo hppa-unknown-linux-gnu ;;
          970  +	esac
          971  +	exit ;;
          972  +    ppc64:Linux:*:*)
          973  +	echo powerpc64-unknown-linux-gnu
          974  +	exit ;;
          975  +    ppc:Linux:*:*)
          976  +	echo powerpc-unknown-linux-gnu
          977  +	exit ;;
          978  +    s390:Linux:*:* | s390x:Linux:*:*)
          979  +	echo ${UNAME_MACHINE}-ibm-linux
          980  +	exit ;;
          981  +    sh64*:Linux:*:*)
          982  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          983  +	exit ;;
          984  +    sh*:Linux:*:*)
          985  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          986  +	exit ;;
          987  +    sparc:Linux:*:* | sparc64:Linux:*:*)
          988  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          989  +	exit ;;
          990  +    tile*:Linux:*:*)
          991  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          992  +	exit ;;
          993  +    vax:Linux:*:*)
          994  +	echo ${UNAME_MACHINE}-dec-linux-gnu
          995  +	exit ;;
          996  +    x86_64:Linux:*:*)
          997  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
          998  +	exit ;;
          999  +    xtensa*:Linux:*:*)
         1000  +	echo ${UNAME_MACHINE}-unknown-linux-gnu
         1001  +	exit ;;
         1002  +    i*86:DYNIX/ptx:4*:*)
         1003  +	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
         1004  +	# earlier versions are messed up and put the nodename in both
         1005  +	# sysname and nodename.
         1006  +	echo i386-sequent-sysv4
         1007  +	exit ;;
         1008  +    i*86:UNIX_SV:4.2MP:2.*)
         1009  +	# Unixware is an offshoot of SVR4, but it has its own version
         1010  +	# number series starting with 2...
         1011  +	# I am not positive that other SVR4 systems won't match this,
         1012  +	# I just have to hope.  -- rms.
         1013  +	# Use sysv4.2uw... so that sysv4* matches it.
         1014  +	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
         1015  +	exit ;;
         1016  +    i*86:OS/2:*:*)
         1017  +	# If we were able to find `uname', then EMX Unix compatibility
         1018  +	# is probably installed.
         1019  +	echo ${UNAME_MACHINE}-pc-os2-emx
         1020  +	exit ;;
         1021  +    i*86:XTS-300:*:STOP)
         1022  +	echo ${UNAME_MACHINE}-unknown-stop
         1023  +	exit ;;
         1024  +    i*86:atheos:*:*)
         1025  +	echo ${UNAME_MACHINE}-unknown-atheos
         1026  +	exit ;;
         1027  +    i*86:syllable:*:*)
         1028  +	echo ${UNAME_MACHINE}-pc-syllable
         1029  +	exit ;;
         1030  +    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
         1031  +	echo i386-unknown-lynxos${UNAME_RELEASE}
         1032  +	exit ;;
         1033  +    i*86:*DOS:*:*)
         1034  +	echo ${UNAME_MACHINE}-pc-msdosdjgpp
         1035  +	exit ;;
         1036  +    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
         1037  +	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
         1038  +	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
         1039  +		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
         1040  +	else
         1041  +		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
         1042  +	fi
         1043  +	exit ;;
         1044  +    i*86:*:5:[678]*)
         1045  +	# UnixWare 7.x, OpenUNIX and OpenServer 6.
         1046  +	case `/bin/uname -X | grep "^Machine"` in
         1047  +	    *486*)	     UNAME_MACHINE=i486 ;;
         1048  +	    *Pentium)	     UNAME_MACHINE=i586 ;;
         1049  +	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
         1050  +	esac
         1051  +	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
         1052  +	exit ;;
         1053  +    i*86:*:3.2:*)
         1054  +	if test -f /usr/options/cb.name; then
         1055  +		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
         1056  +		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
         1057  +	elif /bin/uname -X 2>/dev/null >/dev/null ; then
         1058  +		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
         1059  +		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
         1060  +		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
         1061  +			&& UNAME_MACHINE=i586
         1062  +		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
         1063  +			&& UNAME_MACHINE=i686
         1064  +		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
         1065  +			&& UNAME_MACHINE=i686
         1066  +		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
         1067  +	else
         1068  +		echo ${UNAME_MACHINE}-pc-sysv32
         1069  +	fi
         1070  +	exit ;;
         1071  +    pc:*:*:*)
         1072  +	# Left here for compatibility:
         1073  +	# uname -m prints for DJGPP always 'pc', but it prints nothing about
         1074  +	# the processor, so we play safe by assuming i586.
         1075  +	# Note: whatever this is, it MUST be the same as what config.sub
         1076  +	# prints for the "djgpp" host, or else GDB configury will decide that
         1077  +	# this is a cross-build.
         1078  +	echo i586-pc-msdosdjgpp
         1079  +	exit ;;
         1080  +    Intel:Mach:3*:*)
         1081  +	echo i386-pc-mach3
         1082  +	exit ;;
         1083  +    paragon:*:*:*)
         1084  +	echo i860-intel-osf1
         1085  +	exit ;;
         1086  +    i860:*:4.*:*) # i860-SVR4
         1087  +	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
         1088  +	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
         1089  +	else # Add other i860-SVR4 vendors below as they are discovered.
         1090  +	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
         1091  +	fi
         1092  +	exit ;;
         1093  +    mini*:CTIX:SYS*5:*)
         1094  +	# "miniframe"
         1095  +	echo m68010-convergent-sysv
         1096  +	exit ;;
         1097  +    mc68k:UNIX:SYSTEM5:3.51m)
         1098  +	echo m68k-convergent-sysv
         1099  +	exit ;;
         1100  +    M680?0:D-NIX:5.3:*)
         1101  +	echo m68k-diab-dnix
         1102  +	exit ;;
         1103  +    M68*:*:R3V[5678]*:*)
         1104  +	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
         1105  +    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
         1106  +	OS_REL=''
         1107  +	test -r /etc/.relid \
         1108  +	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
         1109  +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
         1110  +	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
         1111  +	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
         1112  +	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
         1113  +    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         1114  +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
         1115  +	  && { echo i486-ncr-sysv4; exit; } ;;
         1116  +    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
         1117  +	OS_REL='.3'
         1118  +	test -r /etc/.relid \
         1119  +	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
         1120  +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
         1121  +	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
         1122  +	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
         1123  +	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
         1124  +	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
         1125  +	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
         1126  +    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
         1127  +	echo m68k-unknown-lynxos${UNAME_RELEASE}
         1128  +	exit ;;
         1129  +    mc68030:UNIX_System_V:4.*:*)
         1130  +	echo m68k-atari-sysv4
         1131  +	exit ;;
         1132  +    TSUNAMI:LynxOS:2.*:*)
         1133  +	echo sparc-unknown-lynxos${UNAME_RELEASE}
         1134  +	exit ;;
         1135  +    rs6000:LynxOS:2.*:*)
         1136  +	echo rs6000-unknown-lynxos${UNAME_RELEASE}
         1137  +	exit ;;
         1138  +    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
         1139  +	echo powerpc-unknown-lynxos${UNAME_RELEASE}
         1140  +	exit ;;
         1141  +    SM[BE]S:UNIX_SV:*:*)
         1142  +	echo mips-dde-sysv${UNAME_RELEASE}
         1143  +	exit ;;
         1144  +    RM*:ReliantUNIX-*:*:*)
         1145  +	echo mips-sni-sysv4
         1146  +	exit ;;
         1147  +    RM*:SINIX-*:*:*)
         1148  +	echo mips-sni-sysv4
         1149  +	exit ;;
         1150  +    *:SINIX-*:*:*)
         1151  +	if uname -p 2>/dev/null >/dev/null ; then
         1152  +		UNAME_MACHINE=`(uname -p) 2>/dev/null`
         1153  +		echo ${UNAME_MACHINE}-sni-sysv4
         1154  +	else
         1155  +		echo ns32k-sni-sysv
         1156  +	fi
         1157  +	exit ;;
         1158  +    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
         1159  +			# says <Richard.M.Bartel@ccMail.Census.GOV>
         1160  +	echo i586-unisys-sysv4
         1161  +	exit ;;
         1162  +    *:UNIX_System_V:4*:FTX*)
         1163  +	# From Gerald Hewes <hewes@openmarket.com>.
         1164  +	# How about differentiating between stratus architectures? -djm
         1165  +	echo hppa1.1-stratus-sysv4
         1166  +	exit ;;
         1167  +    *:*:*:FTX*)
         1168  +	# From seanf@swdc.stratus.com.
         1169  +	echo i860-stratus-sysv4
         1170  +	exit ;;
         1171  +    i*86:VOS:*:*)
         1172  +	# From Paul.Green@stratus.com.
         1173  +	echo ${UNAME_MACHINE}-stratus-vos
         1174  +	exit ;;
         1175  +    *:VOS:*:*)
         1176  +	# From Paul.Green@stratus.com.
         1177  +	echo hppa1.1-stratus-vos
         1178  +	exit ;;
         1179  +    mc68*:A/UX:*:*)
         1180  +	echo m68k-apple-aux${UNAME_RELEASE}
         1181  +	exit ;;
         1182  +    news*:NEWS-OS:6*:*)
         1183  +	echo mips-sony-newsos6
         1184  +	exit ;;
         1185  +    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
         1186  +	if [ -d /usr/nec ]; then
         1187  +		echo mips-nec-sysv${UNAME_RELEASE}
         1188  +	else
         1189  +		echo mips-unknown-sysv${UNAME_RELEASE}
         1190  +	fi
         1191  +	exit ;;
         1192  +    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
         1193  +	echo powerpc-be-beos
         1194  +	exit ;;
         1195  +    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
         1196  +	echo powerpc-apple-beos
         1197  +	exit ;;
         1198  +    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
         1199  +	echo i586-pc-beos
         1200  +	exit ;;
         1201  +    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
         1202  +	echo i586-pc-haiku
         1203  +	exit ;;
         1204  +    SX-4:SUPER-UX:*:*)
         1205  +	echo sx4-nec-superux${UNAME_RELEASE}
         1206  +	exit ;;
         1207  +    SX-5:SUPER-UX:*:*)
         1208  +	echo sx5-nec-superux${UNAME_RELEASE}
         1209  +	exit ;;
         1210  +    SX-6:SUPER-UX:*:*)
         1211  +	echo sx6-nec-superux${UNAME_RELEASE}
         1212  +	exit ;;
         1213  +    SX-7:SUPER-UX:*:*)
         1214  +	echo sx7-nec-superux${UNAME_RELEASE}
         1215  +	exit ;;
         1216  +    SX-8:SUPER-UX:*:*)
         1217  +	echo sx8-nec-superux${UNAME_RELEASE}
         1218  +	exit ;;
         1219  +    SX-8R:SUPER-UX:*:*)
         1220  +	echo sx8r-nec-superux${UNAME_RELEASE}
         1221  +	exit ;;
         1222  +    Power*:Rhapsody:*:*)
         1223  +	echo powerpc-apple-rhapsody${UNAME_RELEASE}
         1224  +	exit ;;
         1225  +    *:Rhapsody:*:*)
         1226  +	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
         1227  +	exit ;;
         1228  +    *:Darwin:*:*)
         1229  +	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
         1230  +	case $UNAME_PROCESSOR in
         1231  +	    i386)
         1232  +		eval $set_cc_for_build
         1233  +		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
         1234  +		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
         1235  +		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
         1236  +		      grep IS_64BIT_ARCH >/dev/null
         1237  +		  then
         1238  +		      UNAME_PROCESSOR="x86_64"
         1239  +		  fi
         1240  +		fi ;;
         1241  +	    unknown) UNAME_PROCESSOR=powerpc ;;
         1242  +	esac
         1243  +	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
         1244  +	exit ;;
         1245  +    *:procnto*:*:* | *:QNX:[0123456789]*:*)
         1246  +	UNAME_PROCESSOR=`uname -p`
         1247  +	if test "$UNAME_PROCESSOR" = "x86"; then
         1248  +		UNAME_PROCESSOR=i386
         1249  +		UNAME_MACHINE=pc
         1250  +	fi
         1251  +	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
         1252  +	exit ;;
         1253  +    *:QNX:*:4*)
         1254  +	echo i386-pc-qnx
         1255  +	exit ;;
         1256  +    NEO-?:NONSTOP_KERNEL:*:*)
         1257  +	echo neo-tandem-nsk${UNAME_RELEASE}
         1258  +	exit ;;
         1259  +    NSE-?:NONSTOP_KERNEL:*:*)
         1260  +	echo nse-tandem-nsk${UNAME_RELEASE}
         1261  +	exit ;;
         1262  +    NSR-?:NONSTOP_KERNEL:*:*)
         1263  +	echo nsr-tandem-nsk${UNAME_RELEASE}
         1264  +	exit ;;
         1265  +    *:NonStop-UX:*:*)
         1266  +	echo mips-compaq-nonstopux
         1267  +	exit ;;
         1268  +    BS2000:POSIX*:*:*)
         1269  +	echo bs2000-siemens-sysv
         1270  +	exit ;;
         1271  +    DS/*:UNIX_System_V:*:*)
         1272  +	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
         1273  +	exit ;;
         1274  +    *:Plan9:*:*)
         1275  +	# "uname -m" is not consistent, so use $cputype instead. 386
         1276  +	# is converted to i386 for consistency with other x86
         1277  +	# operating systems.
         1278  +	if test "$cputype" = "386"; then
         1279  +	    UNAME_MACHINE=i386
         1280  +	else
         1281  +	    UNAME_MACHINE="$cputype"
         1282  +	fi
         1283  +	echo ${UNAME_MACHINE}-unknown-plan9
         1284  +	exit ;;
         1285  +    *:TOPS-10:*:*)
         1286  +	echo pdp10-unknown-tops10
         1287  +	exit ;;
         1288  +    *:TENEX:*:*)
         1289  +	echo pdp10-unknown-tenex
         1290  +	exit ;;
         1291  +    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
         1292  +	echo pdp10-dec-tops20
         1293  +	exit ;;
         1294  +    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
         1295  +	echo pdp10-xkl-tops20
         1296  +	exit ;;
         1297  +    *:TOPS-20:*:*)
         1298  +	echo pdp10-unknown-tops20
         1299  +	exit ;;
         1300  +    *:ITS:*:*)
         1301  +	echo pdp10-unknown-its
         1302  +	exit ;;
         1303  +    SEI:*:*:SEIUX)
         1304  +	echo mips-sei-seiux${UNAME_RELEASE}
         1305  +	exit ;;
         1306  +    *:DragonFly:*:*)
         1307  +	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
         1308  +	exit ;;
         1309  +    *:*VMS:*:*)
         1310  +	UNAME_MACHINE=`(uname -p) 2>/dev/null`
         1311  +	case "${UNAME_MACHINE}" in
         1312  +	    A*) echo alpha-dec-vms ; exit ;;
         1313  +	    I*) echo ia64-dec-vms ; exit ;;
         1314  +	    V*) echo vax-dec-vms ; exit ;;
         1315  +	esac ;;
         1316  +    *:XENIX:*:SysV)
         1317  +	echo i386-pc-xenix
         1318  +	exit ;;
         1319  +    i*86:skyos:*:*)
         1320  +	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
         1321  +	exit ;;
         1322  +    i*86:rdos:*:*)
         1323  +	echo ${UNAME_MACHINE}-pc-rdos
         1324  +	exit ;;
         1325  +    i*86:AROS:*:*)
         1326  +	echo ${UNAME_MACHINE}-pc-aros
         1327  +	exit ;;
         1328  +    x86_64:VMkernel:*:*)
         1329  +	echo ${UNAME_MACHINE}-unknown-esx
         1330  +	exit ;;
         1331  +esac
         1332  +
         1333  +#echo '(No uname command or uname output not recognized.)' 1>&2
         1334  +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
         1335  +
         1336  +eval $set_cc_for_build
         1337  +cat >$dummy.c <<EOF
         1338  +#ifdef _SEQUENT_
         1339  +# include <sys/types.h>
         1340  +# include <sys/utsname.h>
         1341  +#endif
         1342  +main ()
         1343  +{
         1344  +#if defined (sony)
         1345  +#if defined (MIPSEB)
         1346  +  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
         1347  +     I don't know....  */
         1348  +  printf ("mips-sony-bsd\n"); exit (0);
         1349  +#else
         1350  +#include <sys/param.h>
         1351  +  printf ("m68k-sony-newsos%s\n",
         1352  +#ifdef NEWSOS4
         1353  +	"4"
         1354  +#else
         1355  +	""
         1356  +#endif
         1357  +	); exit (0);
         1358  +#endif
         1359  +#endif
         1360  +
         1361  +#if defined (__arm) && defined (__acorn) && defined (__unix)
         1362  +  printf ("arm-acorn-riscix\n"); exit (0);
         1363  +#endif
         1364  +
         1365  +#if defined (hp300) && !defined (hpux)
         1366  +  printf ("m68k-hp-bsd\n"); exit (0);
         1367  +#endif
         1368  +
         1369  +#if defined (NeXT)
         1370  +#if !defined (__ARCHITECTURE__)
         1371  +#define __ARCHITECTURE__ "m68k"
         1372  +#endif
         1373  +  int version;
         1374  +  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
         1375  +  if (version < 4)
         1376  +    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
         1377  +  else
         1378  +    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
         1379  +  exit (0);
         1380  +#endif
         1381  +
         1382  +#if defined (MULTIMAX) || defined (n16)
         1383  +#if defined (UMAXV)
         1384  +  printf ("ns32k-encore-sysv\n"); exit (0);
         1385  +#else
         1386  +#if defined (CMU)
         1387  +  printf ("ns32k-encore-mach\n"); exit (0);
         1388  +#else
         1389  +  printf ("ns32k-encore-bsd\n"); exit (0);
         1390  +#endif
         1391  +#endif
         1392  +#endif
         1393  +
         1394  +#if defined (__386BSD__)
         1395  +  printf ("i386-pc-bsd\n"); exit (0);
         1396  +#endif
         1397  +
         1398  +#if defined (sequent)
         1399  +#if defined (i386)
         1400  +  printf ("i386-sequent-dynix\n"); exit (0);
         1401  +#endif
         1402  +#if defined (ns32000)
         1403  +  printf ("ns32k-sequent-dynix\n"); exit (0);
         1404  +#endif
         1405  +#endif
         1406  +
         1407  +#if defined (_SEQUENT_)
         1408  +    struct utsname un;
         1409  +
         1410  +    uname(&un);
         1411  +
         1412  +    if (strncmp(un.version, "V2", 2) == 0) {
         1413  +	printf ("i386-sequent-ptx2\n"); exit (0);
         1414  +    }
         1415  +    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
         1416  +	printf ("i386-sequent-ptx1\n"); exit (0);
         1417  +    }
         1418  +    printf ("i386-sequent-ptx\n"); exit (0);
         1419  +
         1420  +#endif
         1421  +
         1422  +#if defined (vax)
         1423  +# if !defined (ultrix)
         1424  +#  include <sys/param.h>
         1425  +#  if defined (BSD)
         1426  +#   if BSD == 43
         1427  +      printf ("vax-dec-bsd4.3\n"); exit (0);
         1428  +#   else
         1429  +#    if BSD == 199006
         1430  +      printf ("vax-dec-bsd4.3reno\n"); exit (0);
         1431  +#    else
         1432  +      printf ("vax-dec-bsd\n"); exit (0);
         1433  +#    endif
         1434  +#   endif
         1435  +#  else
         1436  +    printf ("vax-dec-bsd\n"); exit (0);
         1437  +#  endif
         1438  +# else
         1439  +    printf ("vax-dec-ultrix\n"); exit (0);
         1440  +# endif
         1441  +#endif
         1442  +
         1443  +#if defined (alliant) && defined (i860)
         1444  +  printf ("i860-alliant-bsd\n"); exit (0);
         1445  +#endif
         1446  +
         1447  +  exit (1);
         1448  +}
         1449  +EOF
         1450  +
         1451  +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
         1452  +	{ echo "$SYSTEM_NAME"; exit; }
         1453  +
         1454  +# Apollos put the system type in the environment.
         1455  +
         1456  +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
         1457  +
         1458  +# Convex versions that predate uname can use getsysinfo(1)
         1459  +
         1460  +if [ -x /usr/convex/getsysinfo ]
         1461  +then
         1462  +    case `getsysinfo -f cpu_type` in
         1463  +    c1*)
         1464  +	echo c1-convex-bsd
         1465  +	exit ;;
         1466  +    c2*)
         1467  +	if getsysinfo -f scalar_acc
         1468  +	then echo c32-convex-bsd
         1469  +	else echo c2-convex-bsd
         1470  +	fi
         1471  +	exit ;;
         1472  +    c34*)
         1473  +	echo c34-convex-bsd
         1474  +	exit ;;
         1475  +    c38*)
         1476  +	echo c38-convex-bsd
         1477  +	exit ;;
         1478  +    c4*)
         1479  +	echo c4-convex-bsd
         1480  +	exit ;;
         1481  +    esac
         1482  +fi
         1483  +
         1484  +cat >&2 <<EOF
         1485  +$0: unable to guess system type
         1486  +
         1487  +This script, last modified $timestamp, has failed to recognize
         1488  +the operating system you are using. It is advised that you
         1489  +download the most up to date version of the config scripts from
         1490  +
         1491  +  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
         1492  +and
         1493  +  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
         1494  +
         1495  +If the version you run ($0) is already up to date, please
         1496  +send the following data and any information you think might be
         1497  +pertinent to <config-patches@gnu.org> in order to provide the needed
         1498  +information to handle your system.
         1499  +
         1500  +config.guess timestamp = $timestamp
         1501  +
         1502  +uname -m = `(uname -m) 2>/dev/null || echo unknown`
         1503  +uname -r = `(uname -r) 2>/dev/null || echo unknown`
         1504  +uname -s = `(uname -s) 2>/dev/null || echo unknown`
         1505  +uname -v = `(uname -v) 2>/dev/null || echo unknown`
         1506  +
         1507  +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
         1508  +/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
         1509  +
         1510  +hostinfo               = `(hostinfo) 2>/dev/null`
         1511  +/bin/universe          = `(/bin/universe) 2>/dev/null`
         1512  +/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
         1513  +/bin/arch              = `(/bin/arch) 2>/dev/null`
         1514  +/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
         1515  +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
         1516  +
         1517  +UNAME_MACHINE = ${UNAME_MACHINE}
         1518  +UNAME_RELEASE = ${UNAME_RELEASE}
         1519  +UNAME_SYSTEM  = ${UNAME_SYSTEM}
         1520  +UNAME_VERSION = ${UNAME_VERSION}
         1521  +EOF
         1522  +
         1523  +exit 1
         1524  +
         1525  +# Local variables:
         1526  +# eval: (add-hook 'write-file-hooks 'time-stamp)
         1527  +# time-stamp-start: "timestamp='"
         1528  +# time-stamp-format: "%:y-%02m-%02d"
         1529  +# time-stamp-end: "'"
         1530  +# End:

Added autoconf/config.sub.

            1  +#! /bin/sh
            2  +# Configuration validation subroutine script.
            3  +#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
            4  +#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
            5  +#   2011, 2012 Free Software Foundation, Inc.
            6  +
            7  +timestamp='2012-02-10'
            8  +
            9  +# This file is (in principle) common to ALL GNU software.
           10  +# The presence of a machine in this file suggests that SOME GNU software
           11  +# can handle that machine.  It does not imply ALL GNU software can.
           12  +#
           13  +# This file is free software; you can redistribute it and/or modify
           14  +# it under the terms of the GNU General Public License as published by
           15  +# the Free Software Foundation; either version 2 of the License, or
           16  +# (at your option) any later version.
           17  +#
           18  +# This program is distributed in the hope that it will be useful,
           19  +# but WITHOUT ANY WARRANTY; without even the implied warranty of
           20  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
           21  +# GNU General Public License for more details.
           22  +#
           23  +# You should have received a copy of the GNU General Public License
           24  +# along with this program; if not, see <http://www.gnu.org/licenses/>.
           25  +#
           26  +# As a special exception to the GNU General Public License, if you
           27  +# distribute this file as part of a program that contains a
           28  +# configuration script generated by Autoconf, you may include it under
           29  +# the same distribution terms that you use for the rest of that program.
           30  +
           31  +
           32  +# Please send patches to <config-patches@gnu.org>.  Submit a context
           33  +# diff and a properly formatted GNU ChangeLog entry.
           34  +#
           35  +# Configuration subroutine to validate and canonicalize a configuration type.
           36  +# Supply the specified configuration type as an argument.
           37  +# If it is invalid, we print an error message on stderr and exit with code 1.
           38  +# Otherwise, we print the canonical config type on stdout and succeed.
           39  +
           40  +# You can get the latest version of this script from:
           41  +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
           42  +
           43  +# This file is supposed to be the same for all GNU packages
           44  +# and recognize all the CPU types, system types and aliases
           45  +# that are meaningful with *any* GNU software.
           46  +# Each package is responsible for reporting which valid configurations
           47  +# it does not support.  The user should be able to distinguish
           48  +# a failure to support a valid configuration from a meaningless
           49  +# configuration.
           50  +
           51  +# The goal of this file is to map all the various variations of a given
           52  +# machine specification into a single specification in the form:
           53  +#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
           54  +# or in some cases, the newer four-part form:
           55  +#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
           56  +# It is wrong to echo any other type of specification.
           57  +
           58  +me=`echo "$0" | sed -e 's,.*/,,'`
           59  +
           60  +usage="\
           61  +Usage: $0 [OPTION] CPU-MFR-OPSYS
           62  +       $0 [OPTION] ALIAS
           63  +
           64  +Canonicalize a configuration name.
           65  +
           66  +Operation modes:
           67  +  -h, --help         print this help, then exit
           68  +  -t, --time-stamp   print date of last modification, then exit
           69  +  -v, --version      print version number, then exit
           70  +
           71  +Report bugs and patches to <config-patches@gnu.org>."
           72  +
           73  +version="\
           74  +GNU config.sub ($timestamp)
           75  +
           76  +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
           77  +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
           78  +Free Software Foundation, Inc.
           79  +
           80  +This is free software; see the source for copying conditions.  There is NO
           81  +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
           82  +
           83  +help="
           84  +Try \`$me --help' for more information."
           85  +
           86  +# Parse command line
           87  +while test $# -gt 0 ; do
           88  +  case $1 in
           89  +    --time-stamp | --time* | -t )
           90  +       echo "$timestamp" ; exit ;;
           91  +    --version | -v )
           92  +       echo "$version" ; exit ;;
           93  +    --help | --h* | -h )
           94  +       echo "$usage"; exit ;;
           95  +    -- )     # Stop option processing
           96  +       shift; break ;;
           97  +    - )	# Use stdin as input.
           98  +       break ;;
           99  +    -* )
          100  +       echo "$me: invalid option $1$help"
          101  +       exit 1 ;;
          102  +
          103  +    *local*)
          104  +       # First pass through any local machine types.
          105  +       echo $1
          106  +       exit ;;
          107  +
          108  +    * )
          109  +       break ;;
          110  +  esac
          111  +done
          112  +
          113  +case $# in
          114  + 0) echo "$me: missing argument$help" >&2
          115  +    exit 1;;
          116  + 1) ;;
          117  + *) echo "$me: too many arguments$help" >&2
          118  +    exit 1;;
          119  +esac
          120  +
          121  +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
          122  +# Here we must recognize all the valid KERNEL-OS combinations.
          123  +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
          124  +case $maybe_os in
          125  +  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
          126  +  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
          127  +  knetbsd*-gnu* | netbsd*-gnu* | \
          128  +  kopensolaris*-gnu* | \
          129  +  storm-chaos* | os2-emx* | rtmk-nova*)
          130  +    os=-$maybe_os
          131  +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
          132  +    ;;
          133  +  android-linux)
          134  +    os=-linux-android
          135  +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
          136  +    ;;
          137  +  *)
          138  +    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
          139  +    if [ $basic_machine != $1 ]
          140  +    then os=`echo $1 | sed 's/.*-/-/'`
          141  +    else os=; fi
          142  +    ;;
          143  +esac
          144  +
          145  +### Let's recognize common machines as not being operating systems so
          146  +### that things like config.sub decstation-3100 work.  We also
          147  +### recognize some manufacturers as not being operating systems, so we
          148  +### can provide default operating systems below.
          149  +case $os in
          150  +	-sun*os*)
          151  +		# Prevent following clause from handling this invalid input.
          152  +		;;
          153  +	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
          154  +	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
          155  +	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
          156  +	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
          157  +	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
          158  +	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
          159  +	-apple | -axis | -knuth | -cray | -microblaze)
          160  +		os=
          161  +		basic_machine=$1
          162  +		;;
          163  +	-bluegene*)
          164  +		os=-cnk
          165  +		;;
          166  +	-sim | -cisco | -oki | -wec | -winbond)
          167  +		os=
          168  +		basic_machine=$1
          169  +		;;
          170  +	-scout)
          171  +		;;
          172  +	-wrs)
          173  +		os=-vxworks
          174  +		basic_machine=$1
          175  +		;;
          176  +	-chorusos*)
          177  +		os=-chorusos
          178  +		basic_machine=$1
          179  +		;;
          180  +	-chorusrdb)
          181  +		os=-chorusrdb
          182  +		basic_machine=$1
          183  +		;;
          184  +	-hiux*)
          185  +		os=-hiuxwe2
          186  +		;;
          187  +	-sco6)
          188  +		os=-sco5v6
          189  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          190  +		;;
          191  +	-sco5)
          192  +		os=-sco3.2v5
          193  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          194  +		;;
          195  +	-sco4)
          196  +		os=-sco3.2v4
          197  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          198  +		;;
          199  +	-sco3.2.[4-9]*)
          200  +		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
          201  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          202  +		;;
          203  +	-sco3.2v[4-9]*)
          204  +		# Don't forget version if it is 3.2v4 or newer.
          205  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          206  +		;;
          207  +	-sco5v6*)
          208  +		# Don't forget version if it is 3.2v4 or newer.
          209  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          210  +		;;
          211  +	-sco*)
          212  +		os=-sco3.2v2
          213  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          214  +		;;
          215  +	-udk*)
          216  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          217  +		;;
          218  +	-isc)
          219  +		os=-isc2.2
          220  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          221  +		;;
          222  +	-clix*)
          223  +		basic_machine=clipper-intergraph
          224  +		;;
          225  +	-isc*)
          226  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
          227  +		;;
          228  +	-lynx*)
          229  +		os=-lynxos
          230  +		;;
          231  +	-ptx*)
          232  +		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
          233  +		;;
          234  +	-windowsnt*)
          235  +		os=`echo $os | sed -e 's/windowsnt/winnt/'`
          236  +		;;
          237  +	-psos*)
          238  +		os=-psos
          239  +		;;
          240  +	-mint | -mint[0-9]*)
          241  +		basic_machine=m68k-atari
          242  +		os=-mint
          243  +		;;
          244  +esac
          245  +
          246  +# Decode aliases for certain CPU-COMPANY combinations.
          247  +case $basic_machine in
          248  +	# Recognize the basic CPU types without company name.
          249  +	# Some are omitted here because they have special meanings below.
          250  +	1750a | 580 \
          251  +	| a29k \
          252  +	| aarch64 | aarch64_be \
          253  +	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
          254  +	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
          255  +	| am33_2.0 \
          256  +	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
          257  +        | be32 | be64 \
          258  +	| bfin \
          259  +	| c4x | clipper \
          260  +	| d10v | d30v | dlx | dsp16xx \
          261  +	| epiphany \
          262  +	| fido | fr30 | frv \
          263  +	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
          264  +	| hexagon \
          265  +	| i370 | i860 | i960 | ia64 \
          266  +	| ip2k | iq2000 \
          267  +	| le32 | le64 \
          268  +	| lm32 \
          269  +	| m32c | m32r | m32rle | m68000 | m68k | m88k \
          270  +	| maxq | mb | microblaze | mcore | mep | metag \
          271  +	| mips | mipsbe | mipseb | mipsel | mipsle \
          272  +	| mips16 \
          273  +	| mips64 | mips64el \
          274  +	| mips64octeon | mips64octeonel \
          275  +	| mips64orion | mips64orionel \
          276  +	| mips64r5900 | mips64r5900el \
          277  +	| mips64vr | mips64vrel \
          278  +	| mips64vr4100 | mips64vr4100el \
          279  +	| mips64vr4300 | mips64vr4300el \
          280  +	| mips64vr5000 | mips64vr5000el \
          281  +	| mips64vr5900 | mips64vr5900el \
          282  +	| mipsisa32 | mipsisa32el \
          283  +	| mipsisa32r2 | mipsisa32r2el \
          284  +	| mipsisa64 | mipsisa64el \
          285  +	| mipsisa64r2 | mipsisa64r2el \
          286  +	| mipsisa64sb1 | mipsisa64sb1el \
          287  +	| mipsisa64sr71k | mipsisa64sr71kel \
          288  +	| mipstx39 | mipstx39el \
          289  +	| mn10200 | mn10300 \
          290  +	| moxie \
          291  +	| mt \
          292  +	| msp430 \
          293  +	| nds32 | nds32le | nds32be \
          294  +	| nios | nios2 \
          295  +	| ns16k | ns32k \
          296  +	| open8 \
          297  +	| or32 \
          298  +	| pdp10 | pdp11 | pj | pjl \
          299  +	| powerpc | powerpc64 | powerpc64le | powerpcle \
          300  +	| pyramid \
          301  +	| rl78 | rx \
          302  +	| score \
          303  +	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
          304  +	| sh64 | sh64le \
          305  +	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
          306  +	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
          307  +	| spu \
          308  +	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
          309  +	| ubicom32 \
          310  +	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
          311  +	| we32k \
          312  +	| x86 | xc16x | xstormy16 | xtensa \
          313  +	| z8k | z80)
          314  +		basic_machine=$basic_machine-unknown
          315  +		;;
          316  +	c54x)
          317  +		basic_machine=tic54x-unknown
          318  +		;;
          319  +	c55x)
          320  +		basic_machine=tic55x-unknown
          321  +		;;
          322  +	c6x)
          323  +		basic_machine=tic6x-unknown
          324  +		;;
          325  +	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
          326  +		basic_machine=$basic_machine-unknown
          327  +		os=-none
          328  +		;;
          329  +	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
          330  +		;;
          331  +	ms1)
          332  +		basic_machine=mt-unknown
          333  +		;;
          334  +
          335  +	strongarm | thumb | xscale)
          336  +		basic_machine=arm-unknown
          337  +		;;
          338  +	xgate)
          339  +		basic_machine=$basic_machine-unknown
          340  +		os=-none
          341  +		;;
          342  +	xscaleeb)
          343  +		basic_machine=armeb-unknown
          344  +		;;
          345  +
          346  +	xscaleel)
          347  +		basic_machine=armel-unknown
          348  +		;;
          349  +
          350  +	# We use `pc' rather than `unknown'
          351  +	# because (1) that's what they normally are, and
          352  +	# (2) the word "unknown" tends to confuse beginning users.
          353  +	i*86 | x86_64)
          354  +	  basic_machine=$basic_machine-pc
          355  +	  ;;
          356  +	# Object if more than one company name word.
          357  +	*-*-*)
          358  +		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
          359  +		exit 1
          360  +		;;
          361  +	# Recognize the basic CPU types with company name.
          362  +	580-* \
          363  +	| a29k-* \
          364  +	| aarch64-* | aarch64_be-* \
          365  +	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
          366  +	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
          367  +	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
          368  +	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
          369  +	| avr-* | avr32-* \
          370  +	| be32-* | be64-* \
          371  +	| bfin-* | bs2000-* \
          372  +	| c[123]* | c30-* | [cjt]90-* | c4x-* \
          373  +	| clipper-* | craynv-* | cydra-* \
          374  +	| d10v-* | d30v-* | dlx-* \
          375  +	| elxsi-* \
          376  +	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
          377  +	| h8300-* | h8500-* \
          378  +	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
          379  +	| hexagon-* \
          380  +	| i*86-* | i860-* | i960-* | ia64-* \
          381  +	| ip2k-* | iq2000-* \
          382  +	| le32-* | le64-* \
          383  +	| lm32-* \
          384  +	| m32c-* | m32r-* | m32rle-* \
          385  +	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
          386  +	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
          387  +	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
          388  +	| mips16-* \
          389  +	| mips64-* | mips64el-* \
          390  +	| mips64octeon-* | mips64octeonel-* \
          391  +	| mips64orion-* | mips64orionel-* \
          392  +	| mips64r5900-* | mips64r5900el-* \
          393  +	| mips64vr-* | mips64vrel-* \
          394  +	| mips64vr4100-* | mips64vr4100el-* \
          395  +	| mips64vr4300-* | mips64vr4300el-* \
          396  +	| mips64vr5000-* | mips64vr5000el-* \
          397  +	| mips64vr5900-* | mips64vr5900el-* \
          398  +	| mipsisa32-* | mipsisa32el-* \
          399  +	| mipsisa32r2-* | mipsisa32r2el-* \
          400  +	| mipsisa64-* | mipsisa64el-* \
          401  +	| mipsisa64r2-* | mipsisa64r2el-* \
          402  +	| mipsisa64sb1-* | mipsisa64sb1el-* \
          403  +	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
          404  +	| mipstx39-* | mipstx39el-* \
          405  +	| mmix-* \
          406  +	| mt-* \
          407  +	| msp430-* \
          408  +	| nds32-* | nds32le-* | nds32be-* \
          409  +	| nios-* | nios2-* \
          410  +	| none-* | np1-* | ns16k-* | ns32k-* \
          411  +	| open8-* \
          412  +	| orion-* \
          413  +	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
          414  +	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
          415  +	| pyramid-* \
          416  +	| rl78-* | romp-* | rs6000-* | rx-* \
          417  +	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
          418  +	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
          419  +	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
          420  +	| sparclite-* \
          421  +	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
          422  +	| tahoe-* \
          423  +	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
          424  +	| tile*-* \
          425  +	| tron-* \
          426  +	| ubicom32-* \
          427  +	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
          428  +	| vax-* \
          429  +	| we32k-* \
          430  +	| x86-* | x86_64-* | xc16x-* | xps100-* \
          431  +	| xstormy16-* | xtensa*-* \
          432  +	| ymp-* \
          433  +	| z8k-* | z80-*)
          434  +		;;
          435  +	# Recognize the basic CPU types without company name, with glob match.
          436  +	xtensa*)
          437  +		basic_machine=$basic_machine-unknown
          438  +		;;
          439  +	# Recognize the various machine names and aliases which stand
          440  +	# for a CPU type and a company and sometimes even an OS.
          441  +	386bsd)
          442  +		basic_machine=i386-unknown
          443  +		os=-bsd
          444  +		;;
          445  +	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
          446  +		basic_machine=m68000-att
          447  +		;;
          448  +	3b*)
          449  +		basic_machine=we32k-att
          450  +		;;
          451  +	a29khif)
          452  +		basic_machine=a29k-amd
          453  +		os=-udi
          454  +		;;
          455  +	abacus)
          456  +		basic_machine=abacus-unknown
          457  +		;;
          458  +	adobe68k)
          459  +		basic_machine=m68010-adobe
          460  +		os=-scout
          461  +		;;
          462  +	alliant | fx80)
          463  +		basic_machine=fx80-alliant
          464  +		;;
          465  +	altos | altos3068)
          466  +		basic_machine=m68k-altos
          467  +		;;
          468  +	am29k)
          469  +		basic_machine=a29k-none
          470  +		os=-bsd
          471  +		;;
          472  +	amd64)
          473  +		basic_machine=x86_64-pc
          474  +		;;
          475  +	amd64-*)
          476  +		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
          477  +		;;
          478  +	amdahl)
          479  +		basic_machine=580-amdahl
          480  +		os=-sysv
          481  +		;;
          482  +	amiga | amiga-*)
          483  +		basic_machine=m68k-unknown
          484  +		;;
          485  +	amigaos | amigados)
          486  +		basic_machine=m68k-unknown
          487  +		os=-amigaos
          488  +		;;
          489  +	amigaunix | amix)
          490  +		basic_machine=m68k-unknown
          491  +		os=-sysv4
          492  +		;;
          493  +	apollo68)
          494  +		basic_machine=m68k-apollo
          495  +		os=-sysv
          496  +		;;
          497  +	apollo68bsd)
          498  +		basic_machine=m68k-apollo
          499  +		os=-bsd
          500  +		;;
          501  +	aros)
          502  +		basic_machine=i386-pc
          503  +		os=-aros
          504  +		;;
          505  +	aux)
          506  +		basic_machine=m68k-apple
          507  +		os=-aux
          508  +		;;
          509  +	balance)
          510  +		basic_machine=ns32k-sequent
          511  +		os=-dynix
          512  +		;;
          513  +	blackfin)
          514  +		basic_machine=bfin-unknown
          515  +		os=-linux
          516  +		;;
          517  +	blackfin-*)
          518  +		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
          519  +		os=-linux
          520  +		;;
          521  +	bluegene*)
          522  +		basic_machine=powerpc-ibm
          523  +		os=-cnk
          524  +		;;
          525  +	c54x-*)
          526  +		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
          527  +		;;
          528  +	c55x-*)
          529  +		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
          530  +		;;
          531  +	c6x-*)
          532  +		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
          533  +		;;
          534  +	c90)
          535  +		basic_machine=c90-cray
          536  +		os=-unicos
          537  +		;;
          538  +	cegcc)
          539  +		basic_machine=arm-unknown
          540  +		os=-cegcc
          541  +		;;
          542  +	convex-c1)
          543  +		basic_machine=c1-convex
          544  +		os=-bsd
          545  +		;;
          546  +	convex-c2)
          547  +		basic_machine=c2-convex
          548  +		os=-bsd
          549  +		;;
          550  +	convex-c32)
          551  +		basic_machine=c32-convex
          552  +		os=-bsd
          553  +		;;
          554  +	convex-c34)
          555  +		basic_machine=c34-convex
          556  +		os=-bsd
          557  +		;;
          558  +	convex-c38)
          559  +		basic_machine=c38-convex
          560  +		os=-bsd
          561  +		;;
          562  +	cray | j90)
          563  +		basic_machine=j90-cray
          564  +		os=-unicos
          565  +		;;
          566  +	craynv)
          567  +		basic_machine=craynv-cray
          568  +		os=-unicosmp
          569  +		;;
          570  +	cr16 | cr16-*)
          571  +		basic_machine=cr16-unknown
          572  +		os=-elf
          573  +		;;
          574  +	crds | unos)
          575  +		basic_machine=m68k-crds
          576  +		;;
          577  +	crisv32 | crisv32-* | etraxfs*)
          578  +		basic_machine=crisv32-axis
          579  +		;;
          580  +	cris | cris-* | etrax*)
          581  +		basic_machine=cris-axis
          582  +		;;
          583  +	crx)
          584  +		basic_machine=crx-unknown
          585  +		os=-elf
          586  +		;;
          587  +	da30 | da30-*)
          588  +		basic_machine=m68k-da30
          589  +		;;
          590  +	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
          591  +		basic_machine=mips-dec
          592  +		;;
          593  +	decsystem10* | dec10*)
          594  +		basic_machine=pdp10-dec
          595  +		os=-tops10
          596  +		;;
          597  +	decsystem20* | dec20*)
          598  +		basic_machine=pdp10-dec
          599  +		os=-tops20
          600  +		;;
          601  +	delta | 3300 | motorola-3300 | motorola-delta \
          602  +	      | 3300-motorola | delta-motorola)
          603  +		basic_machine=m68k-motorola
          604  +		;;
          605  +	delta88)
          606  +		basic_machine=m88k-motorola
          607  +		os=-sysv3
          608  +		;;
          609  +	dicos)
          610  +		basic_machine=i686-pc
          611  +		os=-dicos
          612  +		;;
          613  +	djgpp)
          614  +		basic_machine=i586-pc
          615  +		os=-msdosdjgpp
          616  +		;;
          617  +	dpx20 | dpx20-*)
          618  +		basic_machine=rs6000-bull
          619  +		os=-bosx
          620  +		;;
          621  +	dpx2* | dpx2*-bull)
          622  +		basic_machine=m68k-bull
          623  +		os=-sysv3
          624  +		;;
          625  +	ebmon29k)
          626  +		basic_machine=a29k-amd
          627  +		os=-ebmon
          628  +		;;
          629  +	elxsi)
          630  +		basic_machine=elxsi-elxsi
          631  +		os=-bsd
          632  +		;;
          633  +	encore | umax | mmax)
          634  +		basic_machine=ns32k-encore
          635  +		;;
          636  +	es1800 | OSE68k | ose68k | ose | OSE)
          637  +		basic_machine=m68k-ericsson
          638  +		os=-ose
          639  +		;;
          640  +	fx2800)
          641  +		basic_machine=i860-alliant
          642  +		;;
          643  +	genix)
          644  +		basic_machine=ns32k-ns
          645  +		;;
          646  +	gmicro)
          647  +		basic_machine=tron-gmicro
          648  +		os=-sysv
          649  +		;;
          650  +	go32)
          651  +		basic_machine=i386-pc
          652  +		os=-go32
          653  +		;;
          654  +	h3050r* | hiux*)
          655  +		basic_machine=hppa1.1-hitachi
          656  +		os=-hiuxwe2
          657  +		;;
          658  +	h8300hms)
          659  +		basic_machine=h8300-hitachi
          660  +		os=-hms
          661  +		;;
          662  +	h8300xray)
          663  +		basic_machine=h8300-hitachi
          664  +		os=-xray
          665  +		;;
          666  +	h8500hms)
          667  +		basic_machine=h8500-hitachi
          668  +		os=-hms
          669  +		;;
          670  +	harris)
          671  +		basic_machine=m88k-harris
          672  +		os=-sysv3
          673  +		;;
          674  +	hp300-*)
          675  +		basic_machine=m68k-hp
          676  +		;;
          677  +	hp300bsd)
          678  +		basic_machine=m68k-hp
          679  +		os=-bsd
          680  +		;;
          681  +	hp300hpux)
          682  +		basic_machine=m68k-hp
          683  +		os=-hpux
          684  +		;;
          685  +	hp3k9[0-9][0-9] | hp9[0-9][0-9])
          686  +		basic_machine=hppa1.0-hp
          687  +		;;
          688  +	hp9k2[0-9][0-9] | hp9k31[0-9])
          689  +		basic_machine=m68000-hp
          690  +		;;
          691  +	hp9k3[2-9][0-9])
          692  +		basic_machine=m68k-hp
          693  +		;;
          694  +	hp9k6[0-9][0-9] | hp6[0-9][0-9])
          695  +		basic_machine=hppa1.0-hp
          696  +		;;
          697  +	hp9k7[0-79][0-9] | hp7[0-79][0-9])
          698  +		basic_machine=hppa1.1-hp
          699  +		;;
          700  +	hp9k78[0-9] | hp78[0-9])
          701  +		# FIXME: really hppa2.0-hp
          702  +		basic_machine=hppa1.1-hp
          703  +		;;
          704  +	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
          705  +		# FIXME: really hppa2.0-hp
          706  +		basic_machine=hppa1.1-hp
          707  +		;;
          708  +	hp9k8[0-9][13679] | hp8[0-9][13679])
          709  +		basic_machine=hppa1.1-hp
          710  +		;;
          711  +	hp9k8[0-9][0-9] | hp8[0-9][0-9])
          712  +		basic_machine=hppa1.0-hp
          713  +		;;
          714  +	hppa-next)
          715  +		os=-nextstep3
          716  +		;;
          717  +	hppaosf)
          718  +		basic_machine=hppa1.1-hp
          719  +		os=-osf
          720  +		;;
          721  +	hppro)
          722  +		basic_machine=hppa1.1-hp
          723  +		os=-proelf
          724  +		;;
          725  +	i370-ibm* | ibm*)
          726  +		basic_machine=i370-ibm
          727  +		;;
          728  +	i*86v32)
          729  +		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
          730  +		os=-sysv32
          731  +		;;
          732  +	i*86v4*)
          733  +		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
          734  +		os=-sysv4
          735  +		;;
          736  +	i*86v)
          737  +		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
          738  +		os=-sysv
          739  +		;;
          740  +	i*86sol2)
          741  +		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
          742  +		os=-solaris2
          743  +		;;
          744  +	i386mach)
          745  +		basic_machine=i386-mach
          746  +		os=-mach
          747  +		;;
          748  +	i386-vsta | vsta)
          749  +		basic_machine=i386-unknown
          750  +		os=-vsta
          751  +		;;
          752  +	iris | iris4d)
          753  +		basic_machine=mips-sgi
          754  +		case $os in
          755  +		    -irix*)
          756  +			;;
          757  +		    *)
          758  +			os=-irix4
          759  +			;;
          760  +		esac
          761  +		;;
          762  +	isi68 | isi)
          763  +		basic_machine=m68k-isi
          764  +		os=-sysv
          765  +		;;
          766  +	m68knommu)
          767  +		basic_machine=m68k-unknown
          768  +		os=-linux
          769  +		;;
          770  +	m68knommu-*)
          771  +		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
          772  +		os=-linux
          773  +		;;
          774  +	m88k-omron*)
          775  +		basic_machine=m88k-omron
          776  +		;;
          777  +	magnum | m3230)
          778  +		basic_machine=mips-mips
          779  +		os=-sysv
          780  +		;;
          781  +	merlin)
          782  +		basic_machine=ns32k-utek
          783  +		os=-sysv
          784  +		;;
          785  +	microblaze)
          786  +		basic_machine=microblaze-xilinx
          787  +		;;
          788  +	mingw32)
          789  +		basic_machine=i386-pc
          790  +		os=-mingw32
          791  +		;;
          792  +	mingw32ce)
          793  +		basic_machine=arm-unknown
          794  +		os=-mingw32ce
          795  +		;;
          796  +	miniframe)
          797  +		basic_machine=m68000-convergent
          798  +		;;
          799  +	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
          800  +		basic_machine=m68k-atari
          801  +		os=-mint
          802  +		;;
          803  +	mips3*-*)
          804  +		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
          805  +		;;
          806  +	mips3*)
          807  +		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
          808  +		;;
          809  +	monitor)
          810  +		basic_machine=m68k-rom68k
          811  +		os=-coff
          812  +		;;
          813  +	morphos)
          814  +		basic_machine=powerpc-unknown
          815  +		os=-morphos
          816  +		;;
          817  +	msdos)
          818  +		basic_machine=i386-pc
          819  +		os=-msdos
          820  +		;;
          821  +	ms1-*)
          822  +		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
          823  +		;;
          824  +	msys)
          825  +		basic_machine=i386-pc
          826  +		os=-msys
          827  +		;;
          828  +	mvs)
          829  +		basic_machine=i370-ibm
          830  +		os=-mvs
          831  +		;;
          832  +	nacl)
          833  +		basic_machine=le32-unknown
          834  +		os=-nacl
          835  +		;;
          836  +	ncr3000)
          837  +		basic_machine=i486-ncr
          838  +		os=-sysv4
          839  +		;;
          840  +	netbsd386)
          841  +		basic_machine=i386-unknown
          842  +		os=-netbsd
          843  +		;;
          844  +	netwinder)
          845  +		basic_machine=armv4l-rebel
          846  +		os=-linux
          847  +		;;
          848  +	news | news700 | news800 | news900)
          849  +		basic_machine=m68k-sony
          850  +		os=-newsos
          851  +		;;
          852  +	news1000)
          853  +		basic_machine=m68030-sony
          854  +		os=-newsos
          855  +		;;
          856  +	news-3600 | risc-news)
          857  +		basic_machine=mips-sony
          858  +		os=-newsos
          859  +		;;
          860  +	necv70)
          861  +		basic_machine=v70-nec
          862  +		os=-sysv
          863  +		;;
          864  +	next | m*-next )
          865  +		basic_machine=m68k-next
          866  +		case $os in
          867  +		    -nextstep* )
          868  +			;;
          869  +		    -ns2*)
          870  +		      os=-nextstep2
          871  +			;;
          872  +		    *)
          873  +		      os=-nextstep3
          874  +			;;
          875  +		esac
          876  +		;;
          877  +	nh3000)
          878  +		basic_machine=m68k-harris
          879  +		os=-cxux
          880  +		;;
          881  +	nh[45]000)
          882  +		basic_machine=m88k-harris
          883  +		os=-cxux
          884  +		;;
          885  +	nindy960)
          886  +		basic_machine=i960-intel
          887  +		os=-nindy
          888  +		;;
          889  +	mon960)
          890  +		basic_machine=i960-intel
          891  +		os=-mon960
          892  +		;;
          893  +	nonstopux)
          894  +		basic_machine=mips-compaq
          895  +		os=-nonstopux
          896  +		;;
          897  +	np1)
          898  +		basic_machine=np1-gould
          899  +		;;
          900  +	neo-tandem)
          901  +		basic_machine=neo-tandem
          902  +		;;
          903  +	nse-tandem)
          904  +		basic_machine=nse-tandem
          905  +		;;
          906  +	nsr-tandem)
          907  +		basic_machine=nsr-tandem
          908  +		;;
          909  +	op50n-* | op60c-*)
          910  +		basic_machine=hppa1.1-oki
          911  +		os=-proelf
          912  +		;;
          913  +	openrisc | openrisc-*)
          914  +		basic_machine=or32-unknown
          915  +		;;
          916  +	os400)
          917  +		basic_machine=powerpc-ibm
          918  +		os=-os400
          919  +		;;
          920  +	OSE68000 | ose68000)
          921  +		basic_machine=m68000-ericsson
          922  +		os=-ose
          923  +		;;
          924  +	os68k)
          925  +		basic_machine=m68k-none
          926  +		os=-os68k
          927  +		;;
          928  +	pa-hitachi)
          929  +		basic_machine=hppa1.1-hitachi
          930  +		os=-hiuxwe2
          931  +		;;
          932  +	paragon)
          933  +		basic_machine=i860-intel
          934  +		os=-osf
          935  +		;;
          936  +	parisc)
          937  +		basic_machine=hppa-unknown
          938  +		os=-linux
          939  +		;;
          940  +	parisc-*)
          941  +		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
          942  +		os=-linux
          943  +		;;
          944  +	pbd)
          945  +		basic_machine=sparc-tti
          946  +		;;
          947  +	pbb)
          948  +		basic_machine=m68k-tti
          949  +		;;
          950  +	pc532 | pc532-*)
          951  +		basic_machine=ns32k-pc532
          952  +		;;
          953  +	pc98)
          954  +		basic_machine=i386-pc
          955  +		;;
          956  +	pc98-*)
          957  +		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
          958  +		;;
          959  +	pentium | p5 | k5 | k6 | nexgen | viac3)
          960  +		basic_machine=i586-pc
          961  +		;;
          962  +	pentiumpro | p6 | 6x86 | athlon | athlon_*)
          963  +		basic_machine=i686-pc
          964  +		;;
          965  +	pentiumii | pentium2 | pentiumiii | pentium3)
          966  +		basic_machine=i686-pc
          967  +		;;
          968  +	pentium4)
          969  +		basic_machine=i786-pc
          970  +		;;
          971  +	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
          972  +		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
          973  +		;;
          974  +	pentiumpro-* | p6-* | 6x86-* | athlon-*)
          975  +		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
          976  +		;;
          977  +	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
          978  +		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
          979  +		;;
          980  +	pentium4-*)
          981  +		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
          982  +		;;
          983  +	pn)
          984  +		basic_machine=pn-gould
          985  +		;;
          986  +	power)	basic_machine=power-ibm
          987  +		;;
          988  +	ppc | ppcbe)	basic_machine=powerpc-unknown
          989  +		;;
          990  +	ppc-* | ppcbe-*)
          991  +		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
          992  +		;;
          993  +	ppcle | powerpclittle | ppc-le | powerpc-little)
          994  +		basic_machine=powerpcle-unknown
          995  +		;;
          996  +	ppcle-* | powerpclittle-*)
          997  +		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
          998  +		;;
          999  +	ppc64)	basic_machine=powerpc64-unknown
         1000  +		;;
         1001  +	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
         1002  +		;;
         1003  +	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
         1004  +		basic_machine=powerpc64le-unknown
         1005  +		;;
         1006  +	ppc64le-* | powerpc64little-*)
         1007  +		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
         1008  +		;;
         1009  +	ps2)
         1010  +		basic_machine=i386-ibm
         1011  +		;;
         1012  +	pw32)
         1013  +		basic_machine=i586-unknown
         1014  +		os=-pw32
         1015  +		;;
         1016  +	rdos)
         1017  +		basic_machine=i386-pc
         1018  +		os=-rdos
         1019  +		;;
         1020  +	rom68k)
         1021  +		basic_machine=m68k-rom68k
         1022  +		os=-coff
         1023  +		;;
         1024  +	rm[46]00)
         1025  +		basic_machine=mips-siemens
         1026  +		;;
         1027  +	rtpc | rtpc-*)
         1028  +		basic_machine=romp-ibm
         1029  +		;;
         1030  +	s390 | s390-*)
         1031  +		basic_machine=s390-ibm
         1032  +		;;
         1033  +	s390x | s390x-*)
         1034  +		basic_machine=s390x-ibm
         1035  +		;;
         1036  +	sa29200)
         1037  +		basic_machine=a29k-amd
         1038  +		os=-udi
         1039  +		;;
         1040  +	sb1)
         1041  +		basic_machine=mipsisa64sb1-unknown
         1042  +		;;
         1043  +	sb1el)
         1044  +		basic_machine=mipsisa64sb1el-unknown
         1045  +		;;
         1046  +	sde)
         1047  +		basic_machine=mipsisa32-sde
         1048  +		os=-elf
         1049  +		;;
         1050  +	sei)
         1051  +		basic_machine=mips-sei
         1052  +		os=-seiux
         1053  +		;;
         1054  +	sequent)
         1055  +		basic_machine=i386-sequent
         1056  +		;;
         1057  +	sh)
         1058  +		basic_machine=sh-hitachi
         1059  +		os=-hms
         1060  +		;;
         1061  +	sh5el)
         1062  +		basic_machine=sh5le-unknown
         1063  +		;;
         1064  +	sh64)
         1065  +		basic_machine=sh64-unknown
         1066  +		;;
         1067  +	sparclite-wrs | simso-wrs)
         1068  +		basic_machine=sparclite-wrs
         1069  +		os=-vxworks
         1070  +		;;
         1071  +	sps7)
         1072  +		basic_machine=m68k-bull
         1073  +		os=-sysv2
         1074  +		;;
         1075  +	spur)
         1076  +		basic_machine=spur-unknown
         1077  +		;;
         1078  +	st2000)
         1079  +		basic_machine=m68k-tandem
         1080  +		;;
         1081  +	stratus)
         1082  +		basic_machine=i860-stratus
         1083  +		os=-sysv4
         1084  +		;;
         1085  +	strongarm-* | thumb-*)
         1086  +		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
         1087  +		;;
         1088  +	sun2)
         1089  +		basic_machine=m68000-sun
         1090  +		;;
         1091  +	sun2os3)
         1092  +		basic_machine=m68000-sun
         1093  +		os=-sunos3
         1094  +		;;
         1095  +	sun2os4)
         1096  +		basic_machine=m68000-sun
         1097  +		os=-sunos4
         1098  +		;;
         1099  +	sun3os3)
         1100  +		basic_machine=m68k-sun
         1101  +		os=-sunos3
         1102  +		;;
         1103  +	sun3os4)
         1104  +		basic_machine=m68k-sun
         1105  +		os=-sunos4
         1106  +		;;
         1107  +	sun4os3)
         1108  +		basic_machine=sparc-sun
         1109  +		os=-sunos3
         1110  +		;;
         1111  +	sun4os4)
         1112  +		basic_machine=sparc-sun
         1113  +		os=-sunos4
         1114  +		;;
         1115  +	sun4sol2)
         1116  +		basic_machine=sparc-sun
         1117  +		os=-solaris2
         1118  +		;;
         1119  +	sun3 | sun3-*)
         1120  +		basic_machine=m68k-sun
         1121  +		;;
         1122  +	sun4)
         1123  +		basic_machine=sparc-sun
         1124  +		;;
         1125  +	sun386 | sun386i | roadrunner)
         1126  +		basic_machine=i386-sun
         1127  +		;;
         1128  +	sv1)
         1129  +		basic_machine=sv1-cray
         1130  +		os=-unicos
         1131  +		;;
         1132  +	symmetry)
         1133  +		basic_machine=i386-sequent
         1134  +		os=-dynix
         1135  +		;;
         1136  +	t3e)
         1137  +		basic_machine=alphaev5-cray
         1138  +		os=-unicos
         1139  +		;;
         1140  +	t90)
         1141  +		basic_machine=t90-cray
         1142  +		os=-unicos
         1143  +		;;
         1144  +	tile*)
         1145  +		basic_machine=$basic_machine-unknown
         1146  +		os=-linux-gnu
         1147  +		;;
         1148  +	tx39)
         1149  +		basic_machine=mipstx39-unknown
         1150  +		;;
         1151  +	tx39el)
         1152  +		basic_machine=mipstx39el-unknown
         1153  +		;;
         1154  +	toad1)
         1155  +		basic_machine=pdp10-xkl
         1156  +		os=-tops20
         1157  +		;;
         1158  +	tower | tower-32)
         1159  +		basic_machine=m68k-ncr
         1160  +		;;
         1161  +	tpf)
         1162  +		basic_machine=s390x-ibm
         1163  +		os=-tpf
         1164  +		;;
         1165  +	udi29k)
         1166  +		basic_machine=a29k-amd
         1167  +		os=-udi
         1168  +		;;
         1169  +	ultra3)
         1170  +		basic_machine=a29k-nyu
         1171  +		os=-sym1
         1172  +		;;
         1173  +	v810 | necv810)
         1174  +		basic_machine=v810-nec
         1175  +		os=-none
         1176  +		;;
         1177  +	vaxv)
         1178  +		basic_machine=vax-dec
         1179  +		os=-sysv
         1180  +		;;
         1181  +	vms)
         1182  +		basic_machine=vax-dec
         1183  +		os=-vms
         1184  +		;;
         1185  +	vpp*|vx|vx-*)
         1186  +		basic_machine=f301-fujitsu
         1187  +		;;
         1188  +	vxworks960)
         1189  +		basic_machine=i960-wrs
         1190  +		os=-vxworks
         1191  +		;;
         1192  +	vxworks68)
         1193  +		basic_machine=m68k-wrs
         1194  +		os=-vxworks
         1195  +		;;
         1196  +	vxworks29k)
         1197  +		basic_machine=a29k-wrs
         1198  +		os=-vxworks
         1199  +		;;
         1200  +	w65*)
         1201  +		basic_machine=w65-wdc
         1202  +		os=-none
         1203  +		;;
         1204  +	w89k-*)
         1205  +		basic_machine=hppa1.1-winbond
         1206  +		os=-proelf
         1207  +		;;
         1208  +	xbox)
         1209  +		basic_machine=i686-pc
         1210  +		os=-mingw32
         1211  +		;;
         1212  +	xps | xps100)
         1213  +		basic_machine=xps100-honeywell
         1214  +		;;
         1215  +	xscale-* | xscalee[bl]-*)
         1216  +		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
         1217  +		;;
         1218  +	ymp)
         1219  +		basic_machine=ymp-cray
         1220  +		os=-unicos
         1221  +		;;
         1222  +	z8k-*-coff)
         1223  +		basic_machine=z8k-unknown
         1224  +		os=-sim
         1225  +		;;
         1226  +	z80-*-coff)
         1227  +		basic_machine=z80-unknown
         1228  +		os=-sim
         1229  +		;;
         1230  +	none)
         1231  +		basic_machine=none-none
         1232  +		os=-none
         1233  +		;;
         1234  +
         1235  +# Here we handle the default manufacturer of certain CPU types.  It is in
         1236  +# some cases the only manufacturer, in others, it is the most popular.
         1237  +	w89k)
         1238  +		basic_machine=hppa1.1-winbond
         1239  +		;;
         1240  +	op50n)
         1241  +		basic_machine=hppa1.1-oki
         1242  +		;;
         1243  +	op60c)
         1244  +		basic_machine=hppa1.1-oki
         1245  +		;;
         1246  +	romp)
         1247  +		basic_machine=romp-ibm
         1248  +		;;
         1249  +	mmix)
         1250  +		basic_machine=mmix-knuth
         1251  +		;;
         1252  +	rs6000)
         1253  +		basic_machine=rs6000-ibm
         1254  +		;;
         1255  +	vax)
         1256  +		basic_machine=vax-dec
         1257  +		;;
         1258  +	pdp10)
         1259  +		# there are many clones, so DEC is not a safe bet
         1260  +		basic_machine=pdp10-unknown
         1261  +		;;
         1262  +	pdp11)
         1263  +		basic_machine=pdp11-dec
         1264  +		;;
         1265  +	we32k)
         1266  +		basic_machine=we32k-att
         1267  +		;;
         1268  +	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
         1269  +		basic_machine=sh-unknown
         1270  +		;;
         1271  +	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
         1272  +		basic_machine=sparc-sun
         1273  +		;;
         1274  +	cydra)
         1275  +		basic_machine=cydra-cydrome
         1276  +		;;
         1277  +	orion)
         1278  +		basic_machine=orion-highlevel
         1279  +		;;
         1280  +	orion105)
         1281  +		basic_machine=clipper-highlevel
         1282  +		;;
         1283  +	mac | mpw | mac-mpw)
         1284  +		basic_machine=m68k-apple
         1285  +		;;
         1286  +	pmac | pmac-mpw)
         1287  +		basic_machine=powerpc-apple
         1288  +		;;
         1289  +	*-unknown)
         1290  +		# Make sure to match an already-canonicalized machine name.
         1291  +		;;
         1292  +	*)
         1293  +		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
         1294  +		exit 1
         1295  +		;;
         1296  +esac
         1297  +
         1298  +# Here we canonicalize certain aliases for manufacturers.
         1299  +case $basic_machine in
         1300  +	*-digital*)
         1301  +		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
         1302  +		;;
         1303  +	*-commodore*)
         1304  +		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
         1305  +		;;
         1306  +	*)
         1307  +		;;
         1308  +esac
         1309  +
         1310  +# Decode manufacturer-specific aliases for certain operating systems.
         1311  +
         1312  +if [ x"$os" != x"" ]
         1313  +then
         1314  +case $os in
         1315  +	# First match some system type aliases
         1316  +	# that might get confused with valid system types.
         1317  +	# -solaris* is a basic system type, with this one exception.
         1318  +	-auroraux)
         1319  +		os=-auroraux
         1320  +		;;
         1321  +	-solaris1 | -solaris1.*)
         1322  +		os=`echo $os | sed -e 's|solaris1|sunos4|'`
         1323  +		;;
         1324  +	-solaris)
         1325  +		os=-solaris2
         1326  +		;;
         1327  +	-svr4*)
         1328  +		os=-sysv4
         1329  +		;;
         1330  +	-unixware*)
         1331  +		os=-sysv4.2uw
         1332  +		;;
         1333  +	-gnu/linux*)
         1334  +		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
         1335  +		;;
         1336  +	# First accept the basic system types.
         1337  +	# The portable systems comes first.
         1338  +	# Each alternative MUST END IN A *, to match a version number.
         1339  +	# -sysv* is not here because it comes later, after sysvr4.
         1340  +	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
         1341  +	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
         1342  +	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
         1343  +	      | -sym* | -kopensolaris* \
         1344  +	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
         1345  +	      | -aos* | -aros* \
         1346  +	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
         1347  +	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
         1348  +	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
         1349  +	      | -openbsd* | -solidbsd* \
         1350  +	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
         1351  +	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
         1352  +	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
         1353  +	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
         1354  +	      | -chorusos* | -chorusrdb* | -cegcc* \
         1355  +	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
         1356  +	      | -mingw32* | -linux-gnu* | -linux-android* \
         1357  +	      | -linux-newlib* | -linux-uclibc* \
         1358  +	      | -uxpv* | -beos* | -mpeix* | -udk* \
         1359  +	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
         1360  +	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
         1361  +	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
         1362  +	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
         1363  +	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
         1364  +	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
         1365  +	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
         1366  +	# Remember, each alternative MUST END IN *, to match a version number.
         1367  +		;;
         1368  +	-qnx*)
         1369  +		case $basic_machine in
         1370  +		    x86-* | i*86-*)
         1371  +			;;
         1372  +		    *)
         1373  +			os=-nto$os
         1374  +			;;
         1375  +		esac
         1376  +		;;
         1377  +	-nto-qnx*)
         1378  +		;;
         1379  +	-nto*)
         1380  +		os=`echo $os | sed -e 's|nto|nto-qnx|'`
         1381  +		;;
         1382  +	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
         1383  +	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
         1384  +	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
         1385  +		;;
         1386  +	-mac*)
         1387  +		os=`echo $os | sed -e 's|mac|macos|'`
         1388  +		;;
         1389  +	-linux-dietlibc)
         1390  +		os=-linux-dietlibc
         1391  +		;;
         1392  +	-linux*)
         1393  +		os=`echo $os | sed -e 's|linux|linux-gnu|'`
         1394  +		;;
         1395  +	-sunos5*)
         1396  +		os=`echo $os | sed -e 's|sunos5|solaris2|'`
         1397  +		;;
         1398  +	-sunos6*)
         1399  +		os=`echo $os | sed -e 's|sunos6|solaris3|'`
         1400  +		;;
         1401  +	-opened*)
         1402  +		os=-openedition
         1403  +		;;
         1404  +	-os400*)
         1405  +		os=-os400
         1406  +		;;
         1407  +	-wince*)
         1408  +		os=-wince
         1409  +		;;
         1410  +	-osfrose*)
         1411  +		os=-osfrose
         1412  +		;;
         1413  +	-osf*)
         1414  +		os=-osf
         1415  +		;;
         1416  +	-utek*)
         1417  +		os=-bsd
         1418  +		;;
         1419  +	-dynix*)
         1420  +		os=-bsd
         1421  +		;;
         1422  +	-acis*)
         1423  +		os=-aos
         1424  +		;;
         1425  +	-atheos*)
         1426  +		os=-atheos
         1427  +		;;
         1428  +	-syllable*)
         1429  +		os=-syllable
         1430  +		;;
         1431  +	-386bsd)
         1432  +		os=-bsd
         1433  +		;;
         1434  +	-ctix* | -uts*)
         1435  +		os=-sysv
         1436  +		;;
         1437  +	-nova*)
         1438  +		os=-rtmk-nova
         1439  +		;;
         1440  +	-ns2 )
         1441  +		os=-nextstep2
         1442  +		;;
         1443  +	-nsk*)
         1444  +		os=-nsk
         1445  +		;;
         1446  +	# Preserve the version number of sinix5.
         1447  +	-sinix5.*)
         1448  +		os=`echo $os | sed -e 's|sinix|sysv|'`
         1449  +		;;
         1450  +	-sinix*)
         1451  +		os=-sysv4
         1452  +		;;
         1453  +	-tpf*)
         1454  +		os=-tpf
         1455  +		;;
         1456  +	-triton*)
         1457  +		os=-sysv3
         1458  +		;;
         1459  +	-oss*)
         1460  +		os=-sysv3
         1461  +		;;
         1462  +	-svr4)
         1463  +		os=-sysv4
         1464  +		;;
         1465  +	-svr3)
         1466  +		os=-sysv3
         1467  +		;;
         1468  +	-sysvr4)
         1469  +		os=-sysv4
         1470  +		;;
         1471  +	# This must come after -sysvr4.
         1472  +	-sysv*)
         1473  +		;;
         1474  +	-ose*)
         1475  +		os=-ose
         1476  +		;;
         1477  +	-es1800*)
         1478  +		os=-ose
         1479  +		;;
         1480  +	-xenix)
         1481  +		os=-xenix
         1482  +		;;
         1483  +	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
         1484  +		os=-mint
         1485  +		;;
         1486  +	-aros*)
         1487  +		os=-aros
         1488  +		;;
         1489  +	-kaos*)
         1490  +		os=-kaos
         1491  +		;;
         1492  +	-zvmoe)
         1493  +		os=-zvmoe
         1494  +		;;
         1495  +	-dicos*)
         1496  +		os=-dicos
         1497  +		;;
         1498  +	-nacl*)
         1499  +		;;
         1500  +	-none)
         1501  +		;;
         1502  +	*)
         1503  +		# Get rid of the `-' at the beginning of $os.
         1504  +		os=`echo $os | sed 's/[^-]*-//'`
         1505  +		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
         1506  +		exit 1
         1507  +		;;
         1508  +esac
         1509  +else
         1510  +
         1511  +# Here we handle the default operating systems that come with various machines.
         1512  +# The value should be what the vendor currently ships out the door with their
         1513  +# machine or put another way, the most popular os provided with the machine.
         1514  +
         1515  +# Note that if you're going to try to match "-MANUFACTURER" here (say,
         1516  +# "-sun"), then you have to tell the case statement up towards the top
         1517  +# that MANUFACTURER isn't an operating system.  Otherwise, code above
         1518  +# will signal an error saying that MANUFACTURER isn't an operating
         1519  +# system, and we'll never get to this point.
         1520  +
         1521  +case $basic_machine in
         1522  +	score-*)
         1523  +		os=-elf
         1524  +		;;
         1525  +	spu-*)
         1526  +		os=-elf
         1527  +		;;
         1528  +	*-acorn)
         1529  +		os=-riscix1.2
         1530  +		;;
         1531  +	arm*-rebel)
         1532  +		os=-linux
         1533  +		;;
         1534  +	arm*-semi)
         1535  +		os=-aout
         1536  +		;;
         1537  +	c4x-* | tic4x-*)
         1538  +		os=-coff
         1539  +		;;
         1540  +	tic54x-*)
         1541  +		os=-coff
         1542  +		;;
         1543  +	tic55x-*)
         1544  +		os=-coff
         1545  +		;;
         1546  +	tic6x-*)
         1547  +		os=-coff
         1548  +		;;
         1549  +	# This must come before the *-dec entry.
         1550  +	pdp10-*)
         1551  +		os=-tops20
         1552  +		;;
         1553  +	pdp11-*)
         1554  +		os=-none
         1555  +		;;
         1556  +	*-dec | vax-*)
         1557  +		os=-ultrix4.2
         1558  +		;;
         1559  +	m68*-apollo)
         1560  +		os=-domain
         1561  +		;;
         1562  +	i386-sun)
         1563  +		os=-sunos4.0.2
         1564  +		;;
         1565  +	m68000-sun)
         1566  +		os=-sunos3
         1567  +		;;
         1568  +	m68*-cisco)
         1569  +		os=-aout
         1570  +		;;
         1571  +	mep-*)
         1572  +		os=-elf
         1573  +		;;
         1574  +	mips*-cisco)
         1575  +		os=-elf
         1576  +		;;
         1577  +	mips*-*)
         1578  +		os=-elf
         1579  +		;;
         1580  +	or32-*)
         1581  +		os=-coff
         1582  +		;;
         1583  +	*-tti)	# must be before sparc entry or we get the wrong os.
         1584  +		os=-sysv3
         1585  +		;;
         1586  +	sparc-* | *-sun)
         1587  +		os=-sunos4.1.1
         1588  +		;;
         1589  +	*-be)
         1590  +		os=-beos
         1591  +		;;
         1592  +	*-haiku)
         1593  +		os=-haiku
         1594  +		;;
         1595  +	*-ibm)
         1596  +		os=-aix
         1597  +		;;
         1598  +	*-knuth)
         1599  +		os=-mmixware
         1600  +		;;
         1601  +	*-wec)
         1602  +		os=-proelf
         1603  +		;;
         1604  +	*-winbond)
         1605  +		os=-proelf
         1606  +		;;
         1607  +	*-oki)
         1608  +		os=-proelf
         1609  +		;;
         1610  +	*-hp)
         1611  +		os=-hpux
         1612  +		;;
         1613  +	*-hitachi)
         1614  +		os=-hiux
         1615  +		;;
         1616  +	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
         1617  +		os=-sysv
         1618  +		;;
         1619  +	*-cbm)
         1620  +		os=-amigaos
         1621  +		;;
         1622  +	*-dg)
         1623  +		os=-dgux
         1624  +		;;
         1625  +	*-dolphin)
         1626  +		os=-sysv3
         1627  +		;;
         1628  +	m68k-ccur)
         1629  +		os=-rtu
         1630  +		;;
         1631  +	m88k-omron*)
         1632  +		os=-luna
         1633  +		;;
         1634  +	*-next )
         1635  +		os=-nextstep
         1636  +		;;
         1637  +	*-sequent)
         1638  +		os=-ptx
         1639  +		;;
         1640  +	*-crds)
         1641  +		os=-unos
         1642  +		;;
         1643  +	*-ns)
         1644  +		os=-genix
         1645  +		;;
         1646  +	i370-*)
         1647  +		os=-mvs
         1648  +		;;
         1649  +	*-next)
         1650  +		os=-nextstep3
         1651  +		;;
         1652  +	*-gould)
         1653  +		os=-sysv
         1654  +		;;
         1655  +	*-highlevel)
         1656  +		os=-bsd
         1657  +		;;
         1658  +	*-encore)
         1659  +		os=-bsd
         1660  +		;;
         1661  +	*-sgi)
         1662  +		os=-irix
         1663  +		;;
         1664  +	*-siemens)
         1665  +		os=-sysv4
         1666  +		;;
         1667  +	*-masscomp)
         1668  +		os=-rtu
         1669  +		;;
         1670  +	f30[01]-fujitsu | f700-fujitsu)
         1671  +		os=-uxpv
         1672  +		;;
         1673  +	*-rom68k)
         1674  +		os=-coff
         1675  +		;;
         1676  +	*-*bug)
         1677  +		os=-coff
         1678  +		;;
         1679  +	*-apple)
         1680  +		os=-macos
         1681  +		;;
         1682  +	*-atari*)
         1683  +		os=-mint
         1684  +		;;
         1685  +	*)
         1686  +		os=-none
         1687  +		;;
         1688  +esac
         1689  +fi
         1690  +
         1691  +# Here we handle the case where we know the os, and the CPU type, but not the
         1692  +# manufacturer.  We pick the logical manufacturer.
         1693  +vendor=unknown
         1694  +case $basic_machine in
         1695  +	*-unknown)
         1696  +		case $os in
         1697  +			-riscix*)
         1698  +				vendor=acorn
         1699  +				;;
         1700  +			-sunos*)
         1701  +				vendor=sun
         1702  +				;;
         1703  +			-cnk*|-aix*)
         1704  +				vendor=ibm
         1705  +				;;
         1706  +			-beos*)
         1707  +				vendor=be
         1708  +				;;
         1709  +			-hpux*)
         1710  +				vendor=hp
         1711  +				;;
         1712  +			-mpeix*)
         1713  +				vendor=hp
         1714  +				;;
         1715  +			-hiux*)
         1716  +				vendor=hitachi
         1717  +				;;
         1718  +			-unos*)
         1719  +				vendor=crds
         1720  +				;;
         1721  +			-dgux*)
         1722  +				vendor=dg
         1723  +				;;
         1724  +			-luna*)
         1725  +				vendor=omron
         1726  +				;;
         1727  +			-genix*)
         1728  +				vendor=ns
         1729  +				;;
         1730  +			-mvs* | -opened*)
         1731  +				vendor=ibm
         1732  +				;;
         1733  +			-os400*)
         1734  +				vendor=ibm
         1735  +				;;
         1736  +			-ptx*)
         1737  +				vendor=sequent
         1738  +				;;
         1739  +			-tpf*)
         1740  +				vendor=ibm
         1741  +				;;
         1742  +			-vxsim* | -vxworks* | -windiss*)
         1743  +				vendor=wrs
         1744  +				;;
         1745  +			-aux*)
         1746  +				vendor=apple
         1747  +				;;
         1748  +			-hms*)
         1749  +				vendor=hitachi
         1750  +				;;
         1751  +			-mpw* | -macos*)
         1752  +				vendor=apple
         1753  +				;;
         1754  +			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
         1755  +				vendor=atari
         1756  +				;;
         1757  +			-vos*)
         1758  +				vendor=stratus
         1759  +				;;
         1760  +		esac
         1761  +		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
         1762  +		;;
         1763  +esac
         1764  +
         1765  +echo $basic_machine$os
         1766  +exit
         1767  +
         1768  +# Local variables:
         1769  +# eval: (add-hook 'write-file-hooks 'time-stamp)
         1770  +# time-stamp-start: "timestamp='"
         1771  +# time-stamp-format: "%:y-%02m-%02d"
         1772  +# time-stamp-end: "'"
         1773  +# End:

Added autoconf/configure.ac.

            1  +
            2  +#-----------------------------------------------------------------------
            3  +# Supports the following non-standard switches.
            4  +#
            5  +#   --enable-threadsafe
            6  +#   --enable-readline
            7  +#   --enable-dynamic-extensions
            8  +#
            9  +
           10  +AC_PREREQ(2.61)
           11  +AC_INIT(sqlite, 3.7.5, http://www.sqlite.org)
           12  +AC_CONFIG_SRCDIR([sqlite3.c])
           13  +
           14  +# Use automake.
           15  +AM_INIT_AUTOMAKE([foreign])
           16  +
           17  +AC_SYS_LARGEFILE
           18  +
           19  +# Check for required programs.
           20  +AC_PROG_CC
           21  +AC_PROG_RANLIB
           22  +AC_PROG_LIBTOOL
           23  +AC_PROG_MKDIR_P
           24  +
           25  +# Check for library functions that SQLite can optionally use.
           26  +AC_CHECK_FUNCS([fdatasync usleep fullfsync localtime_r gmtime_r])
           27  +AC_FUNC_STRERROR_R
           28  +
           29  +AC_CONFIG_FILES([Makefile sqlite3.pc])
           30  +AC_SUBST(BUILD_CFLAGS)
           31  +
           32  +#-----------------------------------------------------------------------
           33  +#   --enable-readline
           34  +#
           35  +AC_ARG_ENABLE(readline, [AS_HELP_STRING(
           36  +  [--enable-readline], 
           37  +  [use readline in shell tool (yes, no) [default=yes]])], 
           38  +  [], [enable_readline=yes])
           39  +if test x"$enable_readline" != xno ; then
           40  +  sLIBS=$LIBS
           41  +  LIBS=""
           42  +  AC_SEARCH_LIBS(tgetent, curses ncurses ncursesw, [], [])
           43  +  AC_SEARCH_LIBS(readline, readline, [], [enable_readline=no])
           44  +  AC_CHECK_FUNCS(readline, [], [])
           45  +  READLINE_LIBS=$LIBS
           46  +  LIBS=$sLIBS
           47  +fi
           48  +AC_SUBST(READLINE_LIBS)
           49  +#-----------------------------------------------------------------------
           50  +
           51  +#-----------------------------------------------------------------------
           52  +#   --enable-threadsafe
           53  +#
           54  +AC_ARG_ENABLE(threadsafe, [AS_HELP_STRING(
           55  +  [--enable-threadsafe], [build a thread-safe library [default=yes]])], 
           56  +  [], [enable_threadsafe=yes])
           57  +THREADSAFE_FLAGS=-DSQLITE_THREADSAFE=0
           58  +if test x"$enable_threadsafe" != "xno"; then
           59  +  THREADSAFE_FLAGS="-D_REENTRANT=1 -DSQLITE_THREADSAFE=1"
           60  +  AC_SEARCH_LIBS(pthread_create, pthread)
           61  +fi
           62  +AC_SUBST(THREADSAFE_FLAGS)
           63  +#-----------------------------------------------------------------------
           64  +
           65  +#-----------------------------------------------------------------------
           66  +#   --enable-dynamic-extensions
           67  +#
           68  +AC_ARG_ENABLE(dynamic-extensions, [AS_HELP_STRING(
           69  +  [--enable-dynamic-extensions], [support loadable extensions [default=yes]])], 
           70  +  [], [enable_dynamic_extensions=yes])
           71  +if test x"$enable_dynamic_extensions" != "xno"; then
           72  +  AC_SEARCH_LIBS(dlopen, dl)
           73  +else
           74  +  DYNAMIC_EXTENSION_FLAGS=-DSQLITE_OMIT_LOAD_EXTENSION=1
           75  +fi
           76  +AC_MSG_CHECKING([for whether to support dynamic extensions])
           77  +AC_MSG_RESULT($enable_dynamic_extensions)
           78  +AC_SUBST(DYNAMIC_EXTENSION_FLAGS)
           79  +#-----------------------------------------------------------------------
           80  +
           81  +AC_CHECK_FUNCS(posix_fallocate)
           82  +
           83  +#-----------------------------------------------------------------------
           84  +# UPDATE: Maybe it's better if users just set CFLAGS before invoking
           85  +# configure. This option doesn't really add much...
           86  +#
           87  +#   --enable-tempstore
           88  +#
           89  +# AC_ARG_ENABLE(tempstore, [AS_HELP_STRING(
           90  +#   [--enable-tempstore], 
           91  +#   [in-memory temporary tables (never, no, yes, always) [default=no]])], 
           92  +#   [], [enable_tempstore=no])
           93  +# AC_MSG_CHECKING([for whether or not to store temp tables in-memory])
           94  +# case "$enable_tempstore" in
           95  +#   never )  TEMP_STORE=0 ;;
           96  +#   no )     TEMP_STORE=1 ;;
           97  +#   always ) TEMP_STORE=3 ;;
           98  +#   yes )    TEMP_STORE=3 ;;
           99  +#   * )
          100  +#     TEMP_STORE=1
          101  +#     enable_tempstore=yes
          102  +#   ;;
          103  +# esac
          104  +# AC_MSG_RESULT($enable_tempstore)
          105  +# AC_SUBST(TEMP_STORE)
          106  +#-----------------------------------------------------------------------
          107  +
          108  +AC_OUTPUT

Added autoconf/depcomp.

            1  +#! /bin/sh
            2  +# depcomp - compile a program generating dependencies as side-effects
            3  +
            4  +scriptversion=2012-03-27.16; # UTC
            5  +
            6  +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
            7  +# 2011, 2012 Free Software Foundation, Inc.
            8  +
            9  +# This program is free software; you can redistribute it and/or modify
           10  +# it under the terms of the GNU General Public License as published by
           11  +# the Free Software Foundation; either version 2, or (at your option)
           12  +# any later version.
           13  +
           14  +# This program is distributed in the hope that it will be useful,
           15  +# but WITHOUT ANY WARRANTY; without even the implied warranty of
           16  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
           17  +# GNU General Public License for more details.
           18  +
           19  +# You should have received a copy of the GNU General Public License
           20  +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
           21  +
           22  +# As a special exception to the GNU General Public License, if you
           23  +# distribute this file as part of a program that contains a
           24  +# configuration script generated by Autoconf, you may include it under
           25  +# the same distribution terms that you use for the rest of that program.
           26  +
           27  +# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
           28  +
           29  +case $1 in
           30  +  '')
           31  +     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
           32  +     exit 1;
           33  +     ;;
           34  +  -h | --h*)
           35  +    cat <<\EOF
           36  +Usage: depcomp [--help] [--version] PROGRAM [ARGS]
           37  +
           38  +Run PROGRAMS ARGS to compile a file, generating dependencies
           39  +as side-effects.
           40  +
           41  +Environment variables:
           42  +  depmode     Dependency tracking mode.
           43  +  source      Source file read by 'PROGRAMS ARGS'.
           44  +  object      Object file output by 'PROGRAMS ARGS'.
           45  +  DEPDIR      directory where to store dependencies.
           46  +  depfile     Dependency file to output.
           47  +  tmpdepfile  Temporary file to use when outputting dependencies.
           48  +  libtool     Whether libtool is used (yes/no).
           49  +
           50  +Report bugs to <bug-automake@gnu.org>.
           51  +EOF
           52  +    exit $?
           53  +    ;;
           54  +  -v | --v*)
           55  +    echo "depcomp $scriptversion"
           56  +    exit $?
           57  +    ;;
           58  +esac
           59  +
           60  +# A tabulation character.
           61  +tab='	'
           62  +# A newline character.
           63  +nl='
           64  +'
           65  +
           66  +if test -z "$depmode" || test -z "$source" || test -z "$object"; then
           67  +  echo "depcomp: Variables source, object and depmode must be set" 1>&2
           68  +  exit 1
           69  +fi
           70  +
           71  +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
           72  +depfile=${depfile-`echo "$object" |
           73  +  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
           74  +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
           75  +
           76  +rm -f "$tmpdepfile"
           77  +
           78  +# Some modes work just like other modes, but use different flags.  We
           79  +# parameterize here, but still list the modes in the big case below,
           80  +# to make depend.m4 easier to write.  Note that we *cannot* use a case
           81  +# here, because this file can only contain one case statement.
           82  +if test "$depmode" = hp; then
           83  +  # HP compiler uses -M and no extra arg.
           84  +  gccflag=-M
           85  +  depmode=gcc
           86  +fi
           87  +
           88  +if test "$depmode" = dashXmstdout; then
           89  +   # This is just like dashmstdout with a different argument.
           90  +   dashmflag=-xM
           91  +   depmode=dashmstdout
           92  +fi
           93  +
           94  +cygpath_u="cygpath -u -f -"
           95  +if test "$depmode" = msvcmsys; then
           96  +   # This is just like msvisualcpp but w/o cygpath translation.
           97  +   # Just convert the backslash-escaped backslashes to single forward
           98  +   # slashes to satisfy depend.m4
           99  +   cygpath_u='sed s,\\\\,/,g'
          100  +   depmode=msvisualcpp
          101  +fi
          102  +
          103  +if test "$depmode" = msvc7msys; then
          104  +   # This is just like msvc7 but w/o cygpath translation.
          105  +   # Just convert the backslash-escaped backslashes to single forward
          106  +   # slashes to satisfy depend.m4
          107  +   cygpath_u='sed s,\\\\,/,g'
          108  +   depmode=msvc7
          109  +fi
          110  +
          111  +if test "$depmode" = xlc; then
          112  +   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
          113  +   gccflag=-qmakedep=gcc,-MF
          114  +   depmode=gcc
          115  +fi
          116  +
          117  +case "$depmode" in
          118  +gcc3)
          119  +## gcc 3 implements dependency tracking that does exactly what
          120  +## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
          121  +## it if -MD -MP comes after the -MF stuff.  Hmm.
          122  +## Unfortunately, FreeBSD c89 acceptance of flags depends upon
          123  +## the command line argument order; so add the flags where they
          124  +## appear in depend2.am.  Note that the slowdown incurred here
          125  +## affects only configure: in makefiles, %FASTDEP% shortcuts this.
          126  +  for arg
          127  +  do
          128  +    case $arg in
          129  +    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
          130  +    *)  set fnord "$@" "$arg" ;;
          131  +    esac
          132  +    shift # fnord
          133  +    shift # $arg
          134  +  done
          135  +  "$@"
          136  +  stat=$?
          137  +  if test $stat -eq 0; then :
          138  +  else
          139  +    rm -f "$tmpdepfile"
          140  +    exit $stat
          141  +  fi
          142  +  mv "$tmpdepfile" "$depfile"
          143  +  ;;
          144  +
          145  +gcc)
          146  +## There are various ways to get dependency output from gcc.  Here's
          147  +## why we pick this rather obscure method:
          148  +## - Don't want to use -MD because we'd like the dependencies to end
          149  +##   up in a subdir.  Having to rename by hand is ugly.
          150  +##   (We might end up doing this anyway to support other compilers.)
          151  +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
          152  +##   -MM, not -M (despite what the docs say).
          153  +## - Using -M directly means running the compiler twice (even worse
          154  +##   than renaming).
          155  +  if test -z "$gccflag"; then
          156  +    gccflag=-MD,
          157  +  fi
          158  +  "$@" -Wp,"$gccflag$tmpdepfile"
          159  +  stat=$?
          160  +  if test $stat -eq 0; then :
          161  +  else
          162  +    rm -f "$tmpdepfile"
          163  +    exit $stat
          164  +  fi
          165  +  rm -f "$depfile"
          166  +  echo "$object : \\" > "$depfile"
          167  +  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
          168  +## The second -e expression handles DOS-style file names with drive letters.
          169  +  sed -e 's/^[^:]*: / /' \
          170  +      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
          171  +## This next piece of magic avoids the "deleted header file" problem.
          172  +## The problem is that when a header file which appears in a .P file
          173  +## is deleted, the dependency causes make to die (because there is
          174  +## typically no way to rebuild the header).  We avoid this by adding
          175  +## dummy dependencies for each header file.  Too bad gcc doesn't do
          176  +## this for us directly.
          177  +  tr ' ' "$nl" < "$tmpdepfile" |
          178  +## Some versions of gcc put a space before the ':'.  On the theory
          179  +## that the space means something, we add a space to the output as
          180  +## well.  hp depmode also adds that space, but also prefixes the VPATH
          181  +## to the object.  Take care to not repeat it in the output.
          182  +## Some versions of the HPUX 10.20 sed can't process this invocation
          183  +## correctly.  Breaking it into two sed invocations is a workaround.
          184  +    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
          185  +      | sed -e 's/$/ :/' >> "$depfile"
          186  +  rm -f "$tmpdepfile"
          187  +  ;;
          188  +
          189  +hp)
          190  +  # This case exists only to let depend.m4 do its work.  It works by
          191  +  # looking at the text of this script.  This case will never be run,
          192  +  # since it is checked for above.
          193  +  exit 1
          194  +  ;;
          195  +
          196  +sgi)
          197  +  if test "$libtool" = yes; then
          198  +    "$@" "-Wp,-MDupdate,$tmpdepfile"
          199  +  else
          200  +    "$@" -MDupdate "$tmpdepfile"
          201  +  fi
          202  +  stat=$?
          203  +  if test $stat -eq 0; then :
          204  +  else
          205  +    rm -f "$tmpdepfile"
          206  +    exit $stat
          207  +  fi
          208  +  rm -f "$depfile"
          209  +
          210  +  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
          211  +    echo "$object : \\" > "$depfile"
          212  +
          213  +    # Clip off the initial element (the dependent).  Don't try to be
          214  +    # clever and replace this with sed code, as IRIX sed won't handle
          215  +    # lines with more than a fixed number of characters (4096 in
          216  +    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
          217  +    # the IRIX cc adds comments like '#:fec' to the end of the
          218  +    # dependency line.
          219  +    tr ' ' "$nl" < "$tmpdepfile" \
          220  +    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
          221  +    tr "$nl" ' ' >> "$depfile"
          222  +    echo >> "$depfile"
          223  +
          224  +    # The second pass generates a dummy entry for each header file.
          225  +    tr ' ' "$nl" < "$tmpdepfile" \
          226  +   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
          227  +   >> "$depfile"
          228  +  else
          229  +    # The sourcefile does not contain any dependencies, so just
          230  +    # store a dummy comment line, to avoid errors with the Makefile
          231  +    # "include basename.Plo" scheme.
          232  +    echo "#dummy" > "$depfile"
          233  +  fi
          234  +  rm -f "$tmpdepfile"
          235  +  ;;
          236  +
          237  +xlc)
          238  +  # This case exists only to let depend.m4 do its work.  It works by
          239  +  # looking at the text of this script.  This case will never be run,
          240  +  # since it is checked for above.
          241  +  exit 1
          242  +  ;;
          243  +
          244  +aix)
          245  +  # The C for AIX Compiler uses -M and outputs the dependencies
          246  +  # in a .u file.  In older versions, this file always lives in the
          247  +  # current directory.  Also, the AIX compiler puts '$object:' at the
          248  +  # start of each line; $object doesn't have directory information.
          249  +  # Version 6 uses the directory in both cases.
          250  +  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
          251  +  test "x$dir" = "x$object" && dir=
          252  +  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
          253  +  if test "$libtool" = yes; then
          254  +    tmpdepfile1=$dir$base.u
          255  +    tmpdepfile2=$base.u
          256  +    tmpdepfile3=$dir.libs/$base.u
          257  +    "$@" -Wc,-M
          258  +  else
          259  +    tmpdepfile1=$dir$base.u
          260  +    tmpdepfile2=$dir$base.u
          261  +    tmpdepfile3=$dir$base.u
          262  +    "$@" -M
          263  +  fi
          264  +  stat=$?
          265  +
          266  +  if test $stat -eq 0; then :
          267  +  else
          268  +    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
          269  +    exit $stat
          270  +  fi
          271  +
          272  +  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
          273  +  do
          274  +    test -f "$tmpdepfile" && break
          275  +  done
          276  +  if test -f "$tmpdepfile"; then
          277  +    # Each line is of the form 'foo.o: dependent.h'.
          278  +    # Do two passes, one to just change these to
          279  +    # '$object: dependent.h' and one to simply 'dependent.h:'.
          280  +    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
          281  +    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
          282  +  else
          283  +    # The sourcefile does not contain any dependencies, so just
          284  +    # store a dummy comment line, to avoid errors with the Makefile
          285  +    # "include basename.Plo" scheme.
          286  +    echo "#dummy" > "$depfile"
          287  +  fi
          288  +  rm -f "$tmpdepfile"
          289  +  ;;
          290  +
          291  +icc)
          292  +  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
          293  +  # However on
          294  +  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
          295  +  # ICC 7.0 will fill foo.d with something like
          296  +  #    foo.o: sub/foo.c
          297  +  #    foo.o: sub/foo.h
          298  +  # which is wrong.  We want
          299  +  #    sub/foo.o: sub/foo.c
          300  +  #    sub/foo.o: sub/foo.h
          301  +  #    sub/foo.c:
          302  +  #    sub/foo.h:
          303  +  # ICC 7.1 will output
          304  +  #    foo.o: sub/foo.c sub/foo.h
          305  +  # and will wrap long lines using '\':
          306  +  #    foo.o: sub/foo.c ... \
          307  +  #     sub/foo.h ... \
          308  +  #     ...
          309  +  # tcc 0.9.26 (FIXME still under development at the moment of writing)
          310  +  # will emit a similar output, but also prepend the continuation lines
          311  +  # with horizontal tabulation characters.
          312  +  "$@" -MD -MF "$tmpdepfile"
          313  +  stat=$?
          314  +  if test $stat -eq 0; then :
          315  +  else
          316  +    rm -f "$tmpdepfile"
          317  +    exit $stat
          318  +  fi
          319  +  rm -f "$depfile"
          320  +  # Each line is of the form 'foo.o: dependent.h',
          321  +  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
          322  +  # Do two passes, one to just change these to
          323  +  # '$object: dependent.h' and one to simply 'dependent.h:'.
          324  +  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
          325  +    < "$tmpdepfile" > "$depfile"
          326  +  sed '
          327  +    s/[ '"$tab"'][ '"$tab"']*/ /g
          328  +    s/^ *//
          329  +    s/ *\\*$//
          330  +    s/^[^:]*: *//
          331  +    /^$/d
          332  +    /:$/d
          333  +    s/$/ :/
          334  +  ' < "$tmpdepfile" >> "$depfile"
          335  +  rm -f "$tmpdepfile"
          336  +  ;;
          337  +
          338  +hp2)
          339  +  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
          340  +  # compilers, which have integrated preprocessors.  The correct option
          341  +  # to use with these is +Maked; it writes dependencies to a file named
          342  +  # 'foo.d', which lands next to the object file, wherever that
          343  +  # happens to be.
          344  +  # Much of this is similar to the tru64 case; see comments there.
          345  +  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
          346  +  test "x$dir" = "x$object" && dir=
          347  +  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
          348  +  if test "$libtool" = yes; then
          349  +    tmpdepfile1=$dir$base.d
          350  +    tmpdepfile2=$dir.libs/$base.d
          351  +    "$@" -Wc,+Maked
          352  +  else
          353  +    tmpdepfile1=$dir$base.d
          354  +    tmpdepfile2=$dir$base.d
          355  +    "$@" +Maked
          356  +  fi
          357  +  stat=$?
          358  +  if test $stat -eq 0; then :
          359  +  else
          360  +     rm -f "$tmpdepfile1" "$tmpdepfile2"
          361  +     exit $stat
          362  +  fi
          363  +
          364  +  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
          365  +  do
          366  +    test -f "$tmpdepfile" && break
          367  +  done
          368  +  if test -f "$tmpdepfile"; then
          369  +    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
          370  +    # Add 'dependent.h:' lines.
          371  +    sed -ne '2,${
          372  +	       s/^ *//
          373  +	       s/ \\*$//
          374  +	       s/$/:/
          375  +	       p
          376  +	     }' "$tmpdepfile" >> "$depfile"
          377  +  else
          378  +    echo "#dummy" > "$depfile"
          379  +  fi
          380  +  rm -f "$tmpdepfile" "$tmpdepfile2"
          381  +  ;;
          382  +
          383  +tru64)
          384  +   # The Tru64 compiler uses -MD to generate dependencies as a side
          385  +   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
          386  +   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
          387  +   # dependencies in 'foo.d' instead, so we check for that too.
          388  +   # Subdirectories are respected.
          389  +   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
          390  +   test "x$dir" = "x$object" && dir=
          391  +   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
          392  +
          393  +   if test "$libtool" = yes; then
          394  +      # With Tru64 cc, shared objects can also be used to make a
          395  +      # static library.  This mechanism is used in libtool 1.4 series to
          396  +      # handle both shared and static libraries in a single compilation.
          397  +      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
          398  +      #
          399  +      # With libtool 1.5 this exception was removed, and libtool now
          400  +      # generates 2 separate objects for the 2 libraries.  These two
          401  +      # compilations output dependencies in $dir.libs/$base.o.d and
          402  +      # in $dir$base.o.d.  We have to check for both files, because
          403  +      # one of the two compilations can be disabled.  We should prefer
          404  +      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
          405  +      # automatically cleaned when .libs/ is deleted, while ignoring
          406  +      # the former would cause a distcleancheck panic.
          407  +      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
          408  +      tmpdepfile2=$dir$base.o.d          # libtool 1.5
          409  +      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
          410  +      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
          411  +      "$@" -Wc,-MD
          412  +   else
          413  +      tmpdepfile1=$dir$base.o.d
          414  +      tmpdepfile2=$dir$base.d
          415  +      tmpdepfile3=$dir$base.d
          416  +      tmpdepfile4=$dir$base.d
          417  +      "$@" -MD
          418  +   fi
          419  +
          420  +   stat=$?
          421  +   if test $stat -eq 0; then :
          422  +   else
          423  +      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
          424  +      exit $stat
          425  +   fi
          426  +
          427  +   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
          428  +   do
          429  +     test -f "$tmpdepfile" && break
          430  +   done
          431  +   if test -f "$tmpdepfile"; then
          432  +      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
          433  +      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
          434  +   else
          435  +      echo "#dummy" > "$depfile"
          436  +   fi
          437  +   rm -f "$tmpdepfile"
          438  +   ;;
          439  +
          440  +msvc7)
          441  +  if test "$libtool" = yes; then
          442  +    showIncludes=-Wc,-showIncludes
          443  +  else
          444  +    showIncludes=-showIncludes
          445  +  fi
          446  +  "$@" $showIncludes > "$tmpdepfile"
          447  +  stat=$?
          448  +  grep -v '^Note: including file: ' "$tmpdepfile"
          449  +  if test "$stat" = 0; then :
          450  +  else
          451  +    rm -f "$tmpdepfile"
          452  +    exit $stat
          453  +  fi
          454  +  rm -f "$depfile"
          455  +  echo "$object : \\" > "$depfile"
          456  +  # The first sed program below extracts the file names and escapes
          457  +  # backslashes for cygpath.  The second sed program outputs the file
          458  +  # name when reading, but also accumulates all include files in the
          459  +  # hold buffer in order to output them again at the end.  This only
          460  +  # works with sed implementations that can handle large buffers.
          461  +  sed < "$tmpdepfile" -n '
          462  +/^Note: including file:  *\(.*\)/ {
          463  +  s//\1/
          464  +  s/\\/\\\\/g
          465  +  p
          466  +}' | $cygpath_u | sort -u | sed -n '
          467  +s/ /\\ /g
          468  +s/\(.*\)/'"$tab"'\1 \\/p
          469  +s/.\(.*\) \\/\1:/
          470  +H
          471  +$ {
          472  +  s/.*/'"$tab"'/
          473  +  G
          474  +  p
          475  +}' >> "$depfile"
          476  +  rm -f "$tmpdepfile"
          477  +  ;;
          478  +
          479  +msvc7msys)
          480  +  # This case exists only to let depend.m4 do its work.  It works by
          481  +  # looking at the text of this script.  This case will never be run,
          482  +  # since it is checked for above.
          483  +  exit 1
          484  +  ;;
          485  +
          486  +#nosideeffect)
          487  +  # This comment above is used by automake to tell side-effect
          488  +  # dependency tracking mechanisms from slower ones.
          489  +
          490  +dashmstdout)
          491  +  # Important note: in order to support this mode, a compiler *must*
          492  +  # always write the preprocessed file to stdout, regardless of -o.
          493  +  "$@" || exit $?
          494  +
          495  +  # Remove the call to Libtool.
          496  +  if test "$libtool" = yes; then
          497  +    while test "X$1" != 'X--mode=compile'; do
          498  +      shift
          499  +    done
          500  +    shift
          501  +  fi
          502  +
          503  +  # Remove '-o $object'.
          504  +  IFS=" "
          505  +  for arg
          506  +  do
          507  +    case $arg in
          508  +    -o)
          509  +      shift
          510  +      ;;
          511  +    $object)
          512  +      shift
          513  +      ;;
          514  +    *)
          515  +      set fnord "$@" "$arg"
          516  +      shift # fnord
          517  +      shift # $arg
          518  +      ;;
          519  +    esac
          520  +  done
          521  +
          522  +  test -z "$dashmflag" && dashmflag=-M
          523  +  # Require at least two characters before searching for ':'
          524  +  # in the target name.  This is to cope with DOS-style filenames:
          525  +  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
          526  +  "$@" $dashmflag |
          527  +    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
          528  +  rm -f "$depfile"
          529  +  cat < "$tmpdepfile" > "$depfile"
          530  +  tr ' ' "$nl" < "$tmpdepfile" | \
          531  +## Some versions of the HPUX 10.20 sed can't process this invocation
          532  +## correctly.  Breaking it into two sed invocations is a workaround.
          533  +    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
          534  +  rm -f "$tmpdepfile"
          535  +  ;;
          536  +
          537  +dashXmstdout)
          538  +  # This case only exists to satisfy depend.m4.  It is never actually
          539  +  # run, as this mode is specially recognized in the preamble.
          540  +  exit 1
          541  +  ;;
          542  +
          543  +makedepend)
          544  +  "$@" || exit $?
          545  +  # Remove any Libtool call
          546  +  if test "$libtool" = yes; then
          547  +    while test "X$1" != 'X--mode=compile'; do
          548  +      shift
          549  +    done
          550  +    shift
          551  +  fi
          552  +  # X makedepend
          553  +  shift
          554  +  cleared=no eat=no
          555  +  for arg
          556  +  do
          557  +    case $cleared in
          558  +    no)
          559  +      set ""; shift
          560  +      cleared=yes ;;
          561  +    esac
          562  +    if test $eat = yes; then
          563  +      eat=no
          564  +      continue
          565  +    fi
          566  +    case "$arg" in
          567  +    -D*|-I*)
          568  +      set fnord "$@" "$arg"; shift ;;
          569  +    # Strip any option that makedepend may not understand.  Remove
          570  +    # the object too, otherwise makedepend will parse it as a source file.
          571  +    -arch)
          572  +      eat=yes ;;
          573  +    -*|$object)
          574  +      ;;
          575  +    *)
          576  +      set fnord "$@" "$arg"; shift ;;
          577  +    esac
          578  +  done
          579  +  obj_suffix=`echo "$object" | sed 's/^.*\././'`
          580  +  touch "$tmpdepfile"
          581  +  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
          582  +  rm -f "$depfile"
          583  +  # makedepend may prepend the VPATH from the source file name to the object.
          584  +  # No need to regex-escape $object, excess matching of '.' is harmless.
          585  +  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
          586  +  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
          587  +## Some versions of the HPUX 10.20 sed can't process this invocation
          588  +## correctly.  Breaking it into two sed invocations is a workaround.
          589  +    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
          590  +  rm -f "$tmpdepfile" "$tmpdepfile".bak
          591  +  ;;
          592  +
          593  +cpp)
          594  +  # Important note: in order to support this mode, a compiler *must*
          595  +  # always write the preprocessed file to stdout.
          596  +  "$@" || exit $?
          597  +
          598  +  # Remove the call to Libtool.
          599  +  if test "$libtool" = yes; then
          600  +    while test "X$1" != 'X--mode=compile'; do
          601  +      shift
          602  +    done
          603  +    shift
          604  +  fi
          605  +
          606  +  # Remove '-o $object'.
          607  +  IFS=" "
          608  +  for arg
          609  +  do
          610  +    case $arg in
          611  +    -o)
          612  +      shift
          613  +      ;;
          614  +    $object)
          615  +      shift
          616  +      ;;
          617  +    *)
          618  +      set fnord "$@" "$arg"
          619  +      shift # fnord
          620  +      shift # $arg
          621  +      ;;
          622  +    esac
          623  +  done
          624  +
          625  +  "$@" -E |
          626  +    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
          627  +       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
          628  +    sed '$ s: \\$::' > "$tmpdepfile"
          629  +  rm -f "$depfile"
          630  +  echo "$object : \\" > "$depfile"
          631  +  cat < "$tmpdepfile" >> "$depfile"
          632  +  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
          633  +  rm -f "$tmpdepfile"
          634  +  ;;
          635  +
          636  +msvisualcpp)
          637  +  # Important note: in order to support this mode, a compiler *must*
          638  +  # always write the preprocessed file to stdout.
          639  +  "$@" || exit $?
          640  +
          641  +  # Remove the call to Libtool.
          642  +  if test "$libtool" = yes; then
          643  +    while test "X$1" != 'X--mode=compile'; do
          644  +      shift
          645  +    done
          646  +    shift
          647  +  fi
          648  +
          649  +  IFS=" "
          650  +  for arg
          651  +  do
          652  +    case "$arg" in
          653  +    -o)
          654  +      shift
          655  +      ;;
          656  +    $object)
          657  +      shift
          658  +      ;;
          659  +    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
          660  +	set fnord "$@"
          661  +	shift
          662  +	shift
          663  +	;;
          664  +    *)
          665  +	set fnord "$@" "$arg"
          666  +	shift
          667  +	shift
          668  +	;;
          669  +    esac
          670  +  done
          671  +  "$@" -E 2>/dev/null |
          672  +  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
          673  +  rm -f "$depfile"
          674  +  echo "$object : \\" > "$depfile"
          675  +  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
          676  +  echo "$tab" >> "$depfile"
          677  +  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
          678  +  rm -f "$tmpdepfile"
          679  +  ;;
          680  +
          681  +msvcmsys)
          682  +  # This case exists only to let depend.m4 do its work.  It works by
          683  +  # looking at the text of this script.  This case will never be run,
          684  +  # since it is checked for above.
          685  +  exit 1
          686  +  ;;
          687  +
          688  +none)
          689  +  exec "$@"
          690  +  ;;
          691  +
          692  +*)
          693  +  echo "Unknown depmode $depmode" 1>&2
          694  +  exit 1
          695  +  ;;
          696  +esac
          697  +
          698  +exit 0
          699  +
          700  +# Local Variables:
          701  +# mode: shell-script
          702  +# sh-indentation: 2
          703  +# eval: (add-hook 'write-file-hooks 'time-stamp)
          704  +# time-stamp-start: "scriptversion="
          705  +# time-stamp-format: "%:y-%02m-%02d.%02H"
          706  +# time-stamp-time-zone: "UTC"
          707  +# time-stamp-end: "; # UTC"
          708  +# End:

Added autoconf/install-sh.

            1  +#!/bin/sh
            2  +# install - install a program, script, or datafile
            3  +
            4  +scriptversion=2011-01-19.21; # UTC
            5  +
            6  +# This originates from X11R5 (mit/util/scripts/install.sh), which was
            7  +# later released in X11R6 (xc/config/util/install.sh) with the
            8  +# following copyright and license.
            9  +#
           10  +# Copyright (C) 1994 X Consortium
           11  +#
           12  +# Permission is hereby granted, free of charge, to any person obtaining a copy
           13  +# of this software and associated documentation files (the "Software"), to
           14  +# deal in the Software without restriction, including without limitation the
           15  +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
           16  +# sell copies of the Software, and to permit persons to whom the Software is
           17  +# furnished to do so, subject to the following conditions:
           18  +#
           19  +# The above copyright notice and this permission notice shall be included in
           20  +# all copies or substantial portions of the Software.
           21  +#
           22  +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
           23  +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
           24  +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
           25  +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
           26  +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
           27  +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
           28  +#
           29  +# Except as contained in this notice, the name of the X Consortium shall not
           30  +# be used in advertising or otherwise to promote the sale, use or other deal-
           31  +# ings in this Software without prior written authorization from the X Consor-
           32  +# tium.
           33  +#
           34  +#
           35  +# FSF changes to this file are in the public domain.
           36  +#
           37  +# Calling this script install-sh is preferred over install.sh, to prevent
           38  +# `make' implicit rules from creating a file called install from it
           39  +# when there is no Makefile.
           40  +#
           41  +# This script is compatible with the BSD install script, but was written
           42  +# from scratch.
           43  +
           44  +nl='
           45  +'
           46  +IFS=" ""	$nl"
           47  +
           48  +# set DOITPROG to echo to test this script
           49  +
           50  +# Don't use :- since 4.3BSD and earlier shells don't like it.
           51  +doit=${DOITPROG-}
           52  +if test -z "$doit"; then
           53  +  doit_exec=exec
           54  +else
           55  +  doit_exec=$doit
           56  +fi
           57  +
           58  +# Put in absolute file names if you don't have them in your path;
           59  +# or use environment vars.
           60  +
           61  +chgrpprog=${CHGRPPROG-chgrp}
           62  +chmodprog=${CHMODPROG-chmod}
           63  +chownprog=${CHOWNPROG-chown}
           64  +cmpprog=${CMPPROG-cmp}
           65  +cpprog=${CPPROG-cp}
           66  +mkdirprog=${MKDIRPROG-mkdir}
           67  +mvprog=${MVPROG-mv}
           68  +rmprog=${RMPROG-rm}
           69  +stripprog=${STRIPPROG-strip}
           70  +
           71  +posix_glob='?'
           72  +initialize_posix_glob='
           73  +  test "$posix_glob" != "?" || {
           74  +    if (set -f) 2>/dev/null; then
           75  +      posix_glob=
           76  +    else
           77  +      posix_glob=:
           78  +    fi
           79  +  }
           80  +'
           81  +
           82  +posix_mkdir=
           83  +
           84  +# Desired mode of installed file.
           85  +mode=0755
           86  +
           87  +chgrpcmd=
           88  +chmodcmd=$chmodprog
           89  +chowncmd=
           90  +mvcmd=$mvprog
           91  +rmcmd="$rmprog -f"
           92  +stripcmd=
           93  +
           94  +src=
           95  +dst=
           96  +dir_arg=
           97  +dst_arg=
           98  +
           99  +copy_on_change=false
          100  +no_target_directory=
          101  +
          102  +usage="\
          103  +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
          104  +   or: $0 [OPTION]... SRCFILES... DIRECTORY
          105  +   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
          106  +   or: $0 [OPTION]... -d DIRECTORIES...
          107  +
          108  +In the 1st form, copy SRCFILE to DSTFILE.
          109  +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
          110  +In the 4th, create DIRECTORIES.
          111  +
          112  +Options:
          113  +     --help     display this help and exit.
          114  +     --version  display version info and exit.
          115  +
          116  +  -c            (ignored)
          117  +  -C            install only if different (preserve the last data modification time)
          118  +  -d            create directories instead of installing files.
          119  +  -g GROUP      $chgrpprog installed files to GROUP.
          120  +  -m MODE       $chmodprog installed files to MODE.
          121  +  -o USER       $chownprog installed files to USER.
          122  +  -s            $stripprog installed files.
          123  +  -t DIRECTORY  install into DIRECTORY.
          124  +  -T            report an error if DSTFILE is a directory.
          125  +
          126  +Environment variables override the default commands:
          127  +  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
          128  +  RMPROG STRIPPROG
          129  +"
          130  +
          131  +while test $# -ne 0; do
          132  +  case $1 in
          133  +    -c) ;;
          134  +
          135  +    -C) copy_on_change=true;;
          136  +
          137  +    -d) dir_arg=true;;
          138  +
          139  +    -g) chgrpcmd="$chgrpprog $2"
          140  +	shift;;
          141  +
          142  +    --help) echo "$usage"; exit $?;;
          143  +
          144  +    -m) mode=$2
          145  +	case $mode in
          146  +	  *' '* | *'	'* | *'
          147  +'*	  | *'*'* | *'?'* | *'['*)
          148  +	    echo "$0: invalid mode: $mode" >&2
          149  +	    exit 1;;
          150  +	esac
          151  +	shift;;
          152  +
          153  +    -o) chowncmd="$chownprog $2"
          154  +	shift;;
          155  +
          156  +    -s) stripcmd=$stripprog;;
          157  +
          158  +    -t) dst_arg=$2
          159  +	# Protect names problematic for `test' and other utilities.
          160  +	case $dst_arg in
          161  +	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
          162  +	esac
          163  +	shift;;
          164  +
          165  +    -T) no_target_directory=true;;
          166  +
          167  +    --version) echo "$0 $scriptversion"; exit $?;;
          168  +
          169  +    --)	shift
          170  +	break;;
          171  +
          172  +    -*)	echo "$0: invalid option: $1" >&2
          173  +	exit 1;;
          174  +
          175  +    *)  break;;
          176  +  esac
          177  +  shift
          178  +done
          179  +
          180  +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
          181  +  # When -d is used, all remaining arguments are directories to create.
          182  +  # When -t is used, the destination is already specified.
          183  +  # Otherwise, the last argument is the destination.  Remove it from $@.
          184  +  for arg
          185  +  do
          186  +    if test -n "$dst_arg"; then
          187  +      # $@ is not empty: it contains at least $arg.
          188  +      set fnord "$@" "$dst_arg"
          189  +      shift # fnord
          190  +    fi
          191  +    shift # arg
          192  +    dst_arg=$arg
          193  +    # Protect names problematic for `test' and other utilities.
          194  +    case $dst_arg in
          195  +      -* | [=\(\)!]) dst_arg=./$dst_arg;;
          196  +    esac
          197  +  done
          198  +fi
          199  +
          200  +if test $# -eq 0; then
          201  +  if test -z "$dir_arg"; then
          202  +    echo "$0: no input file specified." >&2
          203  +    exit 1
          204  +  fi
          205  +  # It's OK to call `install-sh -d' without argument.
          206  +  # This can happen when creating conditional directories.
          207  +  exit 0
          208  +fi
          209  +
          210  +if test -z "$dir_arg"; then
          211  +  do_exit='(exit $ret); exit $ret'
          212  +  trap "ret=129; $do_exit" 1
          213  +  trap "ret=130; $do_exit" 2
          214  +  trap "ret=141; $do_exit" 13
          215  +  trap "ret=143; $do_exit" 15
          216  +
          217  +  # Set umask so as not to create temps with too-generous modes.
          218  +  # However, 'strip' requires both read and write access to temps.
          219  +  case $mode in
          220  +    # Optimize common cases.
          221  +    *644) cp_umask=133;;
          222  +    *755) cp_umask=22;;
          223  +
          224  +    *[0-7])
          225  +      if test -z "$stripcmd"; then
          226  +	u_plus_rw=
          227  +      else
          228  +	u_plus_rw='% 200'
          229  +      fi
          230  +      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
          231  +    *)
          232  +      if test -z "$stripcmd"; then
          233  +	u_plus_rw=
          234  +      else
          235  +	u_plus_rw=,u+rw
          236  +      fi
          237  +      cp_umask=$mode$u_plus_rw;;
          238  +  esac
          239  +fi
          240  +
          241  +for src
          242  +do
          243  +  # Protect names problematic for `test' and other utilities.
          244  +  case $src in
          245  +    -* | [=\(\)!]) src=./$src;;
          246  +  esac
          247  +
          248  +  if test -n "$dir_arg"; then
          249  +    dst=$src
          250  +    dstdir=$dst
          251  +    test -d "$dstdir"
          252  +    dstdir_status=$?
          253  +  else
          254  +
          255  +    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
          256  +    # might cause directories to be created, which would be especially bad
          257  +    # if $src (and thus $dsttmp) contains '*'.
          258  +    if test ! -f "$src" && test ! -d "$src"; then
          259  +      echo "$0: $src does not exist." >&2
          260  +      exit 1
          261  +    fi
          262  +
          263  +    if test -z "$dst_arg"; then
          264  +      echo "$0: no destination specified." >&2
          265  +      exit 1
          266  +    fi
          267  +    dst=$dst_arg
          268  +
          269  +    # If destination is a directory, append the input filename; won't work
          270  +    # if double slashes aren't ignored.
          271  +    if test -d "$dst"; then
          272  +      if test -n "$no_target_directory"; then
          273  +	echo "$0: $dst_arg: Is a directory" >&2
          274  +	exit 1
          275  +      fi
          276  +      dstdir=$dst
          277  +      dst=$dstdir/`basename "$src"`
          278  +      dstdir_status=0
          279  +    else
          280  +      # Prefer dirname, but fall back on a substitute if dirname fails.
          281  +      dstdir=`
          282  +	(dirname "$dst") 2>/dev/null ||
          283  +	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
          284  +	     X"$dst" : 'X\(//\)[^/]' \| \
          285  +	     X"$dst" : 'X\(//\)$' \| \
          286  +	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
          287  +	echo X"$dst" |
          288  +	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
          289  +		   s//\1/
          290  +		   q
          291  +		 }
          292  +		 /^X\(\/\/\)[^/].*/{
          293  +		   s//\1/
          294  +		   q
          295  +		 }
          296  +		 /^X\(\/\/\)$/{
          297  +		   s//\1/
          298  +		   q
          299  +		 }
          300  +		 /^X\(\/\).*/{
          301  +		   s//\1/
          302  +		   q
          303  +		 }
          304  +		 s/.*/./; q'
          305  +      `
          306  +
          307  +      test -d "$dstdir"
          308  +      dstdir_status=$?
          309  +    fi
          310  +  fi
          311  +
          312  +  obsolete_mkdir_used=false
          313  +
          314  +  if test $dstdir_status != 0; then
          315  +    case $posix_mkdir in
          316  +      '')
          317  +	# Create intermediate dirs using mode 755 as modified by the umask.
          318  +	# This is like FreeBSD 'install' as of 1997-10-28.
          319  +	umask=`umask`
          320  +	case $stripcmd.$umask in
          321  +	  # Optimize common cases.
          322  +	  *[2367][2367]) mkdir_umask=$umask;;
          323  +	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
          324  +
          325  +	  *[0-7])
          326  +	    mkdir_umask=`expr $umask + 22 \
          327  +	      - $umask % 100 % 40 + $umask % 20 \
          328  +	      - $umask % 10 % 4 + $umask % 2
          329  +	    `;;
          330  +	  *) mkdir_umask=$umask,go-w;;
          331  +	esac
          332  +
          333  +	# With -d, create the new directory with the user-specified mode.
          334  +	# Otherwise, rely on $mkdir_umask.
          335  +	if test -n "$dir_arg"; then
          336  +	  mkdir_mode=-m$mode
          337  +	else
          338  +	  mkdir_mode=
          339  +	fi
          340  +
          341  +	posix_mkdir=false
          342  +	case $umask in
          343  +	  *[123567][0-7][0-7])
          344  +	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
          345  +	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
          346  +	    ;;
          347  +	  *)
          348  +	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
          349  +	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
          350  +
          351  +	    if (umask $mkdir_umask &&
          352  +		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
          353  +	    then
          354  +	      if test -z "$dir_arg" || {
          355  +		   # Check for POSIX incompatibilities with -m.
          356  +		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
          357  +		   # other-writeable bit of parent directory when it shouldn't.
          358  +		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
          359  +		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
          360  +		   case $ls_ld_tmpdir in
          361  +		     d????-?r-*) different_mode=700;;
          362  +		     d????-?--*) different_mode=755;;
          363  +		     *) false;;
          364  +		   esac &&
          365  +		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
          366  +		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
          367  +		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
          368  +		   }
          369  +		 }
          370  +	      then posix_mkdir=:
          371  +	      fi
          372  +	      rmdir "$tmpdir/d" "$tmpdir"
          373  +	    else
          374  +	      # Remove any dirs left behind by ancient mkdir implementations.
          375  +	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
          376  +	    fi
          377  +	    trap '' 0;;
          378  +	esac;;
          379  +    esac
          380  +
          381  +    if
          382  +      $posix_mkdir && (
          383  +	umask $mkdir_umask &&
          384  +	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
          385  +      )
          386  +    then :
          387  +    else
          388  +
          389  +      # The umask is ridiculous, or mkdir does not conform to POSIX,
          390  +      # or it failed possibly due to a race condition.  Create the
          391  +      # directory the slow way, step by step, checking for races as we go.
          392  +
          393  +      case $dstdir in
          394  +	/*) prefix='/';;
          395  +	[-=\(\)!]*) prefix='./';;
          396  +	*)  prefix='';;
          397  +      esac
          398  +
          399  +      eval "$initialize_posix_glob"
          400  +
          401  +      oIFS=$IFS
          402  +      IFS=/
          403  +      $posix_glob set -f
          404  +      set fnord $dstdir
          405  +      shift
          406  +      $posix_glob set +f
          407  +      IFS=$oIFS
          408  +
          409  +      prefixes=
          410  +
          411  +      for d
          412  +      do
          413  +	test X"$d" = X && continue
          414  +
          415  +	prefix=$prefix$d
          416  +	if test -d "$prefix"; then
          417  +	  prefixes=
          418  +	else
          419  +	  if $posix_mkdir; then
          420  +	    (umask=$mkdir_umask &&
          421  +	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
          422  +	    # Don't fail if two instances are running concurrently.
          423  +	    test -d "$prefix" || exit 1
          424  +	  else
          425  +	    case $prefix in
          426  +	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
          427  +	      *) qprefix=$prefix;;
          428  +	    esac
          429  +	    prefixes="$prefixes '$qprefix'"
          430  +	  fi
          431  +	fi
          432  +	prefix=$prefix/
          433  +      done
          434  +
          435  +      if test -n "$prefixes"; then
          436  +	# Don't fail if two instances are running concurrently.
          437  +	(umask $mkdir_umask &&
          438  +	 eval "\$doit_exec \$mkdirprog $prefixes") ||
          439  +	  test -d "$dstdir" || exit 1
          440  +	obsolete_mkdir_used=true
          441  +      fi
          442  +    fi
          443  +  fi
          444  +
          445  +  if test -n "$dir_arg"; then
          446  +    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
          447  +    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
          448  +    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
          449  +      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
          450  +  else
          451  +
          452  +    # Make a couple of temp file names in the proper directory.
          453  +    dsttmp=$dstdir/_inst.$$_
          454  +    rmtmp=$dstdir/_rm.$$_
          455  +
          456  +    # Trap to clean up those temp files at exit.
          457  +    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
          458  +
          459  +    # Copy the file name to the temp name.
          460  +    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
          461  +
          462  +    # and set any options; do chmod last to preserve setuid bits.
          463  +    #
          464  +    # If any of these fail, we abort the whole thing.  If we want to
          465  +    # ignore errors from any of these, just make sure not to ignore
          466  +    # errors from the above "$doit $cpprog $src $dsttmp" command.
          467  +    #
          468  +    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
          469  +    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
          470  +    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
          471  +    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
          472  +
          473  +    # If -C, don't bother to copy if it wouldn't change the file.
          474  +    if $copy_on_change &&
          475  +       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
          476  +       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
          477  +
          478  +       eval "$initialize_posix_glob" &&
          479  +       $posix_glob set -f &&
          480  +       set X $old && old=:$2:$4:$5:$6 &&
          481  +       set X $new && new=:$2:$4:$5:$6 &&
          482  +       $posix_glob set +f &&
          483  +
          484  +       test "$old" = "$new" &&
          485  +       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
          486  +    then
          487  +      rm -f "$dsttmp"
          488  +    else
          489  +      # Rename the file to the real destination.
          490  +      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
          491  +
          492  +      # The rename failed, perhaps because mv can't rename something else
          493  +      # to itself, or perhaps because mv is so ancient that it does not
          494  +      # support -f.
          495  +      {
          496  +	# Now remove or move aside any old file at destination location.
          497  +	# We try this two ways since rm can't unlink itself on some
          498  +	# systems and the destination file might be busy for other
          499  +	# reasons.  In this case, the final cleanup might fail but the new
          500  +	# file should still install successfully.
          501  +	{
          502  +	  test ! -f "$dst" ||
          503  +	  $doit $rmcmd -f "$dst" 2>/dev/null ||
          504  +	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
          505  +	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
          506  +	  } ||
          507  +	  { echo "$0: cannot unlink or rename $dst" >&2
          508  +	    (exit 1); exit 1
          509  +	  }
          510  +	} &&
          511  +
          512  +	# Now rename the file to the real destination.
          513  +	$doit $mvcmd "$dsttmp" "$dst"
          514  +      }
          515  +    fi || exit 1
          516  +
          517  +    trap '' 0
          518  +  fi
          519  +done
          520  +
          521  +# Local variables:
          522  +# eval: (add-hook 'write-file-hooks 'time-stamp)
          523  +# time-stamp-start: "scriptversion="
          524  +# time-stamp-format: "%:y-%02m-%02d.%02H"
          525  +# time-stamp-time-zone: "UTC"
          526  +# time-stamp-end: "; # UTC"
          527  +# End:

Added autoconf/ltmain.sh.

            1  +
            2  +# libtool (GNU libtool) 2.4.2
            3  +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
            4  +
            5  +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
            6  +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
            7  +# This is free software; see the source for copying conditions.  There is NO
            8  +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
            9  +
           10  +# GNU Libtool is free software; you can redistribute it and/or modify
           11  +# it under the terms of the GNU General Public License as published by
           12  +# the Free Software Foundation; either version 2 of the License, or
           13  +# (at your option) any later version.
           14  +#
           15  +# As a special exception to the GNU General Public License,
           16  +# if you distribute this file as part of a program or library that
           17  +# is built using GNU Libtool, you may include this file under the
           18  +# same distribution terms that you use for the rest of that program.
           19  +#
           20  +# GNU Libtool is distributed in the hope that it will be useful, but
           21  +# WITHOUT ANY WARRANTY; without even the implied warranty of
           22  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
           23  +# General Public License for more details.
           24  +#
           25  +# You should have received a copy of the GNU General Public License
           26  +# along with GNU Libtool; see the file COPYING.  If not, a copy
           27  +# can be downloaded from http://www.gnu.org/licenses/gpl.html,
           28  +# or obtained by writing to the Free Software Foundation, Inc.,
           29  +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
           30  +
           31  +# Usage: $progname [OPTION]... [MODE-ARG]...
           32  +#
           33  +# Provide generalized library-building support services.
           34  +#
           35  +#       --config             show all configuration variables
           36  +#       --debug              enable verbose shell tracing
           37  +#   -n, --dry-run            display commands without modifying any files
           38  +#       --features           display basic configuration information and exit
           39  +#       --mode=MODE          use operation mode MODE
           40  +#       --preserve-dup-deps  don't remove duplicate dependency libraries
           41  +#       --quiet, --silent    don't print informational messages
           42  +#       --no-quiet, --no-silent
           43  +#                            print informational messages (default)
           44  +#       --no-warn            don't display warning messages
           45  +#       --tag=TAG            use configuration variables from tag TAG
           46  +#   -v, --verbose            print more informational messages than default
           47  +#       --no-verbose         don't print the extra informational messages
           48  +#       --version            print version information
           49  +#   -h, --help, --help-all   print short, long, or detailed help message
           50  +#
           51  +# MODE must be one of the following:
           52  +#
           53  +#         clean              remove files from the build directory
           54  +#         compile            compile a source file into a libtool object
           55  +#         execute            automatically set library path, then run a program
           56  +#         finish             complete the installation of libtool libraries
           57  +#         install            install libraries or executables
           58  +#         link               create a library or an executable
           59  +#         uninstall          remove libraries from an installed directory
           60  +#
           61  +# MODE-ARGS vary depending on the MODE.  When passed as first option,
           62  +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
           63  +# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
           64  +#
           65  +# When reporting a bug, please describe a test case to reproduce it and
           66  +# include the following information:
           67  +#
           68  +#         host-triplet:	$host
           69  +#         shell:		$SHELL
           70  +#         compiler:		$LTCC
           71  +#         compiler flags:		$LTCFLAGS
           72  +#         linker:		$LD (gnu? $with_gnu_ld)
           73  +#         $progname:	(GNU libtool) 2.4.2
           74  +#         automake:	$automake_version
           75  +#         autoconf:	$autoconf_version
           76  +#
           77  +# Report bugs to <bug-libtool@gnu.org>.
           78  +# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
           79  +# General help using GNU software: <http://www.gnu.org/gethelp/>.
           80  +
           81  +PROGRAM=libtool
           82  +PACKAGE=libtool
           83  +VERSION=2.4.2
           84  +TIMESTAMP=""
           85  +package_revision=1.3337
           86  +
           87  +# Be Bourne compatible
           88  +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
           89  +  emulate sh
           90  +  NULLCMD=:
           91  +  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
           92  +  # is contrary to our usage.  Disable this feature.
           93  +  alias -g '${1+"$@"}'='"$@"'
           94  +  setopt NO_GLOB_SUBST
           95  +else
           96  +  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
           97  +fi
           98  +BIN_SH=xpg4; export BIN_SH # for Tru64
           99  +DUALCASE=1; export DUALCASE # for MKS sh
          100  +
          101  +# A function that is used when there is no print builtin or printf.
          102  +func_fallback_echo ()
          103  +{
          104  +  eval 'cat <<_LTECHO_EOF
          105  +$1
          106  +_LTECHO_EOF'
          107  +}
          108  +
          109  +# NLS nuisances: We save the old values to restore during execute mode.
          110  +lt_user_locale=
          111  +lt_safe_locale=
          112  +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
          113  +do
          114  +  eval "if test \"\${$lt_var+set}\" = set; then
          115  +          save_$lt_var=\$$lt_var
          116  +          $lt_var=C
          117  +	  export $lt_var
          118  +	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
          119  +	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
          120  +	fi"
          121  +done
          122  +LC_ALL=C
          123  +LANGUAGE=C
          124  +export LANGUAGE LC_ALL
          125  +
          126  +$lt_unset CDPATH
          127  +
          128  +
          129  +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
          130  +# is ksh but when the shell is invoked as "sh" and the current value of
          131  +# the _XPG environment variable is not equal to 1 (one), the special
          132  +# positional parameter $0, within a function call, is the name of the
          133  +# function.
          134  +progpath="$0"
          135  +
          136  +
          137  +
          138  +: ${CP="cp -f"}
          139  +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
          140  +: ${MAKE="make"}
          141  +: ${MKDIR="mkdir"}
          142  +: ${MV="mv -f"}
          143  +: ${RM="rm -f"}
          144  +: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
          145  +: ${Xsed="$SED -e 1s/^X//"}
          146  +
          147  +# Global variables:
          148  +EXIT_SUCCESS=0
          149  +EXIT_FAILURE=1
          150  +EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
          151  +EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
          152  +
          153  +exit_status=$EXIT_SUCCESS
          154  +
          155  +# Make sure IFS has a sensible default
          156  +lt_nl='
          157  +'
          158  +IFS=" 	$lt_nl"
          159  +
          160  +dirname="s,/[^/]*$,,"
          161  +basename="s,^.*/,,"
          162  +
          163  +# func_dirname file append nondir_replacement
          164  +# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
          165  +# otherwise set result to NONDIR_REPLACEMENT.
          166  +func_dirname ()
          167  +{
          168  +    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
          169  +    if test "X$func_dirname_result" = "X${1}"; then
          170  +      func_dirname_result="${3}"
          171  +    else
          172  +      func_dirname_result="$func_dirname_result${2}"
          173  +    fi
          174  +} # func_dirname may be replaced by extended shell implementation
          175  +
          176  +
          177  +# func_basename file
          178  +func_basename ()
          179  +{
          180  +    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
          181  +} # func_basename may be replaced by extended shell implementation
          182  +
          183  +
          184  +# func_dirname_and_basename file append nondir_replacement
          185  +# perform func_basename and func_dirname in a single function
          186  +# call:
          187  +#   dirname:  Compute the dirname of FILE.  If nonempty,
          188  +#             add APPEND to the result, otherwise set result
          189  +#             to NONDIR_REPLACEMENT.
          190  +#             value returned in "$func_dirname_result"
          191  +#   basename: Compute filename of FILE.
          192  +#             value retuned in "$func_basename_result"
          193  +# Implementation must be kept synchronized with func_dirname
          194  +# and func_basename. For efficiency, we do not delegate to
          195  +# those functions but instead duplicate the functionality here.
          196  +func_dirname_and_basename ()
          197  +{
          198  +    # Extract subdirectory from the argument.
          199  +    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
          200  +    if test "X$func_dirname_result" = "X${1}"; then
          201  +      func_dirname_result="${3}"
          202  +    else
          203  +      func_dirname_result="$func_dirname_result${2}"
          204  +    fi
          205  +    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
          206  +} # func_dirname_and_basename may be replaced by extended shell implementation
          207  +
          208  +
          209  +# func_stripname prefix suffix name
          210  +# strip PREFIX and SUFFIX off of NAME.
          211  +# PREFIX and SUFFIX must not contain globbing or regex special
          212  +# characters, hashes, percent signs, but SUFFIX may contain a leading
          213  +# dot (in which case that matches only a dot).
          214  +# func_strip_suffix prefix name
          215  +func_stripname ()
          216  +{
          217  +    case ${2} in
          218  +      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
          219  +      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
          220  +    esac
          221  +} # func_stripname may be replaced by extended shell implementation
          222  +
          223  +
          224  +# These SED scripts presuppose an absolute path with a trailing slash.
          225  +pathcar='s,^/\([^/]*\).*$,\1,'
          226  +pathcdr='s,^/[^/]*,,'
          227  +removedotparts=':dotsl
          228  +		s@/\./@/@g
          229  +		t dotsl
          230  +		s,/\.$,/,'
          231  +collapseslashes='s@/\{1,\}@/@g'
          232  +finalslash='s,/*$,/,'
          233  +
          234  +# func_normal_abspath PATH
          235  +# Remove doubled-up and trailing slashes, "." path components,
          236  +# and cancel out any ".." path components in PATH after making
          237  +# it an absolute path.
          238  +#             value returned in "$func_normal_abspath_result"
          239  +func_normal_abspath ()
          240  +{
          241  +  # Start from root dir and reassemble the path.
          242  +  func_normal_abspath_result=
          243  +  func_normal_abspath_tpath=$1
          244  +  func_normal_abspath_altnamespace=
          245  +  case $func_normal_abspath_tpath in
          246  +    "")
          247  +      # Empty path, that just means $cwd.
          248  +      func_stripname '' '/' "`pwd`"
          249  +      func_normal_abspath_result=$func_stripname_result
          250  +      return
          251  +    ;;
          252  +    # The next three entries are used to spot a run of precisely
          253  +    # two leading slashes without using negated character classes;
          254  +    # we take advantage of case's first-match behaviour.
          255  +    ///*)
          256  +      # Unusual form of absolute path, do nothing.
          257  +    ;;
          258  +    //*)
          259  +      # Not necessarily an ordinary path; POSIX reserves leading '//'
          260  +      # and for example Cygwin uses it to access remote file shares
          261  +      # over CIFS/SMB, so we conserve a leading double slash if found.
          262  +      func_normal_abspath_altnamespace=/
          263  +    ;;
          264  +    /*)
          265  +      # Absolute path, do nothing.
          266  +    ;;
          267  +    *)
          268  +      # Relative path, prepend $cwd.
          269  +      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
          270  +    ;;
          271  +  esac
          272  +  # Cancel out all the simple stuff to save iterations.  We also want
          273  +  # the path to end with a slash for ease of parsing, so make sure
          274  +  # there is one (and only one) here.
          275  +  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
          276  +        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
          277  +  while :; do
          278  +    # Processed it all yet?
          279  +    if test "$func_normal_abspath_tpath" = / ; then
          280  +      # If we ascended to the root using ".." the result may be empty now.
          281  +      if test -z "$func_normal_abspath_result" ; then
          282  +        func_normal_abspath_result=/
          283  +      fi
          284  +      break
          285  +    fi
          286  +    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
          287  +        -e "$pathcar"`
          288  +    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
          289  +        -e "$pathcdr"`
          290  +    # Figure out what to do with it
          291  +    case $func_normal_abspath_tcomponent in
          292  +      "")
          293  +        # Trailing empty path component, ignore it.
          294  +      ;;
          295  +      ..)
          296  +        # Parent dir; strip last assembled component from result.
          297  +        func_dirname "$func_normal_abspath_result"
          298  +        func_normal_abspath_result=$func_dirname_result
          299  +      ;;
          300  +      *)
          301  +        # Actual path component, append it.
          302  +        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
          303  +      ;;
          304  +    esac
          305  +  done
          306  +  # Restore leading double-slash if one was found on entry.
          307  +  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
          308  +}
          309  +
          310  +# func_relative_path SRCDIR DSTDIR
          311  +# generates a relative path from SRCDIR to DSTDIR, with a trailing
          312  +# slash if non-empty, suitable for immediately appending a filename
          313  +# without needing to append a separator.
          314  +#             value returned in "$func_relative_path_result"
          315  +func_relative_path ()
          316  +{
          317  +  func_relative_path_result=
          318  +  func_normal_abspath "$1"
          319  +  func_relative_path_tlibdir=$func_normal_abspath_result
          320  +  func_normal_abspath "$2"
          321  +  func_relative_path_tbindir=$func_normal_abspath_result
          322  +
          323  +  # Ascend the tree starting from libdir
          324  +  while :; do
          325  +    # check if we have found a prefix of bindir
          326  +    case $func_relative_path_tbindir in
          327  +      $func_relative_path_tlibdir)
          328  +        # found an exact match
          329  +        func_relative_path_tcancelled=
          330  +        break
          331  +        ;;
          332  +      $func_relative_path_tlibdir*)
          333  +        # found a matching prefix
          334  +        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
          335  +        func_relative_path_tcancelled=$func_stripname_result
          336  +        if test -z "$func_relative_path_result"; then
          337  +          func_relative_path_result=.
          338  +        fi
          339  +        break
          340  +        ;;
          341  +      *)
          342  +        func_dirname $func_relative_path_tlibdir
          343  +        func_relative_path_tlibdir=${func_dirname_result}
          344  +        if test "x$func_relative_path_tlibdir" = x ; then
          345  +          # Have to descend all the way to the root!
          346  +          func_relative_path_result=../$func_relative_path_result
          347  +          func_relative_path_tcancelled=$func_relative_path_tbindir
          348  +          break
          349  +        fi
          350  +        func_relative_path_result=../$func_relative_path_result
          351  +        ;;
          352  +    esac
          353  +  done
          354  +
          355  +  # Now calculate path; take care to avoid doubling-up slashes.
          356  +  func_stripname '' '/' "$func_relative_path_result"
          357  +  func_relative_path_result=$func_stripname_result
          358  +  func_stripname '/' '/' "$func_relative_path_tcancelled"
          359  +  if test "x$func_stripname_result" != x ; then
          360  +    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
          361  +  fi
          362  +
          363  +  # Normalisation. If bindir is libdir, return empty string,
          364  +  # else relative path ending with a slash; either way, target
          365  +  # file name can be directly appended.
          366  +  if test ! -z "$func_relative_path_result"; then
          367  +    func_stripname './' '' "$func_relative_path_result/"
          368  +    func_relative_path_result=$func_stripname_result
          369  +  fi
          370  +}
          371  +
          372  +# The name of this program:
          373  +func_dirname_and_basename "$progpath"
          374  +progname=$func_basename_result
          375  +
          376  +# Make sure we have an absolute path for reexecution:
          377  +case $progpath in
          378  +  [\\/]*|[A-Za-z]:\\*) ;;
          379  +  *[\\/]*)
          380  +     progdir=$func_dirname_result
          381  +     progdir=`cd "$progdir" && pwd`
          382  +     progpath="$progdir/$progname"
          383  +     ;;
          384  +  *)
          385  +     save_IFS="$IFS"
          386  +     IFS=${PATH_SEPARATOR-:}
          387  +     for progdir in $PATH; do
          388  +       IFS="$save_IFS"
          389  +       test -x "$progdir/$progname" && break
          390  +     done
          391  +     IFS="$save_IFS"
          392  +     test -n "$progdir" || progdir=`pwd`
          393  +     progpath="$progdir/$progname"
          394  +     ;;
          395  +esac
          396  +
          397  +# Sed substitution that helps us do robust quoting.  It backslashifies
          398  +# metacharacters that are still active within double-quoted strings.
          399  +Xsed="${SED}"' -e 1s/^X//'
          400  +sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
          401  +
          402  +# Same as above, but do not quote variable references.
          403  +double_quote_subst='s/\(["`\\]\)/\\\1/g'
          404  +
          405  +# Sed substitution that turns a string into a regex matching for the
          406  +# string literally.
          407  +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
          408  +
          409  +# Sed substitution that converts a w32 file name or path
          410  +# which contains forward slashes, into one that contains
          411  +# (escaped) backslashes.  A very naive implementation.
          412  +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
          413  +
          414  +# Re-`\' parameter expansions in output of double_quote_subst that were
          415  +# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
          416  +# in input to double_quote_subst, that '$' was protected from expansion.
          417  +# Since each input `\' is now two `\'s, look for any number of runs of
          418  +# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
          419  +bs='\\'
          420  +bs2='\\\\'
          421  +bs4='\\\\\\\\'
          422  +dollar='\$'
          423  +sed_double_backslash="\
          424  +  s/$bs4/&\\
          425  +/g
          426  +  s/^$bs2$dollar/$bs&/
          427  +  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
          428  +  s/\n//g"
          429  +
          430  +# Standard options:
          431  +opt_dry_run=false
          432  +opt_help=false
          433  +opt_quiet=false
          434  +opt_verbose=false
          435  +opt_warning=:
          436  +
          437  +# func_echo arg...
          438  +# Echo program name prefixed message, along with the current mode
          439  +# name if it has been set yet.
          440  +func_echo ()
          441  +{
          442  +    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
          443  +}
          444  +
          445  +# func_verbose arg...
          446  +# Echo program name prefixed message in verbose mode only.
          447  +func_verbose ()
          448  +{
          449  +    $opt_verbose && func_echo ${1+"$@"}
          450  +
          451  +    # A bug in bash halts the script if the last line of a function
          452  +    # fails when set -e is in force, so we need another command to
          453  +    # work around that:
          454  +    :
          455  +}
          456  +
          457  +# func_echo_all arg...
          458  +# Invoke $ECHO with all args, space-separated.
          459  +func_echo_all ()
          460  +{
          461  +    $ECHO "$*"
          462  +}
          463  +
          464  +# func_error arg...
          465  +# Echo program name prefixed message to standard error.
          466  +func_error ()
          467  +{
          468  +    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
          469  +}
          470  +
          471  +# func_warning arg...
          472  +# Echo program name prefixed warning message to standard error.
          473  +func_warning ()
          474  +{
          475  +    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
          476  +
          477  +    # bash bug again:
          478  +    :
          479  +}
          480  +
          481  +# func_fatal_error arg...
          482  +# Echo program name prefixed message to standard error, and exit.
          483  +func_fatal_error ()
          484  +{
          485  +    func_error ${1+"$@"}
          486  +    exit $EXIT_FAILURE
          487  +}
          488  +
          489  +# func_fatal_help arg...
          490  +# Echo program name prefixed message to standard error, followed by
          491  +# a help hint, and exit.
          492  +func_fatal_help ()
          493  +{
          494  +    func_error ${1+"$@"}
          495  +    func_fatal_error "$help"
          496  +}
          497  +help="Try \`$progname --help' for more information."  ## default
          498  +
          499  +
          500  +# func_grep expression filename
          501  +# Check whether EXPRESSION matches any line of FILENAME, without output.
          502  +func_grep ()
          503  +{
          504  +    $GREP "$1" "$2" >/dev/null 2>&1
          505  +}
          506  +
          507  +
          508  +# func_mkdir_p directory-path
          509  +# Make sure the entire path to DIRECTORY-PATH is available.
          510  +func_mkdir_p ()
          511  +{
          512  +    my_directory_path="$1"
          513  +    my_dir_list=
          514  +
          515  +    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
          516  +
          517  +      # Protect directory names starting with `-'
          518  +      case $my_directory_path in
          519  +        -*) my_directory_path="./$my_directory_path" ;;
          520  +      esac
          521  +
          522  +      # While some portion of DIR does not yet exist...
          523  +      while test ! -d "$my_directory_path"; do
          524  +        # ...make a list in topmost first order.  Use a colon delimited
          525  +	# list incase some portion of path contains whitespace.
          526  +        my_dir_list="$my_directory_path:$my_dir_list"
          527  +
          528  +        # If the last portion added has no slash in it, the list is done
          529  +        case $my_directory_path in */*) ;; *) break ;; esac
          530  +
          531  +        # ...otherwise throw away the child directory and loop
          532  +        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
          533  +      done
          534  +      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
          535  +
          536  +      save_mkdir_p_IFS="$IFS"; IFS=':'
          537  +      for my_dir in $my_dir_list; do
          538  +	IFS="$save_mkdir_p_IFS"
          539  +        # mkdir can fail with a `File exist' error if two processes
          540  +        # try to create one of the directories concurrently.  Don't
          541  +        # stop in that case!
          542  +        $MKDIR "$my_dir" 2>/dev/null || :
          543  +      done
          544  +      IFS="$save_mkdir_p_IFS"
          545  +
          546  +      # Bail out if we (or some other process) failed to create a directory.
          547  +      test -d "$my_directory_path" || \
          548  +        func_fatal_error "Failed to create \`$1'"
          549  +    fi
          550  +}
          551  +
          552  +
          553  +# func_mktempdir [string]
          554  +# Make a temporary directory that won't clash with other running
          555  +# libtool processes, and avoids race conditions if possible.  If
          556  +# given, STRING is the basename for that directory.
          557  +func_mktempdir ()
          558  +{
          559  +    my_template="${TMPDIR-/tmp}/${1-$progname}"
          560  +
          561  +    if test "$opt_dry_run" = ":"; then
          562  +      # Return a directory name, but don't create it in dry-run mode
          563  +      my_tmpdir="${my_template}-$$"
          564  +    else
          565  +
          566  +      # If mktemp works, use that first and foremost
          567  +      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
          568  +
          569  +      if test ! -d "$my_tmpdir"; then
          570  +        # Failing that, at least try and use $RANDOM to avoid a race
          571  +        my_tmpdir="${my_template}-${RANDOM-0}$$"
          572  +
          573  +        save_mktempdir_umask=`umask`
          574  +        umask 0077
          575  +        $MKDIR "$my_tmpdir"
          576  +        umask $save_mktempdir_umask
          577  +      fi
          578  +
          579  +      # If we're not in dry-run mode, bomb out on failure
          580  +      test -d "$my_tmpdir" || \
          581  +        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
          582  +    fi
          583  +
          584  +    $ECHO "$my_tmpdir"
          585  +}
          586  +
          587  +
          588  +# func_quote_for_eval arg
          589  +# Aesthetically quote ARG to be evaled later.
          590  +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
          591  +# is double-quoted, suitable for a subsequent eval, whereas
          592  +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
          593  +# which are still active within double quotes backslashified.
          594  +func_quote_for_eval ()
          595  +{
          596  +    case $1 in
          597  +      *[\\\`\"\$]*)
          598  +	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
          599  +      *)
          600  +        func_quote_for_eval_unquoted_result="$1" ;;
          601  +    esac
          602  +
          603  +    case $func_quote_for_eval_unquoted_result in
          604  +      # Double-quote args containing shell metacharacters to delay
          605  +      # word splitting, command substitution and and variable
          606  +      # expansion for a subsequent eval.
          607  +      # Many Bourne shells cannot handle close brackets correctly
          608  +      # in scan sets, so we specify it separately.
          609  +      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
          610  +        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
          611  +        ;;
          612  +      *)
          613  +        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
          614  +    esac
          615  +}
          616  +
          617  +
          618  +# func_quote_for_expand arg
          619  +# Aesthetically quote ARG to be evaled later; same as above,
          620  +# but do not quote variable references.
          621  +func_quote_for_expand ()
          622  +{
          623  +    case $1 in
          624  +      *[\\\`\"]*)
          625  +	my_arg=`$ECHO "$1" | $SED \
          626  +	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
          627  +      *)
          628  +        my_arg="$1" ;;
          629  +    esac
          630  +
          631  +    case $my_arg in
          632  +      # Double-quote args containing shell metacharacters to delay
          633  +      # word splitting and command substitution for a subsequent eval.
          634  +      # Many Bourne shells cannot handle close brackets correctly
          635  +      # in scan sets, so we specify it separately.
          636  +      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
          637  +        my_arg="\"$my_arg\""
          638  +        ;;
          639  +    esac
          640  +
          641  +    func_quote_for_expand_result="$my_arg"
          642  +}
          643  +
          644  +
          645  +# func_show_eval cmd [fail_exp]
          646  +# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
          647  +# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
          648  +# is given, then evaluate it.
          649  +func_show_eval ()
          650  +{
          651  +    my_cmd="$1"
          652  +    my_fail_exp="${2-:}"
          653  +
          654  +    ${opt_silent-false} || {
          655  +      func_quote_for_expand "$my_cmd"
          656  +      eval "func_echo $func_quote_for_expand_result"
          657  +    }
          658  +
          659  +    if ${opt_dry_run-false}; then :; else
          660  +      eval "$my_cmd"
          661  +      my_status=$?
          662  +      if test "$my_status" -eq 0; then :; else
          663  +	eval "(exit $my_status); $my_fail_exp"
          664  +      fi
          665  +    fi
          666  +}
          667  +
          668  +
          669  +# func_show_eval_locale cmd [fail_exp]
          670  +# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
          671  +# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
          672  +# is given, then evaluate it.  Use the saved locale for evaluation.
          673  +func_show_eval_locale ()
          674  +{
          675  +    my_cmd="$1"
          676  +    my_fail_exp="${2-:}"
          677  +
          678  +    ${opt_silent-false} || {
          679  +      func_quote_for_expand "$my_cmd"
          680  +      eval "func_echo $func_quote_for_expand_result"
          681  +    }
          682  +
          683  +    if ${opt_dry_run-false}; then :; else
          684  +      eval "$lt_user_locale
          685  +	    $my_cmd"
          686  +      my_status=$?
          687  +      eval "$lt_safe_locale"
          688  +      if test "$my_status" -eq 0; then :; else
          689  +	eval "(exit $my_status); $my_fail_exp"
          690  +      fi
          691  +    fi
          692  +}
          693  +
          694  +# func_tr_sh
          695  +# Turn $1 into a string suitable for a shell variable name.
          696  +# Result is stored in $func_tr_sh_result.  All characters
          697  +# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
          698  +# if $1 begins with a digit, a '_' is prepended as well.
          699  +func_tr_sh ()
          700  +{
          701  +  case $1 in
          702  +  [0-9]* | *[!a-zA-Z0-9_]*)
          703  +    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
          704  +    ;;
          705  +  * )
          706  +    func_tr_sh_result=$1
          707  +    ;;
          708  +  esac
          709  +}
          710  +
          711  +
          712  +# func_version
          713  +# Echo version message to standard output and exit.
          714  +func_version ()
          715  +{
          716  +    $opt_debug
          717  +
          718  +    $SED -n '/(C)/!b go
          719  +	:more
          720  +	/\./!{
          721  +	  N
          722  +	  s/\n# / /
          723  +	  b more
          724  +	}
          725  +	:go
          726  +	/^# '$PROGRAM' (GNU /,/# warranty; / {
          727  +        s/^# //
          728  +	s/^# *$//
          729  +        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
          730  +        p
          731  +     }' < "$progpath"
          732  +     exit $?
          733  +}
          734  +
          735  +# func_usage
          736  +# Echo short help message to standard output and exit.
          737  +func_usage ()
          738  +{
          739  +    $opt_debug
          740  +
          741  +    $SED -n '/^# Usage:/,/^#  *.*--help/ {
          742  +        s/^# //
          743  +	s/^# *$//
          744  +	s/\$progname/'$progname'/
          745  +	p
          746  +    }' < "$progpath"
          747  +    echo
          748  +    $ECHO "run \`$progname --help | more' for full usage"
          749  +    exit $?
          750  +}
          751  +
          752  +# func_help [NOEXIT]
          753  +# Echo long help message to standard output and exit,
          754  +# unless 'noexit' is passed as argument.
          755  +func_help ()
          756  +{
          757  +    $opt_debug
          758  +
          759  +    $SED -n '/^# Usage:/,/# Report bugs to/ {
          760  +	:print
          761  +        s/^# //
          762  +	s/^# *$//
          763  +	s*\$progname*'$progname'*
          764  +	s*\$host*'"$host"'*
          765  +	s*\$SHELL*'"$SHELL"'*
          766  +	s*\$LTCC*'"$LTCC"'*
          767  +	s*\$LTCFLAGS*'"$LTCFLAGS"'*
          768  +	s*\$LD*'"$LD"'*
          769  +	s/\$with_gnu_ld/'"$with_gnu_ld"'/
          770  +	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
          771  +	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
          772  +	p
          773  +	d
          774  +     }
          775  +     /^# .* home page:/b print
          776  +     /^# General help using/b print
          777  +     ' < "$progpath"
          778  +    ret=$?
          779  +    if test -z "$1"; then
          780  +      exit $ret
          781  +    fi
          782  +}
          783  +
          784  +# func_missing_arg argname
          785  +# Echo program name prefixed message to standard error and set global
          786  +# exit_cmd.
          787  +func_missing_arg ()
          788  +{
          789  +    $opt_debug
          790  +
          791  +    func_error "missing argument for $1."
          792  +    exit_cmd=exit
          793  +}
          794  +
          795  +
          796  +# func_split_short_opt shortopt
          797  +# Set func_split_short_opt_name and func_split_short_opt_arg shell
          798  +# variables after splitting SHORTOPT after the 2nd character.
          799  +func_split_short_opt ()
          800  +{
          801  +    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
          802  +    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
          803  +
          804  +    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
          805  +    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
          806  +} # func_split_short_opt may be replaced by extended shell implementation
          807  +
          808  +
          809  +# func_split_long_opt longopt
          810  +# Set func_split_long_opt_name and func_split_long_opt_arg shell
          811  +# variables after splitting LONGOPT at the `=' sign.
          812  +func_split_long_opt ()
          813  +{
          814  +    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
          815  +    my_sed_long_arg='1s/^--[^=]*=//'
          816  +
          817  +    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
          818  +    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
          819  +} # func_split_long_opt may be replaced by extended shell implementation
          820  +
          821  +exit_cmd=:
          822  +
          823  +
          824  +
          825  +
          826  +
          827  +magic="%%%MAGIC variable%%%"
          828  +magic_exe="%%%MAGIC EXE variable%%%"
          829  +
          830  +# Global variables.
          831  +nonopt=
          832  +preserve_args=
          833  +lo2o="s/\\.lo\$/.${objext}/"
          834  +o2lo="s/\\.${objext}\$/.lo/"
          835  +extracted_archives=
          836  +extracted_serial=0
          837  +
          838  +# If this variable is set in any of the actions, the command in it
          839  +# will be execed at the end.  This prevents here-documents from being
          840  +# left over by shells.
          841  +exec_cmd=
          842  +
          843  +# func_append var value
          844  +# Append VALUE to the end of shell variable VAR.
          845  +func_append ()
          846  +{
          847  +    eval "${1}=\$${1}\${2}"
          848  +} # func_append may be replaced by extended shell implementation
          849  +
          850  +# func_append_quoted var value
          851  +# Quote VALUE and append to the end of shell variable VAR, separated
          852  +# by a space.
          853  +func_append_quoted ()
          854  +{
          855  +    func_quote_for_eval "${2}"
          856  +    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
          857  +} # func_append_quoted may be replaced by extended shell implementation
          858  +
          859  +
          860  +# func_arith arithmetic-term...
          861  +func_arith ()
          862  +{
          863  +    func_arith_result=`expr "${@}"`
          864  +} # func_arith may be replaced by extended shell implementation
          865  +
          866  +
          867  +# func_len string
          868  +# STRING may not start with a hyphen.
          869  +func_len ()
          870  +{
          871  +    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
          872  +} # func_len may be replaced by extended shell implementation
          873  +
          874  +
          875  +# func_lo2o object
          876  +func_lo2o ()
          877  +{
          878  +    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
          879  +} # func_lo2o may be replaced by extended shell implementation
          880  +
          881  +
          882  +# func_xform libobj-or-source
          883  +func_xform ()
          884  +{
          885  +    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
          886  +} # func_xform may be replaced by extended shell implementation
          887  +
          888  +
          889  +# func_fatal_configuration arg...
          890  +# Echo program name prefixed message to standard error, followed by
          891  +# a configuration failure hint, and exit.
          892  +func_fatal_configuration ()
          893  +{
          894  +    func_error ${1+"$@"}
          895  +    func_error "See the $PACKAGE documentation for more information."
          896  +    func_fatal_error "Fatal configuration error."
          897  +}
          898  +
          899  +
          900  +# func_config
          901  +# Display the configuration for all the tags in this script.
          902  +func_config ()
          903  +{
          904  +    re_begincf='^# ### BEGIN LIBTOOL'
          905  +    re_endcf='^# ### END LIBTOOL'
          906  +
          907  +    # Default configuration.
          908  +    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
          909  +
          910  +    # Now print the configurations for the tags.
          911  +    for tagname in $taglist; do
          912  +      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
          913  +    done
          914  +
          915  +    exit $?
          916  +}
          917  +
          918  +# func_features
          919  +# Display the features supported by this script.
          920  +func_features ()
          921  +{
          922  +    echo "host: $host"
          923  +    if test "$build_libtool_libs" = yes; then
          924  +      echo "enable shared libraries"
          925  +    else
          926  +      echo "disable shared libraries"
          927  +    fi
          928  +    if test "$build_old_libs" = yes; then
          929  +      echo "enable static libraries"
          930  +    else
          931  +      echo "disable static libraries"
          932  +    fi
          933  +
          934  +    exit $?
          935  +}
          936  +
          937  +# func_enable_tag tagname
          938  +# Verify that TAGNAME is valid, and either flag an error and exit, or
          939  +# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
          940  +# variable here.
          941  +func_enable_tag ()
          942  +{
          943  +  # Global variable:
          944  +  tagname="$1"
          945  +
          946  +  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
          947  +  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
          948  +  sed_extractcf="/$re_begincf/,/$re_endcf/p"
          949  +
          950  +  # Validate tagname.
          951  +  case $tagname in
          952  +    *[!-_A-Za-z0-9,/]*)
          953  +      func_fatal_error "invalid tag name: $tagname"
          954  +      ;;
          955  +  esac
          956  +
          957  +  # Don't test for the "default" C tag, as we know it's
          958  +  # there but not specially marked.
          959  +  case $tagname in
          960  +    CC) ;;
          961  +    *)
          962  +      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
          963  +	taglist="$taglist $tagname"
          964  +
          965  +	# Evaluate the configuration.  Be careful to quote the path
          966  +	# and the sed script, to avoid splitting on whitespace, but
          967  +	# also don't use non-portable quotes within backquotes within
          968  +	# quotes we have to do it in 2 steps:
          969  +	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
          970  +	eval "$extractedcf"
          971  +      else
          972  +	func_error "ignoring unknown tag $tagname"
          973  +      fi
          974  +      ;;
          975  +  esac
          976  +}
          977  +
          978  +# func_check_version_match
          979  +# Ensure that we are using m4 macros, and libtool script from the same
          980  +# release of libtool.
          981  +func_check_version_match ()
          982  +{
          983  +  if test "$package_revision" != "$macro_revision"; then
          984  +    if test "$VERSION" != "$macro_version"; then
          985  +      if test -z "$macro_version"; then
          986  +        cat >&2 <<_LT_EOF
          987  +$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
          988  +$progname: definition of this LT_INIT comes from an older release.
          989  +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
          990  +$progname: and run autoconf again.
          991  +_LT_EOF
          992  +      else
          993  +        cat >&2 <<_LT_EOF
          994  +$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
          995  +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
          996  +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
          997  +$progname: and run autoconf again.
          998  +_LT_EOF
          999  +      fi
         1000  +    else
         1001  +      cat >&2 <<_LT_EOF
         1002  +$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
         1003  +$progname: but the definition of this LT_INIT comes from revision $macro_revision.
         1004  +$progname: You should recreate aclocal.m4 with macros from revision $package_revision
         1005  +$progname: of $PACKAGE $VERSION and run autoconf again.
         1006  +_LT_EOF
         1007  +    fi
         1008  +
         1009  +    exit $EXIT_MISMATCH
         1010  +  fi
         1011  +}
         1012  +
         1013  +
         1014  +# Shorthand for --mode=foo, only valid as the first argument
         1015  +case $1 in
         1016  +clean|clea|cle|cl)
         1017  +  shift; set dummy --mode clean ${1+"$@"}; shift
         1018  +  ;;
         1019  +compile|compil|compi|comp|com|co|c)
         1020  +  shift; set dummy --mode compile ${1+"$@"}; shift
         1021  +  ;;
         1022  +execute|execut|execu|exec|exe|ex|e)
         1023  +  shift; set dummy --mode execute ${1+"$@"}; shift
         1024  +  ;;
         1025  +finish|finis|fini|fin|fi|f)
         1026  +  shift; set dummy --mode finish ${1+"$@"}; shift
         1027  +  ;;
         1028  +install|instal|insta|inst|ins|in|i)
         1029  +  shift; set dummy --mode install ${1+"$@"}; shift
         1030  +  ;;
         1031  +link|lin|li|l)
         1032  +  shift; set dummy --mode link ${1+"$@"}; shift
         1033  +  ;;
         1034  +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
         1035  +  shift; set dummy --mode uninstall ${1+"$@"}; shift
         1036  +  ;;
         1037  +esac
         1038  +
         1039  +
         1040  +
         1041  +# Option defaults:
         1042  +opt_debug=:
         1043  +opt_dry_run=false
         1044  +opt_config=false
         1045  +opt_preserve_dup_deps=false
         1046  +opt_features=false
         1047  +opt_finish=false
         1048  +opt_help=false
         1049  +opt_help_all=false
         1050  +opt_silent=:
         1051  +opt_warning=:
         1052  +opt_verbose=:
         1053  +opt_silent=false
         1054  +opt_verbose=false
         1055  +
         1056  +
         1057  +# Parse options once, thoroughly.  This comes as soon as possible in the
         1058  +# script to make things like `--version' happen as quickly as we can.
         1059  +{
         1060  +  # this just eases exit handling
         1061  +  while test $# -gt 0; do
         1062  +    opt="$1"
         1063  +    shift
         1064  +    case $opt in
         1065  +      --debug|-x)	opt_debug='set -x'
         1066  +			func_echo "enabling shell trace mode"
         1067  +			$opt_debug
         1068  +			;;
         1069  +      --dry-run|--dryrun|-n)
         1070  +			opt_dry_run=:
         1071  +			;;
         1072  +      --config)
         1073  +			opt_config=:
         1074  +func_config
         1075  +			;;
         1076  +      --dlopen|-dlopen)
         1077  +			optarg="$1"
         1078  +			opt_dlopen="${opt_dlopen+$opt_dlopen
         1079  +}$optarg"
         1080  +			shift
         1081  +			;;
         1082  +      --preserve-dup-deps)
         1083  +			opt_preserve_dup_deps=:
         1084  +			;;
         1085  +      --features)
         1086  +			opt_features=:
         1087  +func_features
         1088  +			;;
         1089  +      --finish)
         1090  +			opt_finish=:
         1091  +set dummy --mode finish ${1+"$@"}; shift
         1092  +			;;
         1093  +      --help)
         1094  +			opt_help=:
         1095  +			;;
         1096  +      --help-all)
         1097  +			opt_help_all=:
         1098  +opt_help=': help-all'
         1099  +			;;
         1100  +      --mode)
         1101  +			test $# = 0 && func_missing_arg $opt && break
         1102  +			optarg="$1"
         1103  +			opt_mode="$optarg"
         1104  +case $optarg in
         1105  +  # Valid mode arguments:
         1106  +  clean|compile|execute|finish|install|link|relink|uninstall) ;;
         1107  +
         1108  +  # Catch anything else as an error
         1109  +  *) func_error "invalid argument for $opt"
         1110  +     exit_cmd=exit
         1111  +     break
         1112  +     ;;
         1113  +esac
         1114  +			shift
         1115  +			;;
         1116  +      --no-silent|--no-quiet)
         1117  +			opt_silent=false
         1118  +func_append preserve_args " $opt"
         1119  +			;;
         1120  +      --no-warning|--no-warn)
         1121  +			opt_warning=false
         1122  +func_append preserve_args " $opt"
         1123  +			;;
         1124  +      --no-verbose)
         1125  +			opt_verbose=false
         1126  +func_append preserve_args " $opt"
         1127  +			;;
         1128  +      --silent|--quiet)
         1129  +			opt_silent=:
         1130  +func_append preserve_args " $opt"
         1131  +        opt_verbose=false
         1132  +			;;
         1133  +      --verbose|-v)
         1134  +			opt_verbose=:
         1135  +func_append preserve_args " $opt"
         1136  +opt_silent=false
         1137  +			;;
         1138  +      --tag)
         1139  +			test $# = 0 && func_missing_arg $opt && break
         1140  +			optarg="$1"
         1141  +			opt_tag="$optarg"
         1142  +func_append preserve_args " $opt $optarg"
         1143  +func_enable_tag "$optarg"
         1144  +			shift
         1145  +			;;
         1146  +
         1147  +      -\?|-h)		func_usage				;;
         1148  +      --help)		func_help				;;
         1149  +      --version)	func_version				;;
         1150  +
         1151  +      # Separate optargs to long options:
         1152  +      --*=*)
         1153  +			func_split_long_opt "$opt"
         1154  +			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
         1155  +			shift
         1156  +			;;
         1157  +
         1158  +      # Separate non-argument short options:
         1159  +      -\?*|-h*|-n*|-v*)
         1160  +			func_split_short_opt "$opt"
         1161  +			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
         1162  +			shift
         1163  +			;;
         1164  +
         1165  +      --)		break					;;
         1166  +      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
         1167  +      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
         1168  +    esac
         1169  +  done
         1170  +
         1171  +  # Validate options:
         1172  +
         1173  +  # save first non-option argument
         1174  +  if test "$#" -gt 0; then
         1175  +    nonopt="$opt"
         1176  +    shift
         1177  +  fi
         1178  +
         1179  +  # preserve --debug
         1180  +  test "$opt_debug" = : || func_append preserve_args " --debug"
         1181  +
         1182  +  case $host in
         1183  +    *cygwin* | *mingw* | *pw32* | *cegcc*)
         1184  +      # don't eliminate duplications in $postdeps and $predeps
         1185  +      opt_duplicate_compiler_generated_deps=:
         1186  +      ;;
         1187  +    *)
         1188  +      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
         1189  +      ;;
         1190  +  esac
         1191  +
         1192  +  $opt_help || {
         1193  +    # Sanity checks first:
         1194  +    func_check_version_match
         1195  +
         1196  +    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
         1197  +      func_fatal_configuration "not configured to build any kind of library"
         1198  +    fi
         1199  +
         1200  +    # Darwin sucks
         1201  +    eval std_shrext=\"$shrext_cmds\"
         1202  +
         1203  +    # Only execute mode is allowed to have -dlopen flags.
         1204  +    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
         1205  +      func_error "unrecognized option \`-dlopen'"
         1206  +      $ECHO "$help" 1>&2
         1207  +      exit $EXIT_FAILURE
         1208  +    fi
         1209  +
         1210  +    # Change the help message to a mode-specific one.
         1211  +    generic_help="$help"
         1212  +    help="Try \`$progname --help --mode=$opt_mode' for more information."
         1213  +  }
         1214  +
         1215  +
         1216  +  # Bail if the options were screwed
         1217  +  $exit_cmd $EXIT_FAILURE
         1218  +}
         1219  +
         1220  +
         1221  +
         1222  +
         1223  +## ----------- ##
         1224  +##    Main.    ##
         1225  +## ----------- ##
         1226  +
         1227  +# func_lalib_p file
         1228  +# True iff FILE is a libtool `.la' library or `.lo' object file.
         1229  +# This function is only a basic sanity check; it will hardly flush out
         1230  +# determined imposters.
         1231  +func_lalib_p ()
         1232  +{
         1233  +    test -f "$1" &&
         1234  +      $SED -e 4q "$1" 2>/dev/null \
         1235  +        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
         1236  +}
         1237  +
         1238  +# func_lalib_unsafe_p file
         1239  +# True iff FILE is a libtool `.la' library or `.lo' object file.
         1240  +# This function implements the same check as func_lalib_p without
         1241  +# resorting to external programs.  To this end, it redirects stdin and
         1242  +# closes it afterwards, without saving the original file descriptor.
         1243  +# As a safety measure, use it only where a negative result would be
         1244  +# fatal anyway.  Works if `file' does not exist.
         1245  +func_lalib_unsafe_p ()
         1246  +{
         1247  +    lalib_p=no
         1248  +    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
         1249  +	for lalib_p_l in 1 2 3 4
         1250  +	do
         1251  +	    read lalib_p_line
         1252  +	    case "$lalib_p_line" in
         1253  +		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
         1254  +	    esac
         1255  +	done
         1256  +	exec 0<&5 5<&-
         1257  +    fi
         1258  +    test "$lalib_p" = yes
         1259  +}
         1260  +
         1261  +# func_ltwrapper_script_p file
         1262  +# True iff FILE is a libtool wrapper script
         1263  +# This function is only a basic sanity check; it will hardly flush out
         1264  +# determined imposters.
         1265  +func_ltwrapper_script_p ()
         1266  +{
         1267  +    func_lalib_p "$1"
         1268  +}
         1269  +
         1270  +# func_ltwrapper_executable_p file
         1271  +# True iff FILE is a libtool wrapper executable
         1272  +# This function is only a basic sanity check; it will hardly flush out
         1273  +# determined imposters.
         1274  +func_ltwrapper_executable_p ()
         1275  +{
         1276  +    func_ltwrapper_exec_suffix=
         1277  +    case $1 in
         1278  +    *.exe) ;;
         1279  +    *) func_ltwrapper_exec_suffix=.exe ;;
         1280  +    esac
         1281  +    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
         1282  +}
         1283  +
         1284  +# func_ltwrapper_scriptname file
         1285  +# Assumes file is an ltwrapper_executable
         1286  +# uses $file to determine the appropriate filename for a
         1287  +# temporary ltwrapper_script.
         1288  +func_ltwrapper_scriptname ()
         1289  +{
         1290  +    func_dirname_and_basename "$1" "" "."
         1291  +    func_stripname '' '.exe' "$func_basename_result"
         1292  +    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
         1293  +}
         1294  +
         1295  +# func_ltwrapper_p file
         1296  +# True iff FILE is a libtool wrapper script or wrapper executable
         1297  +# This function is only a basic sanity check; it will hardly flush out
         1298  +# determined imposters.
         1299  +func_ltwrapper_p ()
         1300  +{
         1301  +    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
         1302  +}
         1303  +
         1304  +
         1305  +# func_execute_cmds commands fail_cmd
         1306  +# Execute tilde-delimited COMMANDS.
         1307  +# If FAIL_CMD is given, eval that upon failure.
         1308  +# FAIL_CMD may read-access the current command in variable CMD!
         1309  +func_execute_cmds ()
         1310  +{
         1311  +    $opt_debug
         1312  +    save_ifs=$IFS; IFS='~'
         1313  +    for cmd in $1; do
         1314  +      IFS=$save_ifs
         1315  +      eval cmd=\"$cmd\"
         1316  +      func_show_eval "$cmd" "${2-:}"
         1317  +    done
         1318  +    IFS=$save_ifs
         1319  +}
         1320  +
         1321  +
         1322  +# func_source file
         1323  +# Source FILE, adding directory component if necessary.
         1324  +# Note that it is not necessary on cygwin/mingw to append a dot to
         1325  +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
         1326  +# behavior happens only for exec(3), not for open(2)!  Also, sourcing
         1327  +# `FILE.' does not work on cygwin managed mounts.
         1328  +func_source ()
         1329  +{
         1330  +    $opt_debug
         1331  +    case $1 in
         1332  +    */* | *\\*)	. "$1" ;;
         1333  +    *)		. "./$1" ;;
         1334  +    esac
         1335  +}
         1336  +
         1337  +
         1338  +# func_resolve_sysroot PATH
         1339  +# Replace a leading = in PATH with a sysroot.  Store the result into
         1340  +# func_resolve_sysroot_result
         1341  +func_resolve_sysroot ()
         1342  +{
         1343  +  func_resolve_sysroot_result=$1
         1344  +  case $func_resolve_sysroot_result in
         1345  +  =*)
         1346  +    func_stripname '=' '' "$func_resolve_sysroot_result"
         1347  +    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
         1348  +    ;;
         1349  +  esac
         1350  +}
         1351  +
         1352  +# func_replace_sysroot PATH
         1353  +# If PATH begins with the sysroot, replace it with = and
         1354  +# store the result into func_replace_sysroot_result.
         1355  +func_replace_sysroot ()
         1356  +{
         1357  +  case "$lt_sysroot:$1" in
         1358  +  ?*:"$lt_sysroot"*)
         1359  +    func_stripname "$lt_sysroot" '' "$1"
         1360  +    func_replace_sysroot_result="=$func_stripname_result"
         1361  +    ;;
         1362  +  *)
         1363  +    # Including no sysroot.
         1364  +    func_replace_sysroot_result=$1
         1365  +    ;;
         1366  +  esac
         1367  +}
         1368  +
         1369  +# func_infer_tag arg
         1370  +# Infer tagged configuration to use if any are available and
         1371  +# if one wasn't chosen via the "--tag" command line option.
         1372  +# Only attempt this if the compiler in the base compile
         1373  +# command doesn't match the default compiler.
         1374  +# arg is usually of the form 'gcc ...'
         1375  +func_infer_tag ()
         1376  +{
         1377  +    $opt_debug
         1378  +    if test -n "$available_tags" && test -z "$tagname"; then
         1379  +      CC_quoted=
         1380  +      for arg in $CC; do
         1381  +	func_append_quoted CC_quoted "$arg"
         1382  +      done
         1383  +      CC_expanded=`func_echo_all $CC`
         1384  +      CC_quoted_expanded=`func_echo_all $CC_quoted`
         1385  +      case $@ in
         1386  +      # Blanks in the command may have been stripped by the calling shell,
         1387  +      # but not from the CC environment variable when configure was run.
         1388  +      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
         1389  +      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
         1390  +      # Blanks at the start of $base_compile will cause this to fail
         1391  +      # if we don't check for them as well.
         1392  +      *)
         1393  +	for z in $available_tags; do
         1394  +	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
         1395  +	    # Evaluate the configuration.
         1396  +	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
         1397  +	    CC_quoted=
         1398  +	    for arg in $CC; do
         1399  +	      # Double-quote args containing other shell metacharacters.
         1400  +	      func_append_quoted CC_quoted "$arg"
         1401  +	    done
         1402  +	    CC_expanded=`func_echo_all $CC`
         1403  +	    CC_quoted_expanded=`func_echo_all $CC_quoted`
         1404  +	    case "$@ " in
         1405  +	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
         1406  +	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
         1407  +	      # The compiler in the base compile command matches
         1408  +	      # the one in the tagged configuration.
         1409  +	      # Assume this is the tagged configuration we want.
         1410  +	      tagname=$z
         1411  +	      break
         1412  +	      ;;
         1413  +	    esac
         1414  +	  fi
         1415  +	done
         1416  +	# If $tagname still isn't set, then no tagged configuration
         1417  +	# was found and let the user know that the "--tag" command
         1418  +	# line option must be used.
         1419  +	if test -z "$tagname"; then
         1420  +	  func_echo "unable to infer tagged configuration"
         1421  +	  func_fatal_error "specify a tag with \`--tag'"
         1422  +#	else
         1423  +#	  func_verbose "using $tagname tagged configuration"
         1424  +	fi
         1425  +	;;
         1426  +      esac
         1427  +    fi
         1428  +}
         1429  +
         1430  +
         1431  +
         1432  +# func_write_libtool_object output_name pic_name nonpic_name
         1433  +# Create a libtool object file (analogous to a ".la" file),
         1434  +# but don't create it if we're doing a dry run.
         1435  +func_write_libtool_object ()
         1436  +{
         1437  +    write_libobj=${1}
         1438  +    if test "$build_libtool_libs" = yes; then
         1439  +      write_lobj=\'${2}\'
         1440  +    else
         1441  +      write_lobj=none
         1442  +    fi
         1443  +
         1444  +    if test "$build_old_libs" = yes; then
         1445  +      write_oldobj=\'${3}\'
         1446  +    else
         1447  +      write_oldobj=none
         1448  +    fi
         1449  +
         1450  +    $opt_dry_run || {
         1451  +      cat >${write_libobj}T <<EOF
         1452  +# $write_libobj - a libtool object file
         1453  +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
         1454  +#
         1455  +# Please DO NOT delete this file!
         1456  +# It is necessary for linking the library.
         1457  +
         1458  +# Name of the PIC object.
         1459  +pic_object=$write_lobj
         1460  +
         1461  +# Name of the non-PIC object
         1462  +non_pic_object=$write_oldobj
         1463  +
         1464  +EOF
         1465  +      $MV "${write_libobj}T" "${write_libobj}"
         1466  +    }
         1467  +}
         1468  +
         1469  +
         1470  +##################################################
         1471  +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
         1472  +##################################################
         1473  +
         1474  +# func_convert_core_file_wine_to_w32 ARG
         1475  +# Helper function used by file name conversion functions when $build is *nix,
         1476  +# and $host is mingw, cygwin, or some other w32 environment. Relies on a
         1477  +# correctly configured wine environment available, with the winepath program
         1478  +# in $build's $PATH.
         1479  +#
         1480  +# ARG is the $build file name to be converted to w32 format.
         1481  +# Result is available in $func_convert_core_file_wine_to_w32_result, and will
         1482  +# be empty on error (or when ARG is empty)
         1483  +func_convert_core_file_wine_to_w32 ()
         1484  +{
         1485  +  $opt_debug
         1486  +  func_convert_core_file_wine_to_w32_result="$1"
         1487  +  if test -n "$1"; then
         1488  +    # Unfortunately, winepath does not exit with a non-zero error code, so we
         1489  +    # are forced to check the contents of stdout. On the other hand, if the
         1490  +    # command is not found, the shell will set an exit code of 127 and print
         1491  +    # *an error message* to stdout. So we must check for both error code of
         1492  +    # zero AND non-empty stdout, which explains the odd construction:
         1493  +    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
         1494  +    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
         1495  +      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
         1496  +        $SED -e "$lt_sed_naive_backslashify"`
         1497  +    else
         1498  +      func_convert_core_file_wine_to_w32_result=
         1499  +    fi
         1500  +  fi
         1501  +}
         1502  +# end: func_convert_core_file_wine_to_w32
         1503  +
         1504  +
         1505  +# func_convert_core_path_wine_to_w32 ARG
         1506  +# Helper function used by path conversion functions when $build is *nix, and
         1507  +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
         1508  +# configured wine environment available, with the winepath program in $build's
         1509  +# $PATH. Assumes ARG has no leading or trailing path separator characters.
         1510  +#
         1511  +# ARG is path to be converted from $build format to win32.
         1512  +# Result is available in $func_convert_core_path_wine_to_w32_result.
         1513  +# Unconvertible file (directory) names in ARG are skipped; if no directory names
         1514  +# are convertible, then the result may be empty.
         1515  +func_convert_core_path_wine_to_w32 ()
         1516  +{
         1517  +  $opt_debug
         1518  +  # unfortunately, winepath doesn't convert paths, only file names
         1519  +  func_convert_core_path_wine_to_w32_result=""
         1520  +  if test -n "$1"; then
         1521  +    oldIFS=$IFS
         1522  +    IFS=:
         1523  +    for func_convert_core_path_wine_to_w32_f in $1; do
         1524  +      IFS=$oldIFS
         1525  +      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
         1526  +      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
         1527  +        if test -z "$func_convert_core_path_wine_to_w32_result"; then
         1528  +          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
         1529  +        else
         1530  +          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
         1531  +        fi
         1532  +      fi
         1533  +    done
         1534  +    IFS=$oldIFS
         1535  +  fi
         1536  +}
         1537  +# end: func_convert_core_path_wine_to_w32
         1538  +
         1539  +
         1540  +# func_cygpath ARGS...
         1541  +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
         1542  +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
         1543  +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
         1544  +# (2), returns the Cygwin file name or path in func_cygpath_result (input
         1545  +# file name or path is assumed to be in w32 format, as previously converted
         1546  +# from $build's *nix or MSYS format). In case (3), returns the w32 file name
         1547  +# or path in func_cygpath_result (input file name or path is assumed to be in
         1548  +# Cygwin format). Returns an empty string on error.
         1549  +#
         1550  +# ARGS are passed to cygpath, with the last one being the file name or path to
         1551  +# be converted.
         1552  +#
         1553  +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
         1554  +# environment variable; do not put it in $PATH.
         1555  +func_cygpath ()
         1556  +{
         1557  +  $opt_debug
         1558  +  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
         1559  +    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
         1560  +    if test "$?" -ne 0; then
         1561  +      # on failure, ensure result is empty
         1562  +      func_cygpath_result=
         1563  +    fi
         1564  +  else
         1565  +    func_cygpath_result=
         1566  +    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
         1567  +  fi
         1568  +}
         1569  +#end: func_cygpath
         1570  +
         1571  +
         1572  +# func_convert_core_msys_to_w32 ARG
         1573  +# Convert file name or path ARG from MSYS format to w32 format.  Return
         1574  +# result in func_convert_core_msys_to_w32_result.
         1575  +func_convert_core_msys_to_w32 ()
         1576  +{
         1577  +  $opt_debug
         1578  +  # awkward: cmd appends spaces to result
         1579  +  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
         1580  +    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
         1581  +}
         1582  +#end: func_convert_core_msys_to_w32
         1583  +
         1584  +
         1585  +# func_convert_file_check ARG1 ARG2
         1586  +# Verify that ARG1 (a file name in $build format) was converted to $host
         1587  +# format in ARG2. Otherwise, emit an error message, but continue (resetting
         1588  +# func_to_host_file_result to ARG1).
         1589  +func_convert_file_check ()
         1590  +{
         1591  +  $opt_debug
         1592  +  if test -z "$2" && test -n "$1" ; then
         1593  +    func_error "Could not determine host file name corresponding to"
         1594  +    func_error "  \`$1'"
         1595  +    func_error "Continuing, but uninstalled executables may not work."
         1596  +    # Fallback:
         1597  +    func_to_host_file_result="$1"
         1598  +  fi
         1599  +}
         1600  +# end func_convert_file_check
         1601  +
         1602  +
         1603  +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
         1604  +# Verify that FROM_PATH (a path in $build format) was converted to $host
         1605  +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
         1606  +# func_to_host_file_result to a simplistic fallback value (see below).
         1607  +func_convert_path_check ()
         1608  +{
         1609  +  $opt_debug
         1610  +  if test -z "$4" && test -n "$3"; then
         1611  +    func_error "Could not determine the host path corresponding to"
         1612  +    func_error "  \`$3'"
         1613  +    func_error "Continuing, but uninstalled executables may not work."
         1614  +    # Fallback.  This is a deliberately simplistic "conversion" and
         1615  +    # should not be "improved".  See libtool.info.
         1616  +    if test "x$1" != "x$2"; then
         1617  +      lt_replace_pathsep_chars="s|$1|$2|g"
         1618  +      func_to_host_path_result=`echo "$3" |
         1619  +        $SED -e "$lt_replace_pathsep_chars"`
         1620  +    else
         1621  +      func_to_host_path_result="$3"
         1622  +    fi
         1623  +  fi
         1624  +}
         1625  +# end func_convert_path_check
         1626  +
         1627  +
         1628  +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
         1629  +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
         1630  +# and appending REPL if ORIG matches BACKPAT.
         1631  +func_convert_path_front_back_pathsep ()
         1632  +{
         1633  +  $opt_debug
         1634  +  case $4 in
         1635  +  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
         1636  +    ;;
         1637  +  esac
         1638  +  case $4 in
         1639  +  $2 ) func_append func_to_host_path_result "$3"
         1640  +    ;;
         1641  +  esac
         1642  +}
         1643  +# end func_convert_path_front_back_pathsep
         1644  +
         1645  +
         1646  +##################################################
         1647  +# $build to $host FILE NAME CONVERSION FUNCTIONS #
         1648  +##################################################
         1649  +# invoked via `$to_host_file_cmd ARG'
         1650  +#
         1651  +# In each case, ARG is the path to be converted from $build to $host format.
         1652  +# Result will be available in $func_to_host_file_result.
         1653  +
         1654  +
         1655  +# func_to_host_file ARG
         1656  +# Converts the file name ARG from $build format to $host format. Return result
         1657  +# in func_to_host_file_result.
         1658  +func_to_host_file ()
         1659  +{
         1660  +  $opt_debug
         1661  +  $to_host_file_cmd "$1"
         1662  +}
         1663  +# end func_to_host_file
         1664  +
         1665  +
         1666  +# func_to_tool_file ARG LAZY
         1667  +# converts the file name ARG from $build format to toolchain format. Return
         1668  +# result in func_to_tool_file_result.  If the conversion in use is listed
         1669  +# in (the comma separated) LAZY, no conversion takes place.
         1670  +func_to_tool_file ()
         1671  +{
         1672  +  $opt_debug
         1673  +  case ,$2, in
         1674  +    *,"$to_tool_file_cmd",*)
         1675  +      func_to_tool_file_result=$1
         1676  +      ;;
         1677  +    *)
         1678  +      $to_tool_file_cmd "$1"
         1679  +      func_to_tool_file_result=$func_to_host_file_result
         1680  +      ;;
         1681  +  esac
         1682  +}
         1683  +# end func_to_tool_file
         1684  +
         1685  +
         1686  +# func_convert_file_noop ARG
         1687  +# Copy ARG to func_to_host_file_result.
         1688  +func_convert_file_noop ()
         1689  +{
         1690  +  func_to_host_file_result="$1"
         1691  +}
         1692  +# end func_convert_file_noop
         1693  +
         1694  +
         1695  +# func_convert_file_msys_to_w32 ARG
         1696  +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
         1697  +# conversion to w32 is not available inside the cwrapper.  Returns result in
         1698  +# func_to_host_file_result.
         1699  +func_convert_file_msys_to_w32 ()
         1700  +{
         1701  +  $opt_debug
         1702  +  func_to_host_file_result="$1"
         1703  +  if test -n "$1"; then
         1704  +    func_convert_core_msys_to_w32 "$1"
         1705  +    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
         1706  +  fi
         1707  +  func_convert_file_check "$1" "$func_to_host_file_result"
         1708  +}
         1709  +# end func_convert_file_msys_to_w32
         1710  +
         1711  +
         1712  +# func_convert_file_cygwin_to_w32 ARG
         1713  +# Convert file name ARG from Cygwin to w32 format.  Returns result in
         1714  +# func_to_host_file_result.
         1715  +func_convert_file_cygwin_to_w32 ()
         1716  +{
         1717  +  $opt_debug
         1718  +  func_to_host_file_result="$1"
         1719  +  if test -n "$1"; then
         1720  +    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
         1721  +    # LT_CYGPATH in this case.
         1722  +    func_to_host_file_result=`cygpath -m "$1"`
         1723  +  fi
         1724  +  func_convert_file_check "$1" "$func_to_host_file_result"
         1725  +}
         1726  +# end func_convert_file_cygwin_to_w32
         1727  +
         1728  +
         1729  +# func_convert_file_nix_to_w32 ARG
         1730  +# Convert file name ARG from *nix to w32 format.  Requires a wine environment
         1731  +# and a working winepath. Returns result in func_to_host_file_result.
         1732  +func_convert_file_nix_to_w32 ()
         1733  +{
         1734  +  $opt_debug
         1735  +  func_to_host_file_result="$1"
         1736  +  if test -n "$1"; then
         1737  +    func_convert_core_file_wine_to_w32 "$1"
         1738  +    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
         1739  +  fi
         1740  +  func_convert_file_check "$1" "$func_to_host_file_result"
         1741  +}
         1742  +# end func_convert_file_nix_to_w32
         1743  +
         1744  +
         1745  +# func_convert_file_msys_to_cygwin ARG
         1746  +# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
         1747  +# Returns result in func_to_host_file_result.
         1748  +func_convert_file_msys_to_cygwin ()
         1749  +{
         1750  +  $opt_debug
         1751  +  func_to_host_file_result="$1"
         1752  +  if test -n "$1"; then
         1753  +    func_convert_core_msys_to_w32 "$1"
         1754  +    func_cygpath -u "$func_convert_core_msys_to_w32_result"
         1755  +    func_to_host_file_result="$func_cygpath_result"
         1756  +  fi
         1757  +  func_convert_file_check "$1" "$func_to_host_file_result"
         1758  +}
         1759  +# end func_convert_file_msys_to_cygwin
         1760  +
         1761  +
         1762  +# func_convert_file_nix_to_cygwin ARG
         1763  +# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
         1764  +# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
         1765  +# in func_to_host_file_result.
         1766  +func_convert_file_nix_to_cygwin ()
         1767  +{
         1768  +  $opt_debug
         1769  +  func_to_host_file_result="$1"
         1770  +  if test -n "$1"; then
         1771  +    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
         1772  +    func_convert_core_file_wine_to_w32 "$1"
         1773  +    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
         1774  +    func_to_host_file_result="$func_cygpath_result"
         1775  +  fi
         1776  +  func_convert_file_check "$1" "$func_to_host_file_result"
         1777  +}
         1778  +# end func_convert_file_nix_to_cygwin
         1779  +
         1780  +
         1781  +#############################################
         1782  +# $build to $host PATH CONVERSION FUNCTIONS #
         1783  +#############################################
         1784  +# invoked via `$to_host_path_cmd ARG'
         1785  +#
         1786  +# In each case, ARG is the path to be converted from $build to $host format.
         1787  +# The result will be available in $func_to_host_path_result.
         1788  +#
         1789  +# Path separators are also converted from $build format to $host format.  If
         1790  +# ARG begins or ends with a path separator character, it is preserved (but
         1791  +# converted to $host format) on output.
         1792  +#
         1793  +# All path conversion functions are named using the following convention:
         1794  +#   file name conversion function    : func_convert_file_X_to_Y ()
         1795  +#   path conversion function         : func_convert_path_X_to_Y ()
         1796  +# where, for any given $build/$host combination the 'X_to_Y' value is the
         1797  +# same.  If conversion functions are added for new $build/$host combinations,
         1798  +# the two new functions must follow this pattern, or func_init_to_host_path_cmd
         1799  +# will break.
         1800  +
         1801  +
         1802  +# func_init_to_host_path_cmd
         1803  +# Ensures that function "pointer" variable $to_host_path_cmd is set to the
         1804  +# appropriate value, based on the value of $to_host_file_cmd.
         1805  +to_host_path_cmd=
         1806  +func_init_to_host_path_cmd ()
         1807  +{
         1808  +  $opt_debug
         1809  +  if test -z "$to_host_path_cmd"; then
         1810  +    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
         1811  +    to_host_path_cmd="func_convert_path_${func_stripname_result}"
         1812  +  fi
         1813  +}
         1814  +
         1815  +
         1816  +# func_to_host_path ARG
         1817  +# Converts the path ARG from $build format to $host format. Return result
         1818  +# in func_to_host_path_result.
         1819  +func_to_host_path ()
         1820  +{
         1821  +  $opt_debug
         1822  +  func_init_to_host_path_cmd
         1823  +  $to_host_path_cmd "$1"
         1824  +}
         1825  +# end func_to_host_path
         1826  +
         1827  +
         1828  +# func_convert_path_noop ARG
         1829  +# Copy ARG to func_to_host_path_result.
         1830  +func_convert_path_noop ()
         1831  +{
         1832  +  func_to_host_path_result="$1"
         1833  +}
         1834  +# end func_convert_path_noop
         1835  +
         1836  +
         1837  +# func_convert_path_msys_to_w32 ARG
         1838  +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
         1839  +# conversion to w32 is not available inside the cwrapper.  Returns result in
         1840  +# func_to_host_path_result.
         1841  +func_convert_path_msys_to_w32 ()
         1842  +{
         1843  +  $opt_debug
         1844  +  func_to_host_path_result="$1"
         1845  +  if test -n "$1"; then
         1846  +    # Remove leading and trailing path separator characters from ARG.  MSYS
         1847  +    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
         1848  +    # and winepath ignores them completely.
         1849  +    func_stripname : : "$1"
         1850  +    func_to_host_path_tmp1=$func_stripname_result
         1851  +    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
         1852  +    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
         1853  +    func_convert_path_check : ";" \
         1854  +      "$func_to_host_path_tmp1" "$func_to_host_path_result"
         1855  +    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
         1856  +  fi
         1857  +}
         1858  +# end func_convert_path_msys_to_w32
         1859  +
         1860  +
         1861  +# func_convert_path_cygwin_to_w32 ARG
         1862  +# Convert path ARG from Cygwin to w32 format.  Returns result in
         1863  +# func_to_host_file_result.
         1864  +func_convert_path_cygwin_to_w32 ()
         1865  +{
         1866  +  $opt_debug
         1867  +  func_to_host_path_result="$1"
         1868  +  if test -n "$1"; then
         1869  +    # See func_convert_path_msys_to_w32:
         1870  +    func_stripname : : "$1"
         1871  +    func_to_host_path_tmp1=$func_stripname_result
         1872  +    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
         1873  +    func_convert_path_check : ";" \
         1874  +      "$func_to_host_path_tmp1" "$func_to_host_path_result"
         1875  +    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
         1876  +  fi
         1877  +}
         1878  +# end func_convert_path_cygwin_to_w32
         1879  +
         1880  +
         1881  +# func_convert_path_nix_to_w32 ARG
         1882  +# Convert path ARG from *nix to w32 format.  Requires a wine environment and
         1883  +# a working winepath.  Returns result in func_to_host_file_result.
         1884  +func_convert_path_nix_to_w32 ()
         1885  +{
         1886  +  $opt_debug
         1887  +  func_to_host_path_result="$1"
         1888  +  if test -n "$1"; then
         1889  +    # See func_convert_path_msys_to_w32:
         1890  +    func_stripname : : "$1"
         1891  +    func_to_host_path_tmp1=$func_stripname_result
         1892  +    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
         1893  +    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
         1894  +    func_convert_path_check : ";" \
         1895  +      "$func_to_host_path_tmp1" "$func_to_host_path_result"
         1896  +    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
         1897  +  fi
         1898  +}
         1899  +# end func_convert_path_nix_to_w32
         1900  +
         1901  +
         1902  +# func_convert_path_msys_to_cygwin ARG
         1903  +# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
         1904  +# Returns result in func_to_host_file_result.
         1905  +func_convert_path_msys_to_cygwin ()
         1906  +{
         1907  +  $opt_debug
         1908  +  func_to_host_path_result="$1"
         1909  +  if test -n "$1"; then
         1910  +    # See func_convert_path_msys_to_w32:
         1911  +    func_stripname : : "$1"
         1912  +    func_to_host_path_tmp1=$func_stripname_result
         1913  +    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
         1914  +    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
         1915  +    func_to_host_path_result="$func_cygpath_result"
         1916  +    func_convert_path_check : : \
         1917  +      "$func_to_host_path_tmp1" "$func_to_host_path_result"
         1918  +    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
         1919  +  fi
         1920  +}
         1921  +# end func_convert_path_msys_to_cygwin
         1922  +
         1923  +
         1924  +# func_convert_path_nix_to_cygwin ARG
         1925  +# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
         1926  +# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
         1927  +# func_to_host_file_result.
         1928  +func_convert_path_nix_to_cygwin ()
         1929  +{
         1930  +  $opt_debug
         1931  +  func_to_host_path_result="$1"
         1932  +  if test -n "$1"; then
         1933  +    # Remove leading and trailing path separator characters from
         1934  +    # ARG. msys behavior is inconsistent here, cygpath turns them
         1935  +    # into '.;' and ';.', and winepath ignores them completely.
         1936  +    func_stripname : : "$1"
         1937  +    func_to_host_path_tmp1=$func_stripname_result
         1938  +    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
         1939  +    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
         1940  +    func_to_host_path_result="$func_cygpath_result"
         1941  +    func_convert_path_check : : \
         1942  +      "$func_to_host_path_tmp1" "$func_to_host_path_result"
         1943  +    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
         1944  +  fi
         1945  +}
         1946  +# end func_convert_path_nix_to_cygwin
         1947  +
         1948  +
         1949  +# func_mode_compile arg...
         1950  +func_mode_compile ()
         1951  +{
         1952  +    $opt_debug
         1953  +    # Get the compilation command and the source file.
         1954  +    base_compile=
         1955  +    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
         1956  +    suppress_opt=yes
         1957  +    suppress_output=
         1958  +    arg_mode=normal
         1959  +    libobj=
         1960  +    later=
         1961  +    pie_flag=
         1962  +
         1963  +    for arg
         1964  +    do
         1965  +      case $arg_mode in
         1966  +      arg  )
         1967  +	# do not "continue".  Instead, add this to base_compile
         1968  +	lastarg="$arg"
         1969  +	arg_mode=normal
         1970  +	;;
         1971  +
         1972  +      target )
         1973  +	libobj="$arg"
         1974  +	arg_mode=normal
         1975  +	continue
         1976  +	;;
         1977  +
         1978  +      normal )
         1979  +	# Accept any command-line options.
         1980  +	case $arg in
         1981  +	-o)
         1982  +	  test -n "$libobj" && \
         1983  +	    func_fatal_error "you cannot specify \`-o' more than once"
         1984  +	  arg_mode=target
         1985  +	  continue
         1986  +	  ;;
         1987  +
         1988  +	-pie | -fpie | -fPIE)
         1989  +          func_append pie_flag " $arg"
         1990  +	  continue
         1991  +	  ;;
         1992  +
         1993  +	-shared | -static | -prefer-pic | -prefer-non-pic)
         1994  +	  func_append later " $arg"
         1995  +	  continue
         1996  +	  ;;
         1997  +
         1998  +	-no-suppress)
         1999  +	  suppress_opt=no
         2000  +	  continue
         2001  +	  ;;
         2002  +
         2003  +	-Xcompiler)
         2004  +	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
         2005  +	  continue      #  The current "srcfile" will either be retained or
         2006  +	  ;;            #  replaced later.  I would guess that would be a bug.
         2007  +
         2008  +	-Wc,*)
         2009  +	  func_stripname '-Wc,' '' "$arg"
         2010  +	  args=$func_stripname_result
         2011  +	  lastarg=
         2012  +	  save_ifs="$IFS"; IFS=','
         2013  +	  for arg in $args; do
         2014  +	    IFS="$save_ifs"
         2015  +	    func_append_quoted lastarg "$arg"
         2016  +	  done
         2017  +	  IFS="$save_ifs"
         2018  +	  func_stripname ' ' '' "$lastarg"
         2019  +	  lastarg=$func_stripname_result
         2020  +
         2021  +	  # Add the arguments to base_compile.
         2022  +	  func_append base_compile " $lastarg"
         2023  +	  continue
         2024  +	  ;;
         2025  +
         2026  +	*)
         2027  +	  # Accept the current argument as the source file.
         2028  +	  # The previous "srcfile" becomes the current argument.
         2029  +	  #
         2030  +	  lastarg="$srcfile"
         2031  +	  srcfile="$arg"
         2032  +	  ;;
         2033  +	esac  #  case $arg
         2034  +	;;
         2035  +      esac    #  case $arg_mode
         2036  +
         2037  +      # Aesthetically quote the previous argument.
         2038  +      func_append_quoted base_compile "$lastarg"
         2039  +    done # for arg
         2040  +
         2041  +    case $arg_mode in
         2042  +    arg)
         2043  +      func_fatal_error "you must specify an argument for -Xcompile"
         2044  +      ;;
         2045  +    target)
         2046  +      func_fatal_error "you must specify a target with \`-o'"
         2047  +      ;;
         2048  +    *)
         2049  +      # Get the name of the library object.
         2050  +      test -z "$libobj" && {
         2051  +	func_basename "$srcfile"
         2052  +	libobj="$func_basename_result"
         2053  +      }
         2054  +      ;;
         2055  +    esac
         2056  +
         2057  +    # Recognize several different file suffixes.
         2058  +    # If the user specifies -o file.o, it is replaced with file.lo
         2059  +    case $libobj in
         2060  +    *.[cCFSifmso] | \
         2061  +    *.ada | *.adb | *.ads | *.asm | \
         2062  +    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
         2063  +    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
         2064  +      func_xform "$libobj"
         2065  +      libobj=$func_xform_result
         2066  +      ;;
         2067  +    esac
         2068  +
         2069  +    case $libobj in
         2070  +    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
         2071  +    *)
         2072  +      func_fatal_error "cannot determine name of library object from \`$libobj'"
         2073  +      ;;
         2074  +    esac
         2075  +
         2076  +    func_infer_tag $base_compile
         2077  +
         2078  +    for arg in $later; do
         2079  +      case $arg in
         2080  +      -shared)
         2081  +	test "$build_libtool_libs" != yes && \
         2082  +	  func_fatal_configuration "can not build a shared library"
         2083  +	build_old_libs=no
         2084  +	continue
         2085  +	;;
         2086  +
         2087  +      -static)
         2088  +	build_libtool_libs=no
         2089  +	build_old_libs=yes
         2090  +	continue
         2091  +	;;
         2092  +
         2093  +      -prefer-pic)
         2094  +	pic_mode=yes
         2095  +	continue
         2096  +	;;
         2097  +
         2098  +      -prefer-non-pic)
         2099  +	pic_mode=no
         2100  +	continue
         2101  +	;;
         2102  +      esac
         2103  +    done
         2104  +
         2105  +    func_quote_for_eval "$libobj"
         2106  +    test "X$libobj" != "X$func_quote_for_eval_result" \
         2107  +      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
         2108  +      && func_warning "libobj name \`$libobj' may not contain shell special characters."
         2109  +    func_dirname_and_basename "$obj" "/" ""
         2110  +    objname="$func_basename_result"
         2111  +    xdir="$func_dirname_result"
         2112  +    lobj=${xdir}$objdir/$objname
         2113  +
         2114  +    test -z "$base_compile" && \
         2115  +      func_fatal_help "you must specify a compilation command"
         2116  +
         2117  +    # Delete any leftover library objects.
         2118  +    if test "$build_old_libs" = yes; then
         2119  +      removelist="$obj $lobj $libobj ${libobj}T"
         2120  +    else
         2121  +      removelist="$lobj $libobj ${libobj}T"
         2122  +    fi
         2123  +
         2124  +    # On Cygwin there's no "real" PIC flag so we must build both object types
         2125  +    case $host_os in
         2126  +    cygwin* | mingw* | pw32* | os2* | cegcc*)
         2127  +      pic_mode=default
         2128  +      ;;
         2129  +    esac
         2130  +    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
         2131  +      # non-PIC code in shared libraries is not supported
         2132  +      pic_mode=default
         2133  +    fi
         2134  +
         2135  +    # Calculate the filename of the output object if compiler does
         2136  +    # not support -o with -c
         2137  +    if test "$compiler_c_o" = no; then
         2138  +      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
         2139  +      lockfile="$output_obj.lock"
         2140  +    else
         2141  +      output_obj=
         2142  +      need_locks=no
         2143  +      lockfile=
         2144  +    fi
         2145  +
         2146  +    # Lock this critical section if it is needed
         2147  +    # We use this script file to make the link, it avoids creating a new file
         2148  +    if test "$need_locks" = yes; then
         2149  +      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
         2150  +	func_echo "Waiting for $lockfile to be removed"
         2151  +	sleep 2
         2152  +      done
         2153  +    elif test "$need_locks" = warn; then
         2154  +      if test -f "$lockfile"; then
         2155  +	$ECHO "\
         2156  +*** ERROR, $lockfile exists and contains:
         2157  +`cat $lockfile 2>/dev/null`
         2158  +
         2159  +This indicates that another process is trying to use the same
         2160  +temporary object file, and libtool could not work around it because
         2161  +your compiler does not support \`-c' and \`-o' together.  If you
         2162  +repeat this compilation, it may succeed, by chance, but you had better
         2163  +avoid parallel builds (make -j) in this platform, or get a better
         2164  +compiler."
         2165  +
         2166  +	$opt_dry_run || $RM $removelist
         2167  +	exit $EXIT_FAILURE
         2168  +      fi
         2169  +      func_append removelist " $output_obj"
         2170  +      $ECHO "$srcfile" > "$lockfile"
         2171  +    fi
         2172  +
         2173  +    $opt_dry_run || $RM $removelist
         2174  +    func_append removelist " $lockfile"
         2175  +    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
         2176  +
         2177  +    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
         2178  +    srcfile=$func_to_tool_file_result
         2179  +    func_quote_for_eval "$srcfile"
         2180  +    qsrcfile=$func_quote_for_eval_result
         2181  +
         2182  +    # Only build a PIC object if we are building libtool libraries.
         2183  +    if test "$build_libtool_libs" = yes; then
         2184  +      # Without this assignment, base_compile gets emptied.
         2185  +      fbsd_hideous_sh_bug=$base_compile
         2186  +
         2187  +      if test "$pic_mode" != no; then
         2188  +	command="$base_compile $qsrcfile $pic_flag"
         2189  +      else
         2190  +	# Don't build PIC code
         2191  +	command="$base_compile $qsrcfile"
         2192  +      fi
         2193  +
         2194  +      func_mkdir_p "$xdir$objdir"
         2195  +
         2196  +      if test -z "$output_obj"; then
         2197  +	# Place PIC objects in $objdir
         2198  +	func_append command " -o $lobj"
         2199  +      fi
         2200  +
         2201  +      func_show_eval_locale "$command"	\
         2202  +          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
         2203  +
         2204  +      if test "$need_locks" = warn &&
         2205  +	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
         2206  +	$ECHO "\
         2207  +*** ERROR, $lockfile contains:
         2208  +`cat $lockfile 2>/dev/null`
         2209  +
         2210  +but it should contain:
         2211  +$srcfile
         2212  +
         2213  +This indicates that another process is trying to use the same
         2214  +temporary object file, and libtool could not work around it because
         2215  +your compiler does not support \`-c' and \`-o' together.  If you
         2216  +repeat this compilation, it may succeed, by chance, but you had better
         2217  +avoid parallel builds (make -j) in this platform, or get a better
         2218  +compiler."
         2219  +
         2220  +	$opt_dry_run || $RM $removelist
         2221  +	exit $EXIT_FAILURE
         2222  +      fi
         2223  +
         2224  +      # Just move the object if needed, then go on to compile the next one
         2225  +      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
         2226  +	func_show_eval '$MV "$output_obj" "$lobj"' \
         2227  +	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
         2228  +      fi
         2229  +
         2230  +      # Allow error messages only from the first compilation.
         2231  +      if test "$suppress_opt" = yes; then
         2232  +	suppress_output=' >/dev/null 2>&1'
         2233  +      fi
         2234  +    fi
         2235  +
         2236  +    # Only build a position-dependent object if we build old libraries.
         2237  +    if test "$build_old_libs" = yes; then
         2238  +      if test "$pic_mode" != yes; then
         2239  +	# Don't build PIC code
         2240  +	command="$base_compile $qsrcfile$pie_flag"
         2241  +      else
         2242  +	command="$base_compile $qsrcfile $pic_flag"
         2243  +      fi
         2244  +      if test "$compiler_c_o" = yes; then
         2245  +	func_append command " -o $obj"
         2246  +      fi
         2247  +
         2248  +      # Suppress compiler output if we already did a PIC compilation.
         2249  +      func_append command "$suppress_output"
         2250  +      func_show_eval_locale "$command" \
         2251  +        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
         2252  +
         2253  +      if test "$need_locks" = warn &&
         2254  +	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
         2255  +	$ECHO "\
         2256  +*** ERROR, $lockfile contains:
         2257  +`cat $lockfile 2>/dev/null`
         2258  +
         2259  +but it should contain:
         2260  +$srcfile
         2261  +
         2262  +This indicates that another process is trying to use the same
         2263  +temporary object file, and libtool could not work around it because
         2264  +your compiler does not support \`-c' and \`-o' together.  If you
         2265  +repeat this compilation, it may succeed, by chance, but you had better
         2266  +avoid parallel builds (make -j) in this platform, or get a better
         2267  +compiler."
         2268  +
         2269  +	$opt_dry_run || $RM $removelist
         2270  +	exit $EXIT_FAILURE
         2271  +      fi
         2272  +
         2273  +      # Just move the object if needed
         2274  +      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
         2275  +	func_show_eval '$MV "$output_obj" "$obj"' \
         2276  +	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
         2277  +      fi
         2278  +    fi
         2279  +
         2280  +    $opt_dry_run || {
         2281  +      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
         2282  +
         2283  +      # Unlock the critical section if it was locked
         2284  +      if test "$need_locks" != no; then
         2285  +	removelist=$lockfile
         2286  +        $RM "$lockfile"
         2287  +      fi
         2288  +    }
         2289  +
         2290  +    exit $EXIT_SUCCESS
         2291  +}
         2292  +
         2293  +$opt_help || {
         2294  +  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
         2295  +}
         2296  +
         2297  +func_mode_help ()
         2298  +{
         2299  +    # We need to display help for each of the modes.
         2300  +    case $opt_mode in
         2301  +      "")
         2302  +        # Generic help is extracted from the usage comments
         2303  +        # at the start of this file.
         2304  +        func_help
         2305  +        ;;
         2306  +
         2307  +      clean)
         2308  +        $ECHO \
         2309  +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
         2310  +
         2311  +Remove files from the build directory.
         2312  +
         2313  +RM is the name of the program to use to delete files associated with each FILE
         2314  +(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
         2315  +to RM.
         2316  +
         2317  +If FILE is a libtool library, object or program, all the files associated
         2318  +with it are deleted. Otherwise, only FILE itself is deleted using RM."
         2319  +        ;;
         2320  +
         2321  +      compile)
         2322  +      $ECHO \
         2323  +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
         2324  +
         2325  +Compile a source file into a libtool library object.
         2326  +
         2327  +This mode accepts the following additional options:
         2328  +
         2329  +  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
         2330  +  -no-suppress      do not suppress compiler output for multiple passes
         2331  +  -prefer-pic       try to build PIC objects only
         2332  +  -prefer-non-pic   try to build non-PIC objects only
         2333  +  -shared           do not build a \`.o' file suitable for static linking
         2334  +  -static           only build a \`.o' file suitable for static linking
         2335  +  -Wc,FLAG          pass FLAG directly to the compiler
         2336  +
         2337  +COMPILE-COMMAND is a command to be used in creating a \`standard' object file
         2338  +from the given SOURCEFILE.
         2339  +
         2340  +The output file name is determined by removing the directory component from
         2341  +SOURCEFILE, then substituting the C source code suffix \`.c' with the
         2342  +library object suffix, \`.lo'."
         2343  +        ;;
         2344  +
         2345  +      execute)
         2346  +        $ECHO \
         2347  +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
         2348  +
         2349  +Automatically set library path, then run a program.
         2350  +
         2351  +This mode accepts the following additional options:
         2352  +
         2353  +  -dlopen FILE      add the directory containing FILE to the library path
         2354  +
         2355  +This mode sets the library path environment variable according to \`-dlopen'
         2356  +flags.
         2357  +
         2358  +If any of the ARGS are libtool executable wrappers, then they are translated
         2359  +into their corresponding uninstalled binary, and any of their required library
         2360  +directories are added to the library path.
         2361  +
         2362  +Then, COMMAND is executed, with ARGS as arguments."
         2363  +        ;;
         2364  +
         2365  +      finish)
         2366  +        $ECHO \
         2367  +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
         2368  +
         2369  +Complete the installation of libtool libraries.
         2370  +
         2371  +Each LIBDIR is a directory that contains libtool libraries.
         2372  +
         2373  +The commands that this mode executes may require superuser privileges.  Use
         2374  +the \`--dry-run' option if you just want to see what would be executed."
         2375  +        ;;
         2376  +
         2377  +      install)
         2378  +        $ECHO \
         2379  +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
         2380  +
         2381  +Install executables or libraries.
         2382  +
         2383  +INSTALL-COMMAND is the installation command.  The first component should be
         2384  +either the \`install' or \`cp' program.
         2385  +
         2386  +The following components of INSTALL-COMMAND are treated specially:
         2387  +
         2388  +  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
         2389  +
         2390  +The rest of the components are interpreted as arguments to that command (only
         2391  +BSD-compatible install options are recognized)."
         2392  +        ;;
         2393  +
         2394  +      link)
         2395  +        $ECHO \
         2396  +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
         2397  +
         2398  +Link object files or libraries together to form another library, or to
         2399  +create an executable program.
         2400  +
         2401  +LINK-COMMAND is a command using the C compiler that you would use to create
         2402  +a program from several object files.
         2403  +
         2404  +The following components of LINK-COMMAND are treated specially:
         2405  +
         2406  +  -all-static       do not do any dynamic linking at all
         2407  +  -avoid-version    do not add a version suffix if possible
         2408  +  -bindir BINDIR    specify path to binaries directory (for systems where
         2409  +                    libraries must be found in the PATH setting at runtime)
         2410  +  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
         2411  +  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
         2412  +  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
         2413  +  -export-symbols SYMFILE
         2414  +                    try to export only the symbols listed in SYMFILE
         2415  +  -export-symbols-regex REGEX
         2416  +                    try to export only the symbols matching REGEX
         2417  +  -LLIBDIR          search LIBDIR for required installed libraries
         2418  +  -lNAME            OUTPUT-FILE requires the installed library libNAME
         2419  +  -module           build a library that can dlopened
         2420  +  -no-fast-install  disable the fast-install mode
         2421  +  -no-install       link a not-installable executable
         2422  +  -no-undefined     declare that a library does not refer to external symbols
         2423  +  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
         2424  +  -objectlist FILE  Use a list of object files found in FILE to specify objects
         2425  +  -precious-files-regex REGEX
         2426  +                    don't remove output files matching REGEX
         2427  +  -release RELEASE  specify package release information
         2428  +  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
         2429  +  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
         2430  +  -shared           only do dynamic linking of libtool libraries
         2431  +  -shrext SUFFIX    override the standard shared library file extension
         2432  +  -static           do not do any dynamic linking of uninstalled libtool libraries
         2433  +  -static-libtool-libs
         2434  +                    do not do any dynamic linking of libtool libraries
         2435  +  -version-info CURRENT[:REVISION[:AGE]]
         2436  +                    specify library version info [each variable defaults to 0]
         2437  +  -weak LIBNAME     declare that the target provides the LIBNAME interface
         2438  +  -Wc,FLAG
         2439  +  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
         2440  +  -Wl,FLAG
         2441  +  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
         2442  +  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
         2443  +
         2444  +All other options (arguments beginning with \`-') are ignored.
         2445  +
         2446  +Every other argument is treated as a filename.  Files ending in \`.la' are
         2447  +treated as uninstalled libtool libraries, other files are standard or library
         2448  +object files.
         2449  +
         2450  +If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
         2451  +only library objects (\`.lo' files) may be specified, and \`-rpath' is
         2452  +required, except when creating a convenience library.
         2453  +
         2454  +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
         2455  +using \`ar' and \`ranlib', or on Windows using \`lib'.
         2456  +
         2457  +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
         2458  +is created, otherwise an executable program is created."
         2459  +        ;;
         2460  +
         2461  +      uninstall)
         2462  +        $ECHO \
         2463  +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
         2464  +
         2465  +Remove libraries from an installation directory.
         2466  +
         2467  +RM is the name of the program to use to delete files associated with each FILE
         2468  +(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
         2469  +to RM.
         2470  +
         2471  +If FILE is a libtool library, all the files associated with it are deleted.
         2472  +Otherwise, only FILE itself is deleted using RM."
         2473  +        ;;
         2474  +
         2475  +      *)
         2476  +        func_fatal_help "invalid operation mode \`$opt_mode'"
         2477  +        ;;
         2478  +    esac
         2479  +
         2480  +    echo
         2481  +    $ECHO "Try \`$progname --help' for more information about other modes."
         2482  +}
         2483  +
         2484  +# Now that we've collected a possible --mode arg, show help if necessary
         2485  +if $opt_help; then
         2486  +  if test "$opt_help" = :; then
         2487  +    func_mode_help
         2488  +  else
         2489  +    {
         2490  +      func_help noexit
         2491  +      for opt_mode in compile link execute install finish uninstall clean; do
         2492  +	func_mode_help
         2493  +      done
         2494  +    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
         2495  +    {
         2496  +      func_help noexit
         2497  +      for opt_mode in compile link execute install finish uninstall clean; do
         2498  +	echo
         2499  +	func_mode_help
         2500  +      done
         2501  +    } |
         2502  +    sed '1d
         2503  +      /^When reporting/,/^Report/{
         2504  +	H
         2505  +	d
         2506  +      }
         2507  +      $x
         2508  +      /information about other modes/d
         2509  +      /more detailed .*MODE/d
         2510  +      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
         2511  +  fi
         2512  +  exit $?
         2513  +fi
         2514  +
         2515  +
         2516  +# func_mode_execute arg...
         2517  +func_mode_execute ()
         2518  +{
         2519  +    $opt_debug
         2520  +    # The first argument is the command name.
         2521  +    cmd="$nonopt"
         2522  +    test -z "$cmd" && \
         2523  +      func_fatal_help "you must specify a COMMAND"
         2524  +
         2525  +    # Handle -dlopen flags immediately.
         2526  +    for file in $opt_dlopen; do
         2527  +      test -f "$file" \
         2528  +	|| func_fatal_help "\`$file' is not a file"
         2529  +
         2530  +      dir=
         2531  +      case $file in
         2532  +      *.la)
         2533  +	func_resolve_sysroot "$file"
         2534  +	file=$func_resolve_sysroot_result
         2535  +
         2536  +	# Check to see that this really is a libtool archive.
         2537  +	func_lalib_unsafe_p "$file" \
         2538  +	  || func_fatal_help "\`$lib' is not a valid libtool archive"
         2539  +
         2540  +	# Read the libtool library.
         2541  +	dlname=
         2542  +	library_names=
         2543  +	func_source "$file"
         2544  +
         2545  +	# Skip this library if it cannot be dlopened.
         2546  +	if test -z "$dlname"; then
         2547  +	  # Warn if it was a shared library.
         2548  +	  test -n "$library_names" && \
         2549  +	    func_warning "\`$file' was not linked with \`-export-dynamic'"
         2550  +	  continue
         2551  +	fi
         2552  +
         2553  +	func_dirname "$file" "" "."
         2554  +	dir="$func_dirname_result"
         2555  +
         2556  +	if test -f "$dir/$objdir/$dlname"; then
         2557  +	  func_append dir "/$objdir"
         2558  +	else
         2559  +	  if test ! -f "$dir/$dlname"; then
         2560  +	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
         2561  +	  fi
         2562  +	fi
         2563  +	;;
         2564  +
         2565  +      *.lo)
         2566  +	# Just add the directory containing the .lo file.
         2567  +	func_dirname "$file" "" "."
         2568  +	dir="$func_dirname_result"
         2569  +	;;
         2570  +
         2571  +      *)
         2572  +	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
         2573  +	continue
         2574  +	;;
         2575  +      esac
         2576  +
         2577  +      # Get the absolute pathname.
         2578  +      absdir=`cd "$dir" && pwd`
         2579  +      test -n "$absdir" && dir="$absdir"
         2580  +
         2581  +      # Now add the directory to shlibpath_var.
         2582  +      if eval "test -z \"\$$shlibpath_var\""; then
         2583  +	eval "$shlibpath_var=\"\$dir\""
         2584  +      else
         2585  +	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
         2586  +      fi
         2587  +    done
         2588  +
         2589  +    # This variable tells wrapper scripts just to set shlibpath_var
         2590  +    # rather than running their programs.
         2591  +    libtool_execute_magic="$magic"
         2592  +
         2593  +    # Check if any of the arguments is a wrapper script.
         2594  +    args=
         2595  +    for file
         2596  +    do
         2597  +      case $file in
         2598  +      -* | *.la | *.lo ) ;;
         2599  +      *)
         2600  +	# Do a test to see if this is really a libtool program.
         2601  +	if func_ltwrapper_script_p "$file"; then
         2602  +	  func_source "$file"
         2603  +	  # Transform arg to wrapped name.
         2604  +	  file="$progdir/$program"
         2605  +	elif func_ltwrapper_executable_p "$file"; then
         2606  +	  func_ltwrapper_scriptname "$file"
         2607  +	  func_source "$func_ltwrapper_scriptname_result"
         2608  +	  # Transform arg to wrapped name.
         2609  +	  file="$progdir/$program"
         2610  +	fi
         2611  +	;;
         2612  +      esac
         2613  +      # Quote arguments (to preserve shell metacharacters).
         2614  +      func_append_quoted args "$file"
         2615  +    done
         2616  +
         2617  +    if test "X$opt_dry_run" = Xfalse; then
         2618  +      if test -n "$shlibpath_var"; then
         2619  +	# Export the shlibpath_var.
         2620  +	eval "export $shlibpath_var"
         2621  +      fi
         2622  +
         2623  +      # Restore saved environment variables
         2624  +      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
         2625  +      do
         2626  +	eval "if test \"\${save_$lt_var+set}\" = set; then
         2627  +                $lt_var=\$save_$lt_var; export $lt_var
         2628  +	      else
         2629  +		$lt_unset $lt_var
         2630  +	      fi"
         2631  +      done
         2632  +
         2633  +      # Now prepare to actually exec the command.
         2634  +      exec_cmd="\$cmd$args"
         2635  +    else
         2636  +      # Display what would be done.
         2637  +      if test -n "$shlibpath_var"; then
         2638  +	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
         2639  +	echo "export $shlibpath_var"
         2640  +      fi
         2641  +      $ECHO "$cmd$args"
         2642  +      exit $EXIT_SUCCESS
         2643  +    fi
         2644  +}
         2645  +
         2646  +test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
         2647  +
         2648  +
         2649  +# func_mode_finish arg...
         2650  +func_mode_finish ()
         2651  +{
         2652  +    $opt_debug
         2653  +    libs=
         2654  +    libdirs=
         2655  +    admincmds=
         2656  +
         2657  +    for opt in "$nonopt" ${1+"$@"}
         2658  +    do
         2659  +      if test -d "$opt"; then
         2660  +	func_append libdirs " $opt"
         2661  +
         2662  +      elif test -f "$opt"; then
         2663  +	if func_lalib_unsafe_p "$opt"; then
         2664  +	  func_append libs " $opt"
         2665  +	else
         2666  +	  func_warning "\`$opt' is not a valid libtool archive"
         2667  +	fi
         2668  +
         2669  +      else
         2670  +	func_fatal_error "invalid argument \`$opt'"
         2671  +      fi
         2672  +    done
         2673  +
         2674  +    if test -n "$libs"; then
         2675  +      if test -n "$lt_sysroot"; then
         2676  +        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
         2677  +        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
         2678  +      else
         2679  +        sysroot_cmd=
         2680  +      fi
         2681  +
         2682  +      # Remove sysroot references
         2683  +      if $opt_dry_run; then
         2684  +        for lib in $libs; do
         2685  +          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
         2686  +        done
         2687  +      else
         2688  +        tmpdir=`func_mktempdir`
         2689  +        for lib in $libs; do
         2690  +	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
         2691  +	    > $tmpdir/tmp-la
         2692  +	  mv -f $tmpdir/tmp-la $lib
         2693  +	done
         2694  +        ${RM}r "$tmpdir"
         2695  +      fi
         2696  +    fi
         2697  +
         2698  +    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
         2699  +      for libdir in $libdirs; do
         2700  +	if test -n "$finish_cmds"; then
         2701  +	  # Do each command in the finish commands.
         2702  +	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
         2703  +'"$cmd"'"'
         2704  +	fi
         2705  +	if test -n "$finish_eval"; then
         2706  +	  # Do the single finish_eval.
         2707  +	  eval cmds=\"$finish_eval\"
         2708  +	  $opt_dry_run || eval "$cmds" || func_append admincmds "
         2709  +       $cmds"
         2710  +	fi
         2711  +      done
         2712  +    fi
         2713  +
         2714  +    # Exit here if they wanted silent mode.
         2715  +    $opt_silent && exit $EXIT_SUCCESS
         2716  +
         2717  +    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
         2718  +      echo "----------------------------------------------------------------------"
         2719  +      echo "Libraries have been installed in:"
         2720  +      for libdir in $libdirs; do
         2721  +	$ECHO "   $libdir"
         2722  +      done
         2723  +      echo
         2724  +      echo "If you ever happen to want to link against installed libraries"
         2725  +      echo "in a given directory, LIBDIR, you must either use libtool, and"
         2726  +      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
         2727  +      echo "flag during linking and do at least one of the following:"
         2728  +      if test -n "$shlibpath_var"; then
         2729  +	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
         2730  +	echo "     during execution"
         2731  +      fi
         2732  +      if test -n "$runpath_var"; then
         2733  +	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
         2734  +	echo "     during linking"
         2735  +      fi
         2736  +      if test -n "$hardcode_libdir_flag_spec"; then
         2737  +	libdir=LIBDIR
         2738  +	eval flag=\"$hardcode_libdir_flag_spec\"
         2739  +
         2740  +	$ECHO "   - use the \`$flag' linker flag"
         2741  +      fi
         2742  +      if test -n "$admincmds"; then
         2743  +	$ECHO "   - have your system administrator run these commands:$admincmds"
         2744  +      fi
         2745  +      if test -f /etc/ld.so.conf; then
         2746  +	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
         2747  +      fi
         2748  +      echo
         2749  +
         2750  +      echo "See any operating system documentation about shared libraries for"
         2751  +      case $host in
         2752  +	solaris2.[6789]|solaris2.1[0-9])
         2753  +	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
         2754  +	  echo "pages."
         2755  +	  ;;
         2756  +	*)
         2757  +	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
         2758  +	  ;;
         2759  +      esac
         2760  +      echo "----------------------------------------------------------------------"
         2761  +    fi
         2762  +    exit $EXIT_SUCCESS
         2763  +}
         2764  +
         2765  +test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
         2766  +
         2767  +
         2768  +# func_mode_install arg...
         2769  +func_mode_install ()
         2770  +{
         2771  +    $opt_debug
         2772  +    # There may be an optional sh(1) argument at the beginning of
         2773  +    # install_prog (especially on Windows NT).
         2774  +    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
         2775  +       # Allow the use of GNU shtool's install command.
         2776  +       case $nonopt in *shtool*) :;; *) false;; esac; then
         2777  +      # Aesthetically quote it.
         2778  +      func_quote_for_eval "$nonopt"
         2779  +      install_prog="$func_quote_for_eval_result "
         2780  +      arg=$1
         2781  +      shift
         2782  +    else
         2783  +      install_prog=
         2784  +      arg=$nonopt
         2785  +    fi
         2786  +
         2787  +    # The real first argument should be the name of the installation program.
         2788  +    # Aesthetically quote it.
         2789  +    func_quote_for_eval "$arg"
         2790  +    func_append install_prog "$func_quote_for_eval_result"
         2791  +    install_shared_prog=$install_prog
         2792  +    case " $install_prog " in
         2793  +      *[\\\ /]cp\ *) install_cp=: ;;
         2794  +      *) install_cp=false ;;
         2795  +    esac
         2796  +
         2797  +    # We need to accept at least all the BSD install flags.
         2798  +    dest=
         2799  +    files=
         2800  +    opts=
         2801  +    prev=
         2802  +    install_type=
         2803  +    isdir=no
         2804  +    stripme=
         2805  +    no_mode=:
         2806  +    for arg
         2807  +    do
         2808  +      arg2=
         2809  +      if test -n "$dest"; then
         2810  +	func_append files " $dest"
         2811  +	dest=$arg
         2812  +	continue
         2813  +      fi
         2814  +
         2815  +      case $arg in
         2816  +      -d) isdir=yes ;;
         2817  +      -f)
         2818  +	if $install_cp; then :; else
         2819  +	  prev=$arg
         2820  +	fi
         2821  +	;;
         2822  +      -g | -m | -o)
         2823  +	prev=$arg
         2824  +	;;
         2825  +      -s)
         2826  +	stripme=" -s"
         2827  +	continue
         2828  +	;;
         2829  +      -*)
         2830  +	;;
         2831  +      *)
         2832  +	# If the previous option needed an argument, then skip it.
         2833  +	if test -n "$prev"; then
         2834  +	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
         2835  +	    arg2=$install_override_mode
         2836  +	    no_mode=false
         2837  +	  fi
         2838  +	  prev=
         2839  +	else
         2840  +	  dest=$arg
         2841  +	  continue
         2842  +	fi
         2843  +	;;
         2844  +      esac
         2845  +
         2846  +      # Aesthetically quote the argument.
         2847  +      func_quote_for_eval "$arg"
         2848  +      func_append install_prog " $func_quote_for_eval_result"
         2849  +      if test -n "$arg2"; then
         2850  +	func_quote_for_eval "$arg2"
         2851  +      fi
         2852  +      func_append install_shared_prog " $func_quote_for_eval_result"
         2853  +    done
         2854  +
         2855  +    test -z "$install_prog" && \
         2856  +      func_fatal_help "you must specify an install program"
         2857  +
         2858  +    test -n "$prev" && \
         2859  +      func_fatal_help "the \`$prev' option requires an argument"
         2860  +
         2861  +    if test -n "$install_override_mode" && $no_mode; then
         2862  +      if $install_cp; then :; else
         2863  +	func_quote_for_eval "$install_override_mode"
         2864  +	func_append install_shared_prog " -m $func_quote_for_eval_result"
         2865  +      fi
         2866  +    fi
         2867  +
         2868  +    if test -z "$files"; then
         2869  +      if test -z "$dest"; then
         2870  +	func_fatal_help "no file or destination specified"
         2871  +      else
         2872  +	func_fatal_help "you must specify a destination"
         2873  +      fi
         2874  +    fi
         2875  +
         2876  +    # Strip any trailing slash from the destination.
         2877  +    func_stripname '' '/' "$dest"
         2878  +    dest=$func_stripname_result
         2879  +
         2880  +    # Check to see that the destination is a directory.
         2881  +    test -d "$dest" && isdir=yes
         2882  +    if test "$isdir" = yes; then
         2883  +      destdir="$dest"
         2884  +      destname=
         2885  +    else
         2886  +      func_dirname_and_basename "$dest" "" "."
         2887  +      destdir="$func_dirname_result"
         2888  +      destname="$func_basename_result"
         2889  +
         2890  +      # Not a directory, so check to see that there is only one file specified.
         2891  +      set dummy $files; shift
         2892  +      test "$#" -gt 1 && \
         2893  +	func_fatal_help "\`$dest' is not a directory"
         2894  +    fi
         2895  +    case $destdir in
         2896  +    [\\/]* | [A-Za-z]:[\\/]*) ;;
         2897  +    *)
         2898  +      for file in $files; do
         2899  +	case $file in
         2900  +	*.lo) ;;
         2901  +	*)
         2902  +	  func_fatal_help "\`$destdir' must be an absolute directory name"
         2903  +	  ;;
         2904  +	esac
         2905  +      done
         2906  +      ;;
         2907  +    esac
         2908  +
         2909  +    # This variable tells wrapper scripts just to set variables rather
         2910  +    # than running their programs.
         2911  +    libtool_install_magic="$magic"
         2912  +
         2913  +    staticlibs=
         2914  +    future_libdirs=
         2915  +    current_libdirs=
         2916  +    for file in $files; do
         2917  +
         2918  +      # Do each installation.
         2919  +      case $file in
         2920  +      *.$libext)
         2921  +	# Do the static libraries later.
         2922  +	func_append staticlibs " $file"
         2923  +	;;
         2924  +
         2925  +      *.la)
         2926  +	func_resolve_sysroot "$file"
         2927  +	file=$func_resolve_sysroot_result
         2928  +
         2929  +	# Check to see that this really is a libtool archive.
         2930  +	func_lalib_unsafe_p "$file" \
         2931  +	  || func_fatal_help "\`$file' is not a valid libtool archive"
         2932  +
         2933  +	library_names=
         2934  +	old_library=
         2935  +	relink_command=
         2936  +	func_source "$file"
         2937  +
         2938  +	# Add the libdir to current_libdirs if it is the destination.
         2939  +	if test "X$destdir" = "X$libdir"; then
         2940  +	  case "$current_libdirs " in
         2941  +	  *" $libdir "*) ;;
         2942  +	  *) func_append current_libdirs " $libdir" ;;
         2943  +	  esac
         2944  +	else
         2945  +	  # Note the libdir as a future libdir.
         2946  +	  case "$future_libdirs " in
         2947  +	  *" $libdir "*) ;;
         2948  +	  *) func_append future_libdirs " $libdir" ;;
         2949  +	  esac
         2950  +	fi
         2951  +
         2952  +	func_dirname "$file" "/" ""
         2953  +	dir="$func_dirname_result"
         2954  +	func_append dir "$objdir"
         2955  +
         2956  +	if test -n "$relink_command"; then
         2957  +	  # Determine the prefix the user has applied to our future dir.
         2958  +	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
         2959  +
         2960  +	  # Don't allow the user to place us outside of our expected
         2961  +	  # location b/c this prevents finding dependent libraries that
         2962  +	  # are installed to the same prefix.
         2963  +	  # At present, this check doesn't affect windows .dll's that
         2964  +	  # are installed into $libdir/../bin (currently, that works fine)
         2965  +	  # but it's something to keep an eye on.
         2966  +	  test "$inst_prefix_dir" = "$destdir" && \
         2967  +	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
         2968  +
         2969  +	  if test -n "$inst_prefix_dir"; then
         2970  +	    # Stick the inst_prefix_dir data into the link command.
         2971  +	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
         2972  +	  else
         2973  +	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
         2974  +	  fi
         2975  +
         2976  +	  func_warning "relinking \`$file'"
         2977  +	  func_show_eval "$relink_command" \
         2978  +	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
         2979  +	fi
         2980  +
         2981  +	# See the names of the shared library.
         2982  +	set dummy $library_names; shift
         2983  +	if test -n "$1"; then
         2984  +	  realname="$1"
         2985  +	  shift
         2986  +
         2987  +	  srcname="$realname"
         2988  +	  test -n "$relink_command" && srcname="$realname"T
         2989  +
         2990  +	  # Install the shared library and build the symlinks.
         2991  +	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
         2992  +	      'exit $?'
         2993  +	  tstripme="$stripme"
         2994  +	  case $host_os in
         2995  +	  cygwin* | mingw* | pw32* | cegcc*)
         2996  +	    case $realname in
         2997  +	    *.dll.a)
         2998  +	      tstripme=""
         2999  +	      ;;
         3000  +	    esac
         3001  +	    ;;
         3002  +	  esac
         3003  +	  if test -n "$tstripme" && test -n "$striplib"; then
         3004  +	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
         3005  +	  fi
         3006  +
         3007  +	  if test "$#" -gt 0; then
         3008  +	    # Delete the old symlinks, and create new ones.
         3009  +	    # Try `ln -sf' first, because the `ln' binary might depend on
         3010  +	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
         3011  +	    # so we also need to try rm && ln -s.
         3012  +	    for linkname
         3013  +	    do
         3014  +	      test "$linkname" != "$realname" \
         3015  +		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
         3016  +	    done
         3017  +	  fi
         3018  +
         3019  +	  # Do each command in the postinstall commands.
         3020  +	  lib="$destdir/$realname"
         3021  +	  func_execute_cmds "$postinstall_cmds" 'exit $?'
         3022  +	fi
         3023  +
         3024  +	# Install the pseudo-library for information purposes.
         3025  +	func_basename "$file"
         3026  +	name="$func_basename_result"
         3027  +	instname="$dir/$name"i
         3028  +	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
         3029  +
         3030  +	# Maybe install the static library, too.
         3031  +	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
         3032  +	;;
         3033  +
         3034  +      *.lo)
         3035  +	# Install (i.e. copy) a libtool object.
         3036  +
         3037  +	# Figure out destination file name, if it wasn't already specified.
         3038  +	if test -n "$destname"; then
         3039  +	  destfile="$destdir/$destname"
         3040  +	else
         3041  +	  func_basename "$file"
         3042  +	  destfile="$func_basename_result"
         3043  +	  destfile="$destdir/$destfile"
         3044  +	fi
         3045  +
         3046  +	# Deduce the name of the destination old-style object file.
         3047  +	case $destfile in
         3048  +	*.lo)
         3049  +	  func_lo2o "$destfile"
         3050  +	  staticdest=$func_lo2o_result
         3051  +	  ;;
         3052  +	*.$objext)
         3053  +	  staticdest="$destfile"
         3054  +	  destfile=
         3055  +	  ;;
         3056  +	*)
         3057  +	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
         3058  +	  ;;
         3059  +	esac
         3060  +
         3061  +	# Install the libtool object if requested.
         3062  +	test -n "$destfile" && \
         3063  +	  func_show_eval "$install_prog $file $destfile" 'exit $?'
         3064  +
         3065  +	# Install the old object if enabled.
         3066  +	if test "$build_old_libs" = yes; then
         3067  +	  # Deduce the name of the old-style object file.
         3068  +	  func_lo2o "$file"
         3069  +	  staticobj=$func_lo2o_result
         3070  +	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
         3071  +	fi
         3072  +	exit $EXIT_SUCCESS
         3073  +	;;
         3074  +
         3075  +      *)
         3076  +	# Figure out destination file name, if it wasn't already specified.
         3077  +	if test -n "$destname"; then
         3078  +	  destfile="$destdir/$destname"
         3079  +	else
         3080  +	  func_basename "$file"
         3081  +	  destfile="$func_basename_result"
         3082  +	  destfile="$destdir/$destfile"
         3083  +	fi
         3084  +
         3085  +	# If the file is missing, and there is a .exe on the end, strip it
         3086  +	# because it is most likely a libtool script we actually want to
         3087  +	# install
         3088  +	stripped_ext=""
         3089  +	case $file in
         3090  +	  *.exe)
         3091  +	    if test ! -f "$file"; then
         3092  +	      func_stripname '' '.exe' "$file"
         3093  +	      file=$func_stripname_result
         3094  +	      stripped_ext=".exe"
         3095  +	    fi
         3096  +	    ;;
         3097  +	esac
         3098  +
         3099  +	# Do a test to see if this is really a libtool program.
         3100  +	case $host in
         3101  +	*cygwin* | *mingw*)
         3102  +	    if func_ltwrapper_executable_p "$file"; then
         3103  +	      func_ltwrapper_scriptname "$file"
         3104  +	      wrapper=$func_ltwrapper_scriptname_result
         3105  +	    else
         3106  +	      func_stripname '' '.exe' "$file"
         3107  +	      wrapper=$func_stripname_result
         3108  +	    fi
         3109  +	    ;;
         3110  +	*)
         3111  +	    wrapper=$file
         3112  +	    ;;
         3113  +	esac
         3114  +	if func_ltwrapper_script_p "$wrapper"; then
         3115  +	  notinst_deplibs=
         3116  +	  relink_command=
         3117  +
         3118  +	  func_source "$wrapper"
         3119  +
         3120  +	  # Check the variables that should have been set.
         3121  +	  test -z "$generated_by_libtool_version" && \
         3122  +	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
         3123  +
         3124  +	  finalize=yes
         3125  +	  for lib in $notinst_deplibs; do
         3126  +	    # Check to see that each library is installed.
         3127  +	    libdir=
         3128  +	    if test -f "$lib"; then
         3129  +	      func_source "$lib"
         3130  +	    fi
         3131  +	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
         3132  +	    if test -n "$libdir" && test ! -f "$libfile"; then
         3133  +	      func_warning "\`$lib' has not been installed in \`$libdir'"
         3134  +	      finalize=no
         3135  +	    fi
         3136  +	  done
         3137  +
         3138  +	  relink_command=
         3139  +	  func_source "$wrapper"
         3140  +
         3141  +	  outputname=
         3142  +	  if test "$fast_install" = no && test -n "$relink_command"; then
         3143  +	    $opt_dry_run || {
         3144  +	      if test "$finalize" = yes; then
         3145  +	        tmpdir=`func_mktempdir`
         3146  +		func_basename "$file$stripped_ext"
         3147  +		file="$func_basename_result"
         3148  +	        outputname="$tmpdir/$file"
         3149  +	        # Replace the output file specification.
         3150  +	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
         3151  +
         3152  +	        $opt_silent || {
         3153  +	          func_quote_for_expand "$relink_command"
         3154  +		  eval "func_echo $func_quote_for_expand_result"
         3155  +	        }
         3156  +	        if eval "$relink_command"; then :
         3157  +	          else
         3158  +		  func_error "error: relink \`$file' with the above command before installing it"
         3159  +		  $opt_dry_run || ${RM}r "$tmpdir"
         3160  +		  continue
         3161  +	        fi
         3162  +	        file="$outputname"
         3163  +	      else
         3164  +	        func_warning "cannot relink \`$file'"
         3165  +	      fi
         3166  +	    }
         3167  +	  else
         3168  +	    # Install the binary that we compiled earlier.
         3169  +	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
         3170  +	  fi
         3171  +	fi
         3172  +
         3173  +	# remove .exe since cygwin /usr/bin/install will append another
         3174  +	# one anyway
         3175  +	case $install_prog,$host in
         3176  +	*/usr/bin/install*,*cygwin*)
         3177  +	  case $file:$destfile in
         3178  +	  *.exe:*.exe)
         3179  +	    # this is ok
         3180  +	    ;;
         3181  +	  *.exe:*)
         3182  +	    destfile=$destfile.exe
         3183  +	    ;;
         3184  +	  *:*.exe)
         3185  +	    func_stripname '' '.exe' "$destfile"
         3186  +	    destfile=$func_stripname_result
         3187  +	    ;;
         3188  +	  esac
         3189  +	  ;;
         3190  +	esac
         3191  +	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
         3192  +	$opt_dry_run || if test -n "$outputname"; then
         3193  +	  ${RM}r "$tmpdir"
         3194  +	fi
         3195  +	;;
         3196  +      esac
         3197  +    done
         3198  +
         3199  +    for file in $staticlibs; do
         3200  +      func_basename "$file"
         3201  +      name="$func_basename_result"
         3202  +
         3203  +      # Set up the ranlib parameters.
         3204  +      oldlib="$destdir/$name"
         3205  +      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
         3206  +      tool_oldlib=$func_to_tool_file_result
         3207  +
         3208  +      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
         3209  +
         3210  +      if test -n "$stripme" && test -n "$old_striplib"; then
         3211  +	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
         3212  +      fi
         3213  +
         3214  +      # Do each command in the postinstall commands.
         3215  +      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
         3216  +    done
         3217  +
         3218  +    test -n "$future_libdirs" && \
         3219  +      func_warning "remember to run \`$progname --finish$future_libdirs'"
         3220  +
         3221  +    if test -n "$current_libdirs"; then
         3222  +      # Maybe just do a dry run.
         3223  +      $opt_dry_run && current_libdirs=" -n$current_libdirs"
         3224  +      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
         3225  +    else
         3226  +      exit $EXIT_SUCCESS
         3227  +    fi
         3228  +}
         3229  +
         3230  +test "$opt_mode" = install && func_mode_install ${1+"$@"}
         3231  +
         3232  +
         3233  +# func_generate_dlsyms outputname originator pic_p
         3234  +# Extract symbols from dlprefiles and create ${outputname}S.o with
         3235  +# a dlpreopen symbol table.
         3236  +func_generate_dlsyms ()
         3237  +{
         3238  +    $opt_debug
         3239  +    my_outputname="$1"
         3240  +    my_originator="$2"
         3241  +    my_pic_p="${3-no}"
         3242  +    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
         3243  +    my_dlsyms=
         3244  +
         3245  +    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
         3246  +      if test -n "$NM" && test -n "$global_symbol_pipe"; then
         3247  +	my_dlsyms="${my_outputname}S.c"
         3248  +      else
         3249  +	func_error "not configured to extract global symbols from dlpreopened files"
         3250  +      fi
         3251  +    fi
         3252  +
         3253  +    if test -n "$my_dlsyms"; then
         3254  +      case $my_dlsyms in
         3255  +      "") ;;
         3256  +      *.c)
         3257  +	# Discover the nlist of each of the dlfiles.
         3258  +	nlist="$output_objdir/${my_outputname}.nm"
         3259  +
         3260  +	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
         3261  +
         3262  +	# Parse the name list into a source file.
         3263  +	func_verbose "creating $output_objdir/$my_dlsyms"
         3264  +
         3265  +	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
         3266  +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
         3267  +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
         3268  +
         3269  +#ifdef __cplusplus
         3270  +extern \"C\" {
         3271  +#endif
         3272  +
         3273  +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
         3274  +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
         3275  +#endif
         3276  +
         3277  +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
         3278  +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
         3279  +/* DATA imports from DLLs on WIN32 con't be const, because runtime
         3280  +   relocations are performed -- see ld's documentation on pseudo-relocs.  */
         3281  +# define LT_DLSYM_CONST
         3282  +#elif defined(__osf__)
         3283  +/* This system does not cope well with relocations in const data.  */
         3284  +# define LT_DLSYM_CONST
         3285  +#else
         3286  +# define LT_DLSYM_CONST const
         3287  +#endif
         3288  +
         3289  +/* External symbol declarations for the compiler. */\
         3290  +"
         3291  +
         3292  +	if test "$dlself" = yes; then
         3293  +	  func_verbose "generating symbol list for \`$output'"
         3294  +
         3295  +	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
         3296  +
         3297  +	  # Add our own program objects to the symbol list.
         3298  +	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
         3299  +	  for progfile in $progfiles; do
         3300  +	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
         3301  +	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
         3302  +	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
         3303  +	  done
         3304  +
         3305  +	  if test -n "$exclude_expsyms"; then
         3306  +	    $opt_dry_run || {
         3307  +	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
         3308  +	      eval '$MV "$nlist"T "$nlist"'
         3309  +	    }
         3310  +	  fi
         3311  +
         3312  +	  if test -n "$export_symbols_regex"; then
         3313  +	    $opt_dry_run || {
         3314  +	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
         3315  +	      eval '$MV "$nlist"T "$nlist"'
         3316  +	    }
         3317  +	  fi
         3318  +
         3319  +	  # Prepare the list of exported symbols
         3320  +	  if test -z "$export_symbols"; then
         3321  +	    export_symbols="$output_objdir/$outputname.exp"
         3322  +	    $opt_dry_run || {
         3323  +	      $RM $export_symbols
         3324  +	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
         3325  +	      case $host in
         3326  +	      *cygwin* | *mingw* | *cegcc* )
         3327  +                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
         3328  +                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
         3329  +	        ;;
         3330  +	      esac
         3331  +	    }
         3332  +	  else
         3333  +	    $opt_dry_run || {
         3334  +	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
         3335  +	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
         3336  +	      eval '$MV "$nlist"T "$nlist"'
         3337  +	      case $host in
         3338  +	        *cygwin* | *mingw* | *cegcc* )
         3339  +	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
         3340  +	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
         3341  +	          ;;
         3342  +	      esac
         3343  +	    }
         3344  +	  fi
         3345  +	fi
         3346  +
         3347  +	for dlprefile in $dlprefiles; do
         3348  +	  func_verbose "extracting global C symbols from \`$dlprefile'"
         3349  +	  func_basename "$dlprefile"
         3350  +	  name="$func_basename_result"
         3351  +          case $host in
         3352  +	    *cygwin* | *mingw* | *cegcc* )
         3353  +	      # if an import library, we need to obtain dlname
         3354  +	      if func_win32_import_lib_p "$dlprefile"; then
         3355  +	        func_tr_sh "$dlprefile"
         3356  +	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
         3357  +	        dlprefile_dlbasename=""
         3358  +	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
         3359  +	          # Use subshell, to avoid clobbering current variable values
         3360  +	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
         3361  +	          if test -n "$dlprefile_dlname" ; then
         3362  +	            func_basename "$dlprefile_dlname"
         3363  +	            dlprefile_dlbasename="$func_basename_result"
         3364  +	          else
         3365  +	            # no lafile. user explicitly requested -dlpreopen <import library>.
         3366  +	            $sharedlib_from_linklib_cmd "$dlprefile"
         3367  +	            dlprefile_dlbasename=$sharedlib_from_linklib_result
         3368  +	          fi
         3369  +	        fi
         3370  +	        $opt_dry_run || {
         3371  +	          if test -n "$dlprefile_dlbasename" ; then
         3372  +	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
         3373  +	          else
         3374  +	            func_warning "Could not compute DLL name from $name"
         3375  +	            eval '$ECHO ": $name " >> "$nlist"'
         3376  +	          fi
         3377  +	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
         3378  +	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
         3379  +	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
         3380  +	        }
         3381  +	      else # not an import lib
         3382  +	        $opt_dry_run || {
         3383  +	          eval '$ECHO ": $name " >> "$nlist"'
         3384  +	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
         3385  +	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
         3386  +	        }
         3387  +	      fi
         3388  +	    ;;
         3389  +	    *)
         3390  +	      $opt_dry_run || {
         3391  +	        eval '$ECHO ": $name " >> "$nlist"'
         3392  +	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
         3393  +	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
         3394  +	      }
         3395  +	    ;;
         3396  +          esac
         3397  +	done
         3398  +
         3399  +	$opt_dry_run || {
         3400  +	  # Make sure we have at least an empty file.
         3401  +	  test -f "$nlist" || : > "$nlist"
         3402  +
         3403  +	  if test -n "$exclude_expsyms"; then
         3404  +	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
         3405  +	    $MV "$nlist"T "$nlist"
         3406  +	  fi
         3407  +
         3408  +	  # Try sorting and uniquifying the output.
         3409  +	  if $GREP -v "^: " < "$nlist" |
         3410  +	      if sort -k 3 </dev/null >/dev/null 2>&1; then
         3411  +		sort -k 3
         3412  +	      else
         3413  +		sort +2
         3414  +	      fi |
         3415  +	      uniq > "$nlist"S; then
         3416  +	    :
         3417  +	  else
         3418  +	    $GREP -v "^: " < "$nlist" > "$nlist"S
         3419  +	  fi
         3420  +
         3421  +	  if test -f "$nlist"S; then
         3422  +	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
         3423  +	  else
         3424  +	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
         3425  +	  fi
         3426  +
         3427  +	  echo >> "$output_objdir/$my_dlsyms" "\
         3428  +
         3429  +/* The mapping between symbol names and symbols.  */
         3430  +typedef struct {
         3431  +  const char *name;
         3432  +  void *address;
         3433  +} lt_dlsymlist;
         3434  +extern LT_DLSYM_CONST lt_dlsymlist
         3435  +lt_${my_prefix}_LTX_preloaded_symbols[];
         3436  +LT_DLSYM_CONST lt_dlsymlist
         3437  +lt_${my_prefix}_LTX_preloaded_symbols[] =
         3438  +{\
         3439  +  { \"$my_originator\", (void *) 0 },"
         3440  +
         3441  +	  case $need_lib_prefix in
         3442  +	  no)
         3443  +	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
         3444  +	    ;;
         3445  +	  *)
         3446  +	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
         3447  +	    ;;
         3448  +	  esac
         3449  +	  echo >> "$output_objdir/$my_dlsyms" "\
         3450  +  {0, (void *) 0}
         3451  +};
         3452  +
         3453  +/* This works around a problem in FreeBSD linker */
         3454  +#ifdef FREEBSD_WORKAROUND
         3455  +static const void *lt_preloaded_setup() {
         3456  +  return lt_${my_prefix}_LTX_preloaded_symbols;
         3457  +}
         3458  +#endif
         3459  +
         3460  +#ifdef __cplusplus
         3461  +}
         3462  +#endif\
         3463  +"
         3464  +	} # !$opt_dry_run
         3465  +
         3466  +	pic_flag_for_symtable=
         3467  +	case "$compile_command " in
         3468  +	*" -static "*) ;;
         3469  +	*)
         3470  +	  case $host in
         3471  +	  # compiling the symbol table file with pic_flag works around
         3472  +	  # a FreeBSD bug that causes programs to crash when -lm is
         3473  +	  # linked before any other PIC object.  But we must not use
         3474  +	  # pic_flag when linking with -static.  The problem exists in
         3475  +	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
         3476  +	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
         3477  +	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
         3478  +	  *-*-hpux*)
         3479  +	    pic_flag_for_symtable=" $pic_flag"  ;;
         3480  +	  *)
         3481  +	    if test "X$my_pic_p" != Xno; then
         3482  +	      pic_flag_for_symtable=" $pic_flag"
         3483  +	    fi
         3484  +	    ;;
         3485  +	  esac
         3486  +	  ;;
         3487  +	esac
         3488  +	symtab_cflags=
         3489  +	for arg in $LTCFLAGS; do
         3490  +	  case $arg in
         3491  +	  -pie | -fpie | -fPIE) ;;
         3492  +	  *) func_append symtab_cflags " $arg" ;;
         3493  +	  esac
         3494  +	done
         3495  +
         3496  +	# Now compile the dynamic symbol file.
         3497  +	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
         3498  +
         3499  +	# Clean up the generated files.
         3500  +	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
         3501  +
         3502  +	# Transform the symbol file into the correct name.
         3503  +	symfileobj="$output_objdir/${my_outputname}S.$objext"
         3504  +	case $host in
         3505  +	*cygwin* | *mingw* | *cegcc* )
         3506  +	  if test -f "$output_objdir/$my_outputname.def"; then
         3507  +	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
         3508  +	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
         3509  +	  else
         3510  +	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
         3511  +	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
         3512  +	  fi
         3513  +	  ;;
         3514  +	*)
         3515  +	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
         3516  +	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
         3517  +	  ;;
         3518  +	esac
         3519  +	;;
         3520  +      *)
         3521  +	func_fatal_error "unknown suffix for \`$my_dlsyms'"
         3522  +	;;
         3523  +      esac
         3524  +    else
         3525  +      # We keep going just in case the user didn't refer to
         3526  +      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
         3527  +      # really was required.
         3528  +
         3529  +      # Nullify the symbol file.
         3530  +      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
         3531  +      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
         3532  +    fi
         3533  +}
         3534  +
         3535  +# func_win32_libid arg
         3536  +# return the library type of file 'arg'
         3537  +#
         3538  +# Need a lot of goo to handle *both* DLLs and import libs
         3539  +# Has to be a shell function in order to 'eat' the argument
         3540  +# that is supplied when $file_magic_command is called.
         3541  +# Despite the name, also deal with 64 bit binaries.
         3542  +func_win32_libid ()
         3543  +{
         3544  +  $opt_debug
         3545  +  win32_libid_type="unknown"
         3546  +  win32_fileres=`file -L $1 2>/dev/null`
         3547  +  case $win32_fileres in
         3548  +  *ar\ archive\ import\ library*) # definitely import
         3549  +    win32_libid_type="x86 archive import"
         3550  +    ;;
         3551  +  *ar\ archive*) # could be an import, or static
         3552  +    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
         3553  +    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
         3554  +       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
         3555  +      func_to_tool_file "$1" func_convert_file_msys_to_w32
         3556  +      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
         3557  +	$SED -n -e '
         3558  +	    1,100{
         3559  +		/ I /{
         3560  +		    s,.*,import,
         3561  +		    p
         3562  +		    q
         3563  +		}
         3564  +	    }'`
         3565  +      case $win32_nmres in
         3566  +      import*)  win32_libid_type="x86 archive import";;
         3567  +      *)        win32_libid_type="x86 archive static";;
         3568  +      esac
         3569  +    fi
         3570  +    ;;
         3571  +  *DLL*)
         3572  +    win32_libid_type="x86 DLL"
         3573  +    ;;
         3574  +  *executable*) # but shell scripts are "executable" too...
         3575  +    case $win32_fileres in
         3576  +    *MS\ Windows\ PE\ Intel*)
         3577  +      win32_libid_type="x86 DLL"
         3578  +      ;;
         3579  +    esac
         3580  +    ;;
         3581  +  esac
         3582  +  $ECHO "$win32_libid_type"
         3583  +}
         3584  +
         3585  +# func_cygming_dll_for_implib ARG
         3586  +#
         3587  +# Platform-specific function to extract the
         3588  +# name of the DLL associated with the specified
         3589  +# import library ARG.
         3590  +# Invoked by eval'ing the libtool variable
         3591  +#    $sharedlib_from_linklib_cmd
         3592  +# Result is available in the variable
         3593  +#    $sharedlib_from_linklib_result
         3594  +func_cygming_dll_for_implib ()
         3595  +{
         3596  +  $opt_debug
         3597  +  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
         3598  +}
         3599  +
         3600  +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
         3601  +#
         3602  +# The is the core of a fallback implementation of a
         3603  +# platform-specific function to extract the name of the
         3604  +# DLL associated with the specified import library LIBNAME.
         3605  +#
         3606  +# SECTION_NAME is either .idata$6 or .idata$7, depending
         3607  +# on the platform and compiler that created the implib.
         3608  +#
         3609  +# Echos the name of the DLL associated with the
         3610  +# specified import library.
         3611  +func_cygming_dll_for_implib_fallback_core ()
         3612  +{
         3613  +  $opt_debug
         3614  +  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
         3615  +  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
         3616  +    $SED '/^Contents of section '"$match_literal"':/{
         3617  +      # Place marker at beginning of archive member dllname section
         3618  +      s/.*/====MARK====/
         3619  +      p
         3620  +      d
         3621  +    }
         3622  +    # These lines can sometimes be longer than 43 characters, but
         3623  +    # are always uninteresting
         3624  +    /:[	 ]*file format pe[i]\{,1\}-/d
         3625  +    /^In archive [^:]*:/d
         3626  +    # Ensure marker is printed
         3627  +    /^====MARK====/p
         3628  +    # Remove all lines with less than 43 characters
         3629  +    /^.\{43\}/!d
         3630  +    # From remaining lines, remove first 43 characters
         3631  +    s/^.\{43\}//' |
         3632  +    $SED -n '
         3633  +      # Join marker and all lines until next marker into a single line
         3634  +      /^====MARK====/ b para
         3635  +      H
         3636  +      $ b para
         3637  +      b
         3638  +      :para
         3639  +      x
         3640  +      s/\n//g
         3641  +      # Remove the marker
         3642  +      s/^====MARK====//
         3643  +      # Remove trailing dots and whitespace
         3644  +      s/[\. \t]*$//
         3645  +      # Print
         3646  +      /./p' |
         3647  +    # we now have a list, one entry per line, of the stringified
         3648  +    # contents of the appropriate section of all members of the
         3649  +    # archive which possess that section. Heuristic: eliminate
         3650  +    # all those which have a first or second character that is
         3651  +    # a '.' (that is, objdump's representation of an unprintable
         3652  +    # character.) This should work for all archives with less than
         3653  +    # 0x302f exports -- but will fail for DLLs whose name actually
         3654  +    # begins with a literal '.' or a single character followed by
         3655  +    # a '.'.
         3656  +    #
         3657  +    # Of those that remain, print the first one.
         3658  +    $SED -e '/^\./d;/^.\./d;q'
         3659  +}
         3660  +
         3661  +# func_cygming_gnu_implib_p ARG
         3662  +# This predicate returns with zero status (TRUE) if
         3663  +# ARG is a GNU/binutils-style import library. Returns
         3664  +# with nonzero status (FALSE) otherwise.
         3665  +func_cygming_gnu_implib_p ()
         3666  +{
         3667  +  $opt_debug
         3668  +  func_to_tool_file "$1" func_convert_file_msys_to_w32
         3669  +  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
         3670  +  test -n "$func_cygming_gnu_implib_tmp"
         3671  +}
         3672  +
         3673  +# func_cygming_ms_implib_p ARG
         3674  +# This predicate returns with zero status (TRUE) if
         3675  +# ARG is an MS-style import library. Returns
         3676  +# with nonzero status (FALSE) otherwise.
         3677  +func_cygming_ms_implib_p ()
         3678  +{
         3679  +  $opt_debug
         3680  +  func_to_tool_file "$1" func_convert_file_msys_to_w32
         3681  +  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
         3682  +  test -n "$func_cygming_ms_implib_tmp"
         3683  +}
         3684  +
         3685  +# func_cygming_dll_for_implib_fallback ARG
         3686  +# Platform-specific function to extract the
         3687  +# name of the DLL associated with the specified
         3688  +# import library ARG.
         3689  +#
         3690  +# This fallback implementation is for use when $DLLTOOL
         3691  +# does not support the --identify-strict option.
         3692  +# Invoked by eval'ing the libtool variable
         3693  +#    $sharedlib_from_linklib_cmd
         3694  +# Result is available in the variable
         3695  +#    $sharedlib_from_linklib_result
         3696  +func_cygming_dll_for_implib_fallback ()
         3697  +{
         3698  +  $opt_debug
         3699  +  if func_cygming_gnu_implib_p "$1" ; then
         3700  +    # binutils import library
         3701  +    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
         3702  +  elif func_cygming_ms_implib_p "$1" ; then
         3703  +    # ms-generated import library
         3704  +    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
         3705  +  else
         3706  +    # unknown
         3707  +    sharedlib_from_linklib_result=""
         3708  +  fi
         3709  +}
         3710  +
         3711  +
         3712  +# func_extract_an_archive dir oldlib
         3713  +func_extract_an_archive ()
         3714  +{
         3715  +    $opt_debug
         3716  +    f_ex_an_ar_dir="$1"; shift
         3717  +    f_ex_an_ar_oldlib="$1"
         3718  +    if test "$lock_old_archive_extraction" = yes; then
         3719  +      lockfile=$f_ex_an_ar_oldlib.lock
         3720  +      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
         3721  +	func_echo "Waiting for $lockfile to be removed"
         3722  +	sleep 2
         3723  +      done
         3724  +    fi
         3725  +    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
         3726  +		   'stat=$?; rm -f "$lockfile"; exit $stat'
         3727  +    if test "$lock_old_archive_extraction" = yes; then
         3728  +      $opt_dry_run || rm -f "$lockfile"
         3729  +    fi
         3730  +    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
         3731  +     :
         3732  +    else
         3733  +      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
         3734  +    fi
         3735  +}
         3736  +
         3737  +
         3738  +# func_extract_archives gentop oldlib ...
         3739  +func_extract_archives ()
         3740  +{
         3741  +    $opt_debug
         3742  +    my_gentop="$1"; shift
         3743  +    my_oldlibs=${1+"$@"}
         3744  +    my_oldobjs=""
         3745  +    my_xlib=""
         3746  +    my_xabs=""
         3747  +    my_xdir=""
         3748  +
         3749  +    for my_xlib in $my_oldlibs; do
         3750  +      # Extract the objects.
         3751  +      case $my_xlib in
         3752  +	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
         3753  +	*) my_xabs=`pwd`"/$my_xlib" ;;
         3754  +      esac
         3755  +      func_basename "$my_xlib"
         3756  +      my_xlib="$func_basename_result"
         3757  +      my_xlib_u=$my_xlib
         3758  +      while :; do
         3759  +        case " $extracted_archives " in
         3760  +	*" $my_xlib_u "*)
         3761  +	  func_arith $extracted_serial + 1
         3762  +	  extracted_serial=$func_arith_result
         3763  +	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
         3764  +	*) break ;;
         3765  +	esac
         3766  +      done
         3767  +      extracted_archives="$extracted_archives $my_xlib_u"
         3768  +      my_xdir="$my_gentop/$my_xlib_u"
         3769  +
         3770  +      func_mkdir_p "$my_xdir"
         3771  +
         3772  +      case $host in
         3773  +      *-darwin*)
         3774  +	func_verbose "Extracting $my_xabs"
         3775  +	# Do not bother doing anything if just a dry run
         3776  +	$opt_dry_run || {
         3777  +	  darwin_orig_dir=`pwd`
         3778  +	  cd $my_xdir || exit $?
         3779  +	  darwin_archive=$my_xabs
         3780  +	  darwin_curdir=`pwd`
         3781  +	  darwin_base_archive=`basename "$darwin_archive"`
         3782  +	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
         3783  +	  if test -n "$darwin_arches"; then
         3784  +	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
         3785  +	    darwin_arch=
         3786  +	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
         3787  +	    for darwin_arch in  $darwin_arches ; do
         3788  +	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
         3789  +	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
         3790  +	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
         3791  +	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
         3792  +	      cd "$darwin_curdir"
         3793  +	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
         3794  +	    done # $darwin_arches
         3795  +            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
         3796  +	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
         3797  +	    darwin_file=
         3798  +	    darwin_files=
         3799  +	    for darwin_file in $darwin_filelist; do
         3800  +	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
         3801  +	      $LIPO -create -output "$darwin_file" $darwin_files
         3802  +	    done # $darwin_filelist
         3803  +	    $RM -rf unfat-$$
         3804  +	    cd "$darwin_orig_dir"
         3805  +	  else
         3806  +	    cd $darwin_orig_dir
         3807  +	    func_extract_an_archive "$my_xdir" "$my_xabs"
         3808  +	  fi # $darwin_arches
         3809  +	} # !$opt_dry_run
         3810  +	;;
         3811  +      *)
         3812  +        func_extract_an_archive "$my_xdir" "$my_xabs"
         3813  +	;;
         3814  +      esac
         3815  +      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
         3816  +    done
         3817  +
         3818  +    func_extract_archives_result="$my_oldobjs"
         3819  +}
         3820  +
         3821  +
         3822  +# func_emit_wrapper [arg=no]
         3823  +#
         3824  +# Emit a libtool wrapper script on stdout.
         3825  +# Don't directly open a file because we may want to
         3826  +# incorporate the script contents within a cygwin/mingw
         3827  +# wrapper executable.  Must ONLY be called from within
         3828  +# func_mode_link because it depends on a number of variables
         3829  +# set therein.
         3830  +#
         3831  +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
         3832  +# variable will take.  If 'yes', then the emitted script
         3833  +# will assume that the directory in which it is stored is
         3834  +# the $objdir directory.  This is a cygwin/mingw-specific
         3835  +# behavior.
         3836  +func_emit_wrapper ()
         3837  +{
         3838  +	func_emit_wrapper_arg1=${1-no}
         3839  +
         3840  +	$ECHO "\
         3841  +#! $SHELL
         3842  +
         3843  +# $output - temporary wrapper script for $objdir/$outputname
         3844  +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
         3845  +#
         3846  +# The $output program cannot be directly executed until all the libtool
         3847  +# libraries that it depends on are installed.
         3848  +#
         3849  +# This wrapper script should never be moved out of the build directory.
         3850  +# If it is, it will not operate correctly.
         3851  +
         3852  +# Sed substitution that helps us do robust quoting.  It backslashifies
         3853  +# metacharacters that are still active within double-quoted strings.
         3854  +sed_quote_subst='$sed_quote_subst'
         3855  +
         3856  +# Be Bourne compatible
         3857  +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
         3858  +  emulate sh
         3859  +  NULLCMD=:
         3860  +  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
         3861  +  # is contrary to our usage.  Disable this feature.
         3862  +  alias -g '\${1+\"\$@\"}'='\"\$@\"'
         3863  +  setopt NO_GLOB_SUBST
         3864  +else
         3865  +  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
         3866  +fi
         3867  +BIN_SH=xpg4; export BIN_SH # for Tru64
         3868  +DUALCASE=1; export DUALCASE # for MKS sh
         3869  +
         3870  +# The HP-UX ksh and POSIX shell print the target directory to stdout
         3871  +# if CDPATH is set.
         3872  +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
         3873  +
         3874  +relink_command=\"$relink_command\"
         3875  +
         3876  +# This environment variable determines our operation mode.
         3877  +if test \"\$libtool_install_magic\" = \"$magic\"; then
         3878  +  # install mode needs the following variables:
         3879  +  generated_by_libtool_version='$macro_version'
         3880  +  notinst_deplibs='$notinst_deplibs'
         3881  +else
         3882  +  # When we are sourced in execute mode, \$file and \$ECHO are already set.
         3883  +  if test \"\$libtool_execute_magic\" != \"$magic\"; then
         3884  +    file=\"\$0\""
         3885  +
         3886  +    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
         3887  +    $ECHO "\
         3888  +
         3889  +# A function that is used when there is no print builtin or printf.
         3890  +func_fallback_echo ()
         3891  +{
         3892  +  eval 'cat <<_LTECHO_EOF
         3893  +\$1
         3894  +_LTECHO_EOF'
         3895  +}
         3896  +    ECHO=\"$qECHO\"
         3897  +  fi
         3898  +
         3899  +# Very basic option parsing. These options are (a) specific to
         3900  +# the libtool wrapper, (b) are identical between the wrapper
         3901  +# /script/ and the wrapper /executable/ which is used only on
         3902  +# windows platforms, and (c) all begin with the string "--lt-"
         3903  +# (application programs are unlikely to have options which match
         3904  +# this pattern).
         3905  +#
         3906  +# There are only two supported options: --lt-debug and
         3907  +# --lt-dump-script. There is, deliberately, no --lt-help.
         3908  +#
         3909  +# The first argument to this parsing function should be the
         3910  +# script's $0 value, followed by "$@".
         3911  +lt_option_debug=
         3912  +func_parse_lt_options ()
         3913  +{
         3914  +  lt_script_arg0=\$0
         3915  +  shift
         3916  +  for lt_opt
         3917  +  do
         3918  +    case \"\$lt_opt\" in
         3919  +    --lt-debug) lt_option_debug=1 ;;
         3920  +    --lt-dump-script)
         3921  +        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
         3922  +        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
         3923  +        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
         3924  +        cat \"\$lt_dump_D/\$lt_dump_F\"
         3925  +        exit 0
         3926  +      ;;
         3927  +    --lt-*)
         3928  +        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
         3929  +        exit 1
         3930  +      ;;
         3931  +    esac
         3932  +  done
         3933  +
         3934  +  # Print the debug banner immediately:
         3935  +  if test -n \"\$lt_option_debug\"; then
         3936  +    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
         3937  +  fi
         3938  +}
         3939  +
         3940  +# Used when --lt-debug. Prints its arguments to stdout
         3941  +# (redirection is the responsibility of the caller)
         3942  +func_lt_dump_args ()
         3943  +{
         3944  +  lt_dump_args_N=1;
         3945  +  for lt_arg
         3946  +  do
         3947  +    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
         3948  +    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
         3949  +  done
         3950  +}
         3951  +
         3952  +# Core function for launching the target application
         3953  +func_exec_program_core ()
         3954  +{
         3955  +"
         3956  +  case $host in
         3957  +  # Backslashes separate directories on plain windows
         3958  +  *-*-mingw | *-*-os2* | *-cegcc*)
         3959  +    $ECHO "\
         3960  +      if test -n \"\$lt_option_debug\"; then
         3961  +        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
         3962  +        func_lt_dump_args \${1+\"\$@\"} 1>&2
         3963  +      fi
         3964  +      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
         3965  +"
         3966  +    ;;
         3967  +
         3968  +  *)
         3969  +    $ECHO "\
         3970  +      if test -n \"\$lt_option_debug\"; then
         3971  +        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
         3972  +        func_lt_dump_args \${1+\"\$@\"} 1>&2
         3973  +      fi
         3974  +      exec \"\$progdir/\$program\" \${1+\"\$@\"}
         3975  +"
         3976  +    ;;
         3977  +  esac
         3978  +  $ECHO "\
         3979  +      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
         3980  +      exit 1
         3981  +}
         3982  +
         3983  +# A function to encapsulate launching the target application
         3984  +# Strips options in the --lt-* namespace from \$@ and
         3985  +# launches target application with the remaining arguments.
         3986  +func_exec_program ()
         3987  +{
         3988  +  case \" \$* \" in
         3989  +  *\\ --lt-*)
         3990  +    for lt_wr_arg
         3991  +    do
         3992  +      case \$lt_wr_arg in
         3993  +      --lt-*) ;;
         3994  +      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
         3995  +      esac
         3996  +      shift
         3997  +    done ;;
         3998  +  esac
         3999  +  func_exec_program_core \${1+\"\$@\"}
         4000  +}
         4001  +
         4002  +  # Parse options
         4003  +  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
         4004  +
         4005  +  # Find the directory that this script lives in.
         4006  +  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
         4007  +  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
         4008  +
         4009  +  # Follow symbolic links until we get to the real thisdir.
         4010  +  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
         4011  +  while test -n \"\$file\"; do
         4012  +    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
         4013  +
         4014  +    # If there was a directory component, then change thisdir.
         4015  +    if test \"x\$destdir\" != \"x\$file\"; then
         4016  +      case \"\$destdir\" in
         4017  +      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
         4018  +      *) thisdir=\"\$thisdir/\$destdir\" ;;
         4019  +      esac
         4020  +    fi
         4021  +
         4022  +    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
         4023  +    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
         4024  +  done
         4025  +
         4026  +  # Usually 'no', except on cygwin/mingw when embedded into
         4027  +  # the cwrapper.
         4028  +  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
         4029  +  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
         4030  +    # special case for '.'
         4031  +    if test \"\$thisdir\" = \".\"; then
         4032  +      thisdir=\`pwd\`
         4033  +    fi
         4034  +    # remove .libs from thisdir
         4035  +    case \"\$thisdir\" in
         4036  +    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
         4037  +    $objdir )   thisdir=. ;;
         4038  +    esac
         4039  +  fi
         4040  +
         4041  +  # Try to get the absolute directory name.
         4042  +  absdir=\`cd \"\$thisdir\" && pwd\`
         4043  +  test -n \"\$absdir\" && thisdir=\"\$absdir\"
         4044  +"
         4045  +
         4046  +	if test "$fast_install" = yes; then
         4047  +	  $ECHO "\
         4048  +  program=lt-'$outputname'$exeext
         4049  +  progdir=\"\$thisdir/$objdir\"
         4050  +
         4051  +  if test ! -f \"\$progdir/\$program\" ||
         4052  +     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
         4053  +       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
         4054  +
         4055  +    file=\"\$\$-\$program\"
         4056  +
         4057  +    if test ! -d \"\$progdir\"; then
         4058  +      $MKDIR \"\$progdir\"
         4059  +    else
         4060  +      $RM \"\$progdir/\$file\"
         4061  +    fi"
         4062  +
         4063  +	  $ECHO "\
         4064  +
         4065  +    # relink executable if necessary
         4066  +    if test -n \"\$relink_command\"; then
         4067  +      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
         4068  +      else
         4069  +	$ECHO \"\$relink_command_output\" >&2
         4070  +	$RM \"\$progdir/\$file\"
         4071  +	exit 1
         4072  +      fi
         4073  +    fi
         4074  +
         4075  +    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
         4076  +    { $RM \"\$progdir/\$program\";
         4077  +      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
         4078  +    $RM \"\$progdir/\$file\"
         4079  +  fi"
         4080  +	else
         4081  +	  $ECHO "\
         4082  +  program='$outputname'
         4083  +  progdir=\"\$thisdir/$objdir\"
         4084  +"
         4085  +	fi
         4086  +
         4087  +	$ECHO "\
         4088  +
         4089  +  if test -f \"\$progdir/\$program\"; then"
         4090  +
         4091  +	# fixup the dll searchpath if we need to.
         4092  +	#
         4093  +	# Fix the DLL searchpath if we need to.  Do this before prepending
         4094  +	# to shlibpath, because on Windows, both are PATH and uninstalled
         4095  +	# libraries must come first.
         4096  +	if test -n "$dllsearchpath"; then
         4097  +	  $ECHO "\
         4098  +    # Add the dll search path components to the executable PATH
         4099  +    PATH=$dllsearchpath:\$PATH
         4100  +"
         4101  +	fi
         4102  +
         4103  +	# Export our shlibpath_var if we have one.
         4104  +	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
         4105  +	  $ECHO "\
         4106  +    # Add our own library path to $shlibpath_var
         4107  +    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
         4108  +
         4109  +    # Some systems cannot cope with colon-terminated $shlibpath_var
         4110  +    # The second colon is a workaround for a bug in BeOS R4 sed
         4111  +    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
         4112  +
         4113  +    export $shlibpath_var
         4114  +"
         4115  +	fi
         4116  +
         4117  +	$ECHO "\
         4118  +    if test \"\$libtool_execute_magic\" != \"$magic\"; then
         4119  +      # Run the actual program with our arguments.
         4120  +      func_exec_program \${1+\"\$@\"}
         4121  +    fi
         4122  +  else
         4123  +    # The program doesn't exist.
         4124  +    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
         4125  +    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
         4126  +    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
         4127  +    exit 1
         4128  +  fi
         4129  +fi\
         4130  +"
         4131  +}
         4132  +
         4133  +
         4134  +# func_emit_cwrapperexe_src
         4135  +# emit the source code for a wrapper executable on stdout
         4136  +# Must ONLY be called from within func_mode_link because
         4137  +# it depends on a number of variable set therein.
         4138  +func_emit_cwrapperexe_src ()
         4139  +{
         4140  +	cat <<EOF
         4141  +
         4142  +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
         4143  +   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
         4144  +
         4145  +   The $output program cannot be directly executed until all the libtool
         4146  +   libraries that it depends on are installed.
         4147  +
         4148  +   This wrapper executable should never be moved out of the build directory.
         4149  +   If it is, it will not operate correctly.
         4150  +*/
         4151  +EOF
         4152  +	    cat <<"EOF"
         4153  +#ifdef _MSC_VER
         4154  +# define _CRT_SECURE_NO_DEPRECATE 1
         4155  +#endif
         4156  +#include <stdio.h>
         4157  +#include <stdlib.h>
         4158  +#ifdef _MSC_VER
         4159  +# include <direct.h>
         4160  +# include <process.h>
         4161  +# include <io.h>
         4162  +#else
         4163  +# include <unistd.h>
         4164  +# include <stdint.h>
         4165  +# ifdef __CYGWIN__
         4166  +#  include <io.h>
         4167  +# endif
         4168  +#endif
         4169  +#include <malloc.h>
         4170  +#include <stdarg.h>
         4171  +#include <assert.h>
         4172  +#include <string.h>
         4173  +#include <ctype.h>
         4174  +#include <errno.h>
         4175  +#include <fcntl.h>
         4176  +#include <sys/stat.h>
         4177  +
         4178  +/* declarations of non-ANSI functions */
         4179  +#if defined(__MINGW32__)
         4180  +# ifdef __STRICT_ANSI__
         4181  +int _putenv (const char *);
         4182  +# endif
         4183  +#elif defined(__CYGWIN__)
         4184  +# ifdef __STRICT_ANSI__
         4185  +char *realpath (const char *, char *);
         4186  +int putenv (char *);
         4187  +int setenv (const char *, const char *, int);
         4188  +# endif
         4189  +/* #elif defined (other platforms) ... */
         4190  +#endif
         4191  +
         4192  +/* portability defines, excluding path handling macros */
         4193  +#if defined(_MSC_VER)
         4194  +# define setmode _setmode
         4195  +# define stat    _stat
         4196  +# define chmod   _chmod
         4197  +# define getcwd  _getcwd
         4198  +# define putenv  _putenv
         4199  +# define S_IXUSR _S_IEXEC
         4200  +# ifndef _INTPTR_T_DEFINED
         4201  +#  define _INTPTR_T_DEFINED
         4202  +#  define intptr_t int
         4203  +# endif
         4204  +#elif defined(__MINGW32__)
         4205  +# define setmode _setmode
         4206  +# define stat    _stat
         4207  +# define chmod   _chmod
         4208  +# define getcwd  _getcwd
         4209  +# define putenv  _putenv
         4210  +#elif defined(__CYGWIN__)
         4211  +# define HAVE_SETENV
         4212  +# define FOPEN_WB "wb"
         4213  +/* #elif defined (other platforms) ... */
         4214  +#endif
         4215  +
         4216  +#if defined(PATH_MAX)
         4217  +# define LT_PATHMAX PATH_MAX
         4218  +#elif defined(MAXPATHLEN)
         4219  +# define LT_PATHMAX MAXPATHLEN
         4220  +#else
         4221  +# define LT_PATHMAX 1024
         4222  +#endif
         4223  +
         4224  +#ifndef S_IXOTH
         4225  +# define S_IXOTH 0
         4226  +#endif
         4227  +#ifndef S_IXGRP
         4228  +# define S_IXGRP 0
         4229  +#endif
         4230  +
         4231  +/* path handling portability macros */
         4232  +#ifndef DIR_SEPARATOR
         4233  +# define DIR_SEPARATOR '/'
         4234  +# define PATH_SEPARATOR ':'
         4235  +#endif
         4236  +
         4237  +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
         4238  +  defined (__OS2__)
         4239  +# define HAVE_DOS_BASED_FILE_SYSTEM
         4240  +# define FOPEN_WB "wb"
         4241  +# ifndef DIR_SEPARATOR_2
         4242  +#  define DIR_SEPARATOR_2 '\\'
         4243  +# endif
         4244  +# ifndef PATH_SEPARATOR_2
         4245  +#  define PATH_SEPARATOR_2 ';'
         4246  +# endif
         4247  +#endif
         4248  +
         4249  +#ifndef DIR_SEPARATOR_2
         4250  +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
         4251  +#else /* DIR_SEPARATOR_2 */
         4252  +# define IS_DIR_SEPARATOR(ch) \
         4253  +	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
         4254  +#endif /* DIR_SEPARATOR_2 */
         4255  +
         4256  +#ifndef PATH_SEPARATOR_2
         4257  +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
         4258  +#else /* PATH_SEPARATOR_2 */
         4259  +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
         4260  +#endif /* PATH_SEPARATOR_2 */
         4261  +
         4262  +#ifndef FOPEN_WB
         4263  +# define FOPEN_WB "w"
         4264  +#endif
         4265  +#ifndef _O_BINARY
         4266  +# define _O_BINARY 0
         4267  +#endif
         4268  +
         4269  +#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
         4270  +#define XFREE(stale) do { \
         4271  +  if (stale) { free ((void *) stale); stale = 0; } \
         4272  +} while (0)
         4273  +
         4274  +#if defined(LT_DEBUGWRAPPER)
         4275  +static int lt_debug = 1;
         4276  +#else
         4277  +static int lt_debug = 0;
         4278  +#endif
         4279  +
         4280  +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
         4281  +
         4282  +void *xmalloc (size_t num);
         4283  +char *xstrdup (const char *string);
         4284  +const char *base_name (const char *name);
         4285  +char *find_executable (const char *wrapper);
         4286  +char *chase_symlinks (const char *pathspec);
         4287  +int make_executable (const char *path);
         4288  +int check_executable (const char *path);
         4289  +char *strendzap (char *str, const char *pat);
         4290  +void lt_debugprintf (const char *file, int line, const char *fmt, ...);
         4291  +void lt_fatal (const char *file, int line, const char *message, ...);
         4292  +static const char *nonnull (const char *s);
         4293  +static const char *nonempty (const char *s);
         4294  +void lt_setenv (const char *name, const char *value);
         4295  +char *lt_extend_str (const char *orig_value, const char *add, int to_end);
         4296  +void lt_update_exe_path (const char *name, const char *value);
         4297  +void lt_update_lib_path (const char *name, const char *value);
         4298  +char **prepare_spawn (char **argv);
         4299  +void lt_dump_script (FILE *f);
         4300  +EOF
         4301  +
         4302  +	    cat <<EOF
         4303  +volatile const char * MAGIC_EXE = "$magic_exe";
         4304  +const char * LIB_PATH_VARNAME = "$shlibpath_var";
         4305  +EOF
         4306  +
         4307  +	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
         4308  +              func_to_host_path "$temp_rpath"
         4309  +	      cat <<EOF
         4310  +const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
         4311  +EOF
         4312  +	    else
         4313  +	      cat <<"EOF"
         4314  +const char * LIB_PATH_VALUE   = "";
         4315  +EOF
         4316  +	    fi
         4317  +
         4318  +	    if test -n "$dllsearchpath"; then
         4319  +              func_to_host_path "$dllsearchpath:"
         4320  +	      cat <<EOF
         4321  +const char * EXE_PATH_VARNAME = "PATH";
         4322  +const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
         4323  +EOF
         4324  +	    else
         4325  +	      cat <<"EOF"
         4326  +const char * EXE_PATH_VARNAME = "";
         4327  +const char * EXE_PATH_VALUE   = "";
         4328  +EOF
         4329  +	    fi
         4330  +
         4331  +	    if test "$fast_install" = yes; then
         4332  +	      cat <<EOF
         4333  +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
         4334  +EOF
         4335  +	    else
         4336  +	      cat <<EOF
         4337  +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
         4338  +EOF
         4339  +	    fi
         4340  +
         4341  +
         4342  +	    cat <<"EOF"
         4343  +
         4344  +#define LTWRAPPER_OPTION_PREFIX         "--lt-"
         4345  +
         4346  +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
         4347  +static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
         4348  +static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
         4349  +
         4350  +int
         4351  +main (int argc, char *argv[])
         4352  +{
         4353  +  char **newargz;
         4354  +  int  newargc;
         4355  +  char *tmp_pathspec;
         4356  +  char *actual_cwrapper_path;
         4357  +  char *actual_cwrapper_name;
         4358  +  char *target_name;
         4359  +  char *lt_argv_zero;
         4360  +  intptr_t rval = 127;
         4361  +
         4362  +  int i;
         4363  +
         4364  +  program_name = (char *) xstrdup (base_name (argv[0]));
         4365  +  newargz = XMALLOC (char *, argc + 1);
         4366  +
         4367  +  /* very simple arg parsing; don't want to rely on getopt
         4368  +   * also, copy all non cwrapper options to newargz, except
         4369  +   * argz[0], which is handled differently
         4370  +   */
         4371  +  newargc=0;
         4372  +  for (i = 1; i < argc; i++)
         4373  +    {
         4374  +      if (strcmp (argv[i], dumpscript_opt) == 0)
         4375  +	{
         4376  +EOF
         4377  +	    case "$host" in
         4378  +	      *mingw* | *cygwin* )
         4379  +		# make stdout use "unix" line endings
         4380  +		echo "          setmode(1,_O_BINARY);"
         4381  +		;;
         4382  +	      esac
         4383  +
         4384  +	    cat <<"EOF"
         4385  +	  lt_dump_script (stdout);
         4386  +	  return 0;
         4387  +	}
         4388  +      if (strcmp (argv[i], debug_opt) == 0)
         4389  +	{
         4390  +          lt_debug = 1;
         4391  +          continue;
         4392  +	}
         4393  +      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
         4394  +        {
         4395  +          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
         4396  +             namespace, but it is not one of the ones we know about and
         4397  +             have already dealt with, above (inluding dump-script), then
         4398  +             report an error. Otherwise, targets might begin to believe
         4399  +             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
         4400  +             namespace. The first time any user complains about this, we'll
         4401  +             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
         4402  +             or a configure.ac-settable value.
         4403  +           */
         4404  +          lt_fatal (__FILE__, __LINE__,
         4405  +		    "unrecognized %s option: '%s'",
         4406  +                    ltwrapper_option_prefix, argv[i]);
         4407  +        }
         4408  +      /* otherwise ... */
         4409  +      newargz[++newargc] = xstrdup (argv[i]);
         4410  +    }
         4411  +  newargz[++newargc] = NULL;
         4412  +
         4413  +EOF
         4414  +	    cat <<EOF
         4415  +  /* The GNU banner must be the first non-error debug message */
         4416  +  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
         4417  +EOF
         4418  +	    cat <<"EOF"
         4419  +  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
         4420  +  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
         4421  +
         4422  +  tmp_pathspec = find_executable (argv[0]);
         4423  +  if (tmp_pathspec == NULL)
         4424  +    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
         4425  +  lt_debugprintf (__FILE__, __LINE__,
         4426  +                  "(main) found exe (before symlink chase) at: %s\n",
         4427  +		  tmp_pathspec);
         4428  +
         4429  +  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
         4430  +  lt_debugprintf (__FILE__, __LINE__,
         4431  +                  "(main) found exe (after symlink chase) at: %s\n",
         4432  +		  actual_cwrapper_path);
         4433  +  XFREE (tmp_pathspec);
         4434  +
         4435  +  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
         4436  +  strendzap (actual_cwrapper_path, actual_cwrapper_name);
         4437  +
         4438  +  /* wrapper name transforms */
         4439  +  strendzap (actual_cwrapper_name, ".exe");
         4440  +  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
         4441  +  XFREE (actual_cwrapper_name);
         4442  +  actual_cwrapper_name = tmp_pathspec;
         4443  +  tmp_pathspec = 0;
         4444  +
         4445  +  /* target_name transforms -- use actual target program name; might have lt- prefix */
         4446  +  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
         4447  +  strendzap (target_name, ".exe");
         4448  +  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
         4449  +  XFREE (target_name);
         4450  +  target_name = tmp_pathspec;
         4451  +  tmp_pathspec = 0;
         4452  +
         4453  +  lt_debugprintf (__FILE__, __LINE__,
         4454  +		  "(main) libtool target name: %s\n",
         4455  +		  target_name);
         4456  +EOF
         4457  +
         4458  +	    cat <<EOF
         4459  +  newargz[0] =
         4460  +    XMALLOC (char, (strlen (actual_cwrapper_path) +
         4461  +		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
         4462  +  strcpy (newargz[0], actual_cwrapper_path);
         4463  +  strcat (newargz[0], "$objdir");
         4464  +  strcat (newargz[0], "/");
         4465  +EOF
         4466  +
         4467  +	    cat <<"EOF"
         4468  +  /* stop here, and copy so we don't have to do this twice */
         4469  +  tmp_pathspec = xstrdup (newargz[0]);
         4470  +
         4471  +  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
         4472  +  strcat (newargz[0], actual_cwrapper_name);
         4473  +
         4474  +  /* DO want the lt- prefix here if it exists, so use target_name */
         4475  +  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
         4476  +  XFREE (tmp_pathspec);
         4477  +  tmp_pathspec = NULL;
         4478  +EOF
         4479  +
         4480  +	    case $host_os in
         4481  +	      mingw*)
         4482  +	    cat <<"EOF"
         4483  +  {
         4484  +    char* p;
         4485  +    while ((p = strchr (newargz[0], '\\')) != NULL)
         4486  +      {
         4487  +	*p = '/';
         4488  +      }
         4489  +    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
         4490  +      {
         4491  +	*p = '/';
         4492  +      }
         4493  +  }
         4494  +EOF
         4495  +	    ;;
         4496  +	    esac
         4497  +
         4498  +	    cat <<"EOF"
         4499  +  XFREE (target_name);
         4500  +  XFREE (actual_cwrapper_path);
         4501  +  XFREE (actual_cwrapper_name);
         4502  +
         4503  +  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
         4504  +  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
         4505  +  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
         4506  +     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
         4507  +     because on Windows, both *_VARNAMEs are PATH but uninstalled
         4508  +     libraries must come first. */
         4509  +  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
         4510  +  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
         4511  +
         4512  +  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
         4513  +		  nonnull (lt_argv_zero));
         4514  +  for (i = 0; i < newargc; i++)
         4515  +    {
         4516  +      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
         4517  +		      i, nonnull (newargz[i]));
         4518  +    }
         4519  +
         4520  +EOF
         4521  +
         4522  +	    case $host_os in
         4523  +	      mingw*)
         4524  +		cat <<"EOF"
         4525  +  /* execv doesn't actually work on mingw as expected on unix */
         4526  +  newargz = prepare_spawn (newargz);
         4527  +  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
         4528  +  if (rval == -1)
         4529  +    {
         4530  +      /* failed to start process */
         4531  +      lt_debugprintf (__FILE__, __LINE__,
         4532  +		      "(main) failed to launch target \"%s\": %s\n",
         4533  +		      lt_argv_zero, nonnull (strerror (errno)));
         4534  +      return 127;
         4535  +    }
         4536  +  return rval;
         4537  +EOF
         4538  +		;;
         4539  +	      *)
         4540  +		cat <<"EOF"
         4541  +  execv (lt_argv_zero, newargz);
         4542  +  return rval; /* =127, but avoids unused variable warning */
         4543  +EOF
         4544  +		;;
         4545  +	    esac
         4546  +
         4547  +	    cat <<"EOF"
         4548  +}
         4549  +
         4550  +void *
         4551  +xmalloc (size_t num)
         4552  +{
         4553  +  void *p = (void *) malloc (num);
         4554  +  if (!p)
         4555  +    lt_fatal (__FILE__, __LINE__, "memory exhausted");
         4556  +
         4557  +  return p;
         4558  +}
         4559  +
         4560  +char *
         4561  +xstrdup (const char *string)
         4562  +{
         4563  +  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
         4564  +			  string) : NULL;
         4565  +}
         4566  +
         4567  +const char *
         4568  +base_name (const char *name)
         4569  +{
         4570  +  const char *base;
         4571  +
         4572  +#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
         4573  +  /* Skip over the disk name in MSDOS pathnames. */
         4574  +  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
         4575  +    name += 2;
         4576  +#endif
         4577  +
         4578  +  for (base = name; *name; name++)
         4579  +    if (IS_DIR_SEPARATOR (*name))
         4580  +      base = name + 1;
         4581  +  return base;
         4582  +}
         4583  +
         4584  +int
         4585  +check_executable (const char *path)
         4586  +{
         4587  +  struct stat st;
         4588  +
         4589  +  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
         4590  +                  nonempty (path));
         4591  +  if ((!path) || (!*path))
         4592  +    return 0;
         4593  +
         4594  +  if ((stat (path, &st) >= 0)
         4595  +      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
         4596  +    return 1;
         4597  +  else
         4598  +    return 0;
         4599  +}
         4600  +
         4601  +int
         4602  +make_executable (const char *path)
         4603  +{
         4604  +  int rval = 0;
         4605  +  struct stat st;
         4606  +
         4607  +  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
         4608  +                  nonempty (path));
         4609  +  if ((!path) || (!*path))
         4610  +    return 0;
         4611  +
         4612  +  if (stat (path, &st) >= 0)
         4613  +    {
         4614  +      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
         4615  +    }
         4616  +  return rval;
         4617  +}
         4618  +
         4619  +/* Searches for the full path of the wrapper.  Returns
         4620  +   newly allocated full path name if found, NULL otherwise
         4621  +   Does not chase symlinks, even on platforms that support them.
         4622  +*/
         4623  +char *
         4624  +find_executable (const char *wrapper)
         4625  +{
         4626  +  int has_slash = 0;
         4627  +  const char *p;
         4628  +  const char *p_next;
         4629  +  /* static buffer for getcwd */
         4630  +  char tmp[LT_PATHMAX + 1];
         4631  +  int tmp_len;
         4632  +  char *concat_name;
         4633  +
         4634  +  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
         4635  +                  nonempty (wrapper));
         4636  +
         4637  +  if ((wrapper == NULL) || (*wrapper == '\0'))
         4638  +    return NULL;
         4639  +
         4640  +  /* Absolute path? */
         4641  +#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
         4642  +  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
         4643  +    {
         4644  +      concat_name = xstrdup (wrapper);
         4645  +      if (check_executable (concat_name))
         4646  +	return concat_name;
         4647  +      XFREE (concat_name);
         4648  +    }
         4649  +  else
         4650  +    {
         4651  +#endif
         4652  +      if (IS_DIR_SEPARATOR (wrapper[0]))
         4653  +	{
         4654  +	  concat_name = xstrdup (wrapper);
         4655  +	  if (check_executable (concat_name))
         4656  +	    return concat_name;
         4657  +	  XFREE (concat_name);
         4658  +	}
         4659  +#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
         4660  +    }
         4661  +#endif
         4662  +
         4663  +  for (p = wrapper; *p; p++)
         4664  +    if (*p == '/')
         4665  +      {
         4666  +	has_slash = 1;
         4667  +	break;
         4668  +      }
         4669  +  if (!has_slash)
         4670  +    {
         4671  +      /* no slashes; search PATH */
         4672  +      const char *path = getenv ("PATH");
         4673  +      if (path != NULL)
         4674  +	{
         4675  +	  for (p = path; *p; p = p_next)
         4676  +	    {
         4677  +	      const char *q;
         4678  +	      size_t p_len;
         4679  +	      for (q = p; *q; q++)
         4680  +		if (IS_PATH_SEPARATOR (*q))
         4681  +		  break;
         4682  +	      p_len = q - p;
         4683  +	      p_next = (*q == '\0' ? q : q + 1);
         4684  +	      if (p_len == 0)
         4685  +		{
         4686  +		  /* empty path: current directory */
         4687  +		  if (getcwd (tmp, LT_PATHMAX) == NULL)
         4688  +		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
         4689  +                              nonnull (strerror (errno)));
         4690  +		  tmp_len = strlen (tmp);
         4691  +		  concat_name =
         4692  +		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
         4693  +		  memcpy (concat_name, tmp, tmp_len);
         4694  +		  concat_name[tmp_len] = '/';
         4695  +		  strcpy (concat_name + tmp_len + 1, wrapper);
         4696  +		}
         4697  +	      else
         4698  +		{
         4699  +		  concat_name =
         4700  +		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
         4701  +		  memcpy (concat_name, p, p_len);
         4702  +		  concat_name[p_len] = '/';
         4703  +		  strcpy (concat_name + p_len + 1, wrapper);
         4704  +		}
         4705  +	      if (check_executable (concat_name))
         4706  +		return concat_name;
         4707  +	      XFREE (concat_name);
         4708  +	    }
         4709  +	}
         4710  +      /* not found in PATH; assume curdir */
         4711  +    }
         4712  +  /* Relative path | not found in path: prepend cwd */
         4713  +  if (getcwd (tmp, LT_PATHMAX) == NULL)
         4714  +    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
         4715  +              nonnull (strerror (errno)));
         4716  +  tmp_len = strlen (tmp);
         4717  +  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
         4718  +  memcpy (concat_name, tmp, tmp_len);
         4719  +  concat_name[tmp_len] = '/';
         4720  +  strcpy (concat_name + tmp_len + 1, wrapper);
         4721  +
         4722  +  if (check_executable (concat_name))
         4723  +    return concat_name;
         4724  +  XFREE (concat_name);
         4725  +  return NULL;
         4726  +}
         4727  +
         4728  +char *
         4729  +chase_symlinks (const char *pathspec)
         4730  +{
         4731  +#ifndef S_ISLNK
         4732  +  return xstrdup (pathspec);
         4733  +#else
         4734  +  char buf[LT_PATHMAX];
         4735  +  struct stat s;
         4736  +  char *tmp_pathspec = xstrdup (pathspec);
         4737  +  char *p;
         4738  +  int has_symlinks = 0;
         4739  +  while (strlen (tmp_pathspec) && !has_symlinks)
         4740  +    {
         4741  +      lt_debugprintf (__FILE__, __LINE__,
         4742  +		      "checking path component for symlinks: %s\n",
         4743  +		      tmp_pathspec);
         4744  +      if (lstat (tmp_pathspec, &s) == 0)
         4745  +	{
         4746  +	  if (S_ISLNK (s.st_mode) != 0)
         4747  +	    {
         4748  +	      has_symlinks = 1;
         4749  +	      break;
         4750  +	    }
         4751  +
         4752  +	  /* search backwards for last DIR_SEPARATOR */
         4753  +	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
         4754  +	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
         4755  +	    p--;
         4756  +	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
         4757  +	    {
         4758  +	      /* no more DIR_SEPARATORS left */
         4759  +	      break;
         4760  +	    }
         4761  +	  *p = '\0';
         4762  +	}
         4763  +      else
         4764  +	{
         4765  +	  lt_fatal (__FILE__, __LINE__,
         4766  +		    "error accessing file \"%s\": %s",
         4767  +		    tmp_pathspec, nonnull (strerror (errno)));
         4768  +	}
         4769  +    }
         4770  +  XFREE (tmp_pathspec);
         4771  +
         4772  +  if (!has_symlinks)
         4773  +    {
         4774  +      return xstrdup (pathspec);
         4775  +    }
         4776  +
         4777  +  tmp_pathspec = realpath (pathspec, buf);
         4778  +  if (tmp_pathspec == 0)
         4779  +    {
         4780  +      lt_fatal (__FILE__, __LINE__,
         4781  +		"could not follow symlinks for %s", pathspec);
         4782  +    }
         4783  +  return xstrdup (tmp_pathspec);
         4784  +#endif
         4785  +}
         4786  +
         4787  +char *
         4788  +strendzap (char *str, const char *pat)
         4789  +{
         4790  +  size_t len, patlen;
         4791  +
         4792  +  assert (str != NULL);
         4793  +  assert (pat != NULL);
         4794  +
         4795  +  len = strlen (str);
         4796  +  patlen = strlen (pat);
         4797  +
         4798  +  if (patlen <= len)
         4799  +    {
         4800  +      str += len - patlen;
         4801  +      if (strcmp (str, pat) == 0)
         4802  +	*str = '\0';
         4803  +    }
         4804  +  return str;
         4805  +}
         4806  +
         4807  +void
         4808  +lt_debugprintf (const char *file, int line, const char *fmt, ...)
         4809  +{
         4810  +  va_list args;
         4811  +  if (lt_debug)
         4812  +    {
         4813  +      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
         4814  +      va_start (args, fmt);
         4815  +      (void) vfprintf (stderr, fmt, args);
         4816  +      va_end (args);
         4817  +    }
         4818  +}
         4819  +
         4820  +static void
         4821  +lt_error_core (int exit_status, const char *file,
         4822  +	       int line, const char *mode,
         4823  +	       const char *message, va_list ap)
         4824  +{
         4825  +  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
         4826  +  vfprintf (stderr, message, ap);
         4827  +  fprintf (stderr, ".\n");
         4828  +
         4829  +  if (exit_status >= 0)
         4830  +    exit (exit_status);
         4831  +}
         4832  +
         4833  +void
         4834  +lt_fatal (const char *file, int line, const char *message, ...)
         4835  +{
         4836  +  va_list ap;
         4837  +  va_start (ap, message);
         4838  +  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
         4839  +  va_end (ap);
         4840  +}
         4841  +
         4842  +static const char *
         4843  +nonnull (const char *s)
         4844  +{
         4845  +  return s ? s : "(null)";
         4846  +}
         4847  +
         4848  +static const char *
         4849  +nonempty (const char *s)
         4850  +{
         4851  +  return (s && !*s) ? "(empty)" : nonnull (s);
         4852  +}
         4853  +
         4854  +void
         4855  +lt_setenv (const char *name, const char *value)
         4856  +{
         4857  +  lt_debugprintf (__FILE__, __LINE__,
         4858  +		  "(lt_setenv) setting '%s' to '%s'\n",
         4859  +                  nonnull (name), nonnull (value));
         4860  +  {
         4861  +#ifdef HAVE_SETENV
         4862  +    /* always make a copy, for consistency with !HAVE_SETENV */
         4863  +    char *str = xstrdup (value);
         4864  +    setenv (name, str, 1);
         4865  +#else
         4866  +    int len = strlen (name) + 1 + strlen (value) + 1;
         4867  +    char *str = XMALLOC (char, len);
         4868  +    sprintf (str, "%s=%s", name, value);
         4869  +    if (putenv (str) != EXIT_SUCCESS)
         4870  +      {
         4871  +        XFREE (str);
         4872  +      }
         4873  +#endif
         4874  +  }
         4875  +}
         4876  +
         4877  +char *
         4878  +lt_extend_str (const char *orig_value, const char *add, int to_end)
         4879  +{
         4880  +  char *new_value;
         4881  +  if (orig_value && *orig_value)
         4882  +    {
         4883  +      int orig_value_len = strlen (orig_value);
         4884  +      int add_len = strlen (add);
         4885  +      new_value = XMALLOC (char, add_len + orig_value_len + 1);
         4886  +      if (to_end)
         4887  +        {
         4888  +          strcpy (new_value, orig_value);
         4889  +          strcpy (new_value + orig_value_len, add);
         4890  +        }
         4891  +      else
         4892  +        {
         4893  +          strcpy (new_value, add);
         4894  +          strcpy (new_value + add_len, orig_value);
         4895  +        }
         4896  +    }
         4897  +  else
         4898  +    {
         4899  +      new_value = xstrdup (add);
         4900  +    }
         4901  +  return new_value;
         4902  +}
         4903  +
         4904  +void
         4905  +lt_update_exe_path (const char *name, const char *value)
         4906  +{
         4907  +  lt_debugprintf (__FILE__, __LINE__,
         4908  +		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
         4909  +