@@ -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
@@ -1277,7 +1294,8 @@ SRC07 = \
12771294 $(TOP)\ext\rtree\rtree.c \
12781295 $(TOP)\ext\session\sqlite3session.c \
12791296 $(TOP)\ext\rbu\sqlite3rbu.c \
1280- $(TOP)\ext\misc\json1.c
1297+ $(TOP)\ext\misc\json1.c \
1298+ $(TOP)\ext\misc\stmt.c
12811299
12821300# Extension header files, part 1.
12831301#
@@ -1396,9 +1414,11 @@ TESTEXT = \
13961414 $(TOP)\ext\misc\nextchar.c \
13971415 $(TOP)\ext\misc\percentile.c \
13981416 $(TOP)\ext\misc\regexp.c \
1417+ $(TOP)\ext\misc\remember.c \
13991418 $(TOP)\ext\misc\series.c \
14001419 $(TOP)\ext\misc\spellfix.c \
14011420 $(TOP)\ext\misc\totype.c \
1421+ $(TOP)\ext\misc\unionvtab.c \
14021422 $(TOP)\ext\misc\wholenumber.c
14031423
14041424# Source code to the library files needed by the test fixture
@@ -1479,22 +1499,29 @@ FUZZDATA = \
14791499 $(TOP)\test\fuzzdata1.db \
14801500 $(TOP)\test\fuzzdata2.db \
14811501 $(TOP)\test\fuzzdata3.db \
1482- $(TOP)\test\fuzzdata4.db
1502+ $(TOP)\test\fuzzdata4.db \
1503+ $(TOP)\test\fuzzdata5.db
14831504# <</mark>>
14841505
14851506# Additional compiler options for the shell. These are only effective
14861507# when the shell is not being dynamically linked.
14871508#
14881509!IF $(DYNAMIC_SHELL)==0 && $(FOR_WIN10)==0
1489- SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS
1510+ SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_STMTVTAB
14901511!ENDIF
14911512
14921513# <<mark>>
14931514# Extra compiler options for various test tools.
14941515#
14951516MPTESTER_COMPILE_OPTS = -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS5
14961517FUZZERSHELL_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1
1497- FUZZCHECK_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5
1518+ FUZZCHECK_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 -DSQLITE_OSS_FUZZ -DSQLITE_MAX_MEMORY=50000000
1519+ FUZZCHECK_SRC = $(TOP)\test\fuzzcheck.c $(TOP)\test\ossfuzz.c
1520+ OSSSHELL_SRC = $(TOP)\test\ossshell.c $(TOP)\test\ossfuzz.c
1521+ DBFUZZ_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION
1522+ KV_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_DIRECT_OVERFLOW_READ
1523+ DBSELFTEST_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5
1524+ ST_COMPILE_OPTS = -DSQLITE_THREADSAFE=0
14981525
14991526# Standard options to testfixture.
15001527#
@@ -1537,7 +1564,7 @@ $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
15371564sqlite3.def: libsqlite3.lib
15381565 echo EXPORTS > sqlite3.def
15391566 dumpbin /all libsqlite3.lib \
1540- | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3_ [^@]*)(?:@\d+)?$$" \1 \
1567+ | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3(?:session|changeset|changegroup)?_ [^@]*)(?:@\d+)?$$" \1 \
15411568 | sort >> sqlite3.def
15421569# <</block2>>
15431570
@@ -1564,8 +1591,14 @@ sourcetest: srcck1.exe sqlite3.c
15641591fuzzershell.exe: $(TOP)\tool\fuzzershell.c $(SQLITE3C) $(SQLITE3H)
15651592 $(LTLINK) $(NO_WARN) $(FUZZERSHELL_COMPILE_OPTS) $(TOP)\tool\fuzzershell.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
15661593
1567- fuzzcheck.exe: $(TOP)\test\fuzzcheck.c $(SQLITE3C) $(SQLITE3H)
1568- $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(TOP)\test\fuzzcheck.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1594+ dbfuzz.exe: $(TOP)\test\dbfuzz.c $(SQLITE3C) $(SQLITE3H)
1595+ $(LTLINK) $(NO_WARN) $(DBFUZZ_COMPILE_OPTS) $(TOP)\test\dbfuzz.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1596+
1597+ fuzzcheck.exe: $(FUZZCHECK_SRC) $(SQLITE3C) $(SQLITE3H)
1598+ $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(FUZZCHECK_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
1599+
1600+ ossshell.exe: $(OSSSHELL_SRC) $(SQLITE3C) $(SQLITE3H)
1601+ $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(OSSSHELL_SRC) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
15691602
15701603mptester.exe: $(TOP)\mptest\mptest.c $(SQLITE3C) $(SQLITE3H)
15711604 $(LTLINK) $(NO_WARN) $(MPTESTER_COMPILE_OPTS) $(TOP)\mptest\mptest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
@@ -2058,6 +2091,7 @@ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE=""
20582091TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
20592092TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
20602093TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
2094+ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_STMTVTAB
20612095TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) $(TEST_CCONV_OPTS)
20622096
20632097TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
@@ -2150,55 +2184,70 @@ sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS)
21502184 $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \
21512185 /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
21522186
2187+ dbdump.exe: $(TOP)\ext\misc\dbdump.c $(SQLITE3C) $(SQLITE3H)
2188+ $(LTLINK) $(NO_WARN) -DDBDUMP_STANDALONE $(TOP)\ext\misc\dbdump.c $(SQLITE3C) \
2189+ /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS)
2190+
21532191testloadext.lo: $(TOP)\src\test_loadext.c
21542192 $(LTCOMPILE) $(NO_WARN) -c $(TOP)\src\test_loadext.c
21552193
21562194testloadext.dll: testloadext.lo
21572195 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo
21582196
21592197showdb.exe: $(TOP)\tool\showdb.c $(SQLITE3C) $(SQLITE3H)
2160- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2198+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21612199 $(TOP)\tool\showdb.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21622200
21632201showstat4.exe: $(TOP)\tool\showstat4.c $(SQLITE3C) $(SQLITE3H)
2164- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2202+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21652203 $(TOP)\tool\showstat4.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21662204
21672205showjournal.exe: $(TOP)\tool\showjournal.c $(SQLITE3C) $(SQLITE3H)
2168- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2206+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21692207 $(TOP)\tool\showjournal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21702208
21712209showwal.exe: $(TOP)\tool\showwal.c $(SQLITE3C) $(SQLITE3H)
2172- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2210+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21732211 $(TOP)\tool\showwal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21742212
2175- changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C)
2176- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2213+ changeset.exe: $(TOP)\ext\session\changeset.c $(SQLITE3C) $(SQLITE3H)
2214+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
2215+ -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 \
21772216 $(TOP)\ext\session\changeset.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21782217
21792218fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) $(SQLITE3H)
2180- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2219+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21812220 $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21822221
21832222rollback-test.exe: $(TOP)\tool\rollback-test.c $(SQLITE3C) $(SQLITE3H)
2184- $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2223+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION \
21852224 $(TOP)\tool\rollback-test.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21862225
21872226LogEst.exe: $(TOP)\tool\logest.c $(SQLITE3H)
2188- $(LTLINK) $(NO_WARN) -Fe$@ $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS)
2227+ $(LTLINK) $(NO_WARN) $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS)
21892228
21902229wordcount.exe: $(TOP)\test\wordcount.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)\test\wordcount.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21932232
21942233speedtest1.exe: $(TOP)\test\speedtest1.c $(SQLITE3C) $(SQLITE3H)
2195- $(LTLINK) $(NO_WARN) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
2234+ $(LTLINK) $(NO_WARN) $(ST_COMPILE_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION \
21962235 $(TOP)\test\speedtest1.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
21972236
2237+ kvtest.exe: $(TOP)\test\kvtest.c $(SQLITE3C) $(SQLITE3H)
2238+ $(LTLINK) $(NO_WARN) $(KV_COMPILE_OPTS) \
2239+ $(TOP)\test\kvtest.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
2240+
2241+ dbselftest.exe: $(TOP)\test\dbselftest.c $(SQLITE3C) $(SQLITE3H)
2242+ $(LTLINK) $(NO_WARN) $(DBSELFTEST_COMPILE_OPTS) $(TOP)\test\dbselftest.c $(SQLITE3C)
2243+
21982244rbu.exe: $(TOP)\ext\rbu\rbu.c $(TOP)\ext\rbu\sqlite3rbu.c $(SQLITE3C) $(SQLITE3H)
2199- $(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU -Fe$@ \
2245+ $(LTLINK) $(NO_WARN) -DSQLITE_ENABLE_RBU \
22002246 $(TOP)\ext\rbu\rbu.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
22012247
2248+ LSMDIR=$(TOP)\ext\lsm1
2249+ !INCLUDE $(LSMDIR)\Makefile.msc
2250+
22022251moreclean: clean
22032252 del /Q $(SQLITE3C) $(SQLITE3H) 2>NUL
22042253# <</mark>>
@@ -2218,9 +2267,10 @@ clean:
22182267 -rmdir /Q/S tsrc 2>NUL
22192268 del /Q .target_source 2>NUL
22202269 del /Q tclsqlite3.exe $(SQLITETCLH) $(SQLITETCLDECLSH) 2>NUL
2270+ del /Q lsm.dll lsmtest.exe 2>NUL
22212271 del /Q testloadext.dll 2>NUL
22222272 del /Q testfixture.exe test.db 2>NUL
2223- del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL
2273+ del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe dbdump.exe 2>NUL
22242274 del /Q changeset.exe 2>NUL
22252275 del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL
22262276 del /Q mptester.exe wordcount.exe rbu.exe srcck1.exe 2>NUL
0 commit comments