]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Modify the main makefile so that it fails with an error if the tclsh found
authordrh <>
Wed, 4 Oct 2023 11:52:44 +0000 (11:52 +0000)
committerdrh <>
Wed, 4 Oct 2023 11:52:44 +0000 (11:52 +0000)
by ./configure is not tclsh 8.5 or later.
[forum:/forumpost/4380363682708ece|Forum post 4380363682708ece].

FossilOrigin-Name: 1765f3b5a00a8ca20a7b9e18ac7f9d7de0679470b234b83aea83aa5b4d4d34e6

Makefile.in
manifest
manifest.uuid
tool/cktclsh.sh [new file with mode: 0644]

index ee28d0fccb3df5bc74c99575663c605857305a7f..fd75f04e75c918b6dbb87b739e97b8c353c28bd3 100644 (file)
@@ -766,13 +766,17 @@ mptest:   mptester$(TEXE)
        $(MPTEST2) --journalmode DELETE
 
 
+tclsh_is_ok:
+       sh $(TOP)/tool/cktclsh.sh $(TCLSH_CMD)
+       touch tclsh_is_ok
+
 # This target creates a directory named "tsrc" and fills it with
 # copies of all of the C source code and header files needed to
 # build on the target system.  Some of the C source code and header
 # files are automatically generated.  This target takes care of
 # all that automatic generation.
 #
-.target_source:        $(SRC) $(TOP)/tool/vdbe-compress.tcl fts5.c
+.target_source:        $(SRC) $(TOP)/tool/vdbe-compress.tcl tclsh_is_ok fts5.c
        rm -rf tsrc
        mkdir tsrc
        cp -f $(SRC) tsrc
@@ -782,15 +786,15 @@ mptest:   mptester$(TEXE)
        cp fts5.c fts5.h tsrc
        touch .target_source
 
-sqlite3.c:     .target_source $(TOP)/tool/mksqlite3c.tcl src-verify
+sqlite3.c:     .target_source $(TOP)/tool/mksqlite3c.tcl src-verify tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mksqlite3c.tcl $(AMALGAMATION_LINE_MACROS)
        cp tsrc/sqlite3ext.h .
        cp $(TOP)/ext/session/sqlite3session.h .
 
-sqlite3r.h: sqlite3.h
+sqlite3r.h: sqlite3.h tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) --enable-recover >sqlite3r.h
 
-sqlite3r.c: sqlite3.c sqlite3r.h
+sqlite3r.c: sqlite3.c sqlite3r.h tclsh_is_ok
        cp $(TOP)/ext/recover/sqlite3recover.c tsrc/
        cp $(TOP)/ext/recover/sqlite3recover.h tsrc/
        cp $(TOP)/ext/recover/dbdata.c tsrc/
@@ -805,7 +809,7 @@ tclsqlite3.c:       sqlite3.c
        echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c
        cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c
 
-sqlite3-all.c: sqlite3.c $(TOP)/tool/split-sqlite3c.tcl
+sqlite3-all.c: sqlite3.c $(TOP)/tool/split-sqlite3c.tcl tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/split-sqlite3c.tcl
 
 # Rule to build the amalgamation
@@ -1093,10 +1097,10 @@ tclsqlite3$(TEXE):      tclsqlite-shell.lo libsqlite3.la
 
 # Rules to build opcodes.c and opcodes.h
 #
-opcodes.c:     opcodes.h $(TOP)/tool/mkopcodec.tcl
+opcodes.c:     opcodes.h $(TOP)/tool/mkopcodec.tcl tclsh_is_ok
        $(TCLSH_CMD) $(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 tclsh_is_ok
        cat 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.
@@ -1107,10 +1111,10 @@ parse.c:        $(TOP)/src/parse.y lemon$(BEXE)
        cp $(TOP)/src/parse.y .
        ./lemon$(BEXE) $(OPT_FEATURE_FLAGS) $(OPTS) -S parse.y
 
-sqlite3.h:     $(TOP)/src/sqlite.h.in $(TOP)/manifest mksourceid$(BEXE) $(TOP)/VERSION
+sqlite3.h:     $(TOP)/src/sqlite.h.in $(TOP)/manifest mksourceid$(BEXE) $(TOP)/VERSION tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h
 
-sqlite3rc.h:   $(TOP)/src/sqlite3.rc $(TOP)/VERSION
+sqlite3rc.h:   $(TOP)/src/sqlite3.rc $(TOP)/VERSION tclsh_is_ok
        echo '#ifndef SQLITE_RESOURCE_VERSION' >$@
        echo -n '#define SQLITE_RESOURCE_VERSION ' >>$@
        cat $(TOP)/VERSION | $(TCLSH_CMD) $(TOP)/tool/replace.tcl exact . , >>$@
@@ -1146,7 +1150,7 @@ SHELL_SRC = \
        $(TOP)/ext/recover/sqlite3recover.h \
         $(TOP)/src/test_windirent.c
 
-shell.c:       $(SHELL_SRC) $(TOP)/tool/mkshellc.tcl
+shell.c:       $(SHELL_SRC) $(TOP)/tool/mkshellc.tcl tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mkshellc.tcl >shell.c
 
 
@@ -1234,7 +1238,7 @@ fts5parse.c:      $(TOP)/ext/fts5/fts5parse.y lemon$(BEXE)
 
 fts5parse.h: fts5parse.c
 
-fts5.c: $(FTS5_SRC)
+fts5.c: $(FTS5_SRC) tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/ext/fts5/tool/mkfts5c.tcl
        cp $(TOP)/ext/fts5/fts5.h .
 
@@ -1321,10 +1325,10 @@ testrunner:     testfixture$(TEXE)
 #
 devtest:       testfixture$(TEXE) fuzztest testrunner
 
-mdevtest:
+mdevtest: tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/test/testrunner.tcl mdevtest
 
-sdevtest:
+sdevtest: tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/test/testrunner.tcl sdevtest
 
 # Testing for a release
@@ -1358,13 +1362,13 @@ smoketest:      $(TESTPROGS) fuzzcheck$(TEXE)
 shelltest: $(TESTPROGS)
        ./testfixture$(TEXT) $(TOP)/test/permutations.test shell
 
-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in
+sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c
 
 sqlite3_analyzer$(TEXE): sqlite3_analyzer.c
        $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS)
 
