@@ -21,7 +21,14 @@ USE_AMALGAMATION = 1
2121# Set this non-0 to enable full warnings (-W4, etc) when compiling.
2222#
2323!IFNDEF USE_FULLWARN
24- USE_FULLWARN = 0
24+ USE_FULLWARN = 1
25+ !ENDIF
26+
27+ # Set this non-0 to enable treating warnings as errors (-WX, etc) when
28+ # compiling.
29+ #
30+ !IFNDEF USE_FATAL_WARN
31+ USE_FATAL_WARN = 0
2532!ENDIF
2633
2734# Set this non-0 to enable full runtime error checks (-RTC1, etc). This
@@ -493,6 +500,12 @@ TCC = $(CC) -nologo -W4 -DINCLUDE_MSVC_H=1 $(CCOPTS) $(TCCOPTS)
493500TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS)
494501!ENDIF
495502
503+ # Check if warnings should be treated as errors when compiling.
504+ #
505+ !IF $(USE_FATAL_WARN)!=0
506+ TCC = $(TCC) -WX
507+ !ENDIF
508+
496509TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise
497510RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src $(RCOPTS) $(RCCOPTS)
498511
@@ -733,6 +746,10 @@ RCC = $(RCC) -DSQLITE_ENABLE_API_ARMOR=1
733746!IF $(DEBUG)>2
734747TCC = $(TCC) -DSQLITE_DEBUG=1
735748RCC = $(RCC) -DSQLITE_DEBUG=1
749+ !IF $(DYNAMIC_SHELL)==0
750+ TCC = $(TCC) -DSQLITE_ENABLE_WHERETRACE -DSQLITE_ENABLE_SELECTTRACE
751+ RCC = $(RCC) -DSQLITE_ENABLE_WHERETRACE -DSQLITE_ENABLE_SELECTTRACE
752+ !ENDIF
736753!ENDIF
737754
738755!IF $(DEBUG)>4 || $(OSTRACE)!=0
@@ -1284,7 +1301,8 @@ SRC07 = \
12841301 $(TOP)\ext\rtree\rtree.c \
12851302 $(TOP)\ext\session\sqlite3session.c \
12861303 $(TOP)\ext\rbu\sqlite3rbu.c \
1287- $(TOP)\ext\misc\json1.c
1304+ $(TOP)\ext\misc\json1.c \
1305+ $(TOP)\ext\misc\stmt.c
12881306
12891307# Extension header files, part 1.
12901308#
@@ -1403,9 +1421,11 @@ TESTEXT = \
14031421 $(TOP)\ext\misc\nextchar.c \
14041422 $(TOP)\ext\misc\percentile.c \
14051423 $(TOP)\ext\misc\regexp.c \
1424+ $(TOP)\ext\misc\remember.c \
14061425 $(TOP)\ext\misc\series.c \
14071426 $(TOP)\ext\misc\spellfix.c \
14081427 $(TOP)\ext\misc\totype.c \
1428+ $(TOP)\ext\misc\unionvtab.c \
14091429 $(TOP)\ext\misc\wholenumber.c
14101430
14111431# Source code to the library files needed by the test fixture
@@ -1486,22 +1506,29 @@ FUZZDATA = \
14861506 $(TOP)\test\fuzzdata1.db \
14871507 $(TOP)\test\fuzzdata2.db \
14881508 $(TOP)\test\fuzzdata3.db \
1489- $(TOP)\test\fuzzdata4.db
1509+ $(TOP)\test\fuzzdata4.db \
1510+ $(TOP)\test\fuzzdata5.db
14901511# <</mark>>
14911512
14921513# Additional compiler options for the shell. These are only effective
14931514# when the shell is not being dynamically linked.
14941515#
14951516!IF $(DYNAMIC_SHELL)==0 && $(FOR_WIN10)==0
1496- SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS
1517+ SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_STMTVTAB
14971518!ENDIF
14981519
14991520# <<mark>>
15001521# Extra compiler options for various test tools.
15011522#
15021523MPTESTER_COMPILE_OPTS = -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS5
15031524FUZZERSHELL_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1
1504- FUZZCHECK_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5
1525+ FUZZCHECK_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 -DSQLITE_OSS_FUZZ -DSQLITE_MAX_MEMORY=50000000
1526+ FUZZCHECK_SRC = $(TOP)\test\fuzzcheck.c $(TOP)\test\ossfuzz.c
1527+ OSSSHELL_SRC = $(TOP)\test\ossshell.c $(TOP)\test\ossfuzz.c
1528+ DBFUZZ_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION
1529+ KV_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_DIRECT_OVERFLOW_READ
1530+ DBSELFTEST_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5
1531+ ST_COMPILE_OPTS = -DSQLITE_THREADSAFE=0
15051532
15061533# Standard options to testfixture.
15071534#
@@ -1544,7 +1571,7 @@ $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
15441571sqlite3.def: libsqlite3.lib
15451572 echo EXPORTS > sqlite3.def
15461573 dumpbin /all libsqlite3.lib \
1547- | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3_ [^@]*)(?:@\d+)?$$" \1 \
1574+ | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3(?:session|changeset|changegroup)?_ [^@]*)(?:@\d+)?$$" \1 \
15481575 | sort >> sqlite3.def
15491576# <</block2>>
15501577
@@ -1571,8 +1598,14 @@ sourcetest: srcck1.exe sqlite3.c
15711598fuzzershell.exe: $(TOP)\tool\fuzzershell.c $(SQLITE3C) $(SQLITE3H)
15721599 $(LTLINK) $(NO_WARN) $(FUZZERSHELL_COMPILE_OPTS) $(TOP)\tool\fuzzershell.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
15731600
1574- fuzzcheck.exe: $(TOP)\test\fuzzcheck.c $(SQLITE3C) $(SQLITE3H)
1575- $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(TOP)\test\fuzzcheck.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1601+ dbfuzz.exe: $(TOP)\test\dbfuzz.c $(SQLITE3C) $(SQLITE3H)
1602+ $(LTLINK) $(NO_WARN) $(DBFUZZ_COMPILE_OPTS) $(TOP)\test\dbfuzz.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1603+
1604+ fuzzcheck.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
1605+ $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(FUZZCHECK_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1606+
1607+ ossshell.exe: $(OSSSHELL_SRC) $(SQLITE3C) $(SQLITE3H)
1608+ $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(OSSSHELL_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
15761609
15771610mptester.exe: $(TOP)\mptest\mptest.c $(SQLITE3C) $(SQLITE3H)
15781611 $(LTLINK) $(NO_WARN) $(MPTESTER_COMPILE_OPTS) $(TOP)\mptest\mptest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
@@ -2065,6 +2098,7 @@ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE=""
20652098TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
20662099TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
20672100TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
2101+ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_STMTVTAB
20682102TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) $(TEST_CCONV_OPTS)
20692103
20702104TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
@@ -2157,55 +2191,70 @@ sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS)
21572191 $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \
21582192 /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
21592193
2194+ dbdump.exe: $(TOP)\ext\misc\dbdump.c $(SQLITE3C) $(SQLITE3H)
2195+ $(LTLINK) $(NO_WARN) -DDBDUMP_STANDALONE $(TOP)\ext\misc\dbdump.c $(SQLITE3C) \
2196+ /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS)
2197+
21602198testloadext.lo: $(TOP)\src\test_loadext.c
21612199 $(LTCOMPILE) $(NO_WARN) -c $(TOP)\src\test_loadext.c
21622200
21632201testloadext.dll: testloadext.lo
21642202 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo
21652203
21662204showdb.exe: $(TOP)\tool\showdb.c $(SQLITE3C) $(SQLITE3H)
2167- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2205+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21682206 $(TOP)\tool\showdb.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21692207
21702208showstat4.exe: $(TOP)\tool\showstat4.c $(SQLITE3C) $(SQLITE3H)
2171- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2209+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21722210 $(TOP)\tool\showstat4.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21732211
21742212showjournal.exe: $(TOP)\tool\showjournal.c $(SQLITE3C) $(SQLITE3H)
2175- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2213+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21762214 $(TOP)\tool\showjournal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21772215
21782216showwal.exe: $(TOP)\tool\showwal.c $(SQLITE3C) $(SQLITE3H)
2179- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2217+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21802218 $(TOP)\tool\showwal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21812219
2182- changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C)
2183- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2220+ changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C) $(SQLITE3H)
2221+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
2222+ -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
21842223 $(TOP)\ext\session\changeset.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21852224
21862225fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) $(SQLITE3H)
2187- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2226+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21882227 $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21892228
21902229rollback-test.exe: $(TOP)\tool\rollback-test.c $(SQLITE3C) $(SQLITE3H)
2191- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2230+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21922231 $(TOP)\tool\rollback-test.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21932232
21942233LogEst.exe: $(TOP)\tool\logest.c $(SQLITE3H)
2195- $(LTLINK) $(NO_WARN) -Fe$@ $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS)
2234+ $(LTLINK) $(NO_WARN) $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS)
21962235
21972236wordcount.exe: $(TOP)\test\wordcount.c $(SQLITE3C) $(SQLITE3H)
2198- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2237+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21992238 $(TOP)\test\wordcount.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
22002239
22012240speedtest1.exe: $(TOP)\test\speedtest1.c $(SQLITE3C) $(SQLITE3H)
2202- $(LTLINK) $(NO_WARN) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2241+ $(LTLINK) $(NO_WARN) $(ST_COMPILE_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION \
22032242 $(TOP)\test\speedtest1.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
22042243
2244+ kvtest.exe: $(TOP)\test\kvtest.c $(SQLITE3C) $(SQLITE3H)
2245+ $(LTLINK) $(NO_WARN) $(KV_COMPILE_OPTS) \
2246+ $(TOP)\test\kvtest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
2247+
2248+ dbselftest.exe: $(TOP)\test\dbselftest.c $(SQLITE3C) $(SQLITE3H)
2249+ $(LTLINK) $(NO_WARN) $(DBSELFTEST_COMPILE_OPTS) $(TOP)\test\dbselftest.c $(SQLITE3C)
2250+
22052251rbu.exe: $(TOP)\ext\rbu\rbu.c $(TOP)\ext\rbu\sqlite3rbu.c $(SQLITE3C) $(SQLITE3H)
2206- $(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU -Fe$@ \
2252+ $(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU \
22072253 $(TOP)\ext\rbu\rbu.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
22082254
2255+ LSMDIR=$(TOP)\ext\lsm1
2256+ !INCLUDE $(LSMDIR)\Makefile.msc
2257+
22092258moreclean: clean
22102259 del /Q $(SQLITE3C) $(SQLITE3H) 2>NUL
22112260# <</mark>>
@@ -2225,9 +2274,10 @@ clean:
22252274 -rmdir /Q/S tsrc 2>NUL
22262275 del /Q .target_source 2>NUL
22272276 del /Q tclsqlite3.exe $(SQLITETCLH) $(SQLITETCLDECLSH) 2>NUL
2277+ del /Q lsm.dll lsmtest.exe 2>NUL
22282278 del /Q testloadext.dll 2>NUL
22292279 del /Q testfixture.exe test.db 2>NUL
2230- del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL
2280+ del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe dbdump.exe 2>NUL
22312281 del /Q changeset.exe 2>NUL
22322282 del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL
22332283 del /Q mptester.exe wordcount.exe rbu.exe srcck1.exe 2>NUL
0 commit comments