mirror of
https://github.com/sqlite/sqlite.git
synced 2025-06-03 09:42:06 +03:00
Makefile changes to support building winsqlite3.dll using STDCALL rather than CDECL.
FossilOrigin-Name: 5e892d60935e5c82234d1bfaef4c5026061acceb
This commit is contained in:
commit
5a0da94302
137
Makefile.msc
137
Makefile.msc
@ -31,6 +31,13 @@ USE_FULLWARN = 0
|
|||||||
USE_RUNTIME_CHECKS = 0
|
USE_RUNTIME_CHECKS = 0
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
# Set this non-0 to create a SQLite amalgamation file that excludes the
|
||||||
|
# various built-in extensions.
|
||||||
|
#
|
||||||
|
!IFNDEF MINIMAL_AMALGAMATION
|
||||||
|
MINIMAL_AMALGAMATION = 0
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
# Set this non-0 to use "stdcall" calling convention for the core library
|
# Set this non-0 to use "stdcall" calling convention for the core library
|
||||||
# and shell executable.
|
# and shell executable.
|
||||||
#
|
#
|
||||||
@ -270,12 +277,39 @@ SQLITE3EXEPDB = /pdb:sqlite3sh.pdb
|
|||||||
!ENDIF
|
!ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
# <<mark>>
|
||||||
|
# These are the names of the customized Tcl header files used by various parts
|
||||||
|
# of this makefile when the stdcall calling convention is in use. It is not
|
||||||
|
# used for any other purpose.
|
||||||
|
#
|
||||||
|
!IFNDEF SQLITETCLH
|
||||||
|
SQLITETCLH = sqlite_tcl.h
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
!IFNDEF SQLITETCLDECLSH
|
||||||
|
SQLITETCLDECLSH = sqlite_tclDecls.h
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# These are the additional targets that the targets that integrate with the
|
||||||
|
# Tcl library should depend on when compiling, etc.
|
||||||
|
#
|
||||||
|
!IFNDEF SQLITE_TCL_DEP
|
||||||
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
SQLITE_TCL_DEP = $(SQLITETCLDECLSH) $(SQLITETCLH)
|
||||||
|
!ELSE
|
||||||
|
SQLITE_TCL_DEP =
|
||||||
|
!ENDIF
|
||||||
|
!ENDIF
|
||||||
|
# <</mark>>
|
||||||
|
|
||||||
# These are the "standard" SQLite compilation options used when compiling for
|
# These are the "standard" SQLite compilation options used when compiling for
|
||||||
# the Windows platform.
|
# the Windows platform.
|
||||||
#
|
#
|
||||||
!IFNDEF OPT_FEATURE_FLAGS
|
!IFNDEF OPT_FEATURE_FLAGS
|
||||||
|
!IF $(MINIMAL_AMALGAMATION)==0
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
|
||||||
|
!ENDIF
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
@ -471,20 +505,32 @@ RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src $(RCOPTS) $(RCCOPTS)
|
|||||||
#
|
#
|
||||||
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
!IF "$(PLATFORM)"=="x86"
|
!IF "$(PLATFORM)"=="x86"
|
||||||
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
|
# <<mark>>
|
||||||
|
TEST_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall -DINCLUDE_SQLITE_TCL_H=1 -DSQLITE_TCLAPI=__cdecl
|
||||||
|
# <</mark>>
|
||||||
!ELSE
|
!ELSE
|
||||||
!IFNDEF PLATFORM
|
!IFNDEF PLATFORM
|
||||||
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
|
# <<mark>>
|
||||||
|
TEST_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall -DINCLUDE_SQLITE_TCL_H=1 -DSQLITE_TCLAPI=__cdecl
|
||||||
|
# <</mark>>
|
||||||
!ELSE
|
!ELSE
|
||||||
CORE_CCONV_OPTS =
|
CORE_CCONV_OPTS =
|
||||||
SHELL_CCONV_OPTS =
|
SHELL_CCONV_OPTS =
|
||||||
|
# <<mark>>
|
||||||
|
TEST_CCONV_OPTS =
|
||||||
|
# <</mark>>
|
||||||
!ENDIF
|
!ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
!ELSE
|
!ELSE
|
||||||
CORE_CCONV_OPTS =
|
CORE_CCONV_OPTS =
|
||||||
SHELL_CCONV_OPTS =
|
SHELL_CCONV_OPTS =
|
||||||
|
# <<mark>>
|
||||||
|
TEST_CCONV_OPTS =
|
||||||
|
# <</mark>>
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
# These are additional compiler options used for the core library.
|
# These are additional compiler options used for the core library.
|
||||||
@ -637,12 +683,35 @@ RCC = $(RCC) -I$(TOP)\ext\session
|
|||||||
# options are necessary in order to allow debugging symbols to
|
# options are necessary in order to allow debugging symbols to
|
||||||
# work correctly with Visual Studio when using the amalgamation.
|
# work correctly with Visual Studio when using the amalgamation.
|
||||||
#
|
#
|
||||||
|
!IFNDEF MKSQLITE3C_TOOL
|
||||||
|
!IF $(MINIMAL_AMALGAMATION)!=0
|
||||||
|
MKSQLITE3C_TOOL = $(TOP)\tool\mksqlite3c-noext.tcl
|
||||||
|
!ELSE
|
||||||
|
MKSQLITE3C_TOOL = $(TOP)\tool\mksqlite3c.tcl
|
||||||
|
!ENDIF
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
!IFNDEF MKSQLITE3C_ARGS
|
!IFNDEF MKSQLITE3C_ARGS
|
||||||
!IF $(DEBUG)>1
|
!IF $(DEBUG)>1
|
||||||
MKSQLITE3C_ARGS = --linemacros
|
MKSQLITE3C_ARGS = --linemacros
|
||||||
!ELSE
|
!ELSE
|
||||||
MKSQLITE3C_ARGS =
|
MKSQLITE3C_ARGS =
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
MKSQLITE3C_ARGS = $(MKSQLITE3C_ARGS) --useapicall
|
||||||
|
!ENDIF
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# The mksqlite3h.tcl script accepts some options on the command line.
|
||||||
|
# When compiling with stdcall support, some of these options are
|
||||||
|
# necessary.
|
||||||
|
#
|
||||||
|
!IFNDEF MKSQLITE3H_ARGS
|
||||||
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
MKSQLITE3H_ARGS = --useapicall
|
||||||
|
!ELSE
|
||||||
|
MKSQLITE3H_ARGS =
|
||||||
|
!ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
# <</mark>>
|
# <</mark>>
|
||||||
|
|
||||||
@ -1246,6 +1315,16 @@ SRC11 = \
|
|||||||
parse.h \
|
parse.h \
|
||||||
$(SQLITE3H)
|
$(SQLITE3H)
|
||||||
|
|
||||||
|
# Generated Tcl header files
|
||||||
|
#
|
||||||
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
SRC12 = \
|
||||||
|
$(SQLITETCLH) \
|
||||||
|
$(SQLITETCLDECLSH)
|
||||||
|
!ELSE
|
||||||
|
SRC12 =
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
# All source code files.
|
# All source code files.
|
||||||
#
|
#
|
||||||
SRC = $(SRC00) $(SRC01) $(SRC02) $(SRC03) $(SRC04) $(SRC05) $(SRC06) $(SRC07) $(SRC08) $(SRC09) $(SRC10) $(SRC11)
|
SRC = $(SRC00) $(SRC01) $(SRC02) $(SRC03) $(SRC04) $(SRC05) $(SRC06) $(SRC07) $(SRC08) $(SRC09) $(SRC10) $(SRC11)
|
||||||
@ -1353,7 +1432,7 @@ HDR = \
|
|||||||
parse.h \
|
parse.h \
|
||||||
$(TOP)\src\pragma.h \
|
$(TOP)\src\pragma.h \
|
||||||
$(SQLITE3H) \
|
$(SQLITE3H) \
|
||||||
$(TOP)\src\sqlite3ext.h \
|
sqlite3ext.h \
|
||||||
$(TOP)\src\sqliteInt.h \
|
$(TOP)\src\sqliteInt.h \
|
||||||
$(TOP)\src\sqliteLimit.h \
|
$(TOP)\src\sqliteLimit.h \
|
||||||
$(TOP)\src\vdbe.h \
|
$(TOP)\src\vdbe.h \
|
||||||
@ -1511,7 +1590,7 @@ mptest: mptester.exe
|
|||||||
# files are automatically generated. This target takes care of
|
# files are automatically generated. This target takes care of
|
||||||
# all that automatic generation.
|
# all that automatic generation.
|
||||||
#
|
#
|
||||||
.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl fts5.c
|
.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl fts5.c $(SQLITE_TCL_DEP)
|
||||||
-rmdir /Q/S tsrc 2>NUL
|
-rmdir /Q/S tsrc 2>NUL
|
||||||
-mkdir tsrc
|
-mkdir tsrc
|
||||||
for %i in ($(SRC00)) do copy /Y %i tsrc
|
for %i in ($(SRC00)) do copy /Y %i tsrc
|
||||||
@ -1526,6 +1605,7 @@ mptest: mptester.exe
|
|||||||
for %i in ($(SRC09)) do copy /Y %i tsrc
|
for %i in ($(SRC09)) do copy /Y %i tsrc
|
||||||
for %i in ($(SRC10)) do copy /Y %i tsrc
|
for %i in ($(SRC10)) do copy /Y %i tsrc
|
||||||
for %i in ($(SRC11)) do copy /Y %i tsrc
|
for %i in ($(SRC11)) do copy /Y %i tsrc
|
||||||
|
for %i in ($(SRC12)) do copy /Y %i tsrc
|
||||||
copy /Y fts5.c tsrc
|
copy /Y fts5.c tsrc
|
||||||
copy /Y fts5.h tsrc
|
copy /Y fts5.h tsrc
|
||||||
del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL
|
del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL
|
||||||
@ -1533,8 +1613,8 @@ mptest: mptester.exe
|
|||||||
move vdbe.new tsrc\vdbe.c
|
move vdbe.new tsrc\vdbe.c
|
||||||
echo > .target_source
|
echo > .target_source
|
||||||
|
|
||||||
sqlite3.c: .target_source sqlite3ext.h $(TOP)\tool\mksqlite3c.tcl
|
sqlite3.c: .target_source sqlite3ext.h $(MKSQLITE3C_TOOL)
|
||||||
$(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl $(MKSQLITE3C_ARGS)
|
$(TCLSH_CMD) $(MKSQLITE3C_TOOL) $(MKSQLITE3C_ARGS)
|
||||||
copy tsrc\shell.c .
|
copy tsrc\shell.c .
|
||||||
copy $(TOP)\ext\session\sqlite3session.h .
|
copy $(TOP)\ext\session\sqlite3session.h .
|
||||||
|
|
||||||
@ -1807,10 +1887,10 @@ wherecode.lo: $(TOP)\src\wherecode.c $(HDR)
|
|||||||
whereexpr.lo: $(TOP)\src\whereexpr.c $(HDR)
|
whereexpr.lo: $(TOP)\src\whereexpr.c $(HDR)
|
||||||
$(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\whereexpr.c
|
$(LTCOMPILE) $(CORE_COMPILE_OPTS) -c $(TOP)\src\whereexpr.c
|
||||||
|
|
||||||
tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR)
|
tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR) $(SQLITE_TCL_DEP)
|
||||||
$(LTCOMPILE) $(NO_WARN) -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)
|
tclsqlite-shell.lo: $(TOP)\src\tclsqlite.c $(HDR) $(SQLITE_TCL_DEP)
|
||||||
$(LTCOMPILE) $(NO_WARN) -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 $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
|
tclsqlite3.exe: tclsqlite-shell.lo $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
|
||||||
@ -1836,10 +1916,16 @@ parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\tool\addopcodes.tcl
|
|||||||
$(TCLSH_CMD) $(TOP)\tool\addopcodes.tcl parse.h.temp > parse.h
|
$(TCLSH_CMD) $(TOP)\tool\addopcodes.tcl parse.h.temp > parse.h
|
||||||
|
|
||||||
$(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
|
$(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
|
||||||
$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > $(SQLITE3H)
|
$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > $(SQLITE3H) $(MKSQLITE3H_ARGS)
|
||||||
|
|
||||||
sqlite3ext.h: .target_source
|
sqlite3ext.h: .target_source
|
||||||
copy tsrc\sqlite3ext.h .
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
type tsrc\sqlite3ext.h | $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*\)" "(SQLITE_CALLBACK *)" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*" "(SQLITE_APICALL *" > sqlite3ext.h
|
||||||
|
copy /Y sqlite3ext.h tsrc\sqlite3ext.h
|
||||||
|
!ELSE
|
||||||
|
copy /Y tsrc\sqlite3ext.h sqlite3ext.h
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c
|
mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c
|
||||||
$(BCC) $(NO_WARN) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) \
|
$(BCC) $(NO_WARN) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) \
|
||||||
@ -1972,6 +2058,7 @@ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE=""
|
|||||||
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
|
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CORE $(NO_WARN)
|
||||||
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
|
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
|
||||||
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
|
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_DEFAULT_PAGE_SIZE=1024
|
||||||
|
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) $(TEST_CCONV_OPTS)
|
||||||
|
|
||||||
TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
|
TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
|
||||||
TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
|
TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
|
||||||
@ -1981,7 +2068,27 @@ TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0)
|
|||||||
TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1)
|
TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1)
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
testfixture.exe: $(TESTFIXTURE_SRC) $(SQLITE3H) $(LIBRESOBJS) $(HDR)
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
|
sqlite_tclDecls.h:
|
||||||
|
echo #ifndef SQLITE_TCLAPI > $(SQLITETCLDECLSH)
|
||||||
|
echo # define SQLITE_TCLAPI >> $(SQLITETCLDECLSH)
|
||||||
|
echo #endif >> $(SQLITETCLDECLSH)
|
||||||
|
type "$(TCLINCDIR)\tclDecls.h" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "^(EXTERN(?: CONST\d+?)?\s+?[^\(]*?\s+?)Tcl_" "\1 SQLITE_TCLAPI Tcl_" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "^(EXTERN\s+?(?:void|VOID)\s+?)TclFreeObj" "\1 SQLITE_TCLAPI TclFreeObj" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*tcl_" "(SQLITE_TCLAPI *tcl_" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*tclFreeObj" "(SQLITE_TCLAPI *tclFreeObj" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "\(\*" "(SQLITE_TCLAPI *" >> $(SQLITETCLDECLSH)
|
||||||
|
|
||||||
|
sqlite_tcl.h:
|
||||||
|
type "$(TCLINCDIR)\tcl.h" | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact tclDecls.h sqlite_tclDecls.h \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl regsub "typedef (.*?)\(Tcl_" "typedef \1 (SQLITE_TCLAPI Tcl_" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "void (*freeProc)" "void (SQLITE_TCLAPI *freeProc)" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "Tcl_HashEntry *(*findProc)" "Tcl_HashEntry *(SQLITE_TCLAPI *findProc)" \
|
||||||
|
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact "Tcl_HashEntry *(*createProc)" "Tcl_HashEntry *(SQLITE_TCLAPI *createProc)" >> $(SQLITETCLH)
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
testfixture.exe: $(TESTFIXTURE_SRC) $(SQLITE3H) $(LIBRESOBJS) $(HDR) $(SQLITE_TCL_DEP)
|
||||||
$(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \
|
$(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \
|
||||||
-DBUILD_sqlite -I$(TCLINCDIR) \
|
-DBUILD_sqlite -I$(TCLINCDIR) \
|
||||||
$(TESTFIXTURE_SRC) \
|
$(TESTFIXTURE_SRC) \
|
||||||
@ -2030,7 +2137,7 @@ smoketest: $(TESTPROGS)
|
|||||||
@set PATH=$(LIBTCLPATH);$(PATH)
|
@set PATH=$(LIBTCLPATH);$(PATH)
|
||||||
.\testfixture.exe $(TOP)\test\main.test $(TESTOPTS)
|
.\testfixture.exe $(TOP)\test\main.test $(TESTOPTS)
|
||||||
|
|
||||||
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl
|
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(SQLITE_TCL_DEP)
|
||||||
echo #define TCLSH 2 > $@
|
echo #define TCLSH 2 > $@
|
||||||
echo #define SQLITE_ENABLE_DBSTAT_VTAB 1 >> $@
|
echo #define SQLITE_ENABLE_DBSTAT_VTAB 1 >> $@
|
||||||
copy $@ + $(SQLITE3C) + $(TOP)\src\tclsqlite.c $@
|
copy $@ + $(SQLITE3C) + $(TOP)\src\tclsqlite.c $@
|
||||||
@ -2110,7 +2217,7 @@ clean:
|
|||||||
-rmdir /Q/S .libs 2>NUL
|
-rmdir /Q/S .libs 2>NUL
|
||||||
-rmdir /Q/S tsrc 2>NUL
|
-rmdir /Q/S tsrc 2>NUL
|
||||||
del /Q .target_source 2>NUL
|
del /Q .target_source 2>NUL
|
||||||
del /Q tclsqlite3.exe 2>NUL
|
del /Q tclsqlite3.exe $(SQLITETCLH) $(SQLITETCLDECLSH) 2>NUL
|
||||||
del /Q testloadext.dll 2>NUL
|
del /Q testloadext.dll 2>NUL
|
||||||
del /Q testfixture.exe test.db 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 LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL
|
||||||
|
@ -31,6 +31,13 @@ USE_FULLWARN = 0
|
|||||||
USE_RUNTIME_CHECKS = 0
|
USE_RUNTIME_CHECKS = 0
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
# Set this non-0 to create a SQLite amalgamation file that excludes the
|
||||||
|
# various built-in extensions.
|
||||||
|
#
|
||||||
|
!IFNDEF MINIMAL_AMALGAMATION
|
||||||
|
MINIMAL_AMALGAMATION = 0
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
# Set this non-0 to use "stdcall" calling convention for the core library
|
# Set this non-0 to use "stdcall" calling convention for the core library
|
||||||
# and shell executable.
|
# and shell executable.
|
||||||
#
|
#
|
||||||
@ -255,12 +262,15 @@ SQLITE3EXEPDB = /pdb:sqlite3sh.pdb
|
|||||||
!ENDIF
|
!ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
|
||||||
# These are the "standard" SQLite compilation options used when compiling for
|
# These are the "standard" SQLite compilation options used when compiling for
|
||||||
# the Windows platform.
|
# the Windows platform.
|
||||||
#
|
#
|
||||||
!IFNDEF OPT_FEATURE_FLAGS
|
!IFNDEF OPT_FEATURE_FLAGS
|
||||||
|
!IF $(MINIMAL_AMALGAMATION)==0
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
|
||||||
|
!ENDIF
|
||||||
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
|
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
@ -456,12 +466,12 @@ RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) $(RCOPTS) $(RCCOPTS)
|
|||||||
#
|
#
|
||||||
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
|
||||||
!IF "$(PLATFORM)"=="x86"
|
!IF "$(PLATFORM)"=="x86"
|
||||||
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
!ELSE
|
!ELSE
|
||||||
!IFNDEF PLATFORM
|
!IFNDEF PLATFORM
|
||||||
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_STDCALL=__stdcall
|
SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall
|
||||||
!ELSE
|
!ELSE
|
||||||
CORE_CCONV_OPTS =
|
CORE_CCONV_OPTS =
|
||||||
SHELL_CCONV_OPTS =
|
SHELL_CCONV_OPTS =
|
||||||
|
23
manifest
23
manifest
@ -1,8 +1,8 @@
|
|||||||
C Fix\sspeedtest1.c\sso\sthat\sit\sworks\swith\sSQLITE_OMIT_DEPRECATED.\nAdd\sthe\s--lean\sand\s--cachesize\soptions\sto\sspeed-check.sh.
|
C Makefile\schanges\sto\ssupport\sbuilding\swinsqlite3.dll\susing\sSTDCALL\srather\sthan\sCDECL.
|
||||||
D 2016-09-21T23:58:49.145
|
D 2016-09-22T18:46:38.171
|
||||||
F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
|
F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc e1aa788e84f926e42239ee167c53f785bedacacd
|
F Makefile.msc 5151cc64c4c05f3455f4f692ad11410a810d937f
|
||||||
F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
|
F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
|
||||||
F VERSION 25e2e333adeff5965520bc8db999c658898c972d
|
F VERSION 25e2e333adeff5965520bc8db999c658898c972d
|
||||||
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
||||||
@ -11,7 +11,7 @@ F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
|
|||||||
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
|
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
|
||||||
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
|
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
|
||||||
F autoconf/Makefile.am 1a47d071e3d5435f8f7ebff7eb6703848bbd65d4
|
F autoconf/Makefile.am 1a47d071e3d5435f8f7ebff7eb6703848bbd65d4
|
||||||
F autoconf/Makefile.msc a535edafb6165629715b0ba8e21c98ab80732e80
|
F autoconf/Makefile.msc b6d27f735911fd09a589d3c966936c47a5850c17
|
||||||
F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7
|
F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7
|
||||||
F autoconf/README.txt 4f04b0819303aabaa35fff5f7b257fb0c1ef95f1
|
F autoconf/README.txt 4f04b0819303aabaa35fff5f7b257fb0c1ef95f1
|
||||||
F autoconf/configure.ac cacf2616abf6e4a569bde2ef365c143caeec40bc
|
F autoconf/configure.ac cacf2616abf6e4a569bde2ef365c143caeec40bc
|
||||||
@ -1465,9 +1465,9 @@ F tool/mkopcodeh.tcl a01d2c1d8a6205b03fc635adf3735b4c523befd3
|
|||||||
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
|
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
|
||||||
F tool/mkpragmatab.tcl f0d5bb266d1d388cf86fce5ba01a891e95d72d41
|
F tool/mkpragmatab.tcl f0d5bb266d1d388cf86fce5ba01a891e95d72d41
|
||||||
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
|
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
|
||||||
F tool/mksqlite3c-noext.tcl aa58ea3be311c81821c2cd3209f55e46b07ab656
|
F tool/mksqlite3c-noext.tcl fef88397668ae83166735c41af99d79f56afaabb
|
||||||
F tool/mksqlite3c.tcl 63af8429841f08552e6da1d93b3dee4a93ff8071
|
F tool/mksqlite3c.tcl 06b2e6a0f21cc0a5d70fbbd136b3e0a96470645e
|
||||||
F tool/mksqlite3h.tcl e7b106fc4f29fbc258e8ba9b88d9108332ea2ade
|
F tool/mksqlite3h.tcl c006c4e5da57c649b24b689511dcd270dd7b0249
|
||||||
F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
|
F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
|
||||||
F tool/mkvsix.tcl 4abcaf3267171b2faadaf9b82a0dfbaa6e98f8b7
|
F tool/mkvsix.tcl 4abcaf3267171b2faadaf9b82a0dfbaa6e98f8b7
|
||||||
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
|
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
|
||||||
@ -1525,7 +1525,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 0741812d7fcd558479e4849fbb3ba8d03738d018
|
P 7785b3a25778cc19861c01f4148f72e0f724f55d 20f3c7436f6a8a7bab3968adc010c7c8325e4618
|
||||||
R cbecff860fb3e1e414a3a9d25ae007ae
|
R 72cc550b3f8e650b8595781f4d1f9482
|
||||||
U drh
|
T +closed 20f3c7436f6a8a7bab3968adc010c7c8325e4618
|
||||||
Z 82b45269186e0ae095502a5cdd8c1032
|
U mistachkin
|
||||||
|
Z ffa47cef2805fb0d684496ef32d8ed25
|
||||||
|
@ -1 +1 @@
|
|||||||
7785b3a25778cc19861c01f4148f72e0f724f55d
|
5e892d60935e5c82234d1bfaef4c5026061acceb
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/tclsh
|
#!/usr/bin/tclsh
|
||||||
#
|
#
|
||||||
# To build a single huge source file holding all of SQLite (or at
|
# To build a single huge source file holding all of SQLite (or at
|
||||||
# least the core components - the test harness, shell, and TCL
|
# least the core components - the test harness, shell, and TCL
|
||||||
# interface are omitted.) first do
|
# interface are omitted.) first do
|
||||||
#
|
#
|
||||||
# make target_source
|
# make target_source
|
||||||
@ -11,7 +11,7 @@
|
|||||||
# there and will not work if they are not found.) There are a few
|
# there and will not work if they are not found.) There are a few
|
||||||
# generated C code files that are also added to the tsrc directory.
|
# generated C code files that are also added to the tsrc directory.
|
||||||
# For example, the "parse.c" and "parse.h" files to implement the
|
# For example, the "parse.c" and "parse.h" files to implement the
|
||||||
# the parser are derived from "parse.y" using lemon. And the
|
# the parser are derived from "parse.y" using lemon. And the
|
||||||
# "keywordhash.h" files is generated by a program named "mkkeywordhash".
|
# "keywordhash.h" files is generated by a program named "mkkeywordhash".
|
||||||
#
|
#
|
||||||
# After the "tsrc" directory has been created and populated, run
|
# After the "tsrc" directory has been created and populated, run
|
||||||
@ -26,15 +26,20 @@
|
|||||||
# from in this file. The version number is needed to generate the header
|
# from in this file. The version number is needed to generate the header
|
||||||
# comment of the amalgamation.
|
# comment of the amalgamation.
|
||||||
#
|
#
|
||||||
if {[lsearch $argv --nostatic]>=0} {
|
set addstatic 1
|
||||||
set addstatic 0
|
set linemacros 0
|
||||||
} else {
|
set useapicall 0
|
||||||
set addstatic 1
|
for {set i 0} {$i<[llength $argv]} {incr i} {
|
||||||
}
|
set x [lindex $argv $i]
|
||||||
if {[lsearch $argv --linemacros]>=0} {
|
if {[regexp {^-+nostatic$} $x]} {
|
||||||
set linemacros 1
|
set addstatic 0
|
||||||
} else {
|
} elseif {[regexp {^-+linemacros} $x]} {
|
||||||
set linemacros 0
|
set linemacros 1
|
||||||
|
} elseif {[regexp {^-+useapicall} $x]} {
|
||||||
|
set useapicall 1
|
||||||
|
} else {
|
||||||
|
error "unknown command-line option: $x"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
set in [open tsrc/sqlite3.h]
|
set in [open tsrc/sqlite3.h]
|
||||||
set cnt 0
|
set cnt 0
|
||||||
@ -57,7 +62,7 @@ set today [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S UTC" -gmt 1]
|
|||||||
puts $out [subst \
|
puts $out [subst \
|
||||||
{/******************************************************************************
|
{/******************************************************************************
|
||||||
** This file is an amalgamation of many separate C source files from SQLite
|
** This file is an amalgamation of many separate C source files from SQLite
|
||||||
** version $VERSION. By combining all the individual C code files into this
|
** version $VERSION. By combining all the individual C code files into this
|
||||||
** single large file, the entire code can be compiled as a single translation
|
** single large file, the entire code can be compiled as a single translation
|
||||||
** unit. This allows many compilers to do optimizations that would not be
|
** unit. This allows many compilers to do optimizations that would not be
|
||||||
** possible if the files were compiled separately. Performance improvements
|
** possible if the files were compiled separately. Performance improvements
|
||||||
@ -66,7 +71,7 @@ puts $out [subst \
|
|||||||
**
|
**
|
||||||
** This file is all you need to compile SQLite. To use SQLite in other
|
** This file is all you need to compile SQLite. To use SQLite in other
|
||||||
** programs, you need this file and the "sqlite3.h" header file that defines
|
** programs, you need this file and the "sqlite3.h" header file that defines
|
||||||
** the programming interface to the SQLite library. (If you do not have
|
** the programming interface to the SQLite library. (If you do not have
|
||||||
** the "sqlite3.h" header file at hand, you will find a copy embedded within
|
** the "sqlite3.h" header file at hand, you will find a copy embedded within
|
||||||
** the text of this file. Search for "Begin file sqlite3.h" to find the start
|
** the text of this file. Search for "Begin file sqlite3.h" to find the start
|
||||||
** of the embedded sqlite3.h header file.) Additional code files may be needed
|
** of the embedded sqlite3.h header file.) Additional code files may be needed
|
||||||
@ -83,7 +88,7 @@ if {$addstatic} {
|
|||||||
#endif}
|
#endif}
|
||||||
}
|
}
|
||||||
|
|
||||||
# These are the header files used by SQLite. The first time any of these
|
# These are the header files used by SQLite. The first time any of these
|
||||||
# files are seen in a #include statement in the C code, include the complete
|
# files are seen in a #include statement in the C code, include the complete
|
||||||
# text of the file in-line. The file only needs to be included once.
|
# text of the file in-line. The file only needs to be included once.
|
||||||
#
|
#
|
||||||
@ -104,8 +109,8 @@ foreach hdr {
|
|||||||
parse.h
|
parse.h
|
||||||
pcache.h
|
pcache.h
|
||||||
pragma.h
|
pragma.h
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3.h
|
sqlite3.h
|
||||||
|
sqlite3ext.h
|
||||||
sqliteicu.h
|
sqliteicu.h
|
||||||
sqliteInt.h
|
sqliteInt.h
|
||||||
sqliteLimit.h
|
sqliteLimit.h
|
||||||
@ -155,7 +160,8 @@ proc section_comment {text} {
|
|||||||
# process them appropriately.
|
# process them appropriately.
|
||||||
#
|
#
|
||||||
proc copy_file {filename} {
|
proc copy_file {filename} {
|
||||||
global seen_hdr available_hdr varonly_hdr cdecllist out addstatic linemacros
|
global seen_hdr available_hdr varonly_hdr cdecllist out
|
||||||
|
global addstatic linemacros useapicall
|
||||||
set ln 0
|
set ln 0
|
||||||
set tail [file tail $filename]
|
set tail [file tail $filename]
|
||||||
section_comment "Begin file $tail"
|
section_comment "Begin file $tail"
|
||||||
@ -203,7 +209,8 @@ proc copy_file {filename} {
|
|||||||
puts $out "#if 0"
|
puts $out "#if 0"
|
||||||
} elseif {!$linemacros && [regexp {^#line} $line]} {
|
} elseif {!$linemacros && [regexp {^#line} $line]} {
|
||||||
# Skip #line directives.
|
# Skip #line directives.
|
||||||
} elseif {$addstatic && ![regexp {^(static|typedef)} $line]} {
|
} elseif {$addstatic
|
||||||
|
&& ![regexp {^(static|typedef|SQLITE_PRIVATE)} $line]} {
|
||||||
# Skip adding the SQLITE_PRIVATE or SQLITE_API keyword before
|
# Skip adding the SQLITE_PRIVATE or SQLITE_API keyword before
|
||||||
# functions if this header file does not need it.
|
# functions if this header file does not need it.
|
||||||
if {![info exists varonly_hdr($tail)]
|
if {![info exists varonly_hdr($tail)]
|
||||||
@ -211,18 +218,20 @@ proc copy_file {filename} {
|
|||||||
regsub {^SQLITE_API } $line {} line
|
regsub {^SQLITE_API } $line {} line
|
||||||
# Add the SQLITE_PRIVATE or SQLITE_API keyword before functions.
|
# Add the SQLITE_PRIVATE or SQLITE_API keyword before functions.
|
||||||
# so that linkage can be modified at compile-time.
|
# so that linkage can be modified at compile-time.
|
||||||
if {[regexp {^sqlite3_} $funcname]} {
|
if {[regexp {^sqlite3[a-z]*_} $funcname]} {
|
||||||
set line SQLITE_API
|
set line SQLITE_API
|
||||||
append line " " [string trim $rettype]
|
append line " " [string trim $rettype]
|
||||||
if {[string index $rettype end] ne "*"} {
|
if {[string index $rettype end] ne "*"} {
|
||||||
append line " "
|
append line " "
|
||||||
}
|
}
|
||||||
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
if {$useapicall} {
|
||||||
append line SQLITE_CDECL
|
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
||||||
} else {
|
append line SQLITE_CDECL " "
|
||||||
append line SQLITE_APICALL
|
} else {
|
||||||
|
append line SQLITE_APICALL " "
|
||||||
|
}
|
||||||
}
|
}
|
||||||
append line " " $funcname $rest
|
append line $funcname $rest
|
||||||
puts $out $line
|
puts $out $line
|
||||||
} else {
|
} else {
|
||||||
puts $out "SQLITE_PRIVATE $line"
|
puts $out "SQLITE_PRIVATE $line"
|
||||||
@ -285,6 +294,7 @@ foreach file {
|
|||||||
mutex_w32.c
|
mutex_w32.c
|
||||||
malloc.c
|
malloc.c
|
||||||
printf.c
|
printf.c
|
||||||
|
treeview.c
|
||||||
random.c
|
random.c
|
||||||
threads.c
|
threads.c
|
||||||
utf.c
|
utf.c
|
||||||
@ -313,7 +323,6 @@ foreach file {
|
|||||||
vdbe.c
|
vdbe.c
|
||||||
vdbeblob.c
|
vdbeblob.c
|
||||||
vdbesort.c
|
vdbesort.c
|
||||||
journal.c
|
|
||||||
memjournal.c
|
memjournal.c
|
||||||
|
|
||||||
walker.c
|
walker.c
|
||||||
@ -339,6 +348,8 @@ foreach file {
|
|||||||
update.c
|
update.c
|
||||||
vacuum.c
|
vacuum.c
|
||||||
vtab.c
|
vtab.c
|
||||||
|
wherecode.c
|
||||||
|
whereexpr.c
|
||||||
where.c
|
where.c
|
||||||
|
|
||||||
parse.c
|
parse.c
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/tclsh
|
#!/usr/bin/tclsh
|
||||||
#
|
#
|
||||||
# To build a single huge source file holding all of SQLite (or at
|
# To build a single huge source file holding all of SQLite (or at
|
||||||
# least the core components - the test harness, shell, and TCL
|
# least the core components - the test harness, shell, and TCL
|
||||||
# interface are omitted.) first do
|
# interface are omitted.) first do
|
||||||
#
|
#
|
||||||
# make target_source
|
# make target_source
|
||||||
@ -11,7 +11,7 @@
|
|||||||
# there and will not work if they are not found.) There are a few
|
# there and will not work if they are not found.) There are a few
|
||||||
# generated C code files that are also added to the tsrc directory.
|
# generated C code files that are also added to the tsrc directory.
|
||||||
# For example, the "parse.c" and "parse.h" files to implement the
|
# For example, the "parse.c" and "parse.h" files to implement the
|
||||||
# the parser are derived from "parse.y" using lemon. And the
|
# the parser are derived from "parse.y" using lemon. And the
|
||||||
# "keywordhash.h" files is generated by a program named "mkkeywordhash".
|
# "keywordhash.h" files is generated by a program named "mkkeywordhash".
|
||||||
#
|
#
|
||||||
# After the "tsrc" directory has been created and populated, run
|
# After the "tsrc" directory has been created and populated, run
|
||||||
@ -28,12 +28,15 @@
|
|||||||
#
|
#
|
||||||
set addstatic 1
|
set addstatic 1
|
||||||
set linemacros 0
|
set linemacros 0
|
||||||
|
set useapicall 0
|
||||||
for {set i 0} {$i<[llength $argv]} {incr i} {
|
for {set i 0} {$i<[llength $argv]} {incr i} {
|
||||||
set x [lindex $argv $i]
|
set x [lindex $argv $i]
|
||||||
if {[regexp {^-+nostatic$} $x]} {
|
if {[regexp {^-+nostatic$} $x]} {
|
||||||
set addstatic 0
|
set addstatic 0
|
||||||
} elseif {[regexp {^-+linemacros} $x]} {
|
} elseif {[regexp {^-+linemacros} $x]} {
|
||||||
set linemacros 1
|
set linemacros 1
|
||||||
|
} elseif {[regexp {^-+useapicall} $x]} {
|
||||||
|
set useapicall 1
|
||||||
} else {
|
} else {
|
||||||
error "unknown command-line option: $x"
|
error "unknown command-line option: $x"
|
||||||
}
|
}
|
||||||
@ -59,7 +62,7 @@ set today [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S UTC" -gmt 1]
|
|||||||
puts $out [subst \
|
puts $out [subst \
|
||||||
{/******************************************************************************
|
{/******************************************************************************
|
||||||
** This file is an amalgamation of many separate C source files from SQLite
|
** This file is an amalgamation of many separate C source files from SQLite
|
||||||
** version $VERSION. By combining all the individual C code files into this
|
** version $VERSION. By combining all the individual C code files into this
|
||||||
** single large file, the entire code can be compiled as a single translation
|
** single large file, the entire code can be compiled as a single translation
|
||||||
** unit. This allows many compilers to do optimizations that would not be
|
** unit. This allows many compilers to do optimizations that would not be
|
||||||
** possible if the files were compiled separately. Performance improvements
|
** possible if the files were compiled separately. Performance improvements
|
||||||
@ -68,7 +71,7 @@ puts $out [subst \
|
|||||||
**
|
**
|
||||||
** This file is all you need to compile SQLite. To use SQLite in other
|
** This file is all you need to compile SQLite. To use SQLite in other
|
||||||
** programs, you need this file and the "sqlite3.h" header file that defines
|
** programs, you need this file and the "sqlite3.h" header file that defines
|
||||||
** the programming interface to the SQLite library. (If you do not have
|
** the programming interface to the SQLite library. (If you do not have
|
||||||
** the "sqlite3.h" header file at hand, you will find a copy embedded within
|
** the "sqlite3.h" header file at hand, you will find a copy embedded within
|
||||||
** the text of this file. Search for "Begin file sqlite3.h" to find the start
|
** the text of this file. Search for "Begin file sqlite3.h" to find the start
|
||||||
** of the embedded sqlite3.h header file.) Additional code files may be needed
|
** of the embedded sqlite3.h header file.) Additional code files may be needed
|
||||||
@ -85,7 +88,7 @@ if {$addstatic} {
|
|||||||
#endif}
|
#endif}
|
||||||
}
|
}
|
||||||
|
|
||||||
# These are the header files used by SQLite. The first time any of these
|
# These are the header files used by SQLite. The first time any of these
|
||||||
# files are seen in a #include statement in the C code, include the complete
|
# files are seen in a #include statement in the C code, include the complete
|
||||||
# text of the file in-line. The file only needs to be included once.
|
# text of the file in-line. The file only needs to be included once.
|
||||||
#
|
#
|
||||||
@ -112,7 +115,6 @@ foreach hdr {
|
|||||||
pragma.h
|
pragma.h
|
||||||
rtree.h
|
rtree.h
|
||||||
sqlite3session.h
|
sqlite3session.h
|
||||||
sqlite3ext.h
|
|
||||||
sqlite3.h
|
sqlite3.h
|
||||||
sqlite3ext.h
|
sqlite3ext.h
|
||||||
sqlite3rbu.h
|
sqlite3rbu.h
|
||||||
@ -166,7 +168,8 @@ proc section_comment {text} {
|
|||||||
# process them appropriately.
|
# process them appropriately.
|
||||||
#
|
#
|
||||||
proc copy_file {filename} {
|
proc copy_file {filename} {
|
||||||
global seen_hdr available_hdr varonly_hdr cdecllist out addstatic linemacros
|
global seen_hdr available_hdr varonly_hdr cdecllist out
|
||||||
|
global addstatic linemacros useapicall
|
||||||
set ln 0
|
set ln 0
|
||||||
set tail [file tail $filename]
|
set tail [file tail $filename]
|
||||||
section_comment "Begin file $tail"
|
section_comment "Begin file $tail"
|
||||||
@ -229,12 +232,14 @@ proc copy_file {filename} {
|
|||||||
if {[string index $rettype end] ne "*"} {
|
if {[string index $rettype end] ne "*"} {
|
||||||
append line " "
|
append line " "
|
||||||
}
|
}
|
||||||
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
if {$useapicall} {
|
||||||
append line SQLITE_CDECL
|
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
||||||
} else {
|
append line SQLITE_CDECL " "
|
||||||
append line SQLITE_STDCALL
|
} else {
|
||||||
|
append line SQLITE_APICALL " "
|
||||||
|
}
|
||||||
}
|
}
|
||||||
append line " " $funcname $rest
|
append line $funcname $rest
|
||||||
puts $out $line
|
puts $out $line
|
||||||
} else {
|
} else {
|
||||||
puts $out "SQLITE_PRIVATE $line"
|
puts $out "SQLITE_PRIVATE $line"
|
||||||
|
@ -10,17 +10,19 @@
|
|||||||
#
|
#
|
||||||
# Run this script by specifying the root directory of the source tree
|
# Run this script by specifying the root directory of the source tree
|
||||||
# on the command-line.
|
# on the command-line.
|
||||||
#
|
#
|
||||||
# This script performs processing on src/sqlite.h.in. It:
|
# This script performs processing on src/sqlite.h.in. It:
|
||||||
#
|
#
|
||||||
# 1) Adds SQLITE_EXTERN in front of the declaration of global variables,
|
# 1) Adds SQLITE_EXTERN in front of the declaration of global variables,
|
||||||
# 2) Adds SQLITE_API in front of the declaration of API functions,
|
# 2) Adds SQLITE_API in front of the declaration of API functions,
|
||||||
# 3) Replaces the string --VERS-- with the current library version,
|
# 3) Replaces the string --VERS-- with the current library version,
|
||||||
# formatted as a string (e.g. "3.6.17"), and
|
# formatted as a string (e.g. "3.6.17"), and
|
||||||
# 4) Replaces the string --VERSION-NUMBER-- with current library version,
|
# 4) Replaces the string --VERSION-NUMBER-- with current library version,
|
||||||
# formatted as an integer (e.g. "3006017").
|
# formatted as an integer (e.g. "3006017").
|
||||||
# 5) Replaces the string --SOURCE-ID-- with the date and time and sha1
|
# 5) Replaces the string --SOURCE-ID-- with the date and time and sha1
|
||||||
# hash of the fossil-scm manifest for the source tree.
|
# hash of the fossil-scm manifest for the source tree.
|
||||||
|
# 6) Adds the SQLITE_CALLBACK calling convention macro in front of all
|
||||||
|
# callback declarations.
|
||||||
#
|
#
|
||||||
# This script outputs to stdout.
|
# This script outputs to stdout.
|
||||||
#
|
#
|
||||||
@ -34,6 +36,14 @@
|
|||||||
#
|
#
|
||||||
set TOP [lindex $argv 0]
|
set TOP [lindex $argv 0]
|
||||||
|
|
||||||
|
# Enable use of SQLITE_APICALL macros at the right points?
|
||||||
|
#
|
||||||
|
set useapicall 0
|
||||||
|
|
||||||
|
if {[lsearch -regexp [lrange $argv 1 end] {^-+useapicall}] != -1} {
|
||||||
|
set useapicall 1
|
||||||
|
}
|
||||||
|
|
||||||
# Get the SQLite version number (ex: 3.6.18) from the $TOP/VERSION file.
|
# Get the SQLite version number (ex: 3.6.18) from the $TOP/VERSION file.
|
||||||
#
|
#
|
||||||
set in [open $TOP/VERSION]
|
set in [open $TOP/VERSION]
|
||||||
@ -96,14 +106,14 @@ foreach file $filelist {
|
|||||||
puts "/******** Begin file [file tail $file] *********/"
|
puts "/******** Begin file [file tail $file] *********/"
|
||||||
}
|
}
|
||||||
while {![eof $in]} {
|
while {![eof $in]} {
|
||||||
|
|
||||||
set line [gets $in]
|
set line [gets $in]
|
||||||
|
|
||||||
# File sqlite3rtree.h contains a line "#include <sqlite3.h>". Omit this
|
# File sqlite3rtree.h contains a line "#include <sqlite3.h>". Omit this
|
||||||
# line when copying sqlite3rtree.h into sqlite3.h.
|
# line when copying sqlite3rtree.h into sqlite3.h.
|
||||||
#
|
#
|
||||||
if {[string match {*#include*[<"]sqlite3.h[>"]*} $line]} continue
|
if {[string match {*#include*[<"]sqlite3.h[>"]*} $line]} continue
|
||||||
|
|
||||||
regsub -- --VERS-- $line $zVersion line
|
regsub -- --VERS-- $line $zVersion line
|
||||||
regsub -- --VERSION-NUMBER-- $line $nVersion line
|
regsub -- --VERSION-NUMBER-- $line $nVersion line
|
||||||
regsub -- --SOURCE-ID-- $line "$zDate $zUuid" line
|
regsub -- --SOURCE-ID-- $line "$zDate $zUuid" line
|
||||||
@ -117,14 +127,21 @@ foreach file $filelist {
|
|||||||
if {[string index $rettype end] ne "*"} {
|
if {[string index $rettype end] ne "*"} {
|
||||||
append line " "
|
append line " "
|
||||||
}
|
}
|
||||||
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
if {$useapicall} {
|
||||||
append line SQLITE_CDECL
|
if {[lsearch -exact $cdecllist $funcname] >= 0} {
|
||||||
} else {
|
append line SQLITE_CDECL " "
|
||||||
append line SQLITE_STDCALL
|
} else {
|
||||||
|
append line SQLITE_APICALL " "
|
||||||
|
}
|
||||||
}
|
}
|
||||||
append line " " $funcname $rest
|
append line $funcname $rest
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if {$useapicall} {
|
||||||
|
set line [string map [list (*sqlite3_syscall_ptr) \
|
||||||
|
"(SQLITE_SYSAPI *sqlite3_syscall_ptr)"] $line]
|
||||||
|
regsub {\(\*} $line {(SQLITE_CALLBACK *} line
|
||||||
|
}
|
||||||
puts $line
|
puts $line
|
||||||
}
|
}
|
||||||
close $in
|
close $in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user