Index: third_party/sqlite/src/tool/omittest.tcl |
diff --git a/third_party/sqlite/src/tool/omittest.tcl b/third_party/sqlite/src/tool/omittest.tcl |
index f1963ff13dd005c80f6cfc6a88adc1deb0479701..5437f2eb01e5ad493fbb8b66d7b417337236fcc6 100644 |
--- a/third_party/sqlite/src/tool/omittest.tcl |
+++ b/third_party/sqlite/src/tool/omittest.tcl |
@@ -31,8 +31,8 @@ should work. The following properties are required: |
More precisely, the following two invocations must be supported: |
- make -f $::MAKEFILE testfixture OPTS="-DSQLITE_OMIT_ALTERTABLE=1" |
- make -f $::MAKEFILE test |
+ $::MAKEBIN -f $::MAKEFILE testfixture OPTS="-DSQLITE_OMIT_ALTERTABLE=1" |
+ $::MAKEBIN -f $::MAKEFILE test |
Makefiles generated by the sqlite configure program cannot be used as |
they do not respect the OPTS variable. |
@@ -48,19 +48,16 @@ they do not respect the OPTS variable. |
# |
# |
proc run_quick_test {dir omit_symbol_list} { |
- set target "testfixture" |
# Compile the value of the OPTS Makefile variable. |
- set opts "-DSQLITE_MEMDEBUG -DSQLITE_DEBUG -DSQLITE_NO_SYNC" |
+ set opts "" |
if {$::tcl_platform(platform)=="windows"} { |
- append opts " -DSQLITE_OS_WIN=1" |
+ append opts "OPTS += -DSQLITE_OS_WIN=1\n" |
set target "testfixture.exe" |
- } elseif {$::tcl_platform(platform)=="os2"} { |
- append opts " -DSQLITE_OS_OS2=1" |
} else { |
- append opts " -DSQLITE_OS_UNIX=1" |
+ append opts "OPTS += -DSQLITE_OS_UNIX=1\n" |
} |
foreach sym $omit_symbol_list { |
- append opts " -D${sym}=1" |
+ append opts "OPTS += -D${sym}=1\n" |
} |
# Create the directory and do the build. If an error occurs return |
@@ -68,12 +65,20 @@ proc run_quick_test {dir omit_symbol_list} { |
file mkdir $dir |
puts -nonewline "Building $dir..." |
flush stdout |
-catch { |
- file copy -force ./config.h $dir |
- file copy -force ./libtool $dir |
-} |
+ catch { |
+ file copy -force ./config.h $dir |
+ file copy -force ./libtool $dir |
+ } |
+ set fd [open $::MAKEFILE] |
+ set mkfile [read $fd] |
+ close $fd |
+ regsub {\ninclude} $mkfile "\n$opts\ninclude" mkfile |
+ set fd [open $dir/makefile w] |
+ puts $fd $mkfile |
+ close $fd |
+ |
set rc [catch { |
- exec make -C $dir -f $::MAKEFILE $target OPTS=$opts >& $dir/build.log |
+ exec $::MAKEBIN -C $dir -f makefile clean $::TARGET >& $dir/build.log |
}] |
if {$rc} { |
puts "No good. See $dir/build.log." |
@@ -86,7 +91,7 @@ catch { |
# of trying to build the sqlite shell. The sqlite shell won't build |
# with some of the OMIT options (i.e OMIT_COMPLETE). |
set sqlite3_dummy $dir/sqlite3 |
- if {$::tcl_platform(platform)=="windows" || $::tcl_platform(platform)=="os2"} { |
+ if {$::tcl_platform(platform)=="windows"} { |
append sqlite3_dummy ".exe" |
} |
if {![file exists $sqlite3_dummy]} { |
@@ -102,7 +107,7 @@ catch { |
puts -nonewline "Testing $dir..." |
flush stdout |
set rc [catch { |
- exec make -C $dir -f $::MAKEFILE test OPTS=$opts >& $dir/test.log |
+ exec $::MAKEBIN -C $dir -f makefile test >& $dir/test.log |
}] |
if {$rc} { |
puts "No good. See $dir/test.log." |
@@ -119,12 +124,14 @@ catch { |
# option. |
# |
proc process_options {argv} { |
- if {$::tcl_platform(platform)=="windows" || $::tcl_platform(platform)=="os2"} { |
- set ::MAKEFILE ./Makefile ;# Default value |
+ set ::MAKEBIN make ;# Default value |
+ if {$::tcl_platform(platform)=="windows"} { |
+ set ::MAKEFILE ./Makefile ;# Default value on Windows |
} else { |
set ::MAKEFILE ./Makefile.linux-gcc ;# Default value |
} |
set ::SKIP_RUN 0 ;# Default to attempt test |
+ set ::TARGET testfixture ;# Default thing to build |
for {set i 0} {$i < [llength $argv]} {incr i} { |
switch -- [lindex $argv $i] { |
@@ -133,6 +140,16 @@ proc process_options {argv} { |
set ::MAKEFILE [lindex $argv $i] |
} |
+ -nmake { |
+ set ::MAKEBIN nmake |
+ set ::MAKEFILE ./Makefile.msc |
+ } |
+ |
+ -target { |
+ incr i |
+ set ::TARGET [lindex $argv $i] |
+ } |
+ |
-skip_run { |
set ::SKIP_RUN 1 |
} |
@@ -173,10 +190,10 @@ proc main {argv} { |
SQLITE_OMIT_COMPILEOPTION_DIAGS \ |
SQLITE_OMIT_COMPLETE \ |
SQLITE_OMIT_COMPOUND_SELECT \ |
+ SQLITE_OMIT_CTE \ |
SQLITE_OMIT_DATETIME_FUNCS \ |
SQLITE_OMIT_DECLTYPE \ |
SQLITE_OMIT_DEPRECATED \ |
- xxxSQLITE_OMIT_DISKIO \ |
SQLITE_OMIT_EXPLAIN \ |
SQLITE_OMIT_FLAG_PRAGMAS \ |
SQLITE_OMIT_FLOATING_POINT \ |
@@ -218,15 +235,11 @@ proc main {argv} { |
SQLITE_DISABLE_DIRSYNC \ |
SQLITE_DISABLE_LFS \ |
SQLITE_ENABLE_ATOMIC_WRITE \ |
- xxxSQLITE_ENABLE_CEROD \ |
SQLITE_ENABLE_COLUMN_METADATA \ |
SQLITE_ENABLE_EXPENSIVE_ASSERT \ |
- xxxSQLITE_ENABLE_FTS1 \ |
- xxxSQLITE_ENABLE_FTS2 \ |
SQLITE_ENABLE_FTS3 \ |
SQLITE_ENABLE_FTS3_PARENTHESIS \ |
SQLITE_ENABLE_FTS4 \ |
- xxxSQLITE_ENABLE_ICU \ |
SQLITE_ENABLE_IOTRACE \ |
SQLITE_ENABLE_LOAD_EXTENSION \ |
SQLITE_ENABLE_LOCKING_STYLE \ |
@@ -235,7 +248,7 @@ proc main {argv} { |
SQLITE_ENABLE_MEMSYS5 \ |
SQLITE_ENABLE_OVERSIZE_CELL_CHECK \ |
SQLITE_ENABLE_RTREE \ |
- SQLITE_ENABLE_STAT2 \ |
+ SQLITE_ENABLE_STAT3 \ |
SQLITE_ENABLE_UNLOCK_NOTIFY \ |
SQLITE_ENABLE_UPDATE_DELETE_LIMIT \ |
] |
@@ -251,7 +264,7 @@ proc main {argv} { |
exit -1 |
} |
- set dirname "test_[string range $sym 7 end]" |
+ set dirname "test_[regsub -nocase {^x*SQLITE_} $sym {}]" |
run_quick_test $dirname $sym |
} else { |
# First try a test with all OMIT symbols except SQLITE_OMIT_FLOATING_POINT |
@@ -270,14 +283,14 @@ proc main {argv} { |
# are the OMIT_FLOATING_POINT and OMIT_PRAGMA symbols, even though we |
# know they will fail. It's good to be reminded of this from time to time. |
foreach sym $::OMIT_SYMBOLS { |
- set dirname "test_[string range $sym 7 end]" |
+ set dirname "test_[regsub -nocase {^x*SQLITE_} $sym {}]" |
run_quick_test $dirname $sym |
} |
# Try the ENABLE/DISABLE symbols one at a time. |
# We don't do them all at once since some are conflicting. |
foreach sym $::ENABLE_SYMBOLS { |
- set dirname "test_[string range $sym 7 end]" |
+ set dirname "test_[regsub -nocase {^x*SQLITE_} $sym {}]" |
run_quick_test $dirname $sym |
} |
} |