-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in
+sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c
 
 sqltclsh$(TEXE): sqltclsh.c
@@ -1383,7 +1387,7 @@ CHECKER_DEPS =\
   $(TOP)/ext/misc/btreeinfo.c \
   $(TOP)/ext/repair/sqlite3_checker.c.in
 
-sqlite3_checker.c:     $(CHECKER_DEPS)
+sqlite3_checker.c:     $(CHECKER_DEPS) tclsh_is_ok
        $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@
 
 sqlite3_checker$(TEXE):        sqlite3_checker.c
@@ -1549,6 +1553,7 @@ clean:
        rm -f threadtest5
        rm -f src-verify
        rm -f custom.rws
+       rm -f tclsh_is_ok
 
 distclean:     clean
        rm -f sqlite_cfg.h config.log config.status libtool Makefile sqlite3.pc \
@@ -1593,7 +1598,7 @@ fiddle: sqlite3.c shell.c
        @echo 'Updating custom dictionary from tool/custom.txt'
        aspell --lang=en create master ./custom.rws < $<
 
-misspell: ./custom.rws
+misspell: ./custom.rws tclsh_is_ok
        $(TCLSH_CMD) ./tool/spellsift.tcl ./src/*.c ./src/*.h ./src/*.in
 
 #
index 678a86c22fedd0bed9b89883f3b01adff50c3bfa..e3032ee8a1ffda578fdd15bc76d1e916b5f1a871 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
-C JNI:\swhen\sfetching\stext-or-blob/length\spairs,\sfetch\sthe\stext-or-blob\sfirst,\sthen\sthe\slength,\sas\sthe\sAPI\sdocs\ssuggest.
-D 2023-10-02T17:12:16.304
+C Modify\sthe\smain\smakefile\sso\sthat\sit\sfails\swith\san\serror\sif\sthe\stclsh\sfound\nby\s./configure\sis\snot\stclsh\s8.5\sor\slater.\n[forum:/forumpost/4380363682708ece|Forum\spost\s4380363682708ece].
+D 2023-10-04T11:52:44.719
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
-F Makefile.in 3150cc65edc3643ab243282b404d242b19b447365bfd7f3eda73d71349424f89
+F Makefile.in 2bc4f9dc1a399d969107c6b99a861b7275edde56419a7c4d455d76fe1732f918
 F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6
 F Makefile.msc f926abe4737ffa3303aeb67d8ea74857f4038754a95605c332be1c9dbf8b96c7
 F README.md 963d30019abf0cc06b263cd2824bce022893f3f93a531758f6f04ff2194a16a8
@@ -2019,6 +2019,7 @@ F tool/build-all-msvc.bat c817b716e0edeecaf265a6775b63e5f45c34a6544f1d4114a22270
 F tool/build-shell.sh f193b5e3eb4afcb4abbf96bf1475be6cfb74763ee2e50c82bc7ca105e8a136c5
 F tool/cg_anno.tcl c1f875f5a4c9caca3d59937b16aff716f8b1883935f1b4c9ae23124705bc8099 x
 F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
+F tool/cktclsh.sh 26d0467a8e300d063be90d3e3da879423972a5178cbcdb8f3079893666e885d8
 F tool/custom.txt 6cdf298f43e1db4bb91406d14777669b8fb1df790837823fa6754c4308decc27
 F tool/dbhash.c 5da0c61032d23d74f2ab84ffc5740f0e8abec94f2c45c0b4306be7eb3ae96df0
 F tool/dbtotxt.c ca48d34eaca6d6b6e4bd6a7be2b72caf34475869054240244c60fa7e69a518d6
@@ -2122,8 +2123,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 325243226520376f4a142864ae3fb98866f25bff4dc50a6b648ef98428a7169f
-R 46fa2dcc5034c47ceb71e3721ad57fae
-U stephan
-Z c507ea20def3bb46f7fb137790b2fa35
+P e4f9d3946fa570bccea2de17c5536901bdabd46cfe25678fdd37ba0e2bfd99b1
+R 957200f3050d16ac89c973ee9db145e9
+U drh
+Z 75aebd8e96f2dfbb01802f93e5f7cb8e
 # Remove this line to create a well-formed Fossil manifest.
index 308d4d77e2ecbd60b56016addd06c501777130b9..ef24c61f19ecc9df54e477cd6d44e5366dfc7b1c 100644 (file)
@@ -1 +1 @@
-e4f9d3946fa570bccea2de17c5536901bdabd46cfe25678fdd37ba0e2bfd99b1
\ No newline at end of file
+1765f3b5a00a8ca20a7b9e18ac7f9d7de0679470b234b83aea83aa5b4d4d34e6
\ No newline at end of file
diff --git a/tool/cktclsh.sh b/tool/cktclsh.sh
new file mode 100644 (file)
index 0000000..b592530
--- /dev/null
@@ -0,0 +1,8 @@
+# Fail with an error if the TCLSH named in $1 is not tclsh 8.5 or later.
+#
+echo 'if {$tcl_version<"8.5"} {exit 1}' >cktclsh.tcl
+if ! $1 cktclsh.tcl
+then
+   echo 'ERROR: This makefile target requires tclsh 8.5 or later.'
+   exit 1
+fi