/ Check-in [9411d7dc]
Login

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

Overview
Comment:Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | apple-osx
Files: files | file ages | folders
SHA1: 9411d7dc6fbee689730c6f74736341bccd333d9e
User & Date: drh 2014-05-08 23:01:59
Context
2014-05-09
11:45
Bring the PRAGMA logic into closer alignment with trunk, and in the process fix a couple of crashes. check-in: d66fe706 user: drh tags: apple-osx
2014-05-08
23:01
Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules. check-in: 9411d7dc user: drh tags: apple-osx
2014-05-07
21:16
Include sqlite3rtree.h in the tsrc/ pile of source files during target_source in the main.mk makefile. check-in: 116bed5a user: drh tags: trunk
2012-09-28
10:57
Merge the latest trunk changes (PRAGMA busy_timeout and the ORDER BY query planner enhancements) into the apple-osx branch. check-in: 6a5c59dd user: drh tags: apple-osx
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Makefile.in.

    41     41   
    42     42   # Compiler options needed for programs that use the TCL library.
    43     43   #
    44     44   TCC += @TCL_INCLUDE_SPEC@
    45     45   
    46     46   # The library that programs using TCL must link against.
    47     47   #
    48         -LIBTCL = @TCL_LIB_SPEC@ @TCL_LIBS@
           48  +LIBTCL = @TCL_LIB_SPEC@
    49     49   
    50     50   # Compiler options needed for programs that use the readline() library.
    51     51   #
    52     52   READLINE_FLAGS = -DHAVE_READLINE=@TARGET_HAVE_READLINE@ @TARGET_READLINE_INC@
    53     53   
    54     54   # The library that programs using readline() must link against.
    55     55   #
................................................................................
   163    163   #
   164    164   LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
   165    165            backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
   166    166            callback.lo complete.lo ctime.lo date.lo delete.lo \
   167    167            expr.lo fault.lo fkey.lo \
   168    168            fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \
   169    169            fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \
          170  +         fts3_tokenize_vtab.lo \
   170    171            fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \
   171    172            func.lo global.lo hash.lo \
   172    173            icu.lo insert.lo journal.lo legacy.lo loadext.lo \
   173    174            main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \
   174    175            memjournal.lo \
   175    176            mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \
   176    177            notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \
................................................................................
   234    235     $(TOP)/src/mutex_noop.c \
   235    236     $(TOP)/src/mutex_unix.c \
   236    237     $(TOP)/src/mutex_w32.c \
   237    238     $(TOP)/src/notify.c \
   238    239     $(TOP)/src/os.c \
   239    240     $(TOP)/src/os.h \
   240    241     $(TOP)/src/os_common.h \
          242  +  $(TOP)/src/os_setup.h \
   241    243     $(TOP)/src/os_unix.c \
   242    244     $(TOP)/src/os_win.c \
          245  +  $(TOP)/src/os_win.h \
   243    246     $(TOP)/src/pager.c \
   244    247     $(TOP)/src/pager.h \
   245    248     $(TOP)/src/parse.y \
   246    249     $(TOP)/src/pcache.c \
   247    250     $(TOP)/src/pcache.h \
   248    251     $(TOP)/src/pcache1.c \
   249    252     $(TOP)/src/pragma.c \
................................................................................
   276    279     $(TOP)/src/vdbesort.c \
   277    280     $(TOP)/src/vdbetrace.c \
   278    281     $(TOP)/src/vdbeInt.h \
   279    282     $(TOP)/src/vtab.c \
   280    283     $(TOP)/src/wal.c \
   281    284     $(TOP)/src/wal.h \
   282    285     $(TOP)/src/walker.c \
   283         -  $(TOP)/src/where.c
          286  +  $(TOP)/src/where.c \
          287  +  $(TOP)/src/whereInt.h
   284    288   
   285    289   # Source code for extensions
   286    290   #
   287    291   SRC += \
   288    292     $(TOP)/ext/fts1/fts1.c \
   289    293     $(TOP)/ext/fts1/fts1.h \
   290    294     $(TOP)/ext/fts1/fts1_hash.c \
................................................................................
   312    316     $(TOP)/ext/fts3/fts3_hash.h \
   313    317     $(TOP)/ext/fts3/fts3_icu.c \
   314    318     $(TOP)/ext/fts3/fts3_porter.c \
   315    319     $(TOP)/ext/fts3/fts3_snippet.c \
   316    320     $(TOP)/ext/fts3/fts3_tokenizer.h \
   317    321     $(TOP)/ext/fts3/fts3_tokenizer.c \
   318    322     $(TOP)/ext/fts3/fts3_tokenizer1.c \
          323  +  $(TOP)/ext/fts3/fts3_tokenize_vtab.c \
   319    324     $(TOP)/ext/fts3/fts3_unicode.c \
   320    325     $(TOP)/ext/fts3/fts3_unicode2.c \
   321    326     $(TOP)/ext/fts3/fts3_write.c
   322    327   SRC += \
   323    328     $(TOP)/ext/icu/sqliteicu.h \
   324    329     $(TOP)/ext/icu/icu.c
   325    330   SRC += \
................................................................................
   356    361     $(TOP)/src/test_autoext.c \
   357    362     $(TOP)/src/test_async.c \
   358    363     $(TOP)/src/test_backup.c \
   359    364     $(TOP)/src/test_btree.c \
   360    365     $(TOP)/src/test_config.c \
   361    366     $(TOP)/src/test_demovfs.c \
   362    367     $(TOP)/src/test_devsym.c \
          368  +  $(TOP)/src/test_fs.c \
   363    369     $(TOP)/src/test_func.c \
   364         -  $(TOP)/src/test_fuzzer.c \
   365    370     $(TOP)/src/test_hexio.c \
   366    371     $(TOP)/src/test_init.c \
   367    372     $(TOP)/src/test_intarray.c \
   368    373     $(TOP)/src/test_journal.c \
   369    374     $(TOP)/src/test_malloc.c \
   370    375     $(TOP)/src/test_multiplex.c \
   371    376     $(TOP)/src/test_mutex.c \
................................................................................
   378    383     $(TOP)/src/test_server.c \
   379    384     $(TOP)/src/test_superlock.c \
   380    385     $(TOP)/src/test_syscall.c \
   381    386     $(TOP)/src/test_stat.c \
   382    387     $(TOP)/src/test_tclvar.c \
   383    388     $(TOP)/src/test_thread.c \
   384    389     $(TOP)/src/test_vfs.c \
   385         -  $(TOP)/src/test_wholenumber.c \
   386    390     $(TOP)/src/test_wsd.c       \
   387    391     $(TOP)/ext/fts3/fts3_term.c \
   388    392     $(TOP)/ext/fts3/fts3_test.c 
   389    393   
          394  +# Statically linked extensions
          395  +#
          396  +TESTSRC += \
          397  +  $(TOP)/ext/misc/amatch.c \
          398  +  $(TOP)/ext/misc/closure.c \
          399  +  $(TOP)/ext/misc/fuzzer.c \
          400  +  $(TOP)/ext/misc/ieee754.c \
          401  +  $(TOP)/ext/misc/nextchar.c \
          402  +  $(TOP)/ext/misc/percentile.c \
          403  +  $(TOP)/ext/misc/regexp.c \
          404  +  $(TOP)/ext/misc/spellfix.c \
          405  +  $(TOP)/ext/misc/totype.c \
          406  +  $(TOP)/ext/misc/wholenumber.c
          407  +
   390    408   # Source code to the library files needed by the test fixture
   391    409   #
   392    410   TESTSRC2 = \
   393    411     $(TOP)/src/attach.c \
   394    412     $(TOP)/src/backup.c \
   395    413     $(TOP)/src/bitvec.c \
   396    414     $(TOP)/src/btree.c \
................................................................................
   397    415     $(TOP)/src/build.c \
   398    416     $(TOP)/src/ctime.c \
   399    417     $(TOP)/src/date.c \
   400    418     $(TOP)/src/expr.c \
   401    419     $(TOP)/src/func.c \
   402    420     $(TOP)/src/insert.c \
   403    421     $(TOP)/src/wal.c \
          422  +  $(TOP)/src/main.c \
   404    423     $(TOP)/src/mem5.c \
   405    424     $(TOP)/src/os.c \
   406    425     $(TOP)/src/os_unix.c \
   407    426     $(TOP)/src/os_win.c \
   408    427     $(TOP)/src/pager.c \
   409    428     $(TOP)/src/pragma.c \
   410    429     $(TOP)/src/prepare.c \
................................................................................
   439    458      $(TOP)/src/hash.h \
   440    459      $(TOP)/src/hwtime.h \
   441    460      keywordhash.h \
   442    461      $(TOP)/src/mutex.h \
   443    462      opcodes.h \
   444    463      $(TOP)/src/os.h \
   445    464      $(TOP)/src/os_common.h \
          465  +   $(TOP)/src/os_setup.h \
          466  +   $(TOP)/src/os_win.h \
   446    467      $(TOP)/src/pager.h \
   447    468      $(TOP)/src/pcache.h \
   448    469      parse.h  \
   449    470      sqlite3.h  \
   450    471      $(TOP)/src/sqlite3ext.h \
   451    472      $(TOP)/src/sqliteInt.h  \
   452    473      $(TOP)/src/sqliteLimit.h \
   453    474      $(TOP)/src/vdbe.h \
   454    475      $(TOP)/src/vdbeInt.h \
          476  +   $(TOP)/src/whereInt.h \
   455    477      config.h
   456    478   
   457    479   # Header files used by extensions
   458    480   #
   459    481   EXTHDR += \
   460    482     $(TOP)/ext/fts1/fts1.h \
   461    483     $(TOP)/ext/fts1/fts1_hash.h \
................................................................................
   495    517   Makefile: $(TOP)/Makefile.in
   496    518   	./config.status
   497    519   
   498    520   sqlite3.pc: $(TOP)/sqlite3.pc.in
   499    521   	./config.status
   500    522   
   501    523   libsqlite3.la:	$(LIBOBJ)
   502         -	$(LTLINK) -o $@ $(LIBOBJ) $(TLIBS) \
          524  +	$(LTLINK) -no-undefined -o $@ $(LIBOBJ) $(TLIBS) \
   503    525   		${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8"
   504    526   
   505    527   libtclsqlite3.la:	tclsqlite.lo libsqlite3.la
   506         -	$(LTLINK) -o $@ tclsqlite.lo \
          528  +	$(LTLINK) -no-undefined -o $@ tclsqlite.lo \
   507    529   		libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
   508    530                   -rpath "$(TCLLIBDIR)/sqlite3" \
   509    531   		-version-info "8:6:8"
   510    532   
   511    533   sqlite3$(TEXE):	$(TOP)/src/shell.c libsqlite3.la sqlite3.h
   512    534   	$(LTLINK) $(READLINE_FLAGS) \
   513    535   		-o $@ $(TOP)/src/shell.c libsqlite3.la \
   514    536   		$(LIBREADLINE) $(TLIBS) -rpath "$(libdir)"
          537  +
          538  +mptester$(EXE):	sqlite3.c $(TOP)/mptest/mptest.c
          539  +	$(LTLINK) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.c \
          540  +		$(TLIBS) -rpath "$(libdir)"
          541  +
   515    542   
   516    543   # This target creates a directory named "tsrc" and fills it with
   517    544   # copies of all of the C source code and header files needed to
   518    545   # build on the target system.  Some of the C source code and header
   519    546   # files are automatically generated.  This target takes care of
   520    547   # all that automatic generation.
   521    548   #
   522    549   .target_source:	$(SRC) $(TOP)/tool/vdbe-compress.tcl
   523    550   	rm -rf tsrc
   524    551   	mkdir tsrc
   525    552   	cp -f $(SRC) tsrc
   526    553   	rm tsrc/sqlite.h.in tsrc/parse.y
   527         -	$(TCLSH_CMD) $(TOP)/tool/vdbe-compress.tcl <tsrc/vdbe.c >vdbe.new
          554  +	$(TCLSH_CMD) $(TOP)/tool/vdbe-compress.tcl $(OPTS) <tsrc/vdbe.c >vdbe.new
   528    555   	mv vdbe.new tsrc/vdbe.c
   529    556   	touch .target_source
   530    557   
   531    558   sqlite3.c:	.target_source $(TOP)/tool/mksqlite3c.tcl
   532    559   	$(TCLSH_CMD) $(TOP)/tool/mksqlite3c.tcl
          560  +	cp tsrc/shell.c tsrc/sqlite3ext.h .
   533    561   
   534    562   tclsqlite3.c:	sqlite3.c
   535    563   	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c
   536    564   	cat sqlite3.c >>tclsqlite3.c
   537    565   	echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c
   538    566   	cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c
   539    567   
................................................................................
   859    887   
   860    888   fts3_tokenizer.lo:	$(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR)
   861    889   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer.c
   862    890   
   863    891   fts3_tokenizer1.lo:	$(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR)
   864    892   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c
   865    893   
          894  +fts3_tokenize_vtab.lo:	$(TOP)/ext/fts3/fts3_tokenize_vtab.c $(HDR) $(EXTHDR)
          895  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenize_vtab.c
          896  +
   866    897   fts3_unicode.lo:	$(TOP)/ext/fts3/fts3_unicode.c $(HDR) $(EXTHDR)
   867    898   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_unicode.c
   868    899   
   869    900   fts3_unicode2.lo:	$(TOP)/ext/fts3/fts3_unicode2.c $(HDR) $(EXTHDR)
   870    901   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_unicode2.c
   871    902   
   872    903   fts3_write.lo:	$(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR)
................................................................................
   885    916   #
   886    917   TESTFIXTURE_FLAGS  = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
   887    918   TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE 
   888    919   TESTFIXTURE_FLAGS += -DBUILD_sqlite
   889    920   
   890    921   TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.la
   891    922   TESTFIXTURE_SRC1 = sqlite3.c
   892         -TESTFIXTURE_SRC = $(TESTSRC) $(TOP)/src/tclsqlite.c $(TESTFIXTURE_SRC$(USE_AMALGAMATION))
          923  +TESTFIXTURE_SRC = $(TESTSRC) $(TOP)/src/tclsqlite.c
          924  +TESTFIXTURE_SRC += $(TESTFIXTURE_SRC$(USE_AMALGAMATION))
   893    925   
   894    926   testfixture$(TEXE):	$(TESTFIXTURE_SRC)
   895    927   	$(LTLINK) -DSQLITE_NO_SYNC=1 $(TEMP_STORE) $(TESTFIXTURE_FLAGS) \
   896    928   		-o $@ $(TESTFIXTURE_SRC) $(LIBTCL) $(TLIBS)
   897    929   
   898    930   
   899    931   fulltest:	testfixture$(TEXE) sqlite3$(TEXE)
................................................................................
   915    947   	echo "static const char *zMainloop = " >> $@
   916    948   	$(NAWK) -f $(TOP)/tool/tostr.awk $(TOP)/tool/spaceanal.tcl >> $@
   917    949   	echo "; return zMainloop; }" >> $@
   918    950   
   919    951   sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
   920    952   	$(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
   921    953   
          954  +showdb$(TEXE):	$(TOP)/tool/showdb.c sqlite3.c
          955  +	$(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.c $(TLIBS)
          956  +
          957  +wordcount$(TEXE):	$(TOP)/test/wordcount.c sqlite3.c
          958  +	$(LTLINK) -o $@ $(TOP)/test/wordcount.c sqlite3.c $(TLIBS)
          959  +
          960  +speedtest1$(TEXE):	$(TOP)/test/wordcount.c sqlite3.lo
          961  +	$(LTLINK) -o $@ $(TOP)/test/speedtest1.c sqlite3.lo $(TLIBS)
          962  +
   922    963   # Standard install and cleanup targets
   923    964   #
   924    965   lib_install:	libsqlite3.la
   925    966   	$(INSTALL) -d $(DESTDIR)$(libdir)
   926    967   	$(LTINSTALL) libsqlite3.la $(DESTDIR)$(libdir)
   927    968   	
   928    969   install:	sqlite3$(BEXE) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_install}
................................................................................
   944    985   
   945    986   clean:	
   946    987   	rm -f *.lo *.la *.o sqlite3$(TEXE) libsqlite3.la
   947    988   	rm -f sqlite3.h opcodes.*
   948    989   	rm -rf .libs .deps
   949    990   	rm -f lemon$(BEXE) lempar.c parse.* sqlite*.tar.gz
   950    991   	rm -f mkkeywordhash$(BEXE) keywordhash.h
   951         -	rm -f $(PUBLISH)
   952    992   	rm -f *.da *.bb *.bbg gmon.out
   953    993   	rm -rf quota2a quota2b quota2c
   954    994   	rm -rf tsrc .target_source
   955    995   	rm -f tclsqlite3$(TEXE)
   956    996   	rm -f testfixture$(TEXE) test.db
   957    997   	rm -f sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def
   958    998   	rm -f sqlite3.c
          999  +	rm -f sqlite3rc.h
         1000  +	rm -f shell.c sqlite3ext.h
   959   1001   	rm -f sqlite3_analyzer$(TEXE) sqlite3_analyzer.c
   960         -	rm -f sqlite-output.vsix
         1002  +	rm -f sqlite-*-output.vsix
         1003  +	rm -f mptester mptester.exe
   961   1004   
   962   1005   distclean:	clean
   963   1006   	rm -f config.log config.status libtool Makefile sqlite3.pc
   964   1007   
   965   1008   #
   966   1009   # Windows section
   967   1010   #

Changes to Makefile.msc.

     5      5   # The toplevel directory of the source tree.  This is the directory
     6      6   # that contains this "Makefile.msc".
     7      7   #
     8      8   TOP = .
     9      9   
    10     10   # Set this non-0 to create and use the SQLite amalgamation file.
    11     11   #
           12  +!IFNDEF USE_AMALGAMATION
    12     13   USE_AMALGAMATION = 1
           14  +!ENDIF
           15  +
           16  +# Set this non-0 to split the SQLite amalgamation file into chunks to
           17  +# be used for debugging with Visual Studio.
           18  +#
           19  +!IFNDEF SPLIT_AMALGAMATION
           20  +SPLIT_AMALGAMATION = 0
           21  +!ENDIF
    13     22   
    14     23   # Set this non-0 to use the International Components for Unicode (ICU).
    15     24   #
           25  +!IFNDEF USE_ICU
    16     26   USE_ICU = 0
           27  +!ENDIF
    17     28   
    18     29   # Set this non-0 to dynamically link to the MSVC runtime library.
    19     30   #
           31  +!IFNDEF USE_CRT_DLL
    20     32   USE_CRT_DLL = 0
           33  +!ENDIF
           34  +
           35  +# Set this non-0 to generate assembly code listings for the source code
           36  +# files.
           37  +#
           38  +!IFNDEF USE_LISTINGS
           39  +USE_LISTINGS = 0
           40  +!ENDIF
    21     41   
    22     42   # Set this non-0 to attempt setting the native compiler automatically
    23     43   # for cross-compiling the command line tools needed during the compilation
    24     44   # process.
    25     45   #
           46  +!IFNDEF XCOMPILE
    26     47   XCOMPILE = 0
           48  +!ENDIF
    27     49   
    28     50   # Set this non-0 to use the native libraries paths for cross-compiling
    29     51   # the command line tools needed during the compilation process.
    30     52   #
           53  +!IFNDEF USE_NATIVE_LIBPATHS
    31     54   USE_NATIVE_LIBPATHS = 0
           55  +!ENDIF
           56  +
           57  +# Set this 0 to skip the compiling and embedding of version resources.
           58  +#
           59  +!IFNDEF USE_RC
           60  +USE_RC = 1
           61  +!ENDIF
    32     62   
    33     63   # Set this non-0 to compile binaries suitable for the WinRT environment.
    34     64   # This setting does not apply to any binaries that require Tcl to operate
    35     65   # properly (i.e. the text fixture, etc).
    36     66   #
           67  +!IFNDEF FOR_WINRT
    37     68   FOR_WINRT = 0
           69  +!ENDIF
    38     70   
    39     71   # Set this non-0 to skip attempting to look for and/or link with the Tcl
    40     72   # runtime library.
    41     73   #
           74  +!IFNDEF NO_TCL
    42     75   NO_TCL = 0
           76  +!ENDIF
    43     77   
    44     78   # Set this to non-0 to create and use PDBs.
    45     79   #
           80  +!IFNDEF SYMBOLS
    46     81   SYMBOLS = 1
           82  +!ENDIF
    47     83   
    48     84   # Set this to non-0 to use the SQLite debugging heap subsystem.
    49     85   #
           86  +!IFNDEF MEMDEBUG
    50     87   MEMDEBUG = 0
           88  +!ENDIF
    51     89   
    52     90   # Set this to non-0 to use the Win32 native heap subsystem.
    53     91   #
           92  +!IFNDEF WIN32HEAP
    54     93   WIN32HEAP = 0
           94  +!ENDIF
    55     95   
    56     96   # Set this to one of the following values to enable various debugging
    57     97   # features.  Each level includes the debugging options from the previous
    58     98   # levels.  Currently, the recognized values for DEBUG are:
    59     99   #
    60    100   # 0 == NDEBUG: Disables assert() and other runtime diagnostics.
    61    101   # 1 == Disables NDEBUG and all optimizations and then enables PDBs.
    62    102   # 2 == SQLITE_DEBUG: Enables various diagnostics messages and code.
    63    103   # 3 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call.
    64    104   # 4 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros.
    65    105   # 5 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros.
    66    106   #
          107  +!IFNDEF DEBUG
    67    108   DEBUG = 0
          109  +!ENDIF
          110  +
          111  +# Enable use of available compiler optimizations?  Normally, this should be
          112  +# non-zero.  Setting this to zero, thus disabling all compiler optimizations,
          113  +# can be useful for testing.
          114  +#
          115  +!IFNDEF OPTIMIZATIONS
          116  +OPTIMIZATIONS = 2
          117  +!ENDIF
    68    118   
    69    119   # Check for the predefined command macro CC.  This should point to the compiler
    70    120   # binary for the target platform.  If it is not defined, simply define it to
    71    121   # the legacy default value 'cl.exe'.
    72    122   #
    73    123   !IFNDEF CC
    74    124   CC = cl.exe
................................................................................
   108    158   #     nmake /f Makefile.msc sqlite3.dll
   109    159   #           "NCC=""%VCINSTALLDIR%\bin\cl.exe"""
   110    160   #           USE_NATIVE_LIBPATHS=1
   111    161   #
   112    162   !IFDEF NCC
   113    163   NCC = $(NCC:\\=\)
   114    164   !ELSEIF $(XCOMPILE)!=0
   115         -NCC = "$(VCINSTALLDIR)\bin\cl.exe"
          165  +NCC = "$(VCINSTALLDIR)\bin\$(CC)"
   116    166   NCC = $(NCC:\\=\)
   117    167   !ELSE
   118    168   NCC = $(CC)
   119    169   !ENDIF
   120    170   
   121    171   # Check for the MSVC runtime library path macro.  Othertise, this
   122    172   # value will default to the 'lib' directory underneath the MSVC
................................................................................
   140    190   
   141    191   NSDKLIBPATH = $(NSDKLIBPATH:\\=\)
   142    192   
   143    193   # C compiler and options for use in building executables that
   144    194   # will run on the platform that is doing the build.
   145    195   #
   146    196   BCC = $(NCC) -W3
          197  +
          198  +# Check if assembly code listings should be generated for the source
          199  +# code files to be compiled.
          200  +#
          201  +!IF $(USE_LISTINGS)!=0
          202  +BCC = $(BCC) -FAcs
          203  +!ENDIF
   147    204   
   148    205   # Check if the native library paths should be used when compiling
   149    206   # the command line tools used during the compilation process.  If
   150    207   # so, set the necessary macro now.
   151    208   #
   152    209   !IF $(USE_NATIVE_LIBPATHS)!=0
   153    210   NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)"
   154    211   !ENDIF
   155    212   
   156    213   # C compiler and options for use in building executables that
   157    214   # will run on the target platform.  (BCC and TCC are usually the
   158    215   # same unless your are cross-compiling.)
   159    216   #
   160         -TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src -fp:precise
          217  +TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise
   161    218   RCC = $(RC) -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src
          219  +
          220  +# Check if assembly code listings should be generated for the source
          221  +# code files to be compiled.
          222  +#
          223  +!IF $(USE_LISTINGS)!=0
          224  +TCC = $(TCC) -FAcs
          225  +!ENDIF
   162    226   
   163    227   # When compiling the library for use in the WinRT environment,
   164    228   # the following compile-time options must be used as well to
   165    229   # disable use of Win32 APIs that are not available and to enable
   166    230   # use of Win32 APIs that are specific to Windows 8 and/or WinRT.
   167    231   #
   168    232   !IF $(FOR_WINRT)!=0
   169    233   TCC = $(TCC) -DSQLITE_OS_WINRT=1
   170    234   RCC = $(RCC) -DSQLITE_OS_WINRT=1
   171         -TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_PARTITION_APP
   172         -RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_PARTITION_APP
          235  +TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP
          236  +RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP
   173    237   !ENDIF
   174    238   
   175    239   # Also, we need to dynamically link to the correct MSVC runtime
   176    240   # when compiling for WinRT (e.g. debug or release) OR if the
   177    241   # USE_CRT_DLL option is set to force dynamically linking to the
   178    242   # MSVC runtime library.
   179    243   #
   180    244   !IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0
   181    245   !IF $(DEBUG)>0
   182    246   TCC = $(TCC) -MDd
          247  +BCC = $(BCC) -MDd
   183    248   !ELSE
   184    249   TCC = $(TCC) -MD
          250  +BCC = $(BCC) -MD
   185    251   !ENDIF
   186    252   !ELSE
   187    253   !IF $(DEBUG)>0
   188    254   TCC = $(TCC) -MTd
          255  +BCC = $(BCC) -MTd
   189    256   !ELSE
   190    257   TCC = $(TCC) -MT
          258  +BCC = $(BCC) -MT
   191    259   !ENDIF
   192    260   !ENDIF
   193    261   
   194    262   # The mksqlite3c.tcl and mksqlite3h.tcl scripts will pull in
   195    263   # any extension header files by default.  For non-amalgamation
   196    264   # builds, we need to make sure the compiler can find these.
   197    265   #
   198    266   !IF $(USE_AMALGAMATION)==0
   199    267   TCC = $(TCC) -I$(TOP)\ext\fts3
   200    268   RCC = $(RCC) -I$(TOP)\ext\fts3
   201    269   TCC = $(TCC) -I$(TOP)\ext\rtree
   202    270   RCC = $(RCC) -I$(TOP)\ext\rtree
   203    271   !ENDIF
          272  +
          273  +# The mksqlite3c.tcl script accepts some options on the command
          274  +# line.  When compiling with debugging enabled, some of these
          275  +# options are necessary in order to allow debugging symbols to
          276  +# work correctly with Visual Studio when using the amalgamation.
          277  +#
          278  +!IF $(DEBUG)>0
          279  +MKSQLITE3C_ARGS = --linemacros
          280  +!ELSE
          281  +MKSQLITE3C_ARGS =
          282  +!ENDIF
   204    283   
   205    284   # Define -DNDEBUG to compile without debugging (i.e., for production usage)
   206    285   # Omitting the define will cause extra debugging code to be inserted and
   207    286   # includes extra comments when "EXPLAIN stmt" is used.
   208    287   #
   209    288   !IF $(DEBUG)==0
   210    289   TCC = $(TCC) -DNDEBUG
................................................................................
   307    386   #
   308    387   !IFNDEF TCLSH_CMD
   309    388   TCLSH_CMD = tclsh85
   310    389   !ENDIF
   311    390   
   312    391   # Compiler options needed for programs that use the readline() library.
   313    392   #
          393  +!IFNDEF READLINE_FLAGS
   314    394   READLINE_FLAGS = -DHAVE_READLINE=0
          395  +!ENDIF
   315    396   
   316    397   # The library that programs using readline() must link against.
   317    398   #
          399  +!IFNDEF LIBREADLINE
   318    400   LIBREADLINE =
          401  +!ENDIF
   319    402   
   320    403   # Should the database engine be compiled threadsafe
   321    404   #
   322    405   TCC = $(TCC) -DSQLITE_THREADSAFE=1
   323    406   RCC = $(RCC) -DSQLITE_THREADSAFE=1
   324    407   
   325    408   # Do threads override each others locks by default (1), or do we test (-1)
................................................................................
   361    444   RCC = $(RCC) $(OPT_FEATURE_FLAGS)
   362    445   
   363    446   # Add in any optional parameters specified on the make commane line
   364    447   # ie.  make "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1".
   365    448   TCC = $(TCC) $(OPTS)
   366    449   RCC = $(RCC) $(OPTS)
   367    450   
   368         -# If symbols are enabled, enable PDBs.
   369         -# If debugging is enabled, disable all optimizations and enable PDBs.
          451  +# If compiling for debugging, add some defines.
   370    452   !IF $(DEBUG)>0
   371         -TCC = $(TCC) -Od -D_DEBUG
   372         -BCC = $(BCC) -Od -D_DEBUG
          453  +TCC = $(TCC) -D_DEBUG
          454  +BCC = $(BCC) -D_DEBUG
   373    455   RCC = $(RCC) -D_DEBUG
   374         -!ELSE
          456  +!ENDIF
          457  +
          458  +# If optimizations are enabled or disabled (either implicitly or
          459  +# explicitly), add the necessary flags.
          460  +!IF $(DEBUG)>0 || $(OPTIMIZATIONS)==0
          461  +TCC = $(TCC) -Od
          462  +BCC = $(BCC) -Od
          463  +!ELSEIF $(OPTIMIZATIONS)>=3
          464  +TCC = $(TCC) -Ox
          465  +BCC = $(BCC) -Ox
          466  +!ELSEIF $(OPTIMIZATIONS)==2
   375    467   TCC = $(TCC) -O2
   376    468   BCC = $(BCC) -O2
          469  +!ELSEIF $(OPTIMIZATIONS)==1
          470  +TCC = $(TCC) -O1
          471  +BCC = $(BCC) -O1
   377    472   !ENDIF
   378    473   
          474  +# If symbols are enabled (or compiling for debugging), enable PDBs.
   379    475   !IF $(DEBUG)>0 || $(SYMBOLS)!=0
   380    476   TCC = $(TCC) -Zi
   381    477   BCC = $(BCC) -Zi
   382    478   !ENDIF
   383    479   
   384    480   # If ICU support is enabled, add the compiler options for it.
   385    481   !IF $(USE_ICU)!=0
................................................................................
   409    505   
   410    506   # When compiling for use in the WinRT environment, the following
   411    507   # linker option must be used to mark the executable as runnable
   412    508   # only in the context of an application container.
   413    509   #
   414    510   !IF $(FOR_WINRT)!=0
   415    511   LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER
          512  +!IF "$(VISUALSTUDIOVERSION)"=="12.0"
          513  +!IFNDEF STORELIBPATH
          514  +!IF "$(PLATFORM)"=="x86"
          515  +STORELIBPATH = $(NCRTLIBPATH)\store
          516  +!ELSEIF "$(PLATFORM)"=="x64"
          517  +STORELIBPATH = $(NCRTLIBPATH)\store\amd64
          518  +!ELSEIF "$(PLATFORM)"=="ARM"
          519  +STORELIBPATH = $(NCRTLIBPATH)\store\arm
          520  +!ELSE
          521  +STORELIBPATH = $(NCRTLIBPATH)\store
          522  +!ENDIF
          523  +!ENDIF
          524  +STORELIBPATH = $(STORELIBPATH:\\=\)
          525  +LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(STORELIBPATH)"
          526  +!ENDIF
   416    527   !ENDIF
   417    528   
   418    529   # If either debugging or symbols are enabled, enable PDBs.
   419    530   !IF $(DEBUG)>0 || $(SYMBOLS)!=0
   420    531   LDFLAGS = /DEBUG
   421    532   !ENDIF
   422    533   
................................................................................
   429    540   # If ICU support is enabled, add the linker options for it.
   430    541   !IF $(USE_ICU)!=0
   431    542   LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR)
   432    543   LTLIBS = $(LTLIBS) $(LIBICU)
   433    544   !ENDIF
   434    545   
   435    546   # nawk compatible awk.
          547  +!IFNDEF NAWK
   436    548   NAWK = gawk.exe
          549  +!ENDIF
   437    550   
   438    551   # You should not have to change anything below this line
   439    552   ###############################################################################
   440    553   
   441    554   # Object files for the SQLite library (non-amalgamation).
   442    555   #
   443         -LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
          556  +LIBOBJS0 = vdbe.lo parse.lo alter.lo analyze.lo attach.lo auth.lo \
   444    557            backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
   445    558            callback.lo complete.lo ctime.lo date.lo delete.lo \
   446    559            expr.lo fault.lo fkey.lo \
   447    560            fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \
   448    561            fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \
   449         -         fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \
          562  +         fts3_tokenize_vtab.lo fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \
   450    563            func.lo global.lo hash.lo \
   451    564            icu.lo insert.lo journal.lo legacy.lo loadext.lo \
   452    565            main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \
   453    566            memjournal.lo \
   454    567            mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \
   455    568            notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \
   456         -         pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \
          569  +         pager.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \
   457    570            random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \
   458    571            table.lo tokenize.lo trigger.lo \
   459    572            update.lo util.lo vacuum.lo \
   460         -         vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \
          573  +         vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \
   461    574            vdbetrace.lo wal.lo walker.lo where.lo utf.lo vtab.lo
   462    575   
   463    576   # Object files for the amalgamation.
   464    577   #
   465    578   LIBOBJS1 = sqlite3.lo
   466    579   
   467    580   # Determine the real value of LIBOBJ based on the 'configure' script
   468    581   #
   469    582   !IF $(USE_AMALGAMATION)==0
   470    583   LIBOBJ = $(LIBOBJS0)
   471    584   !ELSE
   472    585   LIBOBJ = $(LIBOBJS1)
   473    586   !ENDIF
          587  +
          588  +# Determine if embedded resource compilation and usage are enabled.
          589  +#
          590  +!IF $(USE_RC)!=0
          591  +LIBRESOBJS = sqlite3res.lo
          592  +!ELSE
          593  +LIBRESOBJS =
          594  +!ENDIF
   474    595   
   475    596   # All of the source code files.
   476    597   #
   477    598   SRC = \
   478    599     $(TOP)\src\alter.c \
   479    600     $(TOP)\src\analyze.c \
   480    601     $(TOP)\src\attach.c \
