SQLite

Check-in Differences
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Difference From 94340011ed903434 To 3193b86a91d8096b

2024-09-27
02:35
Tweak build to fall back to system-side tclsh if we cannot find realpath() or _fullpath() for JimTCL (needed for some of the code generator scripts to work). (check-in: b31dbb9945 user: stephan tags: autosetup)
01:42
Run all of the TCL-based code generators using JimTCL. (check-in: 3193b86a91 user: stephan tags: autosetup)
01:30
Generate sqlite3.h/.c with jimsh, somewhat to my surprise. (check-in: c365d8e1f7 user: stephan tags: autosetup)
01:25
Experimentally build shell.c using the autosetup-provided JimTCL. (check-in: 5bd62cdbc4 user: stephan tags: autosetup)
01:04
Remove some gratuitous overengineering before it can spread. (check-in: 94340011ed user: stephan tags: autosetup)
01:00
Get the generated .c/.h files generating. (check-in: e890c8508d user: stephan tags: autosetup)

Changes to Makefile.in.
124
125
126
127
128
129
130
131


132
133
134
135
136
137
138
124
125
126
127
128
129
130

131
132
133
134
135
136
137
138
139







-
+
+







# and installed.
#
HAVE_TCL = @HAVE_TCL@

# This is the command to use for tclsh - normally just "tclsh", but we may
# know the specific version we want to use
#
TCLSH_CMD = @TCLSH_CMD@
# TCLSH_CMD = @TCLSH_CMD@
TCLSH_CMD = exit 1

# Additional options when running tests using testrunner.tcl
# This is usually either blank, or else --status
#
TSTRNNR_OPTS = @TSTRNNR_OPTS@

#XX## Where do we want to install the tcl plugin
756
757
758
759
760
761
762










763
764
765
766
767
768
769
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780







