Index: third_party/sqlite/src/Makefile.msc |
diff --git a/third_party/sqlite/src/Makefile.msc b/third_party/sqlite/src/Makefile.msc |
index 4173eaae27ef3c1d95336327734ab9877d0f8dce..92561a8a32d246dc5e66c59ea8a6ee0227b60b39 100644 |
--- a/third_party/sqlite/src/Makefile.msc |
+++ b/third_party/sqlite/src/Makefile.msc |
@@ -16,6 +16,44 @@ TOP = . |
USE_AMALGAMATION = 1 |
!ENDIF |
+# Set this non-0 to enable full warnings (-W4, etc) when compiling. |
+# |
+!IFNDEF USE_FULLWARN |
+USE_FULLWARN = 0 |
+!ENDIF |
+ |
+# Set this non-0 to use "stdcall" calling convention for the core library |
+# and shell executable. |
+# |
+!IFNDEF USE_STDCALL |
+USE_STDCALL = 0 |
+!ENDIF |
+ |
+# Set this non-0 to have the shell executable link against the core dynamic |
+# link library. |
+# |
+!IFNDEF DYNAMIC_SHELL |
+DYNAMIC_SHELL = 0 |
+!ENDIF |
+ |
+# Set this non-0 to enable extra code that attempts to detect misuse of the |
+# SQLite API. |
+# |
+!IFNDEF API_ARMOR |
+API_ARMOR = 0 |
+!ENDIF |
+ |
+# If necessary, create a list of harmless compiler warnings to disable when |
+# compiling the various tools. For the SQLite source code itself, warnings, |
+# if any, will be disabled from within it. |
+# |
+!IFNDEF NO_WARN |
+!IF $(USE_FULLWARN)!=0 |
+NO_WARN = -wd4054 -wd4055 -wd4100 -wd4127 -wd4130 -wd4152 -wd4189 -wd4206 |
+NO_WARN = $(NO_WARN) -wd4210 -wd4232 -wd4305 -wd4306 -wd4702 -wd4706 |
+!ENDIF |
+!ENDIF |
+ |
# Set this non-0 to use the library paths and other options necessary for |
# Windows Phone 8.1. |
# |
@@ -42,6 +80,12 @@ USE_ICU = 0 |
USE_CRT_DLL = 0 |
!ENDIF |
+# Set this non-0 to link to the RPCRT4 library. |
+# |
+!IFNDEF USE_RPCRT4_LIB |
+USE_RPCRT4_LIB = 0 |
+!ENDIF |
+ |
# Set this non-0 to generate assembly code listings for the source code |
# files. |
# |
@@ -78,6 +122,14 @@ USE_RC = 1 |
FOR_WINRT = 0 |
!ENDIF |
+# Set this non-0 to compile binaries suitable for the UAP environment. |
+# This setting does not apply to any binaries that require Tcl to operate |
+# properly (i.e. the text fixture, etc). |
+# |
+!IFNDEF FOR_UAP |
+FOR_UAP = 0 |
+!ENDIF |
+ |
# Set this non-0 to skip attempting to look for and/or link with the Tcl |
# runtime library. |
# |
@@ -103,16 +155,24 @@ MEMDEBUG = 0 |
WIN32HEAP = 0 |
!ENDIF |
+# Set this to non-0 to enable OSTRACE() macros, which can be useful when |
+# debugging. |
+# |
+!IFNDEF OSTRACE |
+OSTRACE = 0 |
+!ENDIF |
+ |
# Set this to one of the following values to enable various debugging |
# features. Each level includes the debugging options from the previous |
# levels. Currently, the recognized values for DEBUG are: |
# |
# 0 == NDEBUG: Disables assert() and other runtime diagnostics. |
-# 1 == Disables NDEBUG and all optimizations and then enables PDBs. |
-# 2 == SQLITE_DEBUG: Enables various diagnostics messages and code. |
-# 3 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call. |
-# 4 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros. |
-# 5 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros. |
+# 1 == SQLITE_ENABLE_API_ARMOR: extra attempts to detect misuse of the API. |
+# 2 == Disables NDEBUG and all optimizations and then enables PDBs. |
+# 3 == SQLITE_DEBUG: Enables various diagnostics messages and code. |
+# 4 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call. |
+# 5 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros. |
+# 6 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros. |
# |
!IFNDEF DEBUG |
DEBUG = 0 |
@@ -231,7 +291,11 @@ NSDKLIBPATH = $(NSDKLIBPATH:\\=\) |
# C compiler and options for use in building executables that |
# will run on the platform that is doing the build. |
# |
-BCC = $(NCC) -W3 |
+!IF $(USE_FULLWARN)!=0 |
+BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS) |
+!ELSE |
+BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS) |
+!ENDIF |
# Check if assembly code listings should be generated for the source |
# code files to be compiled. |
@@ -246,14 +310,117 @@ BCC = $(BCC) -FAcs |
# |
!IF $(USE_NATIVE_LIBPATHS)!=0 |
NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)" |
+ |
+!IFDEF NUCRTLIBPATH |
+NUCRTLIBPATH = $(NUCRTLIBPATH:\\=\) |
+NLTLIBPATHS = $(NLTLIBPATHS) "/LIBPATH:$(NUCRTLIBPATH)" |
+!ENDIF |
!ENDIF |
# C compiler and options for use in building executables that |
# will run on the target platform. (BCC and TCC are usually the |
# same unless your are cross-compiling.) |
# |
-TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise |
-RCC = $(RC) -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src |
+!IF $(USE_FULLWARN)!=0 |
+TCC = $(CC) -nologo -W4 -DINCLUDE_MSVC_H=1 $(CCOPTS) $(TCCOPTS) |
+!ELSE |
+TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS) |
+!ENDIF |
+ |
+TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise |
+RCC = $(RC) -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src $(RCOPTS) $(RCCOPTS) |
+ |
+# Check if we want to use the "stdcall" calling convention when compiling. |
+# This is not supported by the compilers for non-x86 platforms. It should |
+# also be noted here that building any target with these "stdcall" options |
+# will most likely fail if the Tcl library is also required. This is due |
+# to how the Tcl library functions are declared and exported (i.e. without |
+# an explicit calling convention, which results in "cdecl"). |
+# |
+!IF $(USE_STDCALL)!=0 |
+!IF "$(PLATFORM)"=="x86" |
+CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall |
+SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall |
+!ELSE |
+!IFNDEF PLATFORM |
+CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall |
+SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall |
+!ELSE |
+CORE_CCONV_OPTS = |
+SHELL_CCONV_OPTS = |
+!ENDIF |
+!ENDIF |
+!ELSE |
+CORE_CCONV_OPTS = |
+SHELL_CCONV_OPTS = |
+!ENDIF |
+ |
+# These are additional compiler options used for the core library. |
+# |
+!IFNDEF CORE_COMPILE_OPTS |
+!IF $(DYNAMIC_SHELL)!=0 |
+CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport) |
+!ELSE |
+CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) |
+!ENDIF |
+!ENDIF |
+ |
+# These are the additional targets that the core library should depend on |
+# when linking. |
+# |
+!IFNDEF CORE_LINK_DEP |
+!IF $(DYNAMIC_SHELL)!=0 |
+CORE_LINK_DEP = |
+!ELSE |
+CORE_LINK_DEP = sqlite3.def |
+!ENDIF |
+!ENDIF |
+ |
+# These are additional linker options used for the core library. |
+# |
+!IFNDEF CORE_LINK_OPTS |
+!IF $(DYNAMIC_SHELL)!=0 |
+CORE_LINK_OPTS = |
+!ELSE |
+CORE_LINK_OPTS = /DEF:sqlite3.def |
+!ENDIF |
+!ENDIF |
+ |
+# These are additional compiler options used for the shell executable. |
+# |
+!IFNDEF SHELL_COMPILE_OPTS |
+!IF $(DYNAMIC_SHELL)!=0 |
+SHELL_COMPILE_OPTS = -DSQLITE_SHELL_JSON1 $(SHELL_CCONV_OPTS) -DSQLITE_API=__declspec(dllimport) |
+!ELSE |
+SHELL_COMPILE_OPTS = -DSQLITE_SHELL_JSON1 $(SHELL_CCONV_OPTS) |
+!ENDIF |
+!ENDIF |
+ |
+# This is the core library that the shell executable should depend on. |
+# |
+!IFNDEF SHELL_CORE_DEP |
+!IF $(DYNAMIC_SHELL)!=0 |
+SHELL_CORE_DEP = sqlite3.dll |
+!ELSE |
+SHELL_CORE_DEP = libsqlite3.lib |
+!ENDIF |
+!ENDIF |
+ |
+# This is the core library that the shell executable should link with. |
+# |
+!IFNDEF SHELL_CORE_LIB |
+!IF $(DYNAMIC_SHELL)!=0 |
+SHELL_CORE_LIB = sqlite3.lib |
+!ELSE |
+SHELL_CORE_LIB = libsqlite3.lib |
+!ENDIF |
+!ENDIF |
+ |
+# These are additional linker options used for the shell executable. |
+# |
+!IFNDEF SHELL_LINK_OPTS |
+SHELL_LINK_OPTS = $(SHELL_CORE_LIB) |
+!ENDIF |
# Check if assembly code listings should be generated for the source |
# code files to be compiled. |
@@ -280,7 +447,7 @@ RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP |
# MSVC runtime library. |
# |
!IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0 |
-!IF $(DEBUG)>0 |
+!IF $(DEBUG)>1 |
TCC = $(TCC) -MDd |
BCC = $(BCC) -MDd |
!ELSE |
@@ -288,7 +455,7 @@ TCC = $(TCC) -MD |
BCC = $(BCC) -MD |
!ENDIF |
!ELSE |
-!IF $(DEBUG)>0 |
+!IF $(DEBUG)>1 |
TCC = $(TCC) -MTd |
BCC = $(BCC) -MTd |
!ELSE |
@@ -313,11 +480,13 @@ RCC = $(RCC) -I$(TOP)\ext\rtree |
# options are necessary in order to allow debugging symbols to |
# work correctly with Visual Studio when using the amalgamation. |
# |
-!IF $(DEBUG)>0 |
+!IFNDEF MKSQLITE3C_ARGS |
+!IF $(DEBUG)>1 |
MKSQLITE3C_ARGS = --linemacros |
!ELSE |
MKSQLITE3C_ARGS = |
!ENDIF |
+!ENDIF |
# Define -DNDEBUG to compile without debugging (i.e., for production usage) |
# Omitting the define will cause extra debugging code to be inserted and |
@@ -329,19 +498,24 @@ BCC = $(BCC) -DNDEBUG |
RCC = $(RCC) -DNDEBUG |
!ENDIF |
-!IF $(DEBUG)>1 |
-TCC = $(TCC) -DSQLITE_DEBUG |
-RCC = $(RCC) -DSQLITE_DEBUG |
+!IF $(DEBUG)>0 || $(API_ARMOR)!=0 |
+TCC = $(TCC) -DSQLITE_ENABLE_API_ARMOR=1 |
+RCC = $(RCC) -DSQLITE_ENABLE_API_ARMOR=1 |
!ENDIF |
-!IF $(DEBUG)>3 |
-TCC = $(TCC) -DSQLITE_DEBUG_OS_TRACE=1 |
-RCC = $(RCC) -DSQLITE_DEBUG_OS_TRACE=1 |
+!IF $(DEBUG)>2 |
+TCC = $(TCC) -DSQLITE_DEBUG=1 |
+RCC = $(RCC) -DSQLITE_DEBUG=1 |
+!ENDIF |
+ |
+!IF $(DEBUG)>4 || $(OSTRACE)!=0 |
+TCC = $(TCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 |
+RCC = $(RCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 |
!ENDIF |
-!IF $(DEBUG)>4 |
-TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE |
-RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE |
+!IF $(DEBUG)>5 |
+TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE=1 |
+RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE=1 |
!ENDIF |
# Prevent warnings about "insecure" MSVC runtime library functions |
@@ -371,7 +545,7 @@ RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1 |
# Validate the heap on every call into the native Win32 heap subsystem? |
# |
-!IF $(DEBUG)>2 |
+!IF $(DEBUG)>3 |
TCC = $(TCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 |
RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 |
!ENDIF |
@@ -395,6 +569,14 @@ TCLLIBDIR = c:\tcl\lib |
LIBTCL = tcl85.lib |
!ENDIF |
+!IFNDEF LIBTCLSTUB |
+LIBTCLSTUB = tclstub85.lib |
+!ENDIF |
+ |
+!IFNDEF LIBTCLPATH |
+LIBTCLPATH = c:\tcl\bin |
+!ENDIF |
+ |
# The locations of the ICU header and library files. These variables |
# (ICUINCDIR, ICULIBDIR, and LIBICU) may be overridden via the environment |
# prior to running nmake in order to match the actual installed location on |
@@ -468,6 +650,12 @@ RCC = $(RCC) -DSQLITE_TEMP_STORE=1 |
# |
REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100 |
+# If we are linking to the RPCRT4 library, enable features that need it. |
+# |
+!IF $(USE_RPCRT4_LIB)!=0 |
+REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_WIN32_USE_UUID=1 |
+!ENDIF |
+ |
# Add the required and optional SQLite compilation options into the command |
# lines used to invoke the MSVC code and resource compilers. |
# |
@@ -482,7 +670,7 @@ RCC = $(RCC) $(OPTS) |
# If compiling for debugging, add some defines. |
# |
-!IF $(DEBUG)>0 |
+!IF $(DEBUG)>1 |
TCC = $(TCC) -D_DEBUG |
BCC = $(BCC) -D_DEBUG |
RCC = $(RCC) -D_DEBUG |
@@ -491,7 +679,7 @@ RCC = $(RCC) -D_DEBUG |
# If optimizations are enabled or disabled (either implicitly or |
# explicitly), add the necessary flags. |
# |
-!IF $(DEBUG)>0 || $(OPTIMIZATIONS)==0 |
+!IF $(DEBUG)>1 || $(OPTIMIZATIONS)==0 |
TCC = $(TCC) -Od |
BCC = $(BCC) -Od |
!ELSEIF $(OPTIMIZATIONS)>=3 |
@@ -507,7 +695,7 @@ BCC = $(BCC) -O1 |
# If symbols are enabled (or compiling for debugging), enable PDBs. |
# |
-!IF $(DEBUG)>0 || $(SYMBOLS)!=0 |
+!IF $(DEBUG)>1 || $(SYMBOLS)!=0 |
TCC = $(TCC) -Zi |
BCC = $(BCC) -Zi |
!ENDIF |
@@ -531,13 +719,22 @@ LTRCOMPILE = $(RCC) -r |
LTLIB = lib.exe |
LTLINK = $(TCC) -Fe$@ |
+# If requested, link to the RPCRT4 library. |
+# |
+!IF $(USE_RPCRT4_LIB)!=0 |
+LTLINK = $(LTLINK) rpcrt4.lib |
+!ENDIF |
+ |
# If a platform was set, force the linker to target that. |
# Note that the vcvars*.bat family of batch files typically |
# set this for you. Otherwise, the linker will attempt |
# to deduce the binary type based on the object files. |
!IFDEF PLATFORM |
-LTLINKOPTS = /MACHINE:$(PLATFORM) |
-LTLIBOPTS = /MACHINE:$(PLATFORM) |
+LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM) |
+LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM) |
+!ELSE |
+LTLINKOPTS = /NOLOGO |
+LTLIBOPTS = /NOLOGO |
!ENDIF |
# When compiling for use in the WinRT environment, the following |
@@ -546,7 +743,7 @@ LTLIBOPTS = /MACHINE:$(PLATFORM) |
# |
!IF $(FOR_WINRT)!=0 |
LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER |
-!IF "$(VISUALSTUDIOVERSION)"=="12.0" |
+!IF "$(VISUALSTUDIOVERSION)"=="12.0" || "$(VISUALSTUDIOVERSION)"=="14.0" |
!IFNDEF STORELIBPATH |
!IF "$(PLATFORM)"=="x86" |
STORELIBPATH = $(CRTLIBPATH)\store |
@@ -590,10 +787,22 @@ LTLINKOPTS = $(LTLINKOPTS) WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelH |
LTLINKOPTS = $(LTLINKOPTS) /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:ole32.lib |
!ENDIF |
+# When compiling for UAP, some extra linker options are also required. |
+# |
+!IF $(FOR_UAP)!=0 |
+LTLINKOPTS = $(LTLINKOPTS) /DYNAMICBASE /NODEFAULTLIB:kernel32.lib |
+LTLINKOPTS = $(LTLINKOPTS) mincore.lib |
+!IFDEF PSDKLIBPATH |
+LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(PSDKLIBPATH)" |
+!ENDIF |
+!ENDIF |
+ |
# If either debugging or symbols are enabled, enable PDBs. |
# |
-!IF $(DEBUG)>0 || $(SYMBOLS)!=0 |
-LDFLAGS = /DEBUG |
+!IF $(DEBUG)>1 || $(SYMBOLS)!=0 |
+LDFLAGS = /DEBUG $(LDOPTS) |
+!ELSE |
+LDFLAGS = $(LDOPTS) |
!ENDIF |
# Start with the Tcl related linker options. |
@@ -610,12 +819,6 @@ LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR) |
LTLIBS = $(LTLIBS) $(LIBICU) |
!ENDIF |
-# nawk compatible awk. |
-# |
-!IFNDEF NAWK |
-NAWK = gawk.exe |
-!ENDIF |
- |
# You should not have to change anything below this line |
############################################################################### |
@@ -623,11 +826,12 @@ NAWK = gawk.exe |
# |
LIBOBJS0 = vdbe.lo parse.lo alter.lo analyze.lo attach.lo auth.lo \ |
backup.lo bitvec.lo btmutex.lo btree.lo build.lo \ |
- callback.lo complete.lo ctime.lo date.lo delete.lo \ |
+ callback.lo complete.lo ctime.lo date.lo dbstat.lo delete.lo \ |
expr.lo fault.lo fkey.lo \ |
fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \ |
fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \ |
fts3_tokenize_vtab.lo fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \ |
+ fts5.lo \ |
func.lo global.lo hash.lo \ |
icu.lo insert.lo journal.lo legacy.lo loadext.lo \ |
main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \ |
@@ -636,10 +840,11 @@ LIBOBJS0 = vdbe.lo parse.lo alter.lo analyze.lo attach.lo auth.lo \ |
notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \ |
pager.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ |
random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \ |
- table.lo threads.lo tokenize.lo trigger.lo \ |
+ table.lo threads.lo tokenize.lo treeview.lo trigger.lo \ |
update.lo util.lo vacuum.lo \ |
vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ |
- vdbetrace.lo wal.lo walker.lo where.lo utf.lo vtab.lo |
+ vdbetrace.lo wal.lo walker.lo where.lo wherecode.lo whereexpr.lo \ |
+ utf.lo vtab.lo |
# Object files for the amalgamation. |
# |
@@ -663,7 +868,7 @@ LIBRESOBJS = |
# All of the source code files. |
# |
-SRC = \ |
+SRC1 = \ |
$(TOP)\src\alter.c \ |
$(TOP)\src\analyze.c \ |
$(TOP)\src\attach.c \ |
@@ -679,6 +884,7 @@ SRC = \ |
$(TOP)\src\complete.c \ |
$(TOP)\src\ctime.c \ |
$(TOP)\src\date.c \ |
+ $(TOP)\src\dbstat.c \ |
$(TOP)\src\delete.c \ |
$(TOP)\src\expr.c \ |
$(TOP)\src\fault.c \ |
@@ -700,6 +906,7 @@ SRC = \ |
$(TOP)\src\mem3.c \ |
$(TOP)\src\mem5.c \ |
$(TOP)\src\memjournal.c \ |
+ $(TOP)\src\msvc.h \ |
$(TOP)\src\mutex.c \ |
$(TOP)\src\mutex.h \ |
$(TOP)\src\mutex_noop.c \ |
@@ -712,7 +919,8 @@ SRC = \ |
$(TOP)\src\os_setup.h \ |
$(TOP)\src\os_unix.c \ |
$(TOP)\src\os_win.c \ |
- $(TOP)\src\os_win.h \ |
+ $(TOP)\src\os_win.h |
+SRC2 = \ |
$(TOP)\src\pager.c \ |
$(TOP)\src\pager.h \ |
$(TOP)\src\parse.y \ |
@@ -720,6 +928,7 @@ SRC = \ |
$(TOP)\src\pcache.h \ |
$(TOP)\src\pcache1.c \ |
$(TOP)\src\pragma.c \ |
+ $(TOP)\src\pragma.h \ |
$(TOP)\src\prepare.c \ |
$(TOP)\src\printf.c \ |
$(TOP)\src\random.c \ |
@@ -736,6 +945,7 @@ SRC = \ |
$(TOP)\src\threads.c \ |
$(TOP)\src\tclsqlite.c \ |
$(TOP)\src\tokenize.c \ |
+ $(TOP)\src\treeview.c \ |
$(TOP)\src\trigger.c \ |
$(TOP)\src\utf.c \ |
$(TOP)\src\update.c \ |
@@ -751,23 +961,25 @@ SRC = \ |
$(TOP)\src\vdbetrace.c \ |
$(TOP)\src\vdbeInt.h \ |
$(TOP)\src\vtab.c \ |
+ $(TOP)\src\vxworks.h \ |
$(TOP)\src\wal.c \ |
$(TOP)\src\wal.h \ |
$(TOP)\src\walker.c \ |
$(TOP)\src\where.c \ |
+ $(TOP)\src\wherecode.c \ |
+ $(TOP)\src\whereexpr.c \ |
$(TOP)\src\whereInt.h |
# Source code for extensions |
# |
-SRC = $(SRC) \ |
+SRC3 = \ |
$(TOP)\ext\fts1\fts1.c \ |
$(TOP)\ext\fts1\fts1.h \ |
$(TOP)\ext\fts1\fts1_hash.c \ |
$(TOP)\ext\fts1\fts1_hash.h \ |
$(TOP)\ext\fts1\fts1_porter.c \ |
$(TOP)\ext\fts1\fts1_tokenizer.h \ |
- $(TOP)\ext\fts1\fts1_tokenizer1.c |
-SRC = $(SRC) \ |
+ $(TOP)\ext\fts1\fts1_tokenizer1.c \ |
$(TOP)\ext\fts2\fts2.c \ |
$(TOP)\ext\fts2\fts2.h \ |
$(TOP)\ext\fts2\fts2_hash.c \ |
@@ -777,7 +989,7 @@ SRC = $(SRC) \ |
$(TOP)\ext\fts2\fts2_tokenizer.h \ |
$(TOP)\ext\fts2\fts2_tokenizer.c \ |
$(TOP)\ext\fts2\fts2_tokenizer1.c |
-SRC = $(SRC) \ |
+SRC4 = \ |
$(TOP)\ext\fts3\fts3.c \ |
$(TOP)\ext\fts3\fts3.h \ |
$(TOP)\ext\fts3\fts3Int.h \ |
@@ -794,18 +1006,19 @@ SRC = $(SRC) \ |
$(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 = $(SRC) \ |
+ $(TOP)\ext\fts3\fts3_write.c \ |
$(TOP)\ext\icu\sqliteicu.h \ |
- $(TOP)\ext\icu\icu.c |
-SRC = $(SRC) \ |
+ $(TOP)\ext\icu\icu.c \ |
$(TOP)\ext\rtree\rtree.h \ |
- $(TOP)\ext\rtree\rtree.c |
+ $(TOP)\ext\rtree\rtree.c \ |
+ $(TOP)\ext\rbu\sqlite3rbu.h \ |
+ $(TOP)\ext\rbu\sqlite3rbu.c \ |
+ $(TOP)\ext\misc\json1.c |
# Generated source code files |
# |
-SRC = $(SRC) \ |
+SRC5 = \ |
keywordhash.h \ |
opcodes.c \ |
opcodes.h \ |
@@ -813,6 +1026,10 @@ SRC = $(SRC) \ |
parse.h \ |
sqlite3.h |
+# All source code files. |
+# |
+SRC = $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) |
+ |
# Source code to the test files. |
# |
TESTSRC = \ |
@@ -828,6 +1045,7 @@ TESTSRC = \ |
$(TOP)\src\test_autoext.c \ |
$(TOP)\src\test_async.c \ |
$(TOP)\src\test_backup.c \ |
+ $(TOP)\src\test_blob.c \ |
$(TOP)\src\test_btree.c \ |
$(TOP)\src\test_config.c \ |
$(TOP)\src\test_demovfs.c \ |
@@ -850,25 +1068,30 @@ TESTSRC = \ |
$(TOP)\src\test_server.c \ |
$(TOP)\src\test_superlock.c \ |
$(TOP)\src\test_syscall.c \ |
- $(TOP)\src\test_stat.c \ |
$(TOP)\src\test_tclvar.c \ |
$(TOP)\src\test_thread.c \ |
$(TOP)\src\test_vfs.c \ |
+ $(TOP)\src\test_windirent.c \ |
$(TOP)\src\test_wsd.c \ |
$(TOP)\ext\fts3\fts3_term.c \ |
- $(TOP)\ext\fts3\fts3_test.c |
+ $(TOP)\ext\fts3\fts3_test.c \ |
+ $(TOP)\ext\rbu\test_rbu.c |
# Statically linked extensions |
# |
TESTEXT = \ |
$(TOP)\ext\misc\amatch.c \ |
$(TOP)\ext\misc\closure.c \ |
+ $(TOP)\ext\misc\eval.c \ |
$(TOP)\ext\misc\fileio.c \ |
$(TOP)\ext\misc\fuzzer.c \ |
+ $(TOP)\ext\fts5\fts5_tcl.c \ |
+ $(TOP)\ext\fts5\fts5_test_mi.c \ |
$(TOP)\ext\misc\ieee754.c \ |
$(TOP)\ext\misc\nextchar.c \ |
$(TOP)\ext\misc\percentile.c \ |
$(TOP)\ext\misc\regexp.c \ |
+ $(TOP)\ext\misc\series.c \ |
$(TOP)\ext\misc\spellfix.c \ |
$(TOP)\ext\misc\totype.c \ |
$(TOP)\ext\misc\wholenumber.c |
@@ -884,6 +1107,7 @@ TESTSRC2 = \ |
$(TOP)\src\build.c \ |
$(TOP)\src\ctime.c \ |
$(TOP)\src\date.c \ |
+ $(TOP)\src\dbstat.c \ |
$(TOP)\src\expr.c \ |
$(TOP)\src\func.c \ |
$(TOP)\src\insert.c \ |
@@ -911,6 +1135,8 @@ TESTSRC2 = \ |
$(TOP)\src\vdbesort.c \ |
$(TOP)\src\vdbetrace.c \ |
$(TOP)\src\where.c \ |
+ $(TOP)\src\wherecode.c \ |
+ $(TOP)\src\whereexpr.c \ |
parse.c \ |
$(TOP)\ext\fts3\fts3.c \ |
$(TOP)\ext\fts3\fts3_aux.c \ |
@@ -930,6 +1156,7 @@ HDR = \ |
$(TOP)\src\hash.h \ |
$(TOP)\src\hwtime.h \ |
keywordhash.h \ |
+ $(TOP)\src\msvc.h \ |
$(TOP)\src\mutex.h \ |
opcodes.h \ |
$(TOP)\src\os.h \ |
@@ -939,12 +1166,14 @@ HDR = \ |
$(TOP)\src\pager.h \ |
$(TOP)\src\pcache.h \ |
parse.h \ |
+ $(TOP)\src\pragma.h \ |
sqlite3.h \ |
$(TOP)\src\sqlite3ext.h \ |
$(TOP)\src\sqliteInt.h \ |
$(TOP)\src\sqliteLimit.h \ |
$(TOP)\src\vdbe.h \ |
$(TOP)\src\vdbeInt.h \ |
+ $(TOP)\src\vxworks.h \ |
$(TOP)\src\whereInt.h |
# Header files used by extensions |
@@ -969,6 +1198,32 @@ EXTHDR = $(EXTHDR) \ |
EXTHDR = $(EXTHDR) \ |
$(TOP)\ext\rtree\sqlite3rtree.h |
+# executables needed for testing |
+# |
+TESTPROGS = \ |
+ testfixture.exe \ |
+ sqlite3.exe \ |
+ sqlite3_analyzer.exe \ |
+ sqldiff.exe |
+ |
+# Databases containing fuzzer test cases |
+# |
+FUZZDATA = \ |
+ $(TOP)\test\fuzzdata1.db \ |
+ $(TOP)\test\fuzzdata2.db \ |
+ $(TOP)\test\fuzzdata3.db \ |
+ $(TOP)\test\fuzzdata4.db |
+ |
+# Extra compiler options for various shell tools |
+# |
+SHELL_COMPILE_OPTS = -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 |
+FUZZERSHELL_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 |
+FUZZCHECK_COMPILE_OPTS = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 |
+ |
+# Standard options to testfixture |
+# |
+TESTOPTS = --verbose=file --output=test-out.txt |
+ |
# This is the default Makefile target. The objects listed here |
# are what get build when you type just "make" with no arguments. |
# |
@@ -978,16 +1233,39 @@ libsqlite3.lib: $(LIBOBJ) |
$(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS) |
libtclsqlite3.lib: tclsqlite.lo libsqlite3.lib |
- $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCL:tcl=tclstub) $(TLIBS) |
+ $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS) |
+ |
+sqlite3.exe: $(TOP)\src\shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) sqlite3.h |
+ $(LTLINK) $(SHELL_COMPILE_OPTS) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) $(TOP)\src\shell.c \ |
+ /link /pdb:sqlite3sh.pdb $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) |
+ |
+sqldiff.exe: $(TOP)\tool\sqldiff.c sqlite3.c sqlite3.h |
+ $(LTLINK) $(NO_WARN) $(TOP)\tool\sqldiff.c sqlite3.c /link $(LDFLAGS) $(LTLINKOPTS) |
-sqlite3.exe: $(TOP)\src\shell.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h |
- $(LTLINK) $(READLINE_FLAGS) \ |
- $(TOP)\src\shell.c \ |
- /link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) |
+fuzzershell.exe: $(TOP)\tool\fuzzershell.c sqlite3.c sqlite3.h |
+ $(LTLINK) $(NO_WARN) $(FUZZERSHELL_COMPILE_OPTS) \ |
+ $(TOP)\tool\fuzzershell.c sqlite3.c /link $(LDFLAGS) $(LTLINKOPTS) |
-mptester.exe: $(TOP)\mptest\mptest.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h |
- $(LTLINK) $(TOP)\mptest\mptest.c \ |
- /link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) |
+fuzzcheck.exe: $(TOP)\test\fuzzcheck.c sqlite3.c sqlite3.h |
+ $(LTLINK) $(NO_WARN) $(FUZZCHECK_COMPILE_OPTS) $(TOP)\test\fuzzcheck.c sqlite3.c /link $(LDFLAGS) $(LTLINKOPTS) |
+ |
+mptester.exe: $(TOP)\mptest\mptest.c $(SHELL_CORE_DEP) $(LIBRESOBJS) sqlite3.h |
+ $(LTLINK) $(NO_WARN) $(SHELL_COMPILE_OPTS) $(TOP)\mptest\mptest.c \ |
+ /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(SHELL_LINK_OPTS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) |
+ |
+MPTEST1 = mptester mptest.db $(TOP)\mptest\crash01.test --repeat 20 |
+MPTEST2 = mptester mptest.db $(TOP)\mptest\multiwrite01.test --repeat 20 |
+ |
+mptest: mptester.exe |
+ del /Q mptest.db 2>NUL |
+ $(MPTEST1) --journalmode DELETE |
+ $(MPTEST2) --journalmode WAL |
+ $(MPTEST1) --journalmode WAL |
+ $(MPTEST2) --journalmode PERSIST |
+ $(MPTEST1) --journalmode PERSIST |
+ $(MPTEST2) --journalmode TRUNCATE |
+ $(MPTEST1) --journalmode TRUNCATE |
+ $(MPTEST2) --journalmode DELETE |
# This target creates a directory named "tsrc" and fills it with |
# copies of all of the C source code and header files needed to |
@@ -995,19 +1273,24 @@ mptester.exe: $(TOP)\mptest\mptest.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h |
# files are automatically generated. This target takes care of |
# all that automatic generation. |
# |
-.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl |
- -rmdir /S/Q tsrc |
+.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl fts5.c |
+ -rmdir /Q/S tsrc 2>NUL |
-mkdir tsrc |
- for %i in ($(SRC)) do copy /Y %i tsrc |
- del /Q tsrc\sqlite.h.in tsrc\parse.y |
+ for %i in ($(SRC1)) do copy /Y %i tsrc |
+ for %i in ($(SRC2)) do copy /Y %i tsrc |
+ for %i in ($(SRC3)) do copy /Y %i tsrc |
+ for %i in ($(SRC4)) do copy /Y %i tsrc |
+ for %i in ($(SRC5)) do copy /Y %i tsrc |
+ copy /Y fts5.c tsrc |
+ copy /Y fts5.h tsrc |
+ del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL |
$(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl $(OPTS) < tsrc\vdbe.c > vdbe.new |
move vdbe.new tsrc\vdbe.c |
echo > .target_source |
-sqlite3.c: .target_source $(TOP)\tool\mksqlite3c.tcl |
+sqlite3.c: .target_source sqlite3ext.h $(TOP)\tool\mksqlite3c.tcl |
$(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl $(MKSQLITE3C_ARGS) |
copy tsrc\shell.c . |
- copy tsrc\sqlite3ext.h . |
sqlite3-all.c: sqlite3.c $(TOP)\tool\split-sqlite3c.tcl |
$(TCLSH_CMD) $(TOP)\tool\split-sqlite3c.tcl |
@@ -1024,15 +1307,16 @@ SQLITE3C = sqlite3.c |
# Rule to build the amalgamation |
# |
sqlite3.lo: $(SQLITE3C) |
- $(LTCOMPILE) -c $(SQLITE3C) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(SQLITE3C) |
# Rules to build the LEMON compiler generator |
# |
-lempar.c: $(TOP)\src\lempar.c |
- copy $(TOP)\src\lempar.c . |
+lempar.c: $(TOP)\tool\lempar.c |
+ copy $(TOP)\tool\lempar.c . |
lemon.exe: $(TOP)\tool\lemon.c lempar.c |
- $(BCC) -Daccess=_access -Fe$@ $(TOP)\tool\lemon.c /link $(NLTLINKOPTS) $(NLTLIBPATHS) |
+ $(BCC) $(NO_WARN) -Daccess=_access \ |
+ -Fe$@ $(TOP)\tool\lemon.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS) |
# Rules to build individual *.lo files from generated *.c files. This |
# applies to: |
@@ -1041,10 +1325,10 @@ lemon.exe: $(TOP)\tool\lemon.c lempar.c |
# opcodes.lo |
# |
parse.lo: parse.c $(HDR) |
- $(LTCOMPILE) -c parse.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c parse.c |
opcodes.lo: opcodes.c |
- $(LTCOMPILE) -c opcodes.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c opcodes.c |
# Rule to build the Win32 resources object file. |
# |
@@ -1053,7 +1337,7 @@ $(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(HDR) |
echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h |
for /F %%V in ('type "$(TOP)\VERSION"') do ( \ |
echo #define SQLITE_RESOURCE_VERSION %%V \ |
- | $(NAWK) "/.*/ { gsub(/[.]/,\",\");print }" >> sqlite3rc.h \ |
+ | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact . ^, >> sqlite3rc.h \ |
) |
echo #endif >> sqlite3rc.h |
$(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc |
@@ -1062,248 +1346,264 @@ $(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(HDR) |
# Rules to build individual *.lo files from files in the src directory. |
# |
alter.lo: $(TOP)\src\alter.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\alter.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\alter.c |
analyze.lo: $(TOP)\src\analyze.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\analyze.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\analyze.c |
attach.lo: $(TOP)\src\attach.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\attach.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\attach.c |
auth.lo: $(TOP)\src\auth.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\auth.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\auth.c |
backup.lo: $(TOP)\src\backup.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\backup.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\backup.c |
bitvec.lo: $(TOP)\src\bitvec.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\bitvec.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\bitvec.c |
btmutex.lo: $(TOP)\src\btmutex.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\btmutex.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\btmutex.c |
btree.lo: $(TOP)\src\btree.c $(HDR) $(TOP)\src\pager.h |
- $(LTCOMPILE) -c $(TOP)\src\btree.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\btree.c |
build.lo: $(TOP)\src\build.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\build.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\build.c |
callback.lo: $(TOP)\src\callback.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\callback.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\callback.c |
complete.lo: $(TOP)\src\complete.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\complete.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\complete.c |
ctime.lo: $(TOP)\src\ctime.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\ctime.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\ctime.c |
date.lo: $(TOP)\src\date.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\date.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\date.c |
+ |
+dbstat.lo: $(TOP)\src\date.c $(HDR) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\dbstat.c |
delete.lo: $(TOP)\src\delete.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\delete.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\delete.c |
expr.lo: $(TOP)\src\expr.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\expr.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\expr.c |
fault.lo: $(TOP)\src\fault.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\fault.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\fault.c |
fkey.lo: $(TOP)\src\fkey.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\fkey.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\fkey.c |
func.lo: $(TOP)\src\func.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\func.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\func.c |
global.lo: $(TOP)\src\global.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\global.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\global.c |
hash.lo: $(TOP)\src\hash.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\hash.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\hash.c |
insert.lo: $(TOP)\src\insert.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\insert.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\insert.c |
journal.lo: $(TOP)\src\journal.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\journal.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\journal.c |
legacy.lo: $(TOP)\src\legacy.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\legacy.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\legacy.c |
loadext.lo: $(TOP)\src\loadext.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\loadext.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\loadext.c |
main.lo: $(TOP)\src\main.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\main.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\main.c |
malloc.lo: $(TOP)\src\malloc.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\malloc.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\malloc.c |
mem0.lo: $(TOP)\src\mem0.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mem0.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem0.c |
mem1.lo: $(TOP)\src\mem1.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mem1.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem1.c |
mem2.lo: $(TOP)\src\mem2.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mem2.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem2.c |
mem3.lo: $(TOP)\src\mem3.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mem3.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem3.c |
mem5.lo: $(TOP)\src\mem5.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mem5.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mem5.c |
memjournal.lo: $(TOP)\src\memjournal.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\memjournal.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\memjournal.c |
mutex.lo: $(TOP)\src\mutex.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mutex.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex.c |
mutex_noop.lo: $(TOP)\src\mutex_noop.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mutex_noop.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_noop.c |
mutex_unix.lo: $(TOP)\src\mutex_unix.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mutex_unix.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_unix.c |
mutex_w32.lo: $(TOP)\src\mutex_w32.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\mutex_w32.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\mutex_w32.c |
notify.lo: $(TOP)\src\notify.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\notify.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\notify.c |
pager.lo: $(TOP)\src\pager.c $(HDR) $(TOP)\src\pager.h |
- $(LTCOMPILE) -c $(TOP)\src\pager.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pager.c |
pcache.lo: $(TOP)\src\pcache.c $(HDR) $(TOP)\src\pcache.h |
- $(LTCOMPILE) -c $(TOP)\src\pcache.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pcache.c |
pcache1.lo: $(TOP)\src\pcache1.c $(HDR) $(TOP)\src\pcache.h |
- $(LTCOMPILE) -c $(TOP)\src\pcache1.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pcache1.c |
os.lo: $(TOP)\src\os.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\os.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os.c |
os_unix.lo: $(TOP)\src\os_unix.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\os_unix.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os_unix.c |
os_win.lo: $(TOP)\src\os_win.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\os_win.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\os_win.c |
pragma.lo: $(TOP)\src\pragma.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\pragma.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\pragma.c |
prepare.lo: $(TOP)\src\prepare.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\prepare.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\prepare.c |
printf.lo: $(TOP)\src\printf.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\printf.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\printf.c |
random.lo: $(TOP)\src\random.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\random.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\random.c |
resolve.lo: $(TOP)\src\resolve.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\resolve.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\resolve.c |
rowset.lo: $(TOP)\src\rowset.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\rowset.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\rowset.c |
select.lo: $(TOP)\src\select.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\select.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\select.c |
status.lo: $(TOP)\src\status.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\status.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\status.c |
table.lo: $(TOP)\src\table.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\table.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\table.c |
threads.lo: $(TOP)\src\threads.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\threads.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\threads.c |
tokenize.lo: $(TOP)\src\tokenize.c keywordhash.h $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\tokenize.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\tokenize.c |
+ |
+treeview.lo: $(TOP)\src\treeview.c $(HDR) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\treeview.c |
trigger.lo: $(TOP)\src\trigger.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\trigger.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\trigger.c |
update.lo: $(TOP)\src\update.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\update.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\update.c |
utf.lo: $(TOP)\src\utf.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\utf.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\utf.c |
util.lo: $(TOP)\src\util.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\util.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\util.c |
vacuum.lo: $(TOP)\src\vacuum.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vacuum.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vacuum.c |
vdbe.lo: $(TOP)\src\vdbe.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbe.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbe.c |
vdbeapi.lo: $(TOP)\src\vdbeapi.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbeapi.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeapi.c |
vdbeaux.lo: $(TOP)\src\vdbeaux.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbeaux.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeaux.c |
vdbeblob.lo: $(TOP)\src\vdbeblob.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbeblob.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbeblob.c |
vdbemem.lo: $(TOP)\src\vdbemem.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbemem.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbemem.c |
vdbesort.lo: $(TOP)\src\vdbesort.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbesort.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbesort.c |
vdbetrace.lo: $(TOP)\src\vdbetrace.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vdbetrace.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vdbetrace.c |
vtab.lo: $(TOP)\src\vtab.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\vtab.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\vtab.c |
wal.lo: $(TOP)\src\wal.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\wal.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\wal.c |
walker.lo: $(TOP)\src\walker.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\walker.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\walker.c |
where.lo: $(TOP)\src\where.c $(HDR) |
- $(LTCOMPILE) -c $(TOP)\src\where.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\where.c |
+ |
+wherecode.lo: $(TOP)\src\wherecode.c $(HDR) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\wherecode.c |
+ |
+whereexpr.lo: $(TOP)\src\whereexpr.c $(HDR) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\whereexpr.c |
tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR) |
- $(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c |
+ $(LTCOMPILE) $(NO_WARN) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c |
tclsqlite-shell.lo: $(TOP)\src\tclsqlite.c $(HDR) |
- $(LTCOMPILE) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c |
+ $(LTCOMPILE) $(NO_WARN) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c |
-tclsqlite3.exe: tclsqlite-shell.lo libsqlite3.lib $(LIBRESOBJS) |
- $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ libsqlite3.lib tclsqlite-shell.lo $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
+tclsqlite3.exe: tclsqlite-shell.lo $(SQLITE3C) $(LIBRESOBJS) |
+ $(LTLINK) $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite-shell.lo $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
# Rules to build opcodes.c and opcodes.h |
# |
-opcodes.c: opcodes.h $(TOP)\mkopcodec.awk |
- $(NAWK) -f $(TOP)\mkopcodec.awk opcodes.h > opcodes.c |
+opcodes.c: opcodes.h $(TOP)\tool\mkopcodec.tcl |
+ $(TCLSH_CMD) $(TOP)\tool\mkopcodec.tcl opcodes.h > opcodes.c |
-opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\mkopcodeh.awk |
- type parse.h $(TOP)\src\vdbe.c | $(NAWK) -f $(TOP)\mkopcodeh.awk > opcodes.h |
+opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\tool\mkopcodeh.tcl |
+ type parse.h $(TOP)\src\vdbe.c | $(TCLSH_CMD) $(TOP)\tool\mkopcodeh.tcl > opcodes.h |
# Rules to build parse.c and parse.h - the outputs of lemon. |
# |
parse.h: parse.c |
-parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk |
- del /Q parse.y parse.h parse.h.temp |
+parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\tool\addopcodes.tcl |
+ del /Q parse.y parse.h parse.h.temp 2>NUL |
copy $(TOP)\src\parse.y . |
.\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) parse.y |
move parse.h parse.h.temp |
- $(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h |
+ $(TCLSH_CMD) $(TOP)\tool\addopcodes.tcl parse.h.temp > parse.h |
sqlite3.h: $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION |
$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > sqlite3.h |
+sqlite3ext.h: .target_source |
+ copy tsrc\sqlite3ext.h . |
+ |
mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c |
- $(BCC) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLINKOPTS) $(NLTLIBPATHS) |
+ $(BCC) $(NO_WARN) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) \ |
+ $(TOP)\tool\mkkeywordhash.c /link $(LDFLAGS) $(NLTLINKOPTS) $(NLTLIBPATHS) |
keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe |
.\mkkeywordhash.exe > keywordhash.h |
@@ -1313,68 +1613,106 @@ keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe |
# Rules to build the extension objects. |
# |
icu.lo: $(TOP)\ext\icu\icu.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c |
fts2.lo: $(TOP)\ext\fts2\fts2.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2.c |
fts2_hash.lo: $(TOP)\ext\fts2\fts2_hash.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_hash.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_hash.c |
fts2_icu.lo: $(TOP)\ext\fts2\fts2_icu.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_icu.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_icu.c |
fts2_porter.lo: $(TOP)\ext\fts2\fts2_porter.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_porter.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_porter.c |
fts2_tokenizer.lo: $(TOP)\ext\fts2\fts2_tokenizer.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer.c |
fts2_tokenizer1.lo: $(TOP)\ext\fts2\fts2_tokenizer1.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer1.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer1.c |
fts3.lo: $(TOP)\ext\fts3\fts3.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c |
fts3_aux.lo: $(TOP)\ext\fts3\fts3_aux.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c |
fts3_expr.lo: $(TOP)\ext\fts3\fts3_expr.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c |
fts3_hash.lo: $(TOP)\ext\fts3\fts3_hash.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c |
fts3_icu.lo: $(TOP)\ext\fts3\fts3_icu.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c |
fts3_snippet.lo: $(TOP)\ext\fts3\fts3_snippet.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c |
fts3_porter.lo: $(TOP)\ext\fts3\fts3_porter.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c |
fts3_tokenizer.lo: $(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c |
fts3_tokenizer1.lo: $(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c |
fts3_tokenize_vtab.lo: $(TOP)\ext\fts3\fts3_tokenize_vtab.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenize_vtab.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenize_vtab.c |
fts3_unicode.lo: $(TOP)\ext\fts3\fts3_unicode.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c |
fts3_unicode2.lo: $(TOP)\ext\fts3\fts3_unicode2.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c |
fts3_write.lo: $(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c |
rtree.lo: $(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR) |
- $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c |
- |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c |
+ |
+# FTS5 things |
+# |
+FTS5_SRC = \ |
+ $(TOP)\ext\fts5\fts5.h \ |
+ $(TOP)\ext\fts5\fts5Int.h \ |
+ $(TOP)\ext\fts5\fts5_aux.c \ |
+ $(TOP)\ext\fts5\fts5_buffer.c \ |
+ $(TOP)\ext\fts5\fts5_main.c \ |
+ $(TOP)\ext\fts5\fts5_config.c \ |
+ $(TOP)\ext\fts5\fts5_expr.c \ |
+ $(TOP)\ext\fts5\fts5_hash.c \ |
+ $(TOP)\ext\fts5\fts5_index.c \ |
+ fts5parse.c fts5parse.h \ |
+ $(TOP)\ext\fts5\fts5_storage.c \ |
+ $(TOP)\ext\fts5\fts5_tokenize.c \ |
+ $(TOP)\ext\fts5\fts5_unicode2.c \ |
+ $(TOP)\ext\fts5\fts5_varint.c \ |
+ $(TOP)\ext\fts5\fts5_vocab.c |
+ |
+fts5parse.c: $(TOP)\ext\fts5\fts5parse.y lemon.exe |
+ copy $(TOP)\ext\fts5\fts5parse.y . |
+ del /Q fts5parse.h 2>NUL |
+ .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) fts5parse.y |
+ |
+fts5parse.h: fts5parse.c |
+ |
+fts5.c: $(FTS5_SRC) |
+ $(TCLSH_CMD) $(TOP)\ext\fts5\tool\mkfts5c.tcl |
+ copy $(TOP)\ext\fts5\fts5.h . |
+ |
+fts5.lo: fts5.c $(HDR) $(EXTHDR) |
+ $(LTCOMPILE) $(CORE_COMPILE_OPTS) $(NO_WARN) -DSQLITE_CORE -c fts5.c |
+ |
+fts5_ext.lo: fts5.c $(HDR) $(EXTHDR) |
+ $(LTCOMPILE) $(NO_WARN) -c fts5.c |
+ |
+fts5.dll: fts5_ext.lo |
+ $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ fts5_ext.lo |
# Rules to build the 'testfixture' application. |
# |
@@ -1384,9 +1722,10 @@ rtree.lo: $(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR) |
# hidden when the library is built via the amalgamation). |
# |
TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 |
-TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE |
+TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" |
+TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN) |
-TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2) libsqlite3.lib |
+TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2) $(SHELL_CORE_DEP) |
TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C) |
!IF $(USE_AMALGAMATION)==0 |
TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0) |
@@ -1398,105 +1737,133 @@ testfixture.exe: $(TESTFIXTURE_SRC) $(LIBRESOBJS) $(HDR) |
$(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \ |
-DBUILD_sqlite -I$(TCLINCDIR) \ |
$(TESTFIXTURE_SRC) \ |
- /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
+ /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
extensiontest: testfixture.exe testloadext.dll |
- .\testfixture.exe $(TOP)\test\loadext.test |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\loadext.test $(TESTOPTS) |
-fulltest: testfixture.exe sqlite3.exe |
- .\testfixture.exe $(TOP)\test\all.test |
+fulltest: $(TESTPROGS) fuzztest |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\all.test $(TESTOPTS) |
-soaktest: testfixture.exe sqlite3.exe |
- .\testfixture.exe $(TOP)\test\all.test -soak=1 |
+soaktest: $(TESTPROGS) |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\all.test -soak=1 $(TESTOPTS) |
-fulltestonly: testfixture.exe sqlite3.exe |
+fulltestonly: $(TESTPROGS) fuzztest |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
.\testfixture.exe $(TOP)\test\full.test |
queryplantest: testfixture.exe sqlite3.exe |
- .\testfixture.exe $(TOP)\test\permutations.test queryplanner |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\permutations.test queryplanner $(TESTOPTS) |
+ |
+fuzztest: fuzzcheck.exe |
+ .\fuzzcheck.exe $(FUZZDATA) |
+ |
+fastfuzztest: fuzzcheck.exe |
+ .\fuzzcheck.exe --limit-mem 100M $(FUZZDATA) |
+ |
+# Minimal testing that runs in less than 3 minutes (on a fast machine) |
+# |
+quicktest: testfixture.exe |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\extraquick.test $(TESTOPTS) |
+ |
+# This is the common case. Run many tests that do not take too long, |
+# including fuzzcheck, sqlite3_analyzer, and sqldiff tests. |
+# |
+test: $(TESTPROGS) fastfuzztest |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\veryquick.test $(TESTOPTS) |
-test: testfixture.exe sqlite3.exe |
- .\testfixture.exe $(TOP)\test\veryquick.test |
+smoketest: $(TESTPROGS) |
+ @set PATH=$(LIBTCLPATH);$(PATH) |
+ .\testfixture.exe $(TOP)\test\main.test $(TESTOPTS) |
-sqlite3_analyzer.c: $(SQLITE3C) $(TOP)\src\test_stat.c $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl |
- copy $(SQLITE3C) + $(TOP)\src\test_stat.c + $(TOP)\src\tclsqlite.c $@ |
+sqlite3_analyzer.c: $(SQLITE3C) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl |
+ echo #define TCLSH 2 > $@ |
+ echo #define SQLITE_ENABLE_DBSTAT_VTAB 1 >> $@ |
+ copy $@ + $(SQLITE3C) + $(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 >> $@ |
+ $(TCLSH_CMD) $(TOP)\tool\tostr.tcl $(TOP)\tool\spaceanal.tcl >> $@ |
echo ; return zMainloop; } >> $@ |
sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS) |
- $(LTLINK) -DBUILD_sqlite -DTCLSH=2 -I$(TCLINCDIR) sqlite3_analyzer.c \ |
- /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
+ $(LTLINK) $(NO_WARN) -DBUILD_sqlite -I$(TCLINCDIR) sqlite3_analyzer.c \ |
+ /link $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
testloadext.lo: $(TOP)\src\test_loadext.c |
- $(LTCOMPILE) -c $(TOP)\src\test_loadext.c |
+ $(LTCOMPILE) $(NO_WARN) -c $(TOP)\src\test_loadext.c |
testloadext.dll: testloadext.lo |
$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /OUT:$@ testloadext.lo |
showdb.exe: $(TOP)\tool\showdb.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\tool\showdb.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\tool\showdb.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
showstat4.exe: $(TOP)\tool\showstat4.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\tool\showstat4.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\tool\showstat4.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
showjournal.exe: $(TOP)\tool\showjournal.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\tool\showjournal.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\tool\showjournal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
showwal.exe: $(TOP)\tool\showwal.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\tool\showwal.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\tool\showwal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
rollback-test.exe: $(TOP)\tool\rollback-test.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\tool\rollback-test.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\tool\rollback-test.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
LogEst.exe: $(TOP)\tool\logest.c sqlite3.h |
- $(LTLINK) -Fe$@ $(TOP)\tool\LogEst.c |
+ $(LTLINK) $(NO_WARN) -Fe$@ $(TOP)\tool\LogEst.c /link $(LDFLAGS) $(LTLINKOPTS) |
wordcount.exe: $(TOP)\test\wordcount.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\test\wordcount.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\test\wordcount.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
speedtest1.exe: $(TOP)\test\speedtest1.c $(SQLITE3C) |
- $(LTLINK) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
- $(TOP)\test\speedtest1.c $(SQLITE3C) |
+ $(LTLINK) $(NO_WARN) -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \ |
+ $(TOP)\test\speedtest1.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) |
clean: |
- del /Q *.lo *.ilk *.lib *.obj *.pdb sqlite3.exe libsqlite3.lib |
- del /Q *.cod *.da *.bb *.bbg gmon.out |
- del /Q sqlite3.h opcodes.c opcodes.h |
- del /Q lemon.* lempar.c parse.* |
- del /Q mkkeywordhash.* keywordhash.h |
- del /Q notasharedlib.* |
- -rmdir /Q/S .deps |
- -rmdir /Q/S .libs |
- -rmdir /Q/S quota2a |
- -rmdir /Q/S quota2b |
- -rmdir /Q/S quota2c |
- -rmdir /Q/S tsrc |
- del /Q .target_source |
- del /Q tclsqlite3.exe tclsqlite3.exp |
- del /Q testloadext.dll testloadext.exp |
- del /Q testfixture.exe testfixture.exp test.db |
- del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe |
- del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe |
- del /Q wordcount.exe |
- del /Q sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def |
- del /Q sqlite3.c sqlite3-*.c |
- del /Q sqlite3rc.h |
- del /Q shell.c sqlite3ext.h |
- del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c |
- del /Q sqlite-*-output.vsix |
- del /Q mptester.exe |
+ del /Q *.exp *.lo *.ilk *.lib *.obj *.ncb *.pdb *.sdf *.suo 2>NUL |
+ del /Q *.bsc *.cod *.da *.bb *.bbg gmon.out 2>NUL |
+ del /Q sqlite3.h opcodes.c opcodes.h 2>NUL |
+ del /Q lemon.* lempar.c parse.* 2>NUL |
+ del /Q mkkeywordhash.* keywordhash.h 2>NUL |
+ del /Q notasharedlib.* 2>NUL |
+ -rmdir /Q/S .deps 2>NUL |
+ -rmdir /Q/S .libs 2>NUL |
+ -rmdir /Q/S quota2a 2>NUL |
+ -rmdir /Q/S quota2b 2>NUL |
+ -rmdir /Q/S quota2c 2>NUL |
+ -rmdir /Q/S tsrc 2>NUL |
+ del /Q .target_source 2>NUL |
+ del /Q tclsqlite3.exe 2>NUL |
+ del /Q testloadext.dll 2>NUL |
+ del /Q testfixture.exe test.db 2>NUL |
+ del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL |
+ del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL |
+ del /Q mptester.exe wordcount.exe 2>NUL |
+ del /Q sqlite3.exe sqlite3.dll sqlite3.def 2>NUL |
+ del /Q sqlite3.c sqlite3-*.c 2>NUL |
+ del /Q sqlite3rc.h 2>NUL |
+ del /Q shell.c sqlite3ext.h 2>NUL |
+ del /Q sqlite3_analyzer.exe sqlite3_analyzer.c 2>NUL |
+ del /Q sqlite-*-output.vsix 2>NUL |
+ del /Q fuzzershell.exe fuzzcheck.exe sqldiff.exe 2>NUL |
+ del /Q fts5.* fts5parse.* 2>NUL |
# Dynamic link library section. |
# |
@@ -1505,8 +1872,8 @@ dll: sqlite3.dll |
sqlite3.def: libsqlite3.lib |
echo EXPORTS > sqlite3.def |
dumpbin /all libsqlite3.lib \ |
- | $(NAWK) "/ 1 _?sqlite3_/ { sub(/^.* _?/,\"\");print }" \ |
+ | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3_.*)$$" \1 \ |
| sort >> sqlite3.def |
-sqlite3.dll: $(LIBOBJ) $(LIBRESOBJS) sqlite3.def |
- $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:sqlite3.def /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |
+sqlite3.dll: $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP) |
+ $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) |