0
0
mirror of https://github.com/sqlite/sqlite.git synced 2024-11-21 11:19:14 +01:00

Basic builds now appear to work using jimsh0 on Windows.

FossilOrigin-Name: d8f5193970401b763a94a1d0403bed4337c9fb1f087772b72fb46b9e0bde1c0d
This commit is contained in:
drh 2024-10-24 19:17:25 +00:00
parent a734793b2f
commit 9bcfb2b694
6 changed files with 69 additions and 42 deletions

View File

@ -1059,6 +1059,13 @@ TCLSH_CMD = $(TCLDIR)\bin\tclsh.exe
TCLSH_CMD = tclsh TCLSH_CMD = tclsh
!ENDIF !ENDIF
!ENDIF !ENDIF
# A light-weight TCLSH replacement that can be used for code generation
# but which is not adequate for testing.
#
!IFNDEF JIM_TCLSH
JIM_TCLSH = $(TOP)\jimsh0.exe
!ENDIF
# <</mark>> # <</mark>>
# Compiler options needed for programs that use the readline() library. # Compiler options needed for programs that use the readline() library.
@ -1849,6 +1856,11 @@ dll: $(SQLITE3DLL)
# #
shell: $(SQLITE3EXE) shell: $(SQLITE3EXE)
# jimsh0 - replacement for tclsh
#
jimsh0.exe: $(TOP)\autosetup\jimsh0.c
cl -DHAVE__FULLPATH=1 $(TOP)\autosetup\jimsh0.c
# <<mark>> # <<mark>>
libsqlite3.lib: $(LIBOBJ) libsqlite3.lib: $(LIBOBJ)
$(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS) $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
@ -1889,10 +1901,10 @@ $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
# <<block2>> # <<block2>>
sqlite3.def: libsqlite3.lib sqlite3.def: libsqlite3.lib $(JIM_TCLSH)
echo EXPORTS > sqlite3.def echo EXPORTS > sqlite3.def
dumpbin /all libsqlite3.lib \ dumpbin /all libsqlite3.lib \
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3(?:session|changeset|changegroup|rebaser|rbu)?_[^@]*)(?:@\d+)?$$" \1 \ | $(JIM_TCLSH) $(TOP)\tool\replace.tcl include "^\s+1 _?(sqlite3(?:session|changeset|changegroup|rebaser|rbu)?_[^@]*)(?:@\d+)?$$" \1 \
| sort >> sqlite3.def | sort >> sqlite3.def
# <</block2>> # <</block2>>
@ -1980,22 +1992,22 @@ 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 $(SQLITE_TCL_DEP) .target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl fts5.c $(SQLITE_TCL_DEP) $(JIM_TCLSH)
-rmdir /Q/S tsrc 2>NUL -rmdir /Q/S tsrc 2>NUL
-mkdir tsrc -mkdir tsrc
$(TCLSH_CMD) $(TOP)\tool\cp.tcl $(SRC00) $(SRC01) $(SRC03) $(SRC04) $(SRC05) $(SRC07) $(SRC09) $(SRC10) $(SRC11) $(SRC12) fts5.c fts5.h tsrc $(JIM_TCLSH) $(TOP)\tool\cp.tcl $(SRC00) $(SRC01) $(SRC03) $(SRC04) $(SRC05) $(SRC07) $(SRC09) $(SRC10) $(SRC11) $(SRC12) fts5.c fts5.h tsrc
copy /B tsrc\fts5.c +,, copy /B tsrc\fts5.c +,,
copy /B tsrc\fts5.h +,, copy /B tsrc\fts5.h +,,
del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL del /Q tsrc\sqlite.h.in tsrc\parse.y 2>NUL
$(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl $(OPTS) < tsrc\vdbe.c > vdbe.new $(JIM_TCLSH) $(TOP)\tool\vdbe-compress.tcl $(OPTS) < tsrc\vdbe.c > vdbe.new
move vdbe.new tsrc\vdbe.c move vdbe.new tsrc\vdbe.c
echo > .target_source echo > .target_source
sqlite3.c: .target_source sqlite3ext.h sqlite3session.h $(MKSQLITE3C_TOOL) src-verify.exe sqlite3.c: .target_source sqlite3ext.h sqlite3session.h $(MKSQLITE3C_TOOL) src-verify.exe $(JIM_TCLSH)
$(TCLSH_CMD) $(MKSQLITE3C_TOOL) $(MKSQLITE3C_ARGS) $(EXTRA_SRC) $(JIM_TCLSH) $(MKSQLITE3C_TOOL) $(MKSQLITE3C_ARGS) $(EXTRA_SRC)
sqlite3-all.c: sqlite3.c $(TOP)\tool\split-sqlite3c.tcl sqlite3-all.c: sqlite3.c $(TOP)\tool\split-sqlite3c.tcl $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\tool\split-sqlite3c.tcl $(JIM_TCLSH) $(TOP)\tool\split-sqlite3c.tcl
# <</mark>> # <</mark>>
# Rule to build the amalgamation # Rule to build the amalgamation
@ -2037,11 +2049,11 @@ opcodes.lo: opcodes.c
# #
!IF $(USE_RC)!=0 !IF $(USE_RC)!=0
# <<block1>> # <<block1>>
$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) $(TOP)\VERSION $(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) $(TOP)\VERSION $(JIM_TCLSH)
echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h
for /F %%V in ('type "$(TOP)\VERSION"') do ( \ for /F %%V in ('type "$(TOP)\VERSION"') do ( \
echo #define SQLITE_RESOURCE_VERSION %%V \ echo #define SQLITE_RESOURCE_VERSION %%V \
| $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact . ^, >> sqlite3rc.h \ | $(JIM_TCLSH) $(TOP)\tool\replace.tcl exact . ^, >> sqlite3rc.h \
) )
echo #endif >> sqlite3rc.h echo #endif >> sqlite3rc.h
$(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc $(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc
@ -2302,11 +2314,11 @@ tclsqlite3.exe: tclsqlite-shell.lo $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
# Rules to build opcodes.c and opcodes.h # Rules to build opcodes.c and opcodes.h
# #
opcodes.c: opcodes.h $(TOP)\tool\mkopcodec.tcl opcodes.c: opcodes.h $(TOP)\tool\mkopcodec.tcl $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\tool\mkopcodec.tcl opcodes.h > opcodes.c $(JIM_TCLSH) $(TOP)\tool\mkopcodec.tcl opcodes.h > opcodes.c
opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\tool\mkopcodeh.tcl opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\tool\mkopcodeh.tcl $(JIM_TCLSH)
type parse.h $(TOP)\src\vdbe.c | $(TCLSH_CMD) $(TOP)\tool\mkopcodeh.tcl > opcodes.h type parse.h $(TOP)\src\vdbe.c | $(JIM_TCLSH) $(TOP)\tool\mkopcodeh.tcl > opcodes.h
# Rules to build parse.c and parse.h - the outputs of lemon. # Rules to build parse.c and parse.h - the outputs of lemon.
# #
@ -2318,8 +2330,8 @@ parse.c: $(TOP)\src\parse.y lemon.exe
copy /B parse.y +,, copy /B parse.y +,,
.\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) -S parse.y .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) -S parse.y
$(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest mksourceid.exe $(TOP)\VERSION $(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest mksourceid.exe $(TOP)\VERSION $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl "$(TOP:\=/)" > $(SQLITE3H) $(MKSQLITE3H_ARGS) $(JIM_TCLSH) $(TOP)\tool\mksqlite3h.tcl "$(TOP:\=/)" > $(SQLITE3H) $(MKSQLITE3H_ARGS)
sqlite3ext.h: .target_source sqlite3ext.h: .target_source
!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0 !IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0
@ -2382,8 +2394,8 @@ SHELL_DEP = $(SHELL_DEP) $(TOP)\ext\misc\sqlar.c
SHELL_DEP = $(SHELL_DEP) $(TOP)\ext\misc\zipfile.c SHELL_DEP = $(SHELL_DEP) $(TOP)\ext\misc\zipfile.c
!ENDIF !ENDIF
shell.c: $(SHELL_DEP) $(TOP)\tool\mkshellc.tcl shell.c: $(SHELL_DEP) $(TOP)\tool\mkshellc.tcl $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\tool\mkshellc.tcl > shell.c $(JIM_TCLSH) $(TOP)\tool\mkshellc.tcl > shell.c
zlib: zlib:
pushd $(ZLIBDIR) && $(MAKE) /f win32\Makefile.msc clean $(ZLIBLIB) && popd pushd $(ZLIBDIR) && $(MAKE) /f win32\Makefile.msc clean $(ZLIBLIB) && popd
@ -2486,13 +2498,13 @@ fts5parse.c: $(TOP)\ext\fts5\fts5parse.y lemon.exe
fts5parse.h: fts5parse.c fts5parse.h: fts5parse.c
fts5.c: $(FTS5_SRC) fts5.c: $(FTS5_SRC) $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\ext\fts5\tool\mkfts5c.tcl $(JIM_TCLSH) $(TOP)\ext\fts5\tool\mkfts5c.tcl
copy /Y $(TOP)\ext\fts5\fts5.h . copy /Y $(TOP)\ext\fts5\fts5.h .
copy /B fts5.h +,, copy /B fts5.h +,,
lsm1.c: $(LSM1_SRC) lsm1.c: $(LSM1_SRC) $(JIM_TCLSH)
$(TCLSH_CMD) $(TOP)\ext\lsm1\tool\mklsm1c.tcl $(JIM_TCLSH) $(TOP)\ext\lsm1\tool\mklsm1c.tcl
copy /Y $(TOP)\ext\lsm1\lsm.h . copy /Y $(TOP)\ext\lsm1\lsm.h .
copy /B lsm.h +,, copy /B lsm.h +,,

View File

@ -1039,6 +1039,11 @@ dll: $(SQLITE3DLL)
# #
shell: $(SQLITE3EXE) shell: $(SQLITE3EXE)
# jimsh0 - replacement for tclsh
#
jimsh0.exe: $(TOP)\autosetup\jimsh0.c
cl -DHAVE__FULLPATH=1 $(TOP)\autosetup\jimsh0.c
$(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP) $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
$(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL $(CORE_LINK_OPTS) /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS)

View File

@ -1,11 +1,11 @@
C Fix\sa\sbug\sin\sjimsh0.c\sfor\swhen\sit\sis\scompiled\susing\sMSVC. C Basic\sbuilds\snow\sappear\sto\swork\susing\sjimsh0\son\sWindows.
D 2024-10-24T17:16:38.986 D 2024-10-24T19:17:25.207
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F Makefile.in a751c1d84222c389ff83dc9c7d2f4ef2ca29bf357609032bb4af3147f6f38b70 F Makefile.in a751c1d84222c389ff83dc9c7d2f4ef2ca29bf357609032bb4af3147f6f38b70
F Makefile.linux-generic 8df0e6ee5e4671f844caf27f88d2be7421e904639f7a0ffdce0e2cd4ea11e8c0 F Makefile.linux-generic 8df0e6ee5e4671f844caf27f88d2be7421e904639f7a0ffdce0e2cd4ea11e8c0
F Makefile.msc ce5ba06254efafbc4794028f46a08a95c7772ff5a7949b2c36b34e9c26c19e1c F Makefile.msc 46ac29ffb26ccd346353f22ed4c7d1a8589e93ee32997d63a63019e612cfe07e
F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159 F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
F VERSION 8dc0c3df15fd5ff0622f88fc483533fce990b1cbb2f5fb9fdfb4dbd71eef2889 F VERSION 8dc0c3df15fd5ff0622f88fc483533fce990b1cbb2f5fb9fdfb4dbd71eef2889
F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5 F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5
@ -17,7 +17,7 @@ F auto.def d120d07a0fb42193224bcfb6b658804fdd609bb3b77196d436783b7536426394
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
F autoconf/Makefile.msc 0a1fdef1f2c618815cf7c82c817a7369c1e07b3cfed490803db16fb43326d506 F autoconf/Makefile.msc 1162ef7b7937ba6927b038f824b050855784d417e785fe35ab71d20afd18022b
F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7 F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7
F autoconf/README.txt 5e946ffb6fbdbb114c81e1bdc862df27fce8beab557d7b0421820b0fe8fc048f F autoconf/README.txt 5e946ffb6fbdbb114c81e1bdc862df27fce8beab557d7b0421820b0fe8fc048f
F autoconf/configure.ac ec7fa914c5e74ff212fe879f9bb6918e1234497e05facfb641f30c4d5893b277 F autoconf/configure.ac ec7fa914c5e74ff212fe879f9bb6918e1234497e05facfb641f30c4d5893b277
@ -2166,8 +2166,8 @@ F tool/mkshellc.tcl 2bc29c201933ae72a16a79070fe80aded80c24ea487ecd2f8df20c2973c8
F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9 F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97 F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c-noext.tcl 4f7cfef5152b0c91920355cbfc1d608a4ad242cb819f1aea07f6d0274f584a7f F tool/mksqlite3c-noext.tcl 4f7cfef5152b0c91920355cbfc1d608a4ad242cb819f1aea07f6d0274f584a7f
F tool/mksqlite3c.tcl c6acfdf4e4ef93478ff3ce3cd593e17abb03f446036ce710c3156bcfa18665e0 F tool/mksqlite3c.tcl 98a250d6f2ea60343268e32e2997790e678205ce128aa0d0a67a3f70811615af
F tool/mksqlite3h.tcl 1432a89bc62f4e7f25e0842ffec68374317abec8af80b650dd4149ffdd44be65 F tool/mksqlite3h.tcl 1d996a99cda519e8519e9e514b564fa29b37a49d20263d57494903d685caf067
F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
F tool/mktoolzip.tcl 34b4e92be544f820e2cc26f143f7d5aec511e826ec394cc82969a5dcf7c7a27c F tool/mktoolzip.tcl 34b4e92be544f820e2cc26f143f7d5aec511e826ec394cc82969a5dcf7c7a27c
F tool/mkvsix.tcl 67b40996a50f985a573278eea32fc5a5eb6110bdf14d33f1d8086e48c69e540a F tool/mkvsix.tcl 67b40996a50f985a573278eea32fc5a5eb6110bdf14d33f1d8086e48c69e540a
@ -2237,8 +2237,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
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 61f18c96183867fe9d0fb30b8b71c0253f40503e32c8a4202196fb6418f2f46e P f7def0be742fad9863f1eba11d0c2f1fa739ad1262e67d24380698e3948cedb7
R 3fcda85ce8cde0358524e6ceb13906f8 R f7d9ddba41062822bed325e6117a4ac3
U drh U drh
Z 9f3b8d43e2772874f53939ba0a89ce88 Z a8e6b0cd2247237e95c6b267e7597266
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
f7def0be742fad9863f1eba11d0c2f1fa739ad1262e67d24380698e3948cedb7 d8f5193970401b763a94a1d0403bed4337c9fb1f087772b72fb46b9e0bde1c0d

View File

@ -70,7 +70,7 @@ for {set i 0} {$i<[llength $argv]} {incr i} {
lappend extrasrc $x lappend extrasrc $x
} }
} }
set in [open $srcdir/sqlite3.h] set in [open $srcdir/sqlite3.h rb]
set cnt 0 set cnt 0
set VERSION ????? set VERSION ?????
while {![eof $in]} { while {![eof $in]} {
@ -86,7 +86,7 @@ close $in
# #
set fname sqlite3.c set fname sqlite3.c
if {$enable_recover} { set fname sqlite3r.c } if {$enable_recover} { set fname sqlite3r.c }
set out [open $fname w] set out [open $fname wb]
# Force the output to use unix line endings, even on Windows. # Force the output to use unix line endings, even on Windows.
fconfigure $out -translation lf fconfigure $out -translation lf
set today [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S UTC" -gmt 1] set today [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S UTC" -gmt 1]
@ -117,7 +117,12 @@ if {$tcl_platform(platform)=="windows"} {
set vsrcprog ./src-verify set vsrcprog ./src-verify
} }
if {[file executable $vsrcprog] && [file readable $srcroot/manifest]} { if {[file executable $vsrcprog] && [file readable $srcroot/manifest]} {
set res [string trim [split [exec $vsrcprog -x $srcroot]] \n] set tmpfile tmp-[clock millisec]-[expr {int(rand()*100000000000)}].txt
exec $vsrcprog -x $srcroot > $tmpfile
set fd [open $tmpfile rb]
set res [string trim [split [read $fd] \n]]
close $fd
file delete -force $tmpfile
puts $out "** The content in this amalgamation comes from Fossil check-in" puts $out "** The content in this amalgamation comes from Fossil check-in"
puts -nonewline $out "** [string range [lindex $res 0] 0 35]" puts -nonewline $out "** [string range [lindex $res 0] 0 35]"
if {[llength $res]==1} { if {[llength $res]==1} {
@ -148,7 +153,7 @@ if {$addstatic} {
# #
# then set the SQLITE_UDL_CAPABLE_PARSER flag in the amalgamation. # then set the SQLITE_UDL_CAPABLE_PARSER flag in the amalgamation.
# #
set in [open $srcdir/parse.c] set in [open $srcdir/parse.c rb]
if {[regexp {ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT} [read $in]]} { if {[regexp {ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT} [read $in]]} {
puts $out "#define SQLITE_UDL_CAPABLE_PARSER 1" puts $out "#define SQLITE_UDL_CAPABLE_PARSER 1"
} }
@ -243,7 +248,7 @@ proc copy_file {filename} {
set tail [file tail $filename] set tail [file tail $filename]
section_comment "Begin file $tail" section_comment "Begin file $tail"
if {$linemacros} {puts $out "#line 1 \"$filename\""} if {$linemacros} {puts $out "#line 1 \"$filename\""}
set in [open $filename r] set in [open $filename rb]
set varpattern {^[a-zA-Z][a-zA-Z_0-9 *]+(sqlite3[_a-zA-Z0-9]+)(\[|;| =)} set varpattern {^[a-zA-Z][a-zA-Z_0-9 *]+(sqlite3[_a-zA-Z0-9]+)(\[|;| =)}
set declpattern {([a-zA-Z][a-zA-Z_0-9 ]+ \**)(sqlite3[_a-zA-Z0-9]+)(\(.*)} set declpattern {([a-zA-Z][a-zA-Z_0-9 ]+ \**)(sqlite3[_a-zA-Z0-9]+)(\(.*)}
if {[file extension $filename]==".h"} { if {[file extension $filename]==".h"} {
@ -358,7 +363,7 @@ proc copy_file {filename} {
# #
proc copy_file_verbatim {filename} { proc copy_file_verbatim {filename} {
global out global out
set in [open $filename r] set in [open $filename rb]
set tail [file tail $filename] set tail [file tail $filename]
section_comment "Begin EXTRA_SRC file $tail" section_comment "Begin EXTRA_SRC file $tail"
while {![eof $in]} { while {![eof $in]} {

View File

@ -53,7 +53,7 @@ if {[lsearch -regexp [lrange $argv 1 end] {^-+enable-recover}] != -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 [file normalize $TOP/VERSION]] set in [open [file normalize $TOP/VERSION] rb]
set zVersion [string trim [read $in]] set zVersion [string trim [read $in]]
close $in close $in
set nVersion [eval format "%d%03d%03d" [split $zVersion .]] set nVersion [eval format "%d%03d%03d" [split $zVersion .]]
@ -62,7 +62,12 @@ set nVersion [eval format "%d%03d%03d" [split $zVersion .]]
# #
set PWD [pwd] set PWD [pwd]
cd $TOP cd $TOP
set zSourceId [exec $PWD/mksourceid manifest] set tmpfile tmp-[clock millisec]-[expr {int(rand()*100000000000)}].txt
exec $PWD/mksourceid manifest > $tmpfile
set fd [open $tmpfile rb]
set zSourceId [string trim [read $fd]]
close $fd
#file delete -force $tmpfile
cd $PWD cd $PWD
# Set up patterns for recognizing API declarations. # Set up patterns for recognizing API declarations.
@ -111,7 +116,7 @@ set cdecllist {
# Process the source files. # Process the source files.
# #
foreach file $filelist { foreach file $filelist {
set in [open $file] set in [open $file rb]
if {![regexp {sqlite\.h\.in} $file]} { if {![regexp {sqlite\.h\.in} $file]} {
puts "/******** Begin file [file tail $file] *********/" puts "/******** Begin file [file tail $file] *********/"
} }