+
+
+
+
+
+
+
+
+
+







	$(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c

sourcetest:	srcck1$(BEXE) sqlite3.c
	./srcck1 sqlite3.c

src-verify:	$(TOP)/tool/src-verify.c
	$(BCC) -o src-verify$(BEXE) $(TOP)/tool/src-verify.c


# JimTCL is part of the autosetup suite and is suitable for certain
# in-tree TCL jobs, but it requires that we build it with non-default
# flags.
#
JIMSH = @srcdir@/jimsh
$(JIMSH): $(TOP)/autosetup/jimsh0.c Makefile
	$(BCC) -o $(JIMSH) -DHAVE_REALPATH $<

#XX#
#XX#verify-source:	./src-verify
#XX#	./src-verify $(TOP)
#XX#
#XX#fuzzershell$(TEXE):	$(TOP)/tool/fuzzershell.c sqlite3.c sqlite3.h
#XX#	$(LTLINK) -o $@ $(FUZZERSHELL_OPT) \
#XX#	  $(TOP)/tool/fuzzershell.c sqlite3.c $(TLIBS)
866
867
868
869
870
871
872
873

874
875
876
877
878

879
880
881
882
883
884



885
886
887
888
889


890
891

892
893
894
895

896
897
898
899
900
901
902
877
878
879
880
881
882
883

884
885
886
887
888

889
890
891
892
893


894
895
896
897
898
899


900
901
902

903
904
905
906

907
908
909
910
911
912
913
914







-
+




-
+




-
-
+
+
+



-
-
+
+

-
+



-
+







#XX#
# 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 has_tclsh84 fts5.c
.target_source:	$(SRC) $(TOP)/tool/vdbe-compress.tcl fts5.c $(JIMSH) # has_tclsh84
	rm -rf tsrc
	mkdir tsrc
	cp -f $(SRC) tsrc
	rm tsrc/sqlite.h.in tsrc/parse.y
	$(TCLSH_CMD) $(TOP)/tool/vdbe-compress.tcl $(OPTS) <tsrc/vdbe.c >vdbe.new
	$(JIMSH) $(TOP)/tool/vdbe-compress.tcl $(OPTS) <tsrc/vdbe.c >vdbe.new
	mv vdbe.new tsrc/vdbe.c
	cp fts5.c fts5.h tsrc
	touch .target_source

sqlite3.c:	.target_source $(TOP)/tool/mksqlite3c.tcl src-verify has_tclsh84
	$(TCLSH_CMD) $(TOP)/tool/mksqlite3c.tcl $(AMALGAMATION_LINE_MACROS) $(EXTRA_SRC)
sqlite3.c:	.target_source $(TOP)/tool/mksqlite3c.tcl src-verify \
		$(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/tool/mksqlite3c.tcl $(AMALGAMATION_LINE_MACROS) $(EXTRA_SRC)
	cp tsrc/sqlite3ext.h .
	cp $(TOP)/ext/session/sqlite3session.h .

sqlite3r.h: sqlite3.h has_tclsh84
	$(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) --enable-recover >sqlite3r.h
sqlite3r.h: sqlite3.h $(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/tool/mksqlite3h.tcl $(TOP) --enable-recover >sqlite3r.h

sqlite3r.c: sqlite3.c sqlite3r.h has_tclsh84
sqlite3r.c: sqlite3.c sqlite3r.h $(JIMSH) # has_tclsh84
	cp $(TOP)/ext/recover/sqlite3recover.c tsrc/
	cp $(TOP)/ext/recover/sqlite3recover.h tsrc/
	cp $(TOP)/ext/recover/dbdata.c tsrc/
	$(TCLSH_CMD) $(TOP)/tool/mksqlite3c.tcl --enable-recover $(AMALGAMATION_LINE_MACROS) $(EXTRA_SRC)
	$(JIMSH) $(TOP)/tool/mksqlite3c.tcl --enable-recover $(AMALGAMATION_LINE_MACROS) $(EXTRA_SRC)

sqlite3ext.h:	.target_source
	cp tsrc/sqlite3ext.h .

#XX#tclsqlite3.c:	sqlite3.c
#XX#	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c
#XX#	cat sqlite3.c >>tclsqlite3.c
1187
1188
1189
1190
1191
1192
1193
1194
1195


1196
1197
1198



1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209



1210
1211
1212
1213
1214
1215
1216
1199
1200
1201
1202
1203
1204
1205


1206
1207
1208


1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220


1221
1222
1223
1224
1225
1226
1227
1228
1229
1230







-
-
+
+

-
-
+
+
+









-
-
+
+
+







#XX#
#XX#tclsqlite3$(TEXE):	has_tclconfig tclsqlite-shell.lo libsqlite3.la
#XX#	$(LTLINK) -o $@ tclsqlite-shell.lo \
#XX#		 libsqlite3.la $(LIBTCL)

# Rules to build opcodes.c and opcodes.h
#
opcodes.c:	opcodes.h $(TOP)/tool/mkopcodec.tcl has_tclsh84
	$(TCLSH_CMD) $(TOP)/tool/mkopcodec.tcl opcodes.h >opcodes.c
opcodes.c:	opcodes.h $(TOP)/tool/mkopcodec.tcl $(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/tool/mkopcodec.tcl opcodes.h >opcodes.c

opcodes.h:	parse.h $(TOP)/src/vdbe.c $(TOP)/tool/mkopcodeh.tcl has_tclsh84
	cat parse.h $(TOP)/src/vdbe.c | $(TCLSH_CMD) $(TOP)/tool/mkopcodeh.tcl >opcodes.h
opcodes.h:	parse.h $(TOP)/src/vdbe.c \
		$(TOP)/tool/mkopcodeh.tcl $(JIMSH) # has_tclsh84
	cat parse.h $(TOP)/src/vdbe.c | $(JIMSH) $(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$(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 has_tclsh84
	$(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h
sqlite3.h:	$(TOP)/src/sqlite.h.in $(TOP)/manifest mksourceid$(BEXE) \
		$(TOP)/VERSION $(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h

#XX#sqlite3rc.h:	$(TOP)/src/sqlite3.rc $(TOP)/VERSION has_tclsh84
#XX#	echo '#ifndef SQLITE_RESOURCE_VERSION' >$@
#XX#	echo -n '#define SQLITE_RESOURCE_VERSION ' >>$@
#XX#	cat $(TOP)/VERSION | $(TCLSH_CMD) $(TOP)/tool/replace.tcl exact . , >>$@
#XX#	echo '#endif' >>sqlite3rc.h

1247
1248
1249
1250
1251
1252
1253
1254
1255


1256
1257
1258
1259
1260
1261
1262
1261
1262
1263
1264
1265
1266
1267


1268
1269
1270
1271
1272
1273
1274
1275
1276







-
-
+
+







    $(TOP)/ext/misc/zipfile.c \
    $(TOP)/ext/recover/dbdata.c \
    $(TOP)/ext/recover/sqlite3recover.c \
    $(TOP)/ext/recover/sqlite3recover.h \
    $(TOP)/src/test_windirent.c \
    $(TOP)/src/test_windirent.h

shell.c:	$(SHELL_DEP) $(TOP)/tool/mkshellc.tcl has_tclsh84
	$(TCLSH_CMD) $(TOP)/tool/mkshellc.tcl >shell.c
shell.c:	$(SHELL_DEP) $(TOP)/tool/mkshellc.tcl $(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/tool/mkshellc.tcl >shell.c
#XX#
#XX#
#XX#
#XX#
#XX## Rules to build the extension objects.
#XX##
#XX#icu.lo:	$(TOP)/ext/icu/icu.c $(HDR) $(EXTHDR)
1335
1336
1337
1338
1339
1340
1341
1342
1343


1344
1345
1346
1347
1348
1349
1350
1349
1350
1351
1352
1353
1354
1355


1356
1357
1358
1359
1360
1361
1362
1363
1364







-
-
+
+







fts5parse.c:	$(TOP)/ext/fts5/fts5parse.y lemon$(BEXE)
	cp $(TOP)/ext/fts5/fts5parse.y .
	rm -f fts5parse.h
	./lemon$(BEXE) $(OPTS) -S fts5parse.y

fts5parse.h: fts5parse.c

fts5.c: $(FTS5_SRC) has_tclsh84
	$(TCLSH_CMD) $(TOP)/ext/fts5/tool/mkfts5c.tcl
fts5.c: $(FTS5_SRC) $(JIMSH) # has_tclsh84
	$(JIMSH) $(TOP)/ext/fts5/tool/mkfts5c.tcl
	cp $(TOP)/ext/fts5/fts5.h .

#XX#fts5.lo:	fts5.c $(HDR) $(EXTHDR)
#XX#	$(LTCOMPILE) -DSQLITE_CORE -c fts5.c
#XX#
#XX#sqlite3rbu.lo:	$(TOP)/ext/rbu/sqlite3rbu.c $(HDR) $(EXTHDR)
#XX#	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/rbu/sqlite3rbu.c
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1678
1679
1680
1681
1682
1683
1684

1685
1686
1687
1688
1689
1690
1691







-







#XX#
#XX## List all installed the SQLite TCL extension that is are accessible
#XX## by $TCLSH_CMD, included prior versions.
#XX##
#XX#tclextension-list: 
#XX#	$(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --info


# Remove build products sufficient so that subsequent makes will recompile
# everything from scratch.  Do not remove:
#
#   *   test results and test logs
#   *   output from ./configure
#
tidy:
1698
1699
1700
1701
1702
1703
1704
1705

1706
1707
1708
1709
1710
1711
1712
1711
1712
1713
1714
1715
1716
1717

1718
1719
1720
1721
1722
1723
1724
1725







-
+







#
clean:	tidy
	rm -rf omittest* testrunner* testdir*

# Clean up everything.  No exceptions.
#
distclean:	clean
	rm -f sqlite_cfg.h config.log config.status Makefile $(LIBTOOL)
	rm -f sqlite_cfg.h config.log config.status $(JIMSH) Makefile $(LIBTOOL)

#XX##
#XX## Windows section
#XX##
#XX#dll: sqlite3.dll
#XX#
#XX#REAL_LIBOBJ = $(LIBOBJ:%.lo=.libs/%.o)