................................................................................
   516    637     $(TOP)\src\mutex_noop.c \
   517    638     $(TOP)\src\mutex_unix.c \
   518    639     $(TOP)\src\mutex_w32.c \
   519    640     $(TOP)\src\notify.c \
   520    641     $(TOP)\src\os.c \
   521    642     $(TOP)\src\os.h \
   522    643     $(TOP)\src\os_common.h \
          644  +  $(TOP)\src\os_setup.h \
   523    645     $(TOP)\src\os_unix.c \
   524    646     $(TOP)\src\os_win.c \
          647  +  $(TOP)\src\os_win.h \
   525    648     $(TOP)\src\pager.c \
   526    649     $(TOP)\src\pager.h \
   527    650     $(TOP)\src\parse.y \
   528    651     $(TOP)\src\pcache.c \
   529    652     $(TOP)\src\pcache.h \
   530    653     $(TOP)\src\pcache1.c \
   531    654     $(TOP)\src\pragma.c \
................................................................................
   558    681     $(TOP)\src\vdbesort.c \
   559    682     $(TOP)\src\vdbetrace.c \
   560    683     $(TOP)\src\vdbeInt.h \
   561    684     $(TOP)\src\vtab.c \
   562    685     $(TOP)\src\wal.c \
   563    686     $(TOP)\src\wal.h \
   564    687     $(TOP)\src\walker.c \
   565         -  $(TOP)\src\where.c
          688  +  $(TOP)\src\where.c \
          689  +  $(TOP)\src\whereInt.h
   566    690   
   567    691   # Source code for extensions
   568    692   #
   569    693   SRC = $(SRC) \
   570    694     $(TOP)\ext\fts1\fts1.c \
   571    695     $(TOP)\ext\fts1\fts1.h \
   572    696     $(TOP)\ext\fts1\fts1_hash.c \
