| Index: third_party/sqlite/src/tool/mksqlite3c-noext.tcl
|
| diff --git a/third_party/sqlite/src/tool/mksqlite3c-noext.tcl b/third_party/sqlite/src/tool/mksqlite3c-noext.tcl
|
| index 601b8cce8c3e6d85d88c285c39909fb787c56e2d..a16b0591eb547e61b6270def640f57aaba3fbf0f 100644
|
| --- a/third_party/sqlite/src/tool/mksqlite3c-noext.tcl
|
| +++ b/third_party/sqlite/src/tool/mksqlite3c-noext.tcl
|
| @@ -1,7 +1,7 @@
|
| #!/usr/bin/tclsh
|
| #
|
| # To build a single huge source file holding all of SQLite (or at
|
| -# least the core components - the test harness, shell, and TCL
|
| +# least the core components - the test harness, shell, and TCL
|
| # interface are omitted.) first do
|
| #
|
| # make target_source
|
| @@ -11,7 +11,7 @@
|
| # there and will not work if they are not found.) There are a few
|
| # generated C code files that are also added to the tsrc directory.
|
| # For example, the "parse.c" and "parse.h" files to implement the
|
| -# the parser are derived from "parse.y" using lemon. And the
|
| +# the parser are derived from "parse.y" using lemon. And the
|
| # "keywordhash.h" files is generated by a program named "mkkeywordhash".
|
| #
|
| # After the "tsrc" directory has been created and populated, run
|
| @@ -26,15 +26,20 @@
|
| # from in this file. The version number is needed to generate the header
|
| # comment of the amalgamation.
|
| #
|
| -if {[lsearch $argv --nostatic]>=0} {
|
| - set addstatic 0
|
| -} else {
|
| - set addstatic 1
|
| -}
|
| -if {[lsearch $argv --linemacros]>=0} {
|
| - set linemacros 1
|
| -} else {
|
| - set linemacros 0
|
| +set addstatic 1
|
| +set linemacros 0
|
| +set useapicall 0
|
| +for {set i 0} {$i<[llength $argv]} {incr i} {
|
| + set x [lindex $argv $i]
|
| + if {[regexp {^-+nostatic$} $x]} {
|
| + set addstatic 0
|
| + } elseif {[regexp {^-+linemacros} $x]} {
|
| + set linemacros 1
|
| + } elseif {[regexp {^-+useapicall} $x]} {
|
| + set useapicall 1
|
| + } else {
|
| + error "unknown command-line option: $x"
|
| + }
|
| }
|
| set in [open tsrc/sqlite3.h]
|
| set cnt 0
|
| @@ -57,7 +62,7 @@ set today [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S UTC" -gmt 1]
|
| puts $out [subst \
|
| {/******************************************************************************
|
| ** This file is an amalgamation of many separate C source files from SQLite
|
| -** version $VERSION. By combining all the individual C code files into this
|
| +** version $VERSION. By combining all the individual C code files into this
|
| ** single large file, the entire code can be compiled as a single translation
|
| ** unit. This allows many compilers to do optimizations that would not be
|
| ** possible if the files were compiled separately. Performance improvements
|
| @@ -66,7 +71,7 @@ puts $out [subst \
|
| **
|
| ** This file is all you need to compile SQLite. To use SQLite in other
|
| ** programs, you need this file and the "sqlite3.h" header file that defines
|
| -** the programming interface to the SQLite library. (If you do not have
|
| +** the programming interface to the SQLite library. (If you do not have
|
| ** the "sqlite3.h" header file at hand, you will find a copy embedded within
|
| ** the text of this file. Search for "Begin file sqlite3.h" to find the start
|
| ** of the embedded sqlite3.h header file.) Additional code files may be needed
|
| @@ -83,7 +88,7 @@ if {$addstatic} {
|
| #endif}
|
| }
|
|
|
| -# These are the header files used by SQLite. The first time any of these
|
| +# These are the header files used by SQLite. The first time any of these
|
| # files are seen in a #include statement in the C code, include the complete
|
| # text of the file in-line. The file only needs to be included once.
|
| #
|
| @@ -104,8 +109,8 @@ foreach hdr {
|
| parse.h
|
| pcache.h
|
| pragma.h
|
| - sqlite3ext.h
|
| sqlite3.h
|
| + sqlite3ext.h
|
| sqliteicu.h
|
| sqliteInt.h
|
| sqliteLimit.h
|
| @@ -155,7 +160,8 @@ proc section_comment {text} {
|
| # process them appropriately.
|
| #
|
| proc copy_file {filename} {
|
| - global seen_hdr available_hdr varonly_hdr cdecllist out addstatic linemacros
|
| + global seen_hdr available_hdr varonly_hdr cdecllist out
|
| + global addstatic linemacros useapicall
|
| set ln 0
|
| set tail [file tail $filename]
|
| section_comment "Begin file $tail"
|
| @@ -203,7 +209,8 @@ proc copy_file {filename} {
|
| puts $out "#if 0"
|
| } elseif {!$linemacros && [regexp {^#line} $line]} {
|
| # Skip #line directives.
|
| - } elseif {$addstatic && ![regexp {^(static|typedef)} $line]} {
|
| + } elseif {$addstatic
|
| + && ![regexp {^(static|typedef|SQLITE_PRIVATE)} $line]} {
|
| # Skip adding the SQLITE_PRIVATE or SQLITE_API keyword before
|
| # functions if this header file does not need it.
|
| if {![info exists varonly_hdr($tail)]
|
| @@ -211,18 +218,20 @@ proc copy_file {filename} {
|
| regsub {^SQLITE_API } $line {} line
|
| # Add the SQLITE_PRIVATE or SQLITE_API keyword before functions.
|
| # so that linkage can be modified at compile-time.
|
| - if {[regexp {^sqlite3_} $funcname]} {
|
| + if {[regexp {^sqlite3[a-z]*_} $funcname]} {
|
| set line SQLITE_API
|
| append line " " [string trim $rettype]
|
| if {[string index $rettype end] ne "*"} {
|
| append line " "
|
| }
|
| - if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
| - append line SQLITE_CDECL
|
| - } else {
|
| - append line SQLITE_STDCALL
|
| + if {$useapicall} {
|
| + if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
| + append line SQLITE_CDECL " "
|
| + } else {
|
| + append line SQLITE_APICALL " "
|
| + }
|
| }
|
| - append line " " $funcname $rest
|
| + append line $funcname $rest
|
| puts $out $line
|
| } else {
|
| puts $out "SQLITE_PRIVATE $line"
|
| @@ -285,6 +294,7 @@ foreach file {
|
| mutex_w32.c
|
| malloc.c
|
| printf.c
|
| + treeview.c
|
| random.c
|
| threads.c
|
| utf.c
|
| @@ -313,7 +323,6 @@ foreach file {
|
| vdbe.c
|
| vdbeblob.c
|
| vdbesort.c
|
| - journal.c
|
| memjournal.c
|
|
|
| walker.c
|
| @@ -339,6 +348,8 @@ foreach file {
|
| update.c
|
| vacuum.c
|
| vtab.c
|
| + wherecode.c
|
| + whereexpr.c
|
| where.c
|
|
|
| parse.c
|
|
|