@@ -22,7 +22,7 @@ TOP = @abs_srcdir@
2222#
2323BCC = @BUILD_CC@ @BUILD_CFLAGS@
2424
25- # TCC is the C Compile and options for use in building executables that
25+ # TCC is the C Compile and options for use in building executables that
2626# will run on the target platform. (BCC and TCC are usually the
2727# same unless your are cross-compiling.) Separate CC and CFLAGS macros
2828# are provide so that these aspects of the build process can be changed
@@ -32,10 +32,11 @@ CC = @CC@
3232CFLAGS = @CPPFLAGS@ @CFLAGS@
3333TCC = ${CC} ${CFLAGS} -I. -I${TOP}/src -I${TOP}/ext/rtree -I${TOP}/ext/icu
3434TCC += -I${TOP}/ext/fts3 -I${TOP}/ext/async -I${TOP}/ext/session
35+ TCC += -I${TOP}/ext/userauth
3536
3637# Define this for the autoconf-based build, so that the code knows it can
3738# include the generated config.h
38- #
39+ #
3940TCC += -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite
4041
4142# Define -DNDEBUG to compile without debugging (i.e., for production usage)
@@ -66,7 +67,7 @@ LIBREADLINE = @TARGET_READLINE_LIBS@
6667TCC += -DSQLITE_THREADSAFE=@SQLITE_THREADSAFE@
6768
6869# Any target libraries which libsqlite must be linked against
69- #
70+ #
7071TLIBS = @LIBS@ $(LIBS )
7172
7273# Flags controlling use of the in memory btree implementation
@@ -78,8 +79,8 @@ TLIBS = @LIBS@ $(LIBS)
7879TEMP_STORE = -DSQLITE_TEMP_STORE=@TEMP_STORE@
7980
8081# Enable/disable loadable extensions, and other optional features
81- # based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
82- # The same set of OMIT and ENABLE flags should be passed to the
82+ # based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).
83+ # The same set of OMIT and ENABLE flags should be passed to the
8384# LEMON parser generator and the mkkeywordhash tool as well.
8485OPT_FEATURE_FLAGS = @OPT_FEATURE_FLAGS@
8586
@@ -126,8 +127,8 @@ SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
126127# If gcov support was enabled by the configure script, add the appropriate
127128# flags here. It's not always as easy as just having the user add the right
128129# CFLAGS / LDFLAGS, because libtool wants to use CFLAGS when linking, which
129- # causes build errors with -fprofile-arcs -ftest-coverage with some GCCs.
130- # Supposedly GCC does the right thing if you use --coverage, but in
130+ # causes build errors with -fprofile-arcs -ftest-coverage with some GCCs.
131+ # Supposedly GCC does the right thing if you use --coverage, but in
131132# practice it still fails. See:
132133#
133134# http://www.mail-archive.com/debian-gcc@lists.debian.org/msg26197.html
@@ -187,7 +188,7 @@ LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
187188 random.lo resolve.lo rowset.lo rtree.lo \
188189 sqlite3session.lo select.lo sqlite3rbu.lo status.lo stmt.lo \
189190 table.lo threads.lo tokenize.lo treeview.lo trigger.lo \
190- update.lo upsert.lo util.lo vacuum.lo \
191+ update.lo userauth.lo upsert.lo util.lo vacuum.lo \
191192 vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \
192193 vdbetrace.lo wal.lo walker.lo where.lo wherecode.lo whereexpr.lo \
193194 window.lo utf.lo vtab.lo
@@ -355,6 +356,9 @@ SRC += \
355356SRC += \
356357 $(TOP ) /ext/session/sqlite3session.c \
357358 $(TOP ) /ext/session/sqlite3session.h
359+ SRC += \
360+ $(TOP ) /ext/userauth/userauth.c \
361+ $(TOP ) /ext/userauth/sqlite3userauth.h
358362SRC += \
359363 $(TOP ) /ext/rbu/sqlite3rbu.h \
360364 $(TOP ) /ext/rbu/sqlite3rbu.c
@@ -425,7 +429,7 @@ TESTSRC = \
425429 $(TOP ) /ext/fts3/fts3_term.c \
426430 $(TOP ) /ext/fts3/fts3_test.c \
427431 $(TOP ) /ext/session/test_session.c \
428- $(TOP ) /ext/rbu/test_rbu.c
432+ $(TOP ) /ext/rbu/test_rbu.c
429433
430434# Statically linked extensions
431435#
@@ -437,6 +441,7 @@ TESTSRC += \
437441 $(TOP ) /ext/misc/closure.c \
438442 $(TOP ) /ext/misc/csv.c \
439443 $(TOP ) /ext/misc/eval.c \
444+ $(TOP ) /ext/misc/explain.c \
440445 $(TOP ) /ext/misc/fileio.c \
441446 $(TOP ) /ext/misc/fuzzer.c \
442447 $(TOP ) /ext/fts5/fts5_tcl.c \
@@ -454,7 +459,8 @@ TESTSRC += \
454459 $(TOP ) /ext/misc/totype.c \
455460 $(TOP ) /ext/misc/unionvtab.c \
456461 $(TOP ) /ext/misc/wholenumber.c \
457- $(TOP ) /ext/misc/zipfile.c
462+ $(TOP ) /ext/misc/zipfile.c \
463+ $(TOP ) /ext/userauth/userauth.c
458464
459465# Source code to the library files needed by the test fixture
460466#
@@ -470,6 +476,7 @@ TESTSRC2 = \
470476 $(TOP ) /src/dbstat.c \
471477 $(TOP ) /src/expr.c \
472478 $(TOP ) /src/func.c \
479+ $(TOP ) /src/global.c \
473480 $(TOP ) /src/insert.c \
474481 $(TOP ) /src/wal.c \
475482 $(TOP ) /src/main.c \
@@ -506,7 +513,7 @@ TESTSRC2 = \
506513 $(TOP ) /ext/fts3/fts3_write.c \
507514 $(TOP ) /ext/async/sqlite3async.c \
508515 $(TOP ) /ext/session/sqlite3session.c \
509- $(TOP ) /ext/misc/stmt.c
516+ $(TOP ) /ext/misc/stmt.c
510517
511518# Header files used by all library source files.
512519#
@@ -559,6 +566,8 @@ EXTHDR += \
559566 $(TOP ) /ext/icu/sqliteicu.h
560567EXTHDR += \
561568 $(TOP ) /ext/rtree/sqlite3rtree.h
569+ EXTHDR += \
570+ $(TOP ) /ext/userauth/sqlite3userauth.h
562571
563572# executables needed for testing
564573#
@@ -578,7 +587,8 @@ FUZZDATA = \
578587 $(TOP ) /test/fuzzdata3.db \
579588 $(TOP ) /test/fuzzdata4.db \
580589 $(TOP ) /test/fuzzdata5.db \
581- $(TOP ) /test/fuzzdata6.db
590+ $(TOP ) /test/fuzzdata6.db \
591+ $(TOP ) /test/fuzzdata7.db
582592
583593# Standard options to testfixture
584594#
@@ -595,13 +605,14 @@ SHELL_OPT += -DSQLITE_ENABLE_STMTVTAB
595605SHELL_OPT += -DSQLITE_ENABLE_DBPAGE_VTAB
596606SHELL_OPT += -DSQLITE_ENABLE_DBSTAT_VTAB
597607SHELL_OPT += -DSQLITE_ENABLE_OFFSET_SQL_FUNC
608+ SHELL_OPT += -DSQLITE_ENABLE_DESERIALIZE
598609SHELL_OPT += -DSQLITE_INTROSPECTION_PRAGMAS
599610FUZZERSHELL_OPT = -DSQLITE_ENABLE_JSON1
600611FUZZCHECK_OPT = -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MEMSYS5 -DSQLITE_OSS_FUZZ
601612FUZZCHECK_OPT += -DSQLITE_MAX_MEMORY=50000000
602613FUZZCHECK_OPT += -DSQLITE_PRINTF_PRECISION_LIMIT=1000
603614FUZZCHECK_SRC = $(TOP ) /test/fuzzcheck.c $(TOP ) /test/ossfuzz.c
604- DBFUZZ_OPT =
615+ DBFUZZ_OPT =
605616
606617# This is the default Makefile target. The objects listed here
607618# are what get build when you type just "make" with no arguments.
@@ -663,6 +674,22 @@ sessionfuzz$(TEXE): $(TOP)/test/sessionfuzz.c sqlite3.c sqlite3.h
663674dbfuzz$(TEXE ) : $(TOP ) /test/dbfuzz.c sqlite3.c sqlite3.h
664675 $(LTLINK ) -o $@ $(DBFUZZ_OPT ) $(TOP ) /test/dbfuzz.c sqlite3.c $(TLIBS )
665676
677+ DBFUZZ2_OPTS = \
678+ -DSQLITE_THREADSAFE=0 \
679+ -DSQLITE_OMIT_LOAD_EXTENSION \
680+ -DSQLITE_ENABLE_DESERIALIZE \
681+ -DSQLITE_DEBUG \
682+ -DSQLITE_ENABLE_DBSTAT_VTAB \
683+ -DSQLITE_ENABLE_RTREE \
684+ -DSQLITE_ENABLE_FTS4 \
685+ -DSQLITE_EANBLE_FTS5
686+
687+ dbfuzz2 : $(TOP ) /test/dbfuzz2.c sqlite3.c sqlite3.h
688+ clang-6.0 -I. -g -O0 -fsanitize=fuzzer,undefined,address -o dbfuzz2 \
689+ $(DBFUZZ2_OPTS ) $(TOP ) /test/dbfuzz2.c sqlite3.c
690+ mkdir -p dbfuzz2-dir
691+ cp $(TOP ) /test/dbfuzz2-seed* dbfuzz2-dir
692+
666693mptester$(TEXE ) : sqlite3.lo $(TOP ) /mptest/mptest.c
667694 $(LTLINK ) -o $@ -I. $(TOP ) /mptest/mptest.c sqlite3.lo \
668695 $(TLIBS ) -rpath " $( libdir) "
@@ -1098,7 +1125,10 @@ fts3_write.lo: $(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR)
10981125rtree.lo : $(TOP ) /ext/rtree/rtree.c $(HDR ) $(EXTHDR )
10991126 $(LTCOMPILE ) -DSQLITE_CORE -c $(TOP ) /ext/rtree/rtree.c
11001127
1101- sqlite3session.lo : $(TOP ) /ext/session/sqlite3session.c $(HDR ) $(EXTHDR )
1128+ sqlite3session.lo : $(TOP ) /ext/userauth/userauth.c $(HDR ) $(EXTHDR )
1129+ $(LTCOMPILE ) -DSQLITE_CORE -c $(TOP ) /ext/userauth/userauth.c
1130+
1131+ userauth.lo : $(TOP ) /ext/session/sqlite3session.c $(HDR ) $(EXTHDR )
11021132 $(LTCOMPILE ) -DSQLITE_CORE -c $(TOP ) /ext/session/sqlite3session.c
11031133
11041134json1.lo : $(TOP ) /ext/misc/json1.c
@@ -1126,7 +1156,7 @@ FTS5_SRC = \
11261156 $(TOP ) /ext/fts5/fts5_varint.c \
11271157 $(TOP ) /ext/fts5/fts5_vocab.c \
11281158
1129- fts5parse.c : $(TOP ) /ext/fts5/fts5parse.y lemon
1159+ fts5parse.c : $(TOP ) /ext/fts5/fts5parse.y lemon
11301160 cp $(TOP ) /ext/fts5/fts5parse.y .
11311161 rm -f fts5parse.h
11321162 ./lemon$(BEXE ) $(OPTS ) fts5parse.y
@@ -1153,7 +1183,7 @@ sqlite3rbu.lo: $(TOP)/ext/rbu/sqlite3rbu.c $(HDR) $(EXTHDR)
11531183#
11541184TESTFIXTURE_FLAGS = -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
11551185TESTFIXTURE_FLAGS += -DTCLSH_INIT_PROC=sqlite3TestInit
1156- TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
1186+ TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
11571187TESTFIXTURE_FLAGS += -DBUILD_sqlite
11581188TESTFIXTURE_FLAGS += -DSQLITE_SERIES_CONSTRAINT_VERIFY=1
11591189TESTFIXTURE_FLAGS += -DSQLITE_DEFAULT_PAGE_SIZE=1024
@@ -1169,6 +1199,10 @@ testfixture$(TEXE): $(TESTFIXTURE_SRC)
11691199 $(LTLINK ) -DSQLITE_NO_SYNC=1 $(TEMP_STORE ) $(TESTFIXTURE_FLAGS ) \
11701200 -o $@ $(TESTFIXTURE_SRC ) $(LIBTCL ) $(TLIBS )
11711201
1202+ coretestprogs : $(TESTPROGS )
1203+
1204+ testprogs : coretestprogs srcck1$(BEXE ) fuzzcheck$(TEXE ) sessionfuzz$(TEXE )
1205+
11721206# A very detailed test running most or all test cases
11731207fulltest : $(TESTPROGS ) fuzztest
11741208 ./testfixture$(TEXE ) $(TOP ) /test/all.test $(TESTOPTS )
@@ -1228,7 +1262,7 @@ sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $
12281262sqlite3_analyzer$(TEXE ) : sqlite3_analyzer.c
12291263 $(LTLINK ) sqlite3_analyzer.c -o $@ $(LIBTCL ) $(TLIBS )
12301264
1231- 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
1265+ 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
12321266 $(TCLSH_CMD ) $(TOP ) /tool/mkccode.tcl $(TOP ) /tool/sqltclsh.c.in > sqltclsh.c
12331267
12341268sqltclsh$(TEXE ) : sqltclsh.c
@@ -1275,6 +1309,9 @@ showshm$(TEXE): $(TOP)/tool/showshm.c
12751309changeset$(TEXE ) : $(TOP ) /ext/session/changeset.c sqlite3.lo
12761310 $(LTLINK ) -o $@ $(TOP ) /ext/session/changeset.c sqlite3.lo $(TLIBS )
12771311
1312+ changesetfuzz$(TEXE ) : $(TOP ) /ext/session/changesetfuzz.c sqlite3.lo
1313+ $(LTLINK ) -o $@ $(TOP ) /ext/session/changesetfuzz.c sqlite3.lo $(TLIBS )
1314+
12781315rollback-test$(TEXE ) : $(TOP ) /tool/rollback-test.c sqlite3.lo
12791316 $(LTLINK ) -o $@ $(TOP ) /tool/rollback-test.c sqlite3.lo $(TLIBS )
12801317
@@ -1295,7 +1332,7 @@ KV_OPT += -DSQLITE_DIRECT_OVERFLOW_READ
12951332kvtest$(TEXE ) : $(TOP ) /test/kvtest.c sqlite3.c
12961333 $(LTLINK ) $(KV_OPT ) -o $@ $(TOP ) /test/kvtest.c sqlite3.c $(TLIBS )
12971334
1298- rbu$(EXE ) : $(TOP ) /ext/rbu/rbu.c $(TOP ) /ext/rbu/sqlite3rbu.c sqlite3.lo
1335+ rbu$(EXE ) : $(TOP ) /ext/rbu/rbu.c $(TOP ) /ext/rbu/sqlite3rbu.c sqlite3.lo
12991336 $(LTLINK ) -I. -o $@ $(TOP ) /ext/rbu/rbu.c sqlite3.lo $(TLIBS )
13001337
13011338loadfts$(EXE ) : $(TOP ) /tool/loadfts.c libsqlite3.la
@@ -1323,7 +1360,7 @@ snapshot-tarball: sqlite3.c
13231360# The next two rules are used to support the "threadtest" target. Building
13241361# threadtest runs a few thread-safety tests that are implemented in C. This
13251362# target is invoked by the releasetest.tcl script.
1326- #
1363+ #
13271364THREADTEST3_SRC = $(TOP ) /test/threadtest3.c \
13281365 $(TOP ) /test/tt3_checkpoint.c \
13291366 $(TOP ) /test/tt3_index.c \
@@ -1337,15 +1374,15 @@ threadtest3$(TEXE): sqlite3.lo $(THREADTEST3_SRC)
13371374threadtest : threadtest3$(TEXE )
13381375 ./threadtest3$(TEXE )
13391376
1340- releasetest :
1377+ releasetest :
13411378 $(TCLSH_CMD ) $(TOP ) /test/releasetest.tcl
13421379
13431380# Standard install and cleanup targets
13441381#
13451382lib_install : libsqlite3.la
13461383 $(INSTALL ) -d $(DESTDIR )$(libdir )
13471384 $(LTINSTALL ) libsqlite3.la $(DESTDIR )$(libdir )
1348-
1385+
13491386install : sqlite3$(TEXE ) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_install}
13501387 $(INSTALL ) -d $(DESTDIR )$(bindir )
13511388 $(LTINSTALL ) sqlite3$(TEXE ) $(DESTDIR )$(bindir )
@@ -1363,7 +1400,7 @@ tcl_install: lib_install libtclsqlite3.la pkgIndex.tcl
13631400 rm -f $(DESTDIR )$(TCLLIBDIR ) /libtclsqlite3.la $(DESTDIR )$(TCLLIBDIR ) /libtclsqlite3.a
13641401 $(INSTALL ) -m 0644 pkgIndex.tcl $(DESTDIR )$(TCLLIBDIR )
13651402
1366- clean :
1403+ clean :
13671404 rm -f * .lo * .la * .o sqlite3$(TEXE ) libsqlite3.la
13681405 rm -f sqlite3.h opcodes.*
13691406 rm -rf .libs .deps
0 commit comments