................................................................................
   594    718     $(TOP)\ext\fts3\fts3_hash.h \
   595    719     $(TOP)\ext\fts3\fts3_icu.c \
   596    720     $(TOP)\ext\fts3\fts3_porter.c \
   597    721     $(TOP)\ext\fts3\fts3_snippet.c \
   598    722     $(TOP)\ext\fts3\fts3_tokenizer.h \
   599    723     $(TOP)\ext\fts3\fts3_tokenizer.c \
   600    724     $(TOP)\ext\fts3\fts3_tokenizer1.c \
          725  +  $(TOP)\ext\fts3\fts3_tokenize_vtab.c \
   601    726     $(TOP)\ext\fts3\fts3_unicode.c \
   602    727     $(TOP)\ext\fts3\fts3_unicode2.c \
   603    728     $(TOP)\ext\fts3\fts3_write.c
   604    729   SRC = $(SRC) \
   605    730     $(TOP)\ext\icu\sqliteicu.h \
   606    731     $(TOP)\ext\icu\icu.c
   607    732   SRC = $(SRC) \
................................................................................
   634    759     $(TOP)\src\test_autoext.c \
   635    760     $(TOP)\src\test_async.c \
   636    761     $(TOP)\src\test_backup.c \
   637    762     $(TOP)\src\test_btree.c \
   638    763     $(TOP)\src\test_config.c \
   639    764     $(TOP)\src\test_demovfs.c \
   640    765     $(TOP)\src\test_devsym.c \
          766  +  $(TOP)\src\test_fs.c \
   641    767     $(TOP)\src\test_func.c \
   642         -  $(TOP)\src\test_fuzzer.c \
   643    768     $(TOP)\src\test_hexio.c \
   644    769     $(TOP)\src\test_init.c \
   645    770     $(TOP)\src\test_intarray.c \
   646    771     $(TOP)\src\test_journal.c \
   647    772     $(TOP)\src\test_malloc.c \
   648    773     $(TOP)\src\test_multiplex.c \
   649    774     $(TOP)\src\test_mutex.c \
