| Index: third_party/sqlite/src/main.mk | 
| diff --git a/third_party/sqlite/src/main.mk b/third_party/sqlite/src/main.mk | 
| index 5b010c30156f6736c8d0865e8b92ba98f5141658..7cb6362fa71f7bd9458a124cf3f7e7f46d26b012 100644 | 
| --- a/third_party/sqlite/src/main.mk | 
| +++ b/third_party/sqlite/src/main.mk | 
| @@ -46,27 +46,30 @@ | 
| # | 
| TCCX =  $(TCC) $(OPTS) -I. -I$(TOP)/src -I$(TOP) | 
| TCCX += -I$(TOP)/ext/rtree -I$(TOP)/ext/icu -I$(TOP)/ext/fts3 | 
| -TCCX += -I$(TOP)/ext/async | 
| +TCCX += -I$(TOP)/ext/async -I$(TOP)/ext/userauth | 
|  | 
| # Object files for the SQLite library. | 
| # | 
| -LIBOBJ+= alter.o analyze.o attach.o auth.o \ | 
| +LIBOBJ+= vdbe.o parse.o \ | 
| +         alter.o analyze.o attach.o auth.o \ | 
| backup.o bitvec.o btmutex.o btree.o build.o \ | 
| callback.o complete.o ctime.o date.o delete.o expr.o fault.o fkey.o \ | 
| fts3.o fts3_aux.o fts3_expr.o fts3_hash.o fts3_icu.o fts3_porter.o \ | 
| -         fts3_snippet.o fts3_tokenizer.o fts3_tokenizer1.o fts3_write.o \ | 
| -         func.o global.o hash.o \ | 
| +         fts3_snippet.o fts3_tokenizer.o fts3_tokenizer1.o \ | 
| +         fts3_tokenize_vtab.o \ | 
| +	 fts3_unicode.o fts3_unicode2.o \ | 
| +         fts3_write.o func.o global.o hash.o \ | 
| icu.o insert.o journal.o legacy.o loadext.o \ | 
| main.o malloc.o mem0.o mem1.o mem2.o mem3.o mem5.o \ | 
| memjournal.o \ | 
| -         mutex.o mutex_noop.o mutex_os2.o mutex_unix.o mutex_w32.o \ | 
| -         notify.o opcodes.o os.o os_os2.o os_unix.o os_win.o \ | 
| -         pager.o parse.o pcache.o pcache1.o pragma.o prepare.o printf.o \ | 
| +         mutex.o mutex_noop.o mutex_unix.o mutex_w32.o \ | 
| +         notify.o opcodes.o os.o os_unix.o os_win.o \ | 
| +         pager.o pcache.o pcache1.o pragma.o prepare.o printf.o \ | 
| random.o recover.o resolve.o rowset.o rtree.o select.o status.o \ | 
| -         table.o tokenize.o trigger.o \ | 
| -         update.o util.o vacuum.o \ | 
| -         vdbe.o vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o vdbetrace.o \ | 
| -         wal.o walker.o where.o utf.o vtab.o | 
| +         table.o threads.o tokenize.o trigger.o \ | 
| +         update.o userauth.o util.o vacuum.o \ | 
| +         vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o vdbesort.o \ | 
| +	 vdbetrace.o wal.o walker.o where.o utf.o vtab.o | 
|  | 
|  | 
| LIBOBJ+= fts2.o \ | 
| @@ -118,16 +121,16 @@ SRC = \ | 
| $(TOP)/src/mutex.c \ | 
| $(TOP)/src/mutex.h \ | 
| $(TOP)/src/mutex_noop.c \ | 
| -  $(TOP)/src/mutex_os2.c \ | 
| $(TOP)/src/mutex_unix.c \ | 
| $(TOP)/src/mutex_w32.c \ | 
| $(TOP)/src/notify.c \ | 
| $(TOP)/src/os.c \ | 
| $(TOP)/src/os.h \ | 
| $(TOP)/src/os_common.h \ | 
| -  $(TOP)/src/os_os2.c \ | 
| +  $(TOP)/src/os_setup.h \ | 
| $(TOP)/src/os_unix.c \ | 
| $(TOP)/src/os_win.c \ | 
| +  $(TOP)/src/os_win.h \ | 
| $(TOP)/src/pager.c \ | 
| $(TOP)/src/pager.h \ | 
| $(TOP)/src/parse.y \ | 
| @@ -150,6 +153,7 @@ SRC = \ | 
| $(TOP)/src/sqliteLimit.h \ | 
| $(TOP)/src/table.c \ | 
| $(TOP)/src/tclsqlite.c \ | 
| +  $(TOP)/src/threads.c \ | 
| $(TOP)/src/tokenize.c \ | 
| $(TOP)/src/trigger.c \ | 
| $(TOP)/src/utf.c \ | 
| @@ -162,13 +166,15 @@ SRC = \ | 
| $(TOP)/src/vdbeaux.c \ | 
| $(TOP)/src/vdbeblob.c \ | 
| $(TOP)/src/vdbemem.c \ | 
| +  $(TOP)/src/vdbesort.c \ | 
| $(TOP)/src/vdbetrace.c \ | 
| $(TOP)/src/vdbeInt.h \ | 
| $(TOP)/src/vtab.c \ | 
| $(TOP)/src/wal.c \ | 
| $(TOP)/src/wal.h \ | 
| $(TOP)/src/walker.c \ | 
| -  $(TOP)/src/where.c | 
| +  $(TOP)/src/where.c \ | 
| +  $(TOP)/src/whereInt.h | 
|  | 
| # Source code for extensions | 
| # | 
| @@ -204,14 +210,20 @@ SRC += \ | 
| $(TOP)/ext/fts3/fts3_tokenizer.h \ | 
| $(TOP)/ext/fts3/fts3_tokenizer.c \ | 
| $(TOP)/ext/fts3/fts3_tokenizer1.c \ | 
| +  $(TOP)/ext/fts3/fts3_tokenize_vtab.c \ | 
| +  $(TOP)/ext/fts3/fts3_unicode.c \ | 
| +  $(TOP)/ext/fts3/fts3_unicode2.c \ | 
| $(TOP)/ext/fts3/fts3_write.c | 
| SRC += \ | 
| $(TOP)/ext/icu/sqliteicu.h \ | 
| $(TOP)/ext/icu/icu.c | 
| SRC += \ | 
| +  $(TOP)/ext/rtree/sqlite3rtree.h \ | 
| $(TOP)/ext/rtree/rtree.h \ | 
| $(TOP)/ext/rtree/rtree.c | 
| - | 
| +SRC += \ | 
| +  $(TOP)/ext/userauth/userauth.c \ | 
| +  $(TOP)/ext/userauth/sqlite3userauth.h | 
|  | 
| # Generated source code files | 
| # | 
| @@ -227,6 +239,8 @@ SRC += \ | 
| # Source code to the test files. | 
| # | 
| TESTSRC = \ | 
| +  $(TOP)/ext/fts3/fts3_term.c \ | 
| +  $(TOP)/ext/fts3/fts3_test.c \ | 
| $(TOP)/src/test1.c \ | 
| $(TOP)/src/test2.c \ | 
| $(TOP)/src/test3.c \ | 
| @@ -243,8 +257,8 @@ TESTSRC = \ | 
| $(TOP)/src/test_config.c \ | 
| $(TOP)/src/test_demovfs.c \ | 
| $(TOP)/src/test_devsym.c \ | 
| +  $(TOP)/src/test_fs.c \ | 
| $(TOP)/src/test_func.c \ | 
| -  $(TOP)/src/test_fuzzer.c \ | 
| $(TOP)/src/test_hexio.c \ | 
| $(TOP)/src/test_init.c \ | 
| $(TOP)/src/test_intarray.c \ | 
| @@ -260,14 +274,31 @@ TESTSRC = \ | 
| $(TOP)/src/test_schema.c \ | 
| $(TOP)/src/test_server.c \ | 
| $(TOP)/src/test_stat.c \ | 
| +  $(TOP)/src/test_sqllog.c \ | 
| $(TOP)/src/test_superlock.c \ | 
| $(TOP)/src/test_syscall.c \ | 
| $(TOP)/src/test_tclvar.c \ | 
| $(TOP)/src/test_thread.c \ | 
| $(TOP)/src/test_vfs.c \ | 
| -  $(TOP)/src/test_wholenumber.c \ | 
| $(TOP)/src/test_wsd.c | 
|  | 
| +# Extensions to be statically loaded. | 
| +# | 
| +TESTSRC += \ | 
| +  $(TOP)/ext/misc/amatch.c \ | 
| +  $(TOP)/ext/misc/closure.c \ | 
| +  $(TOP)/ext/misc/fileio.c \ | 
| +  $(TOP)/ext/misc/fuzzer.c \ | 
| +  $(TOP)/ext/misc/ieee754.c \ | 
| +  $(TOP)/ext/misc/nextchar.c \ | 
| +  $(TOP)/ext/misc/percentile.c \ | 
| +  $(TOP)/ext/misc/regexp.c \ | 
| +  $(TOP)/ext/misc/spellfix.c \ | 
| +  $(TOP)/ext/misc/totype.c \ | 
| +  $(TOP)/ext/misc/wholenumber.c \ | 
| +  $(TOP)/ext/misc/vfslog.c | 
| + | 
| + | 
| #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c | 
| #TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c | 
|  | 
| @@ -281,9 +312,9 @@ TESTSRC2 = \ | 
| $(TOP)/src/func.c \ | 
| $(TOP)/src/insert.c \ | 
| $(TOP)/src/wal.c \ | 
| +  $(TOP)/src/main.c \ | 
| $(TOP)/src/mem5.c \ | 
| $(TOP)/src/os.c \ | 
| -  $(TOP)/src/os_os2.c \ | 
| $(TOP)/src/os_unix.c \ | 
| $(TOP)/src/os_win.c \ | 
| $(TOP)/src/pager.c \ | 
| @@ -295,6 +326,7 @@ TESTSRC2 = \ | 
| $(TOP)/src/pcache.c \ | 
| $(TOP)/src/pcache1.c \ | 
| $(TOP)/src/select.c \ | 
| +  $(TOP)/src/threads.c \ | 
| $(TOP)/src/tokenize.c \ | 
| $(TOP)/src/utf.c \ | 
| $(TOP)/src/util.c \ | 
| @@ -334,6 +366,8 @@ HDR = \ | 
| opcodes.h \ | 
| $(TOP)/src/os.h \ | 
| $(TOP)/src/os_common.h \ | 
| +   $(TOP)/src/os_setup.h \ | 
| +   $(TOP)/src/os_win.h \ | 
| $(TOP)/src/pager.h \ | 
| $(TOP)/src/pcache.h \ | 
| parse.h  \ | 
| @@ -342,7 +376,8 @@ HDR = \ | 
| $(TOP)/src/sqliteInt.h  \ | 
| $(TOP)/src/sqliteLimit.h \ | 
| $(TOP)/src/vdbe.h \ | 
| -   $(TOP)/src/vdbeInt.h | 
| +   $(TOP)/src/vdbeInt.h \ | 
| +   $(TOP)/src/whereInt.h | 
|  | 
| # Header files used by extensions | 
| # | 
| @@ -363,6 +398,8 @@ EXTHDR += \ | 
| $(TOP)/ext/rtree/rtree.h | 
| EXTHDR += \ | 
| $(TOP)/ext/icu/sqliteicu.h | 
| +EXTHDR += \ | 
| +  $(TOP)/ext/userauth/sqlite3userauth.h | 
|  | 
| # This is the default Makefile target.  The objects listed here | 
| # are what get build when you type just "make" with no arguments. | 
| @@ -378,6 +415,13 @@ sqlite3$(EXE):	$(TOP)/src/shell.c libsqlite3.a sqlite3.h | 
| $(TOP)/src/shell.c $(SHELL_ICU)                     \ | 
| libsqlite3.a $(LIBREADLINE) $(TLIBS) $(THREADLIB) | 
|  | 
| +mptester$(EXE):	sqlite3.c $(TOP)/mptest/mptest.c | 
| +	$(TCCX) -o $@ -I. $(TOP)/mptest/mptest.c sqlite3.c \ | 
| +		$(TLIBS) $(THREADLIB) | 
| + | 
| +sqlite3.o:	sqlite3.c | 
| +	$(TCCX) -I. -c sqlite3.c | 
| + | 
| # This target creates a directory named "tsrc" and fills it with | 
| # copies of all of the C source code and header files needed to | 
| # build on the target system.  Some of the C source code and header | 
| @@ -389,17 +433,29 @@ target_source:	$(SRC) $(TOP)/tool/vdbe-compress.tcl | 
| mkdir tsrc | 
| cp -f $(SRC) tsrc | 
| rm tsrc/sqlite.h.in tsrc/parse.y | 
| -	tclsh $(TOP)/tool/vdbe-compress.tcl <tsrc/vdbe.c >vdbe.new | 
| +	tclsh $(TOP)/tool/vdbe-compress.tcl $(OPTS) <tsrc/vdbe.c >vdbe.new | 
| mv vdbe.new tsrc/vdbe.c | 
| touch target_source | 
|  | 
| sqlite3.c:	target_source $(TOP)/tool/mksqlite3c.tcl | 
| tclsh $(TOP)/tool/mksqlite3c.tcl | 
| +	cp tsrc/shell.c tsrc/sqlite3ext.h . | 
| echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c | 
| cat sqlite3.c >>tclsqlite3.c | 
| echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c | 
| cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c | 
|  | 
| +sqlite3.c-debug:	target_source $(TOP)/tool/mksqlite3c.tcl | 
| +	tclsh $(TOP)/tool/mksqlite3c.tcl --linemacros | 
| +	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c | 
| +	cat sqlite3.c >>tclsqlite3.c | 
| +	echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c | 
| +	echo '#line 1 "tclsqlite.c"' >>tclsqlite3.c | 
| +	cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c | 
| + | 
| +sqlite3-all.c:	sqlite3.c $(TOP)/tool/split-sqlite3c.tcl | 
| +	tclsh $(TOP)/tool/split-sqlite3c.tcl | 
| + | 
| fts2amal.c:	target_source $(TOP)/ext/fts2/mkfts2amal.tcl | 
| tclsh $(TOP)/ext/fts2/mkfts2amal.tcl | 
|  | 
| @@ -434,7 +490,7 @@ tclsqlite.o:	$(TOP)/src/tclsqlite.c $(HDR) | 
| # Rules to build opcodes.c and opcodes.h | 
| # | 
| opcodes.c:	opcodes.h $(TOP)/mkopcodec.awk | 
| -	sort -n -b -k 3 opcodes.h | $(NAWK) -f $(TOP)/mkopcodec.awk >opcodes.c | 
| +	$(NAWK) -f $(TOP)/mkopcodec.awk opcodes.h >opcodes.c | 
|  | 
| opcodes.h:	parse.h $(TOP)/src/vdbe.c $(TOP)/mkopcodeh.awk | 
| cat parse.h $(TOP)/src/vdbe.c | \ | 
| @@ -451,7 +507,7 @@ parse.c:	$(TOP)/src/parse.y lemon $(TOP)/addopcodes.awk | 
| mv parse.h parse.h.temp | 
| $(NAWK) -f $(TOP)/addopcodes.awk parse.h.temp >parse.h | 
|  | 
| -sqlite3.h:	$(TOP)/src/sqlite.h.in $(TOP)/manifest.uuid $(TOP)/VERSION | 
| +sqlite3.h:	$(TOP)/src/sqlite.h.in $(TOP)/manifest.uuid $(TOP)/VERSION $(TOP)/ext/rtree/sqlite3rtree.h | 
| tclsh $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h | 
|  | 
| keywordhash.h:	$(TOP)/tool/mkkeywordhash.c | 
| @@ -510,12 +566,24 @@ fts3_tokenizer.o:	$(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR) | 
| fts3_tokenizer1.o:	$(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR) | 
| $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c | 
|  | 
| +fts3_tokenize_vtab.o:	$(TOP)/ext/fts3/fts3_tokenize_vtab.c $(HDR) $(EXTHDR) | 
| +	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenize_vtab.c | 
| + | 
| +fts3_unicode.o:	$(TOP)/ext/fts3/fts3_unicode.c $(HDR) $(EXTHDR) | 
| +	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_unicode.c | 
| + | 
| +fts3_unicode2.o:	$(TOP)/ext/fts3/fts3_unicode2.c $(HDR) $(EXTHDR) | 
| +	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_unicode2.c | 
| + | 
| fts3_write.o:	$(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR) | 
| $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_write.c | 
|  | 
| rtree.o:	$(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR) | 
| $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c | 
|  | 
| +userauth.o:	$(TOP)/ext/userauth/userauth.c $(HDR) $(EXTHDR) | 
| +	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/userauth/userauth.c | 
| + | 
|  | 
| # Rules for building test programs and for running tests | 
| # | 
| @@ -523,6 +591,16 @@ tclsqlite3:	$(TOP)/src/tclsqlite.c libsqlite3.a | 
| $(TCCX) $(TCL_FLAGS) -DTCLSH=1 -o tclsqlite3 \ | 
| $(TOP)/src/tclsqlite.c libsqlite3.a $(LIBTCL) $(THREADLIB) | 
|  | 
| +sqlite3_analyzer.c: sqlite3.c $(TOP)/src/test_stat.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl | 
| +	echo "#define TCLSH 2" > $@ | 
| +	cat sqlite3.c $(TOP)/src/test_stat.c $(TOP)/src/tclsqlite.c >> $@ | 
| +	echo "static const char *tclsh_main_loop(void){" >> $@ | 
| +	echo "static const char *zMainloop = " >> $@ | 
| +	$(NAWK) -f $(TOP)/tool/tostr.awk $(TOP)/tool/spaceanal.tcl >> $@ | 
| +	echo "; return zMainloop; }" >> $@ | 
| + | 
| +sqlite3_analyzer$(EXE): sqlite3_analyzer.c | 
| +	$(TCCX) $(TCL_FLAGS) sqlite3_analyzer.c -o $@ $(LIBTCL) $(THREADLIB) | 
|  | 
| # Rules to build the 'testfixture' application. | 
| # | 
| @@ -532,7 +610,7 @@ TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE | 
| testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c | 
| $(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS)                  \ | 
| $(TESTSRC) $(TESTSRC2) $(TOP)/src/tclsqlite.c                \ | 
| -		$(LIBTCL) $(THREADLIB) libsqlite3.a $(TLIBS) | 
| +		$(LIBTCL) libsqlite3.a $(THREADLIB) $(TLIBS) | 
| mv a.out testfixture$(EXE) | 
|  | 
| amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c | 
| @@ -552,6 +630,12 @@ fulltest:	testfixture$(EXE) sqlite3$(EXE) | 
| soaktest:	testfixture$(EXE) sqlite3$(EXE) | 
| ./testfixture$(EXE) $(TOP)/test/all.test -soak=1 | 
|  | 
| +fulltestonly:	testfixture$(EXE) sqlite3$(EXE) | 
| +	./testfixture$(EXE) $(TOP)/test/full.test | 
| + | 
| +queryplantest:	testfixture$(EXE) sqlite3$(EXE) | 
| +	./testfixture$(EXE) $(TOP)/test/permutations.test queryplanner | 
| + | 
| test:	testfixture$(EXE) sqlite3$(EXE) | 
| ./testfixture$(EXE) $(TOP)/test/veryquick.test | 
|  | 
| @@ -566,21 +650,6 @@ threadtest3$(EXE): sqlite3.o $(TOP)/test/threadtest3.c $(TOP)/test/tt3_checkpoin | 
| threadtest: threadtest3$(EXE) | 
| ./threadtest3$(EXE) | 
|  | 
| -sqlite3_analyzer$(EXE):	$(TOP)/src/tclsqlite.c sqlite3.c $(TESTSRC) \ | 
| -			$(TOP)/tool/spaceanal.tcl | 
| -	sed \ | 
| -	  -e '/^#/d' \ | 
| -	  -e 's,\\,\\\\,g' \ | 
| -	  -e 's,",\\",g' \ | 
| -	  -e 's,^,",' \ | 
| -	  -e 's,$$,\\n",' \ | 
| -	  $(TOP)/tool/spaceanal.tcl >spaceanal_tcl.h | 
| -	$(TCCX) $(TCL_FLAGS) -DTCLSH=2 $(TESTFIXTURE_FLAGS)                    \ | 
| -		-DSQLITE_TEST=1 -DSQLITE_PRIVATE=""                            \ | 
| -		$(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c                    \ | 
| -		-o sqlite3_analyzer$(EXE)                                      \ | 
| -		$(LIBTCL) $(THREADLIB) | 
| - | 
| TEST_EXTENSION = $(SHPREFIX)testloadext.$(SO) | 
| $(TEST_EXTENSION): $(TOP)/src/test_loadext.c | 
| $(MKSHLIB) $(TOP)/src/test_loadext.c -o $(TEST_EXTENSION) | 
| @@ -588,6 +657,52 @@ $(TEST_EXTENSION): $(TOP)/src/test_loadext.c | 
| extensiontest: testfixture$(EXE) $(TEST_EXTENSION) | 
| ./testfixture$(EXE) $(TOP)/test/loadext.test | 
|  | 
| +showdb$(EXE):	$(TOP)/tool/showdb.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o showdb$(EXE) \ | 
| +		$(TOP)/tool/showdb.c sqlite3.o $(THREADLIB) | 
| + | 
| +showstat4$(EXE):	$(TOP)/tool/showstat4.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o showstat4$(EXE) \ | 
| +		$(TOP)/tool/showstat4.c sqlite3.o $(THREADLIB) | 
| + | 
| +showjournal$(EXE):	$(TOP)/tool/showjournal.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o showjournal$(EXE) \ | 
| +		$(TOP)/tool/showjournal.c sqlite3.o $(THREADLIB) | 
| + | 
| +showwal$(EXE):	$(TOP)/tool/showwal.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o showwal$(EXE) \ | 
| +		$(TOP)/tool/showwal.c sqlite3.o $(THREADLIB) | 
| + | 
| +fts3view$(EXE):	$(TOP)/ext/fts3/tool/fts3view.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o fts3view$(EXE) \ | 
| +		$(TOP)/ext/fts3/tool/fts3view.c sqlite3.o $(THREADLIB) | 
| + | 
| +rollback-test$(EXE):	$(TOP)/tool/rollback-test.c sqlite3.o | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o rollback-test$(EXE) \ | 
| +		$(TOP)/tool/rollback-test.c sqlite3.o $(THREADLIB) | 
| + | 
| +LogEst$(EXE):	$(TOP)/tool/logest.c sqlite3.h | 
| +	$(TCC) -o LogEst$(EXE) $(TOP)/tool/logest.c | 
| + | 
| +wordcount$(EXE):	$(TOP)/test/wordcount.c sqlite3.c | 
| +	$(TCC) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -o wordcount$(EXE) \ | 
| +		$(TOP)/test/wordcount.c sqlite3.c | 
| + | 
| +speedtest1$(EXE):	$(TOP)/test/speedtest1.c sqlite3.o | 
| +	$(TCC) -I. -o speedtest1$(EXE) $(TOP)/test/speedtest1.c sqlite3.o $(THREADLIB) | 
| + | 
| +# This target will fail if the SQLite amalgamation contains any exported | 
| +# symbols that do not begin with "sqlite3_". It is run as part of the | 
| +# releasetest.tcl script. | 
| +# | 
| +checksymbols: sqlite3.o | 
| +	nm -g --defined-only sqlite3.o | grep -v " sqlite3_" ; test $$? -ne 0 | 
| + | 
| +# Build the amalgamation-autoconf package. | 
| +# | 
| +dist: sqlite3.c | 
| +	TOP=$(TOP) sh $(TOP)/tool/mkautoconfamal.sh | 
| + | 
|  | 
| # Standard install and cleanup targets | 
| # | 
| @@ -597,10 +712,30 @@ install:	sqlite3 libsqlite3.a sqlite3.h | 
| mv sqlite3.h /usr/include | 
|  | 
| clean: | 
| -	rm -f *.o sqlite3 libsqlite3.a sqlite3.h opcodes.* | 
| -	rm -f lemon lempar.c parse.* sqlite*.tar.gz mkkeywordhash keywordhash.h | 
| +	rm -f *.o sqlite3 sqlite3.exe libsqlite3.a sqlite3.h opcodes.* | 
| +	rm -f lemon lemon.exe lempar.c parse.* sqlite*.tar.gz | 
| +	rm -f mkkeywordhash mkkeywordhash.exe keywordhash.h | 
| rm -f $(PUBLISH) | 
| rm -f *.da *.bb *.bbg gmon.out | 
| +	rm -rf quota2a quota2b quota2c | 
| rm -rf tsrc target_source | 
| rm -f testloadext.dll libtestloadext.so | 
| -	rm -f sqlite3.c fts?amal.c tclsqlite3.c | 
| +	rm -f amalgamation-testfixture amalgamation-testfixture.exe | 
| +	rm -f fts3-testfixture fts3-testfixture.exe | 
| +	rm -f testfixture testfixture.exe | 
| +	rm -f threadtest3 threadtest3.exe | 
| +	rm -f LogEst LogEst.exe | 
| +	rm -f fts3view fts3view.exe | 
| +	rm -f rollback-test rollback-test.exe | 
| +	rm -f showdb showdb.exe | 
| +	rm -f showjournal showjournal.exe | 
| +	rm -f showstat4 showstat4.exe | 
| +	rm -f showwal showwal.exe | 
| +	rm -f speedtest1 speedtest1.exe | 
| +	rm -f wordcount wordcount.exe | 
| +	rm -f sqlite3.c sqlite3-*.c fts?amal.c tclsqlite3.c | 
| +	rm -f sqlite3rc.h | 
| +	rm -f shell.c sqlite3ext.h | 
| +	rm -f sqlite3_analyzer sqlite3_analyzer.exe sqlite3_analyzer.c | 
| +	rm -f sqlite-*-output.vsix | 
| +	rm -f mptester mptester.exe | 
|  |