................................................................................
   656    781     $(TOP)\src\test_server.c \
   657    782     $(TOP)\src\test_superlock.c \
   658    783     $(TOP)\src\test_syscall.c \
   659    784     $(TOP)\src\test_stat.c \
   660    785     $(TOP)\src\test_tclvar.c \
   661    786     $(TOP)\src\test_thread.c \
   662    787     $(TOP)\src\test_vfs.c \
   663         -  $(TOP)\src\test_wholenumber.c \
   664    788     $(TOP)\src\test_wsd.c \
   665    789     $(TOP)\ext\fts3\fts3_term.c \
   666    790     $(TOP)\ext\fts3\fts3_test.c
          791  +
          792  +# Statically linked extensions
          793  +#
          794  +TESTEXT = \
          795  +  $(TOP)\ext\misc\amatch.c \
          796  +  $(TOP)\ext\misc\closure.c \
          797  +  $(TOP)\ext\misc\fuzzer.c \
          798  +  $(TOP)\ext\misc\ieee754.c \
          799  +  $(TOP)\ext\misc\nextchar.c \
          800  +  $(TOP)\ext\misc\percentile.c \
          801  +  $(TOP)\ext\misc\regexp.c \
          802  +  $(TOP)\ext\misc\spellfix.c \
          803  +  $(TOP)\ext\misc\totype.c \
          804  +  $(TOP)\ext\misc\wholenumber.c
          805  +
   667    806   
   668    807   # Source code to the library files needed by the test fixture
   669    808   #
   670    809   TESTSRC2 = \
   671    810     $(TOP)\src\attach.c \
   672    811     $(TOP)\src\backup.c \
   673    812     $(TOP)\src\bitvec.c \
................................................................................
   675    814     $(TOP)\src\build.c \
   676    815     $(TOP)\src\ctime.c \
   677    816     $(TOP)\src\date.c \
   678    817     $(TOP)\src\expr.c \
   679    818     $(TOP)\src\func.c \
   680    819     $(TOP)\src\insert.c \
   681    820     $(TOP)\src\wal.c \
          821  +  $(TOP)\src\main.c \
   682    822     $(TOP)\src\mem5.c \
   683    823     $(TOP)\src\os.c \
   684    824     $(TOP)\src\os_unix.c \
   685    825     $(TOP)\src\os_win.c \
   686    826     $(TOP)\src\pager.c \
   687    827     $(TOP)\src\pragma.c \
   688    828     $(TOP)\src\prepare.c \
................................................................................
   702    842     $(TOP)\src\vdbetrace.c \
   703    843     $(TOP)\src\where.c \
   704    844     parse.c \
   705    845     $(TOP)\ext\fts3\fts3.c \
   706    846     $(TOP)\ext\fts3\fts3_aux.c \
   707    847     $(TOP)\ext\fts3\fts3_expr.c \
   708    848     $(TOP)\ext\fts3\fts3_tokenizer.c \
          849  +  $(TOP)\ext\fts3\fts3_tokenize_vtab.c \
   709    850     $(TOP)\ext\fts3\fts3_unicode.c \
   710    851     $(TOP)\ext\fts3\fts3_unicode2.c \
   711    852     $(TOP)\ext\fts3\fts3_write.c \
   712    853     $(TOP)\ext\async\sqlite3async.c
   713    854   
   714    855   # Header files used by all library source files.
   715    856   #
................................................................................
   719    860      $(TOP)\src\hash.h \
   720    861      $(TOP)\src\hwtime.h \
   721    862      keywordhash.h \
   722    863      $(TOP)\src\mutex.h \
   723    864      opcodes.h \
   724    865      $(TOP)\src\os.h \
   725    866      $(TOP)\src\os_common.h \
          867  +   $(TOP)\src\os_setup.h \
          868  +   $(TOP)\src\os_win.h \
   726    869      $(TOP)\src\pager.h \
   727    870      $(TOP)\src\pcache.h \
   728    871      parse.h \
   729    872      sqlite3.h \
   730    873      $(TOP)\src\sqlite3ext.h \
   731    874      $(TOP)\src\sqliteInt.h \
   732    875      $(TOP)\src\sqliteLimit.h \
   733    876      $(TOP)\src\vdbe.h \
   734         -   $(TOP)\src\vdbeInt.h
          877  +   $(TOP)\src\vdbeInt.h \
          878  +   $(TOP)\src\whereInt.h
   735    879   
   736    880   # Header files used by extensions
   737    881   #
   738    882   EXTHDR = $(EXTHDR) \
   739    883     $(TOP)\ext\fts1\fts1.h \
   740    884     $(TOP)\ext\fts1\fts1_hash.h \
   741    885     $(TOP)\ext\fts1\fts1_tokenizer.h
................................................................................
   762    906   
   763    907   libsqlite3.lib:	$(LIBOBJ)
   764    908   	$(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
   765    909   
   766    910   libtclsqlite3.lib:	tclsqlite.lo libsqlite3.lib
   767    911   	$(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCL:tcl=tclstub) $(TLIBS)
   768    912   
   769         -sqlite3.exe:	$(TOP)\src\shell.c libsqlite3.lib sqlite3res.lo sqlite3.h
          913  +sqlite3.exe:	$(TOP)\src\shell.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h
   770    914   	$(LTLINK) $(READLINE_FLAGS) \
   771    915   		$(TOP)\src\shell.c \
   772         -		/link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib sqlite3res.lo $(LIBREADLINE) $(LTLIBS) $(TLIBS)
          916  +		/link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
          917  +
          918  +mptester.exe:	$(TOP)\mptest\mptest.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h
          919  +	$(LTLINK) $(TOP)\mptest\mptest.c \
          920  +		/link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
   773    921   
   774    922   # This target creates a directory named "tsrc" and fills it with
   775    923   # copies of all of the C source code and header files needed to
   776    924   # build on the target system.  Some of the C source code and header
   777    925   # files are automatically generated.  This target takes care of
   778    926   # all that automatic generation.
   779    927   #
   780    928   .target_source:	$(SRC) $(TOP)\tool\vdbe-compress.tcl
   781    929   	-rmdir /S/Q tsrc
   782    930   	-mkdir tsrc
   783    931   	for %i in ($(SRC)) do copy /Y %i tsrc
   784    932   	del /Q tsrc\sqlite.h.in tsrc\parse.y
   785         -	$(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl < tsrc\vdbe.c > vdbe.new
          933  +	$(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl $(OPTS) < tsrc\vdbe.c > vdbe.new
   786    934   	move vdbe.new tsrc\vdbe.c
   787    935   	echo > .target_source
   788    936   
   789    937   sqlite3.c:	.target_source $(TOP)\tool\mksqlite3c.tcl
   790         -	$(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl
          938  +	$(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl $(MKSQLITE3C_ARGS)
          939  +	copy tsrc\shell.c .
          940  +	copy tsrc\sqlite3ext.h .
   791    941   
   792         -sqlite3-all.c:	sqlite3.c $(TOP)/tool/split-sqlite3c.tcl
   793         -	$(TCLSH_CMD) $(TOP)/tool/split-sqlite3c.tcl
          942  +sqlite3-all.c:	sqlite3.c $(TOP)\tool\split-sqlite3c.tcl
          943  +	$(TCLSH_CMD) $(TOP)\tool\split-sqlite3c.tcl
          944  +
          945  +# Set the source code file to be used by executables and libraries when
          946  +# they need the amalgamation.
          947  +#
          948  +!IF $(SPLIT_AMALGAMATION)!=0
          949  +SQLITE3C = sqlite3-all.c
          950  +!ELSE
          951  +SQLITE3C = sqlite3.c
          952  +!ENDIF
   794    953   
   795    954   # Rule to build the amalgamation
   796    955   #
   797         -sqlite3.lo:	sqlite3.c
   798         -	$(LTCOMPILE) -c sqlite3.c
          956  +sqlite3.lo:	$(SQLITE3C)
          957  +	$(LTCOMPILE) -c $(SQLITE3C)
   799    958   
   800    959   # Rules to build the LEMON compiler generator
   801    960   #
   802    961   lempar.c:	$(TOP)\src\lempar.c
   803    962   	copy $(TOP)\src\lempar.c .
   804    963   
   805    964   lemon.exe:	$(TOP)\tool\lemon.c lempar.c
   806         -	$(BCC) -Daccess=_access -Fe$@ $(TOP)\tool\lemon.c /link $(NLTLIBPATHS)
          965  +	$(BCC) -Daccess=_access -Fe$@ $(TOP)\tool\lemon.c /link $(NLTLINKOPTS) $(NLTLIBPATHS)
   807    966   
   808    967   # Rules to build individual *.lo files from generated *.c files. This
   809    968   # applies to:
   810    969   #
   811    970   #     parse.lo
   812    971   #     opcodes.lo
   813    972   #
................................................................................
   815    974   	$(LTCOMPILE) -c parse.c
   816    975   
   817    976   opcodes.lo:	opcodes.c
   818    977   	$(LTCOMPILE) -c opcodes.c
   819    978   
   820    979   # Rule to build the Win32 resources object file.
   821    980   #
   822         -sqlite3res.lo:	$(TOP)\src\sqlite3.rc $(HDR)
          981  +!IF $(USE_RC)!=0
          982  +$(LIBRESOBJS):	$(TOP)\src\sqlite3.rc $(HDR)
   823    983   	echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h
   824    984   	for /F %%V in ('type "$(TOP)\VERSION"') do ( \
   825    985   		echo #define SQLITE_RESOURCE_VERSION %%V \
   826    986   			| $(NAWK) "/.*/ { gsub(/[.]/,\",\");print }" >> sqlite3rc.h \
   827    987   	)
   828    988   	echo #endif >> sqlite3rc.h
   829         -	$(LTRCOMPILE) -fo sqlite3res.lo $(TOP)\src\sqlite3.rc
          989  +	$(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc
          990  +!ENDIF
   830    991   
   831    992   # Rules to build individual *.lo files from files in the src directory.
   832    993   #
   833    994   alter.lo:	$(TOP)\src\alter.c $(HDR)
   834    995   	$(LTCOMPILE) -c $(TOP)\src\alter.c
   835    996   
   836    997   analyze.lo:	$(TOP)\src\analyze.c $(HDR)
................................................................................
  1039   1200   
  1040   1201   tclsqlite.lo:	$(TOP)\src\tclsqlite.c $(HDR)
  1041   1202   	$(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
  1042   1203   
  1043   1204   tclsqlite-shell.lo:	$(TOP)\src\tclsqlite.c $(HDR)
  1044   1205   	$(LTCOMPILE) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
  1045   1206   
  1046         -tclsqlite3.exe:	tclsqlite-shell.lo libsqlite3.lib sqlite3res.lo
  1047         -	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ libsqlite3.lib tclsqlite-shell.lo sqlite3res.lo $(LTLIBS) $(TLIBS)
         1207  +tclsqlite3.exe:	tclsqlite-shell.lo libsqlite3.lib $(LIBRESOBJS)
         1208  +	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ libsqlite3.lib tclsqlite-shell.lo $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
  1048   1209   
  1049   1210   # Rules to build opcodes.c and opcodes.h
  1050   1211   #
  1051   1212   opcodes.c:	opcodes.h $(TOP)\mkopcodec.awk
  1052   1213   	$(NAWK) -f $(TOP)\mkopcodec.awk opcodes.h > opcodes.c
  1053   1214   
  1054   1215   opcodes.h:	parse.h $(TOP)\src\vdbe.c $(TOP)\mkopcodeh.awk
................................................................................
  1062   1223   	del /Q parse.y parse.h parse.h.temp
  1063   1224   	copy $(TOP)\src\parse.y .
  1064   1225   	.\lemon.exe $(OPT_FEATURE_FLAGS) $(OPTS) parse.y
  1065   1226   	move parse.h parse.h.temp
  1066   1227   	$(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h
  1067   1228   
  1068   1229   sqlite3.h:	$(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
  1069         -	$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP) > sqlite3.h
         1230  +	$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > sqlite3.h
  1070   1231   
  1071   1232   mkkeywordhash.exe:	$(TOP)\tool\mkkeywordhash.c
  1072         -	$(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLIBPATHS)
         1233  +	$(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLINKOPTS) $(NLTLIBPATHS)
  1073   1234   
  1074   1235   keywordhash.h:	$(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
  1075   1236   	.\mkkeywordhash.exe > keywordhash.h
  1076   1237   
  1077   1238   
  1078   1239   
  1079   1240   # Rules to build the extension objects.
................................................................................
  1122   1283   
  1123   1284   fts3_tokenizer.lo:	$(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR)
  1124   1285   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c
  1125   1286   
  1126   1287   fts3_tokenizer1.lo:	$(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR)
  1127   1288   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c
  1128   1289   
         1290  +fts3_tokenize_vtab.lo:	$(TOP)\ext\fts3\fts3_tokenize_vtab.c $(HDR) $(EXTHDR)
         1291  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenize_vtab.c
         1292  +
  1129   1293   fts3_unicode.lo:	$(TOP)\ext\fts3\fts3_unicode.c $(HDR) $(EXTHDR)
  1130   1294   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c
  1131   1295   
  1132   1296   fts3_unicode2.lo:	$(TOP)\ext\fts3\fts3_unicode2.c $(HDR) $(EXTHDR)
  1133   1297   	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c
  1134   1298   
  1135   1299   fts3_write.lo:	$(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR)
................................................................................
  1145   1309   # fixture.  Otherwise link against libsqlite3.lib.  (This distinction is
  1146   1310   # necessary because the test fixture requires non-API symbols which are
  1147   1311   # hidden when the library is built via the amalgamation).
  1148   1312   #
  1149   1313   TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
  1150   1314   TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
  1151   1315   
  1152         -TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.lib
  1153         -TESTFIXTURE_SRC1 = sqlite3.c
         1316  +TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2) libsqlite3.lib
         1317  +TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
  1154   1318   !IF $(USE_AMALGAMATION)==0
  1155   1319   TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0)
  1156   1320   !ELSE
  1157   1321   TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1)
  1158   1322   !ENDIF
  1159   1323   
  1160         -testfixture.exe:	$(TESTFIXTURE_SRC) sqlite3res.lo $(HDR)
         1324  +testfixture.exe:	$(TESTFIXTURE_SRC) $(LIBRESOBJS) $(HDR)
  1161   1325   	$(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \
  1162   1326   		-DBUILD_sqlite -I$(TCLINCDIR) \
  1163   1327   		$(TESTFIXTURE_SRC) \
  1164         -		/link $(LTLINKOPTS) $(LTLIBPATHS) sqlite3res.lo $(LTLIBS) $(TLIBS)
         1328  +		/link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
         1329  +
         1330  +extensiontest: testfixture.exe testloadext.dll
         1331  +	.\testfixture.exe $(TOP)\test\loadext.test
  1165   1332   
  1166   1333   fulltest:	testfixture.exe sqlite3.exe
  1167   1334   	.\testfixture.exe $(TOP)\test\all.test
  1168   1335   
  1169   1336   soaktest:	testfixture.exe sqlite3.exe
  1170   1337   	.\testfixture.exe $(TOP)\test\all.test -soak=1
  1171   1338   
  1172   1339   fulltestonly:	testfixture.exe sqlite3.exe
  1173   1340   	.\testfixture.exe $(TOP)\test\full.test
  1174   1341   
         1342  +queryplantest:	testfixture.exe sqlite3.exe
         1343  +	.\testfixture.exe $(TOP)\test\permutations.test queryplanner
         1344  +
  1175   1345   test:	testfixture.exe sqlite3.exe
  1176   1346   	.\testfixture.exe $(TOP)\test\veryquick.test
  1177   1347   
  1178         -sqlite3_analyzer.c: sqlite3.c $(TOP)\src\test_stat.c $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl
  1179         -	copy sqlite3.c + $(TOP)\src\test_stat.c + $(TOP)\src\tclsqlite.c $@
         1348  +sqlite3_analyzer.c: $(SQLITE3C) $(TOP)\src\test_stat.c $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl
         1349  +	copy $(SQLITE3C) + $(TOP)\src\test_stat.c + $(TOP)\src\tclsqlite.c $@
  1180   1350   	echo static const char *tclsh_main_loop(void){ >> $@
  1181   1351   	echo static const char *zMainloop = >> $@
  1182   1352   	$(NAWK) -f $(TOP)\tool\tostr.awk $(TOP)\tool\spaceanal.tcl >> $@
  1183   1353   	echo ; return zMainloop; } >> $@
  1184   1354   
  1185         -sqlite3_analyzer.exe:	sqlite3_analyzer.c sqlite3res.lo
         1355  +sqlite3_analyzer.exe:	sqlite3_analyzer.c $(LIBRESOBJS)
  1186   1356   	$(LTLINK) -DBUILD_sqlite -DTCLSH=2 -I$(TCLINCDIR) sqlite3_analyzer.c \
  1187         -		/link $(LTLINKOPTS) $(LTLIBPATHS) sqlite3res.lo $(LTLIBS) $(TLIBS)
         1357  +		/link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
         1358  +
         1359  +testloadext.lo:	$(TOP)\src\test_loadext.c
         1360  +	$(LTCOMPILE) -c $(TOP)\src\test_loadext.c
         1361  +
         1362  +testloadext.dll: testloadext.lo
         1363  +	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo
         1364  +
         1365  +showdb.exe:	$(TOP)\tool\showdb.c $(SQLITE3C)
         1366  +	$(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
         1367  +		$(TOP)\tool\showdb.c $(SQLITE3C)
         1368  +
         1369  +wordcount.exe:	$(TOP)\test\wordcount.c $(SQLITE3C)
         1370  +	$(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
         1371  +		$(TOP)\test\wordcount.c $(SQLITE3C)
         1372  +
         1373  +speedtest1.exe:	$(TOP)\test\speedtest1.c $(SQLITE3C)
         1374  +	$(LTLINK) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
         1375  +		$(TOP)\test\speedtest1.c $(SQLITE3C)
  1188   1376   
  1189   1377   clean:
  1190   1378   	del /Q *.lo *.ilk *.lib *.obj *.pdb sqlite3.exe libsqlite3.lib
  1191         -	del /Q *.da *.bb *.bbg gmon.out
         1379  +	del /Q *.cod *.da *.bb *.bbg gmon.out
  1192   1380   	del /Q sqlite3.h opcodes.c opcodes.h
  1193         -	del /Q lemon.exe lempar.c parse.*
  1194         -	del /Q mkkeywordhash.exe keywordhash.h
         1381  +	del /Q lemon.* lempar.c parse.*
         1382  +	del /Q mkkeywordhash.* keywordhash.h
         1383  +	del /Q notasharedlib.*
  1195   1384   	-rmdir /Q/S .deps
  1196   1385   	-rmdir /Q/S .libs
  1197   1386   	-rmdir /Q/S quota2a
  1198   1387   	-rmdir /Q/S quota2b
  1199   1388   	-rmdir /Q/S quota2c
  1200   1389   	-rmdir /Q/S tsrc
  1201   1390   	del /Q .target_source
  1202   1391   	del /Q tclsqlite3.exe tclsqlite3.exp
         1392  +	del /Q testloadext.dll testloadext.exp
  1203   1393   	del /Q testfixture.exe testfixture.exp test.db
  1204   1394   	del /Q sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def
  1205         -	del /Q sqlite3.c
         1395  +	del /Q sqlite3.c sqlite3-*.c
  1206   1396   	del /Q sqlite3rc.h
         1397  +	del /Q shell.c sqlite3ext.h
  1207   1398   	del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c
  1208         -	del /Q sqlite-output.vsix
         1399  +	del /Q sqlite-*-output.vsix
         1400  +	del /Q mptester.exe
  1209   1401   
  1210   1402   # Dynamic link library section.
  1211   1403   #
  1212   1404   dll: sqlite3.dll
  1213   1405   
  1214   1406   sqlite3.def: libsqlite3.lib
  1215   1407   	echo EXPORTS > sqlite3.def
  1216   1408   	dumpbin /all libsqlite3.lib \
  1217   1409   		| $(NAWK) "/ 1 _?sqlite3_/ { sub(/^.* _?/,\"\");print }" \
  1218   1410   		| sort >> sqlite3.def
  1219   1411   
  1220         -sqlite3.dll: $(LIBOBJ) sqlite3res.lo sqlite3.def
  1221         -	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:sqlite3.def /OUT:$@ $(LIBOBJ) sqlite3res.lo $(LTLIBS) $(TLIBS)
         1412  +sqlite3.dll: $(LIBOBJ) $(LIBRESOBJS) sqlite3.def
         1413  +	$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:sqlite3.def /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)

Changes to Makefile.vxworks.

   258    258     $(TOP)/src/mutex_noop.c \
   259    259     $(TOP)/src/mutex_unix.c \
   260    260     $(TOP)/src/mutex_w32.c \
   261    261     $(TOP)/src/notify.c \
   262    262     $(TOP)/src/os.c \
   263    263     $(TOP)/src/os.h \
   264    264     $(TOP)/src/os_common.h \
          265  +  $(TOP)/src/os_setup.h \
   265    266     $(TOP)/src/os_unix.c \
   266    267     $(TOP)/src/os_win.c \
          268  +  $(TOP)/src/os_win.h \
   267    269     $(TOP)/src/pager.c \
   268    270     $(TOP)/src/pager.h \
   269    271     $(TOP)/src/parse.y \
   270    272     $(TOP)/src/pcache.c \
   271    273     $(TOP)/src/pcache.h \
   272    274     $(TOP)/src/pcache1.c \
   273    275     $(TOP)/src/pragma.c \
................................................................................
   412    414      $(TOP)/src/hash.h \
   413    415      $(TOP)/src/hwtime.h \
   414    416      keywordhash.h \
   415    417      $(TOP)/src/mutex.h \
   416    418      opcodes.h \
   417    419      $(TOP)/src/os.h \
   418    420      $(TOP)/src/os_common.h \
          421  +   $(TOP)/src/os_setup.h \
          422  +   $(TOP)/src/os_win.h \
   419    423      $(TOP)/src/pager.h \
   420    424      $(TOP)/src/pcache.h \
   421    425      parse.h  \
   422    426      sqlite3.h  \
   423    427      $(TOP)/src/sqlite3ext.h \
   424    428      $(TOP)/src/sqliteInt.h  \
   425    429      $(TOP)/src/sqliteLimit.h \
................................................................................
   658    662   	rm -f lemon lempar.c parse.* sqlite*.tar.gz mkkeywordhash keywordhash.h
   659    663   	rm -f $(PUBLISH)
   660    664   	rm -f *.da *.bb *.bbg gmon.out
   661    665   	rm -rf quota2a quota2b quota2c
   662    666   	rm -rf tsrc target_source
   663    667   	rm -f testloadext.dll libtestloadext.so
   664    668   	rm -f sqlite3.c fts?amal.c tclsqlite3.c
          669  +	rm -f sqlite3rc.h
          670  +	rm -f shell.c sqlite3ext.h
   665    671   	rm -f $(SHPREFIX)sqlite3.$(SO)

Name change from README to README.md.

     1         -This directory contains source code to 
            1  +<h1 align="center">SQLite Source Repository</h1>
     2      2   
     3         -    SQLite: An Embeddable SQL Database Engine
            3  +This repository contains the complete source code for the SQLite database
            4  +engine.  Some test scripts are also include.  However, many other test scripts
            5  +and most of the documentation are managed separately.
     4      6   
     5         -To compile the project, first create a directory in which to place
            7  +## Compiling
            8  +
            9  +First create a directory in which to place
     6     10   the build products.  It is recommended, but not required, that the
     7     11   build directory be separate from the source directory.  Cd into the
     8     12   build directory and then from the build directory run the configure
     9     13   script found at the root of the source tree.  Then run "make".
    10     14   
    11     15   For example:
    12     16   
    13     17       tar xzf sqlite.tar.gz    ;#  Unpack the source tree into "sqlite"
    14     18       mkdir bld                ;#  Build will occur in a sibling directory
    15     19       cd bld                   ;#  Change to the build directory
    16     20       ../sqlite/configure      ;#  Run the configure script
    17     21       make                     ;#  Run the makefile.
    18         -    make install             ;#  (Optional) Install the build products
           22  +    make sqlite3.c           ;#  Build the "amalgamation" source file
           23  +    make test                ;#  Run some tests (requires Tcl)
           24  +
           25  +See the makefile for additional targets.
    19     26   
    20     27   The configure script uses autoconf 2.61 and libtool.  If the configure
    21     28   script does not work out for you, there is a generic makefile named
    22     29   "Makefile.linux-gcc" in the top directory of the source tree that you
    23     30   can copy and edit to suit your needs.  Comments on the generic makefile
    24     31   show what changes are needed.
    25     32   
    26         -The linux binaries on the website are created using the generic makefile,
    27         -not the configure script.  The windows binaries on the website are created
    28         -using MinGW32 configured as a cross-compiler running under Linux.  For 
    29         -details, see the ./publish.sh script at the top-level of the source tree.
    30         -The developers do not use teh configure script.
           33  +## Using MSVC
           34  +
           35  +On Windows, all applicable build products can be compiled with MSVC.
           36  +First open the command prompt window associated with the desired compiler
           37  +version (e.g. "Developer Command Prompt for VS2013").  Next, use NMAKE
           38  +with the provided "Makefile.msc" to build one of the supported targets.
           39  +
           40  +For example:
           41  +
           42  +    mkdir bld
           43  +    cd bld
           44  +    nmake /f Makefile.msc TOP=..\sqlite
           45  +    nmake /f Makefile.msc sqlite3.c TOP=..\sqlite
           46  +    nmake /f Makefile.msc sqlite3.dll TOP=..\sqlite
           47  +    nmake /f Makefile.msc sqlite3.exe TOP=..\sqlite
           48  +    nmake /f Makefile.msc test TOP=..\sqlite
           49  +
           50  +There are several build options that can be set via the NMAKE command
           51  +line.  For example, to build for WinRT, simply add "FOR_WINRT=1" argument
           52  +to the "sqlite3.dll" command line above.  When debugging into the SQLite
           53  +code, adding the "DEBUG=1" argument to one of the above command lines is
           54  +recommended.
           55  +
           56  +SQLite does not require Tcl to run, but a Tcl installation is required
           57  +by the makefiles (including those for MSVC).  SQLite contains a lot of
           58  +generated code and Tcl is used to do much of that code generation.  The
           59  +makefiles also require AWK.
           60  +
           61  +## Source Code Tour
           62  +
           63  +Most of the core source files are in the **src/** subdirectory.  But
           64  +src/ also contains files used to build the "testfixture" test harness;
           65  +those file all begin with "test".  And src/ contains the "shell.c" file
           66  +which is the main program for the "sqlite3.exe" command-line shell and
           67  +the "tclsqlite.c" file which implements the bindings to SQLite from the
           68  +Tcl programming language.  (Historical note:  SQLite began as a Tcl
           69  +extension and only later escaped to the wild as an independent library.)
           70  +
           71  +Test scripts and programs are found in the **test/** subdirectory.
           72  +There are other test suites for SQLite (see
           73  +[How SQLite Is Tested](http://www.sqlite.org/testing.html))
           74  +but those other test suites are
           75  +in separate source repositories.
           76  +
           77  +The **ext/** subdirectory contains code for extensions.  The
           78  +Full-text search engine is in **ext/fts3**.  The R-Tree engine is in
           79  +**ext/rtree**.  The **ext/misc** subdirectory contains a number of
           80  +smaller, single-file extensions, such as a REGEXP operator.
           81  +
           82  +The **tool/** subdirectory contains various scripts and programs used
           83  +for building generated source code files or for testing or for generating
           84  +accessory programs such as "sqlite3_analyzer(.exe)".
           85  +
           86  +### Generated Source Code Files
           87  +
           88  +Several of the C-language source files used by SQLite are generated from
           89  +other sources rather than being typed in manually by a programmer.  This
           90  +section will summarize those automatically-generated files.  To create all
           91  +of the automatically-generated files, simply run "make target&#95;source".
           92  +The "target&#95;source" make target will create a subdirectory "tsrc/" and
           93  +fill it with all the source files needed to build SQLite, both
           94  +manually-edited files and automatically-generated files.
           95  +
           96  +The SQLite interface is defined by the **sqlite3.h** header file, which is
           97  +generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION.  The
           98  +Tcl script at tool/mksqlite3h.tcl does the conversion.  The manifest.uuid
           99  +file contains the SHA1 hash of the particular check-in and is used to generate
          100  +the SQLITE_SOURCE_ID macro.  The VERSION file contains the current SQLite
          101  +version number.  The sqlite3.h header is really just a copy of src/sqlite.h.in
          102  +with the source-id and version number inserted at just the right spots.
          103  +Note that comment text in the sqlite3.h file is used to generate much of
          104  +the SQLite API documentation.  The Tcl scripts used to generate that
          105  +documentation are in a separate source repository.
          106  +
          107  +The SQL language parser is **parse.c** which is generate from a grammar in
          108  +the src/parse.y file.  The conversion of "parse.y" into "parse.c" is done
          109  +by the [lemon](./doc/lemon.html) LALR(1) parser generator.  The source code
          110  +for lemon is at tool/lemon.c.  Lemon uses a
          111  +template for generating its parser.  A generic template is in tool/lempar.c,
          112  +but SQLite uses a slightly modified template found in src/lempar.c.
          113  +
          114  +Lemon also generates the **parse.h** header file, at the same time it
          115  +generates parse.c. But the parse.h header file is
          116  +modified further (to add additional symbols) using the ./addopcodes.awk
          117  +AWK script.
          118  +
          119  +The **opcodes.h** header file contains macros that define the numbers
          120  +corresponding to opcodes in the "VDBE" virtual machine.  The opcodes.h
          121  +file is generated by the scanning the src/vdbe.c source file.  The
          122  +AWK script at ./mkopcodeh.awk does this scan and generates opcodes.h.
          123  +A second AWK script, ./mkopcodec.awk, then scans opcodes.h to generate
          124  +the **opcodes.c** source file, which contains a reverse mapping from
          125  +opcode-number to opcode-name that is used for EXPLAIN output.
          126  +
          127  +The **keywordhash.h** header file contains the definition of a hash table
          128  +that maps SQL language keywords (ex: "CREATE", "SELECT", "INDEX", etc.) into
          129  +the numeric codes used by the parse.c parser.  The keywordhash.h file is
          130  +generated by a C-language program at tool mkkeywordhash.c.
          131  +
          132  +### The Amalgamation
          133  +
          134  +All of the individual C source code and header files (both manually-edited
          135  +and automatically-generated) can be combined into a single big source file
          136  +**sqlite3.c** called "the amalgamation".  The amalgamation is the recommended
          137  +way of using SQLite in a larger application.  Combining all individual
          138  +source code files into a single big source code file allows the C compiler
          139  +to perform more cross-procedure analysis and generate better code.  SQLite
          140  +runs about 5% faster when compiled from the amalgamation versus when compiled
          141  +from individual source files.
          142  +
          143  +The amalgamation is generated from the tool/mksqlite3c.tcl Tcl script.
          144  +First, all of the individual source files must be gathered into the tsrc/
          145  +subdirectory (using the equivalent of "make target_source") then the
          146  +tool/mksqlite3c.tcl script is run to copy them all together in just the
          147  +right order while resolving internal "#include" references.
          148  +
          149  +The amalgamation source file is more than 100K lines long.  Some symbolic
          150  +debuggers (most notably MSVC) are unable to deal with files longer than 64K
          151  +lines.  To work around this, a separate Tcl script, tool/split-sqlite3c.tcl,
          152  +can be run on the amalgamation to break it up into a single small C file
          153  +called **sqlite3-all.c** that does #include on about five other files
          154  +named **sqlite3-1.c**, **sqlite3-2.c**, ..., **sqlite3-5.c**.  In this way,
          155  +all of the source code is contained within a single translation unit so
          156  +that the compiler can do extra cross-procedure optimization, but no
          157  +individual source file exceeds 32K lines in length.
          158  +
          159  +## How It All Fits Together
          160  +
          161  +SQLite is modular in design.
          162  +See the [architectural description](http://www.sqlite.org/arch.html)
          163  +for details. Other documents that are useful in
          164  +(helping to understand how SQLite works include the
          165  +[file format](http://www.sqlite.org/fileformat2.html) description,
          166  +the [virtual machine](http://www.sqlite.org/vdbe.html) that runs
          167  +prepared statements, the description of
          168  +[how transactions work](http://www.sqlite.org/atomiccommit.html), and
          169  +the [overview of the query planner](http://www.sqlite.org/optoverview.html).
          170  +
          171  +Unfortunately, years of effort have gone into optimizating SQLite, both
          172  +for small size and high performance.  And optimizations tend to result in
          173  +complex code.  So there is a lot of complexity in the SQLite implementation.
          174  +
          175  +Key files:
          176  +
          177  +  *  **sqlite3.h** - This file defines the public interface to the SQLite
          178  +     library.  Readers will need to be familiar with this interface before
          179  +     trying to understand how the library works internally.
          180  +
          181  +  *  **sqliteInt.h** - this header file defines many of the data objects
          182  +     used internally by SQLite.
          183  +
          184  +  *  **parse.y** - This file describes the LALR(1) grammer that SQLite uses
          185  +     to parse SQL statements, and the actions that are taken at each stop
          186  +     in the parsing process.
          187  +
          188  +  *  **vdbe.c** - This file implements the virtual machine that runs
          189  +     prepared statements.  There are various helper files whose names
          190  +     begin with "vdbe".  The VDBE has access to the vdbeInt.h header file
          191  +     which defines internal data objects.  The rest of SQLite interacts
          192  +     with the VDBE through an interface defined by vdbe.h.
          193  +
          194  +  *  **where.c** - This file analyzes the WHERE clause and generates
          195  +     virtual machine code to run queries efficiently.  This file is
          196  +     sometimes called the "query optimizer".  It has its own private
          197  +     header file, whereInt.h, that defines data objects used internally.
          198  +
          199  +  *  **btree.c** - This file contains the implementation of the B-Tree
          200  +     storage engine used by SQLite.
          201  +
          202  +  *  **pager.c** - This file contains the "pager" implementation, the
          203  +     module that implements transactions.
          204  +
          205  +  *  **os_unix.c** and **os_win.c** - These two files implement the interface
          206  +     between SQLite and the underlying operating system using the run-time
          207  +     pluggable VFS interface.
          208  +
    31    209   
    32         -SQLite does not require TCL to run, but a TCL installation is required
    33         -by the makefiles.  SQLite contains a lot of generated code and TCL is
    34         -used to do much of that code generation.  The makefile also requires
    35         -AWK.
          210  +## Contacts
    36    211   
    37         -Contacts:
    38         -
    39         -   http://www.sqlite.org/
          212  +The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/)
          213  +with geographically distributed backup servers at
          214  +[http://www2.sqlite.org/](http://www2.sqlite.org) and
          215  +[http://www3.sqlite.org/](http://www3.sqlite.org).

Changes to VERSION.

     1         -3.7.15
            1  +3.8.5

Changes to addopcodes.awk.

    24     24     printf "#define TK_%-29s %4d\n", "ILLEGAL",         ++max
    25     25     printf "#define TK_%-29s %4d\n", "SPACE",           ++max
    26     26     printf "#define TK_%-29s %4d\n", "UNCLOSED_STRING", ++max
    27     27     printf "#define TK_%-29s %4d\n", "FUNCTION",        ++max
    28     28     printf "#define TK_%-29s %4d\n", "COLUMN",          ++max
    29     29     printf "#define TK_%-29s %4d\n", "AGG_FUNCTION",    ++max
    30     30     printf "#define TK_%-29s %4d\n", "AGG_COLUMN",      ++max
    31         -  printf "#define TK_%-29s %4d\n", "CONST_FUNC",      ++max
    32     31     printf "#define TK_%-29s %4d\n", "UMINUS",          ++max
    33     32     printf "#define TK_%-29s %4d\n", "UPLUS",           ++max
           33  +  printf "#define TK_%-29s %4d\n", "REGISTER",        ++max
    34     34   }

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  +