/ Check-in [a7590af6]
Login

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

Overview
Comment:Add Microsoft nmake compatible makefile; update a few test cases for Windows.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: a7590af65f3881cf905b8cac2b87381e89a80271
User & Date: shaneh 2011-06-17 07:07:24
Context
2011-06-17
07:22
More updates to the nmake makefile. check-in: 55bb56d3 user: shaneh tags: trunk
07:07
Add Microsoft nmake compatible makefile; update a few test cases for Windows. check-in: a7590af6 user: shaneh tags: trunk
2011-06-16
16:06
Fix a problem with NEAR queries executed inside a transaction that writes the FTS table. check-in: 051c756c user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Added Makefile.msc.

            1  +#
            2  +# nmake Makefile for SQLITE
            3  +#
            4  +
            5  +# The toplevel directory of the source tree.  This is the directory
            6  +# that contains this "Makefile.msc".
            7  +#
            8  +TOP = .
            9  +
           10  +# C Compiler and options for use in building executables that
           11  +# will run on the platform that is doing the build.
           12  +#
           13  +BCC = cl.exe -O2
           14  +
           15  +# C Compile and options for use in building executables that 
           16  +# will run on the target platform.  (BCC and TCC are usually the
           17  +# same unless your are cross-compiling.)
           18  +#
           19  +TCC = cl.exe -W3 -O2 -DSQLITE_OS_WIN=1 -I. -I$(TOP)\src -I$(TOP)\ext\rtree
           20  +
           21  +# Define -DNDEBUG to compile without debugging (i.e., for production usage)
           22  +# Omitting the define will cause extra debugging code to be inserted and
           23  +# includes extra comments when "EXPLAIN stmt" is used.
           24  +#
           25  +TCC = $(TCC) -DNDEBUG
           26  +
           27  +# The library that programs using TCL must link against.
           28  +#
           29  +LIBTCL = tcl85.lib
           30  +TCLINCDIR = c:\tcl\include
           31  +TCLLIBDIR = c:\tcl\lib
           32  +
           33  +# This is the command to use for tclsh - normally just "tclsh", but we may
           34  +# know the specific version we want to use
           35  +#
           36  +TCLSH_CMD = tclsh85
           37  +
           38  +# Compiler options needed for programs that use the readline() library.
           39  +#
           40  +READLINE_FLAGS = -DHAVE_READLINE=0 
           41  +
           42  +# The library that programs using readline() must link against.
           43  +#
           44  +LIBREADLINE = 
           45  +
           46  +# Should the database engine be compiled threadsafe
           47  +#
           48  +TCC = $(TCC) -DSQLITE_THREADSAFE=1
           49  +
           50  +# Do threads override each others locks by default (1), or do we test (-1)
           51  +#
           52  +TCC = $(TCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1
           53  +
           54  +# Any target libraries which libsqlite must be linked against
           55  +# 
           56  +TLIBS = 
           57  +
           58  +# Flags controlling use of the in memory btree implementation
           59  +#
           60  +# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to
           61  +# default to file, 2 to default to memory, and 3 to force temporary
           62  +# tables to always be in memory.
           63  +#
           64  +TEMP_STORE = -DSQLITE_TEMP_STORE=1
           65  +
           66  +# Enable/disable loadable extensions, and other optional features
           67  +# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*).  
           68  +# The same set of OMIT and ENABLE flags should be passed to the 
           69  +# LEMON parser generator and the mkkeywordhash tool as well.
           70  +
           71  +# BEGIN standard options
           72  +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
           73  +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
           74  +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
           75  +# END standard options
           76  +
           77  +# BEGIN required Windows option
           78  +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100
           79  +# END required Windows option
           80  +
           81  +TCC = $(TCC) $(OPT_FEATURE_FLAGS)
           82  +
           83  +# Add in any optional parameters specified on the make commane line
           84  +# ie.  make "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1".
           85  +TCC = $(TCC) $(OPTS)
           86  +
           87  +# Version numbers and release number for the SQLite being compiled.
           88  +#
           89  +VERSION = 3.7
           90  +VERSION_NUMBER = 3007007
           91  +RELEASE = 3.7.7
           92  +
           93  +# libtool compile/link
           94  +LTCOMPILE = $(TCC) -Fo$@
           95  +LTLINK = $(TCC) -Fe$@
           96  +LTLIB = lib.exe
           97  +
           98  +# nawk compatible awk.
           99  +NAWK = .\gawk.exe
          100  +
          101  +# You should not have to change anything below this line
          102  +###############################################################################
          103  +
          104  +USE_AMALGAMATION = 1
          105  +
          106  +# Object files for the SQLite library (non-amalgamation).
          107  +#
          108  +LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \
          109  +         backup.lo bitvec.lo btmutex.lo btree.lo build.lo \
          110  +         callback.lo complete.lo ctime.lo date.lo delete.lo \
          111  +         expr.lo fault.lo fkey.lo \
          112  +         fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo fts3_porter.lo \
          113  +         fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo fts3_write.lo \
          114  +         func.lo global.lo hash.lo \
          115  +         icu.lo insert.lo journal.lo legacy.lo loadext.lo \
          116  +         main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \
          117  +         memjournal.lo \
          118  +         mutex.lo mutex_noop.lo mutex_os2.lo mutex_unix.lo mutex_w32.lo \
          119  +         notify.lo opcodes.lo os.lo os_os2.lo os_unix.lo os_win.lo \
          120  +         pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \
          121  +         random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \
          122  +         table.lo tokenize.lo trigger.lo \
          123  +         update.lo util.lo vacuum.lo \
          124  +         vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbetrace.lo \
          125  +         wal.lo walker.lo where.lo utf.lo vtab.lo
          126  +
          127  +# Object files for the amalgamation.
          128  +#
          129  +LIBOBJS1 = sqlite3.lo
          130  +
          131  +# Determine the real value of LIBOBJ based on the 'configure' script
          132  +#
          133  +!IF $(USE_AMALGAMATION)==0
          134  +LIBOBJ = $(LIBOBJS0)
          135  +!ELSE
          136  +LIBOBJ = $(LIBOBJS1)
          137  +!ENDIF
          138  +
          139  +# All of the source code files.
          140  +#
          141  +SRC = \
          142  +  $(TOP)\src\alter.c \
          143  +  $(TOP)\src\analyze.c \
          144  +  $(TOP)\src\attach.c \
          145  +  $(TOP)\src\auth.c \
          146  +  $(TOP)\src\backup.c \
          147  +  $(TOP)\src\bitvec.c \
          148  +  $(TOP)\src\btmutex.c \
          149  +  $(TOP)\src\btree.c \
          150  +  $(TOP)\src\btree.h \
          151  +  $(TOP)\src\btreeInt.h \
          152  +  $(TOP)\src\build.c \
          153  +  $(TOP)\src\callback.c \
          154  +  $(TOP)\src\complete.c \
          155  +  $(TOP)\src\ctime.c \
          156  +  $(TOP)\src\date.c \
          157  +  $(TOP)\src\delete.c \
          158  +  $(TOP)\src\expr.c \
          159  +  $(TOP)\src\fault.c \
          160  +  $(TOP)\src\fkey.c \
          161  +  $(TOP)\src\func.c \
          162  +  $(TOP)\src\global.c \
          163  +  $(TOP)\src\hash.c \
          164  +  $(TOP)\src\hash.h \
          165  +  $(TOP)\src\hwtime.h \
          166  +  $(TOP)\src\insert.c \
          167  +  $(TOP)\src\journal.c \
          168  +  $(TOP)\src\legacy.c \
          169  +  $(TOP)\src\loadext.c \
          170  +  $(TOP)\src\main.c \
          171  +  $(TOP)\src\malloc.c \
          172  +  $(TOP)\src\mem0.c \
          173  +  $(TOP)\src\mem1.c \
          174  +  $(TOP)\src\mem2.c \
          175  +  $(TOP)\src\mem3.c \
          176  +  $(TOP)\src\mem5.c \
          177  +  $(TOP)\src\memjournal.c \
          178  +  $(TOP)\src\mutex.c \
          179  +  $(TOP)\src\mutex.h \
          180  +  $(TOP)\src\mutex_noop.c \
          181  +  $(TOP)\src\mutex_os2.c \
          182  +  $(TOP)\src\mutex_unix.c \
          183  +  $(TOP)\src\mutex_w32.c \
          184  +  $(TOP)\src\notify.c \
          185  +  $(TOP)\src\os.c \
          186  +  $(TOP)\src\os.h \
          187  +  $(TOP)\src\os_common.h \
          188  +  $(TOP)\src\os_os2.c \
          189  +  $(TOP)\src\os_unix.c \
          190  +  $(TOP)\src\os_win.c \
          191  +  $(TOP)\src\pager.c \
          192  +  $(TOP)\src\pager.h \
          193  +  $(TOP)\src\parse.y \
          194  +  $(TOP)\src\pcache.c \
          195  +  $(TOP)\src\pcache.h \
          196  +  $(TOP)\src\pcache1.c \
          197  +  $(TOP)\src\pragma.c \
          198  +  $(TOP)\src\prepare.c \
          199  +  $(TOP)\src\printf.c \
          200  +  $(TOP)\src\random.c \
          201  +  $(TOP)\src\resolve.c \
          202  +  $(TOP)\src\rowset.c \
          203  +  $(TOP)\src\select.c \
          204  +  $(TOP)\src\status.c \
          205  +  $(TOP)\src\shell.c \
          206  +  $(TOP)\src\sqlite.h.in \
          207  +  $(TOP)\src\sqlite3ext.h \
          208  +  $(TOP)\src\sqliteInt.h \
          209  +  $(TOP)\src\sqliteLimit.h \
          210  +  $(TOP)\src\table.c \
          211  +  $(TOP)\src\tclsqlite.c \
          212  +  $(TOP)\src\tokenize.c \
          213  +  $(TOP)\src\trigger.c \
          214  +  $(TOP)\src\utf.c \
          215  +  $(TOP)\src\update.c \
          216  +  $(TOP)\src\util.c \
          217  +  $(TOP)\src\vacuum.c \
          218  +  $(TOP)\src\vdbe.c \
          219  +  $(TOP)\src\vdbe.h \
          220  +  $(TOP)\src\vdbeapi.c \
          221  +  $(TOP)\src\vdbeaux.c \
          222  +  $(TOP)\src\vdbeblob.c \
          223  +  $(TOP)\src\vdbemem.c \
          224  +  $(TOP)\src\vdbetrace.c \
          225  +  $(TOP)\src\vdbeInt.h \
          226  +  $(TOP)\src\vtab.c \
          227  +  $(TOP)\src\wal.c \
          228  +  $(TOP)\src\wal.h \
          229  +  $(TOP)\src\walker.c \
          230  +  $(TOP)\src\where.c
          231  +
          232  +# Source code for extensions
          233  +#
          234  +SRC = $(SRC) \
          235  +  $(TOP)\ext\fts1\fts1.c \
          236  +  $(TOP)\ext\fts1\fts1.h \
          237  +  $(TOP)\ext\fts1\fts1_hash.c \
          238  +  $(TOP)\ext\fts1\fts1_hash.h \
          239  +  $(TOP)\ext\fts1\fts1_porter.c \
          240  +  $(TOP)\ext\fts1\fts1_tokenizer.h \
          241  +  $(TOP)\ext\fts1\fts1_tokenizer1.c
          242  +SRC = $(SRC) \
          243  +  $(TOP)\ext\fts2\fts2.c \
          244  +  $(TOP)\ext\fts2\fts2.h \
          245  +  $(TOP)\ext\fts2\fts2_hash.c \
          246  +  $(TOP)\ext\fts2\fts2_hash.h \
          247  +  $(TOP)\ext\fts2\fts2_icu.c \
          248  +  $(TOP)\ext\fts2\fts2_porter.c \
          249  +  $(TOP)\ext\fts2\fts2_tokenizer.h \
          250  +  $(TOP)\ext\fts2\fts2_tokenizer.c \
          251  +  $(TOP)\ext\fts2\fts2_tokenizer1.c
          252  +SRC = $(SRC) \
          253  +  $(TOP)\ext\fts3\fts3.c \
          254  +  $(TOP)\ext\fts3\fts3.h \
          255  +  $(TOP)\ext\fts3\fts3Int.h \
          256  +  $(TOP)\ext\fts3\fts3_aux.c \
          257  +  $(TOP)\ext\fts3\fts3_expr.c \
          258  +  $(TOP)\ext\fts3\fts3_hash.c \
          259  +  $(TOP)\ext\fts3\fts3_hash.h \
          260  +  $(TOP)\ext\fts3\fts3_icu.c \
          261  +  $(TOP)\ext\fts3\fts3_porter.c \
          262  +  $(TOP)\ext\fts3\fts3_snippet.c \
          263  +  $(TOP)\ext\fts3\fts3_tokenizer.h \
          264  +  $(TOP)\ext\fts3\fts3_tokenizer.c \
          265  +  $(TOP)\ext\fts3\fts3_tokenizer1.c \
          266  +  $(TOP)\ext\fts3\fts3_write.c
          267  +SRC = $(SRC) \
          268  +  $(TOP)\ext\icu\sqliteicu.h \
          269  +  $(TOP)\ext\icu\icu.c
          270  +SRC = $(SRC) \
          271  +  $(TOP)\ext\rtree\rtree.h \
          272  +  $(TOP)\ext\rtree\rtree.c
          273  +
          274  +
          275  +# Generated source code files
          276  +#
          277  +SRC = $(SRC) \
          278  +  keywordhash.h \
          279  +  opcodes.c \
          280  +  opcodes.h \
          281  +  parse.c \
          282  +  parse.h \
          283  +  sqlite3.h
          284  +
          285  +# Source code to the test files.
          286  +#
          287  +TESTSRC = \
          288  +  $(TOP)\src\test1.c \
          289  +  $(TOP)\src\test2.c \
          290  +  $(TOP)\src\test3.c \
          291  +  $(TOP)\src\test4.c \
          292  +  $(TOP)\src\test5.c \
          293  +  $(TOP)\src\test6.c \
          294  +  $(TOP)\src\test7.c \
          295  +  $(TOP)\src\test8.c \
          296  +  $(TOP)\src\test9.c \
          297  +  $(TOP)\src\test_autoext.c \
          298  +  $(TOP)\src\test_async.c \
          299  +  $(TOP)\src\test_backup.c \
          300  +  $(TOP)\src\test_btree.c \
          301  +  $(TOP)\src\test_config.c \
          302  +  $(TOP)\src\test_demovfs.c \
          303  +  $(TOP)\src\test_devsym.c \
          304  +  $(TOP)\src\test_func.c \
          305  +  $(TOP)\src\test_fuzzer.c \
          306  +  $(TOP)\src\test_hexio.c \
          307  +  $(TOP)\src\test_init.c \
          308  +  $(TOP)\src\test_intarray.c \
          309  +  $(TOP)\src\test_journal.c \
          310  +  $(TOP)\src\test_malloc.c \
          311  +  $(TOP)\src\test_multiplex.c \
          312  +  $(TOP)\src\test_mutex.c \
          313  +  $(TOP)\src\test_onefile.c \
          314  +  $(TOP)\src\test_osinst.c \
          315  +  $(TOP)\src\test_pcache.c \
          316  +  $(TOP)\src\test_quota.c \
          317  +  $(TOP)\src\test_rtree.c \
          318  +  $(TOP)\src\test_schema.c \
          319  +  $(TOP)\src\test_server.c \
          320  +  $(TOP)\src\test_superlock.c \
          321  +  $(TOP)\src\test_syscall.c \
          322  +  $(TOP)\src\test_stat.c \
          323  +  $(TOP)\src\test_tclvar.c \
          324  +  $(TOP)\src\test_thread.c \
          325  +  $(TOP)\src\test_vfs.c \
          326  +  $(TOP)\src\test_wholenumber.c \
          327  +  $(TOP)\src\test_wsd.c \
          328  +  $(TOP)\ext\fts3\fts3_term.c \
          329  +  $(TOP)\ext\fts3\fts3_test.c 
          330  +
          331  +# Source code to the library files needed by the test fixture
          332  +#
          333  +TESTSRC2 = \
          334  +  $(TOP)\src\attach.c \
          335  +  $(TOP)\src\backup.c \
          336  +  $(TOP)\src\bitvec.c \
          337  +  $(TOP)\src\btree.c \
          338  +  $(TOP)\src\build.c \
          339  +  $(TOP)\src\ctime.c \
          340  +  $(TOP)\src\date.c \
          341  +  $(TOP)\src\expr.c \
          342  +  $(TOP)\src\func.c \
          343  +  $(TOP)\src\insert.c \
          344  +  $(TOP)\src\wal.c \
          345  +  $(TOP)\src\mem5.c \
          346  +  $(TOP)\src\os.c \
          347  +  $(TOP)\src\os_os2.c \
          348  +  $(TOP)\src\os_unix.c \
          349  +  $(TOP)\src\os_win.c \
          350  +  $(TOP)\src\pager.c \
          351  +  $(TOP)\src\pragma.c \
          352  +  $(TOP)\src\prepare.c \
          353  +  $(TOP)\src\printf.c \
          354  +  $(TOP)\src\random.c \
          355  +  $(TOP)\src\pcache.c \
          356  +  $(TOP)\src\pcache1.c \
          357  +  $(TOP)\src\select.c \
          358  +  $(TOP)\src\tokenize.c \
          359  +  $(TOP)\src\utf.c \
          360  +  $(TOP)\src\util.c \
          361  +  $(TOP)\src\vdbeapi.c \
          362  +  $(TOP)\src\vdbeaux.c \
          363  +  $(TOP)\src\vdbe.c \
          364  +  $(TOP)\src\vdbemem.c \
          365  +  $(TOP)\src\vdbetrace.c \
          366  +  $(TOP)\src\where.c \
          367  +  parse.c \
          368  +  $(TOP)\ext\fts3\fts3.c \
          369  +  $(TOP)\ext\fts3\fts3_aux.c \
          370  +  $(TOP)\ext\fts3\fts3_expr.c \
          371  +  $(TOP)\ext\fts3\fts3_term.c \
          372  +  $(TOP)\ext\fts3\fts3_tokenizer.c \
          373  +  $(TOP)\ext\fts3\fts3_write.c \
          374  +  $(TOP)\ext\async\sqlite3async.c
          375  +
          376  +# Header files used by all library source files.
          377  +#
          378  +HDR = \
          379  +   $(TOP)\src\btree.h \
          380  +   $(TOP)\src\btreeInt.h \
          381  +   $(TOP)\src\hash.h \
          382  +   $(TOP)\src\hwtime.h \
          383  +   keywordhash.h \
          384  +   $(TOP)\src\mutex.h \
          385  +   opcodes.h \
          386  +   $(TOP)\src\os.h \
          387  +   $(TOP)\src\os_common.h \
          388  +   $(TOP)\src\pager.h \
          389  +   $(TOP)\src\pcache.h \
          390  +   parse.h  \
          391  +   sqlite3.h  \
          392  +   $(TOP)\src\sqlite3ext.h \
          393  +   $(TOP)\src\sqliteInt.h  \
          394  +   $(TOP)\src\sqliteLimit.h \
          395  +   $(TOP)\src\vdbe.h \
          396  +   $(TOP)\src\vdbeInt.h
          397  +
          398  +# Header files used by extensions
          399  +#
          400  +EXTHDR = $(EXTHDR) \
          401  +  $(TOP)\ext\fts1\fts1.h \
          402  +  $(TOP)\ext\fts1\fts1_hash.h \
          403  +  $(TOP)\ext\fts1\fts1_tokenizer.h
          404  +EXTHDR = $(EXTHDR) \
          405  +  $(TOP)\ext\fts2\fts2.h \
          406  +  $(TOP)\ext\fts2\fts2_hash.h \
          407  +  $(TOP)\ext\fts2\fts2_tokenizer.h
          408  +EXTHDR = $(EXTHDR) \
          409  +  $(TOP)\ext\fts3\fts3.h \
          410  +  $(TOP)\ext\fts3\fts3Int.h \
          411  +  $(TOP)\ext\fts3\fts3_hash.h \
          412  +  $(TOP)\ext\fts3\fts3_tokenizer.h
          413  +EXTHDR = $(EXTHDR) \
          414  +  $(TOP)\ext\rtree\rtree.h
          415  +EXTHDR = $(EXTHDR) \
          416  +  $(TOP)\ext\icu\sqliteicu.h
          417  +EXTHDR = $(EXTHDR) \
          418  +  $(TOP)\ext\rtree\sqlite3rtree.h
          419  +
          420  +# This is the default Makefile target.  The objects listed here
          421  +# are what get build when you type just "make" with no arguments.
          422  +#
          423  +all:	sqlite3.h libsqlite3.lib sqlite3.exe libtclsqlite3.lib
          424  +
          425  +Makefile: $(TOP)\Makefile.in
          426  +	.\config.status
          427  +
          428  +sqlite3.pc: $(TOP)\sqlite3.pc.in
          429  +	.\config.status
          430  +
          431  +libsqlite3.lib:	$(LIBOBJ)
          432  +	$(LTLIB) -OUT:$@ $(LIBOBJ) $(TLIBS)
          433  +
          434  +libtclsqlite3.lib:	tclsqlite.lo libsqlite3.lib
          435  +	$(LTLIB) /LIBPATH:$(TCLLIBDIR) -OUT:$@ $** $(LIBTCL:tcl=tclstub) $(TLIBS)
          436  +
          437  +sqlite3.exe:	$(TOP)\src\shell.c libsqlite3.lib sqlite3.h
          438  +	$(LTLINK) $(READLINE_FLAGS) \
          439  +		$(TOP)\src\shell.c libsqlite3.lib \
          440  +		$(LIBREADLINE) $(TLIBS)
          441  +
          442  +# This target creates a directory named "tsrc" and fills it with
          443  +# copies of all of the C source code and header files needed to
          444  +# build on the target system.  Some of the C source code and header
          445  +# files are automatically generated.  This target takes care of
          446  +# all that automatic generation.
          447  +#
          448  +.target_source:	$(SRC) $(TOP)\tool\vdbe-compress.tcl
          449  +	-rmdir /S/Q tsrc
          450  +	-mkdir tsrc
          451  +	for %i in ($(SRC)) do copy /Y %i tsrc
          452  +	del /Q tsrc\sqlite.h.in tsrc\parse.y
          453  +	$(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl <tsrc\vdbe.c >vdbe.new
          454  +	move vdbe.new tsrc\vdbe.c
          455  +	echo > .target_source
          456  +
          457  +sqlite3.c:	.target_source $(TOP)\tool\mksqlite3c.tcl
          458  +	$(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl
          459  +
          460  +# Rule to build the amalgamation
          461  +#
          462  +sqlite3.lo:	sqlite3.c
          463  +	$(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c
          464  +
          465  +# Rules to build the LEMON compiler generator
          466  +#
          467  +lempar.c:	$(TOP)\src\lempar.c
          468  +	copy $(TOP)\src\lempar.c .
          469  +
          470  +lemon.exe:	$(TOP)\tool\lemon.c lempar.c
          471  +	$(BCC) -Fe$@ $(TOP)\tool\lemon.c
          472  +
          473  +# Rules to build individual *.lo files from generated *.c files. This
          474  +# applies to:
          475  +#
          476  +#     parse.lo
          477  +#     opcodes.lo
          478  +#
          479  +parse.lo:	parse.c $(HDR)
          480  +	$(LTCOMPILE) $(TEMP_STORE) -c parse.c
          481  +
          482  +opcodes.lo:	opcodes.c
          483  +	$(LTCOMPILE) $(TEMP_STORE) -c opcodes.c
          484  +
          485  +# Rules to build individual *.lo files from files in the src directory.
          486  +#
          487  +alter.lo:	$(TOP)\src\alter.c $(HDR)
          488  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\alter.c
          489  +
          490  +analyze.lo:	$(TOP)\src\analyze.c $(HDR)
          491  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\analyze.c
          492  +
          493  +attach.lo:	$(TOP)\src\attach.c $(HDR)
          494  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\attach.c
          495  +
          496  +auth.lo:	$(TOP)\src\auth.c $(HDR)
          497  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\auth.c
          498  +
          499  +backup.lo:	$(TOP)\src\backup.c $(HDR)
          500  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\backup.c
          501  +
          502  +bitvec.lo:	$(TOP)\src\bitvec.c $(HDR)
          503  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\bitvec.c
          504  +
          505  +btmutex.lo:	$(TOP)\src\btmutex.c $(HDR)
          506  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\btmutex.c
          507  +
          508  +btree.lo:	$(TOP)\src\btree.c $(HDR) $(TOP)\src\pager.h
          509  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\btree.c
          510  +
          511  +build.lo:	$(TOP)\src\build.c $(HDR)
          512  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\build.c
          513  +
          514  +callback.lo:	$(TOP)\src\callback.c $(HDR)
          515  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\callback.c
          516  +
          517  +complete.lo:	$(TOP)\src\complete.c $(HDR)
          518  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\complete.c
          519  +
          520  +ctime.lo:	$(TOP)\src\ctime.c $(HDR)
          521  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\ctime.c
          522  +
          523  +date.lo:	$(TOP)\src\date.c $(HDR)
          524  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\date.c
          525  +
          526  +delete.lo:	$(TOP)\src\delete.c $(HDR)
          527  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\delete.c
          528  +
          529  +expr.lo:	$(TOP)\src\expr.c $(HDR)
          530  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\expr.c
          531  +
          532  +fault.lo:	$(TOP)\src\fault.c $(HDR)
          533  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\fault.c
          534  +
          535  +fkey.lo:	$(TOP)\src\fkey.c $(HDR)
          536  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\fkey.c
          537  +
          538  +func.lo:	$(TOP)\src\func.c $(HDR)
          539  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\func.c
          540  +
          541  +global.lo:	$(TOP)\src\global.c $(HDR)
          542  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\global.c
          543  +
          544  +hash.lo:	$(TOP)\src\hash.c $(HDR)
          545  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\hash.c
          546  +
          547  +insert.lo:	$(TOP)\src\insert.c $(HDR)
          548  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\insert.c
          549  +
          550  +journal.lo:	$(TOP)\src\journal.c $(HDR)
          551  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\journal.c
          552  +
          553  +legacy.lo:	$(TOP)\src\legacy.c $(HDR)
          554  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\legacy.c
          555  +
          556  +loadext.lo:	$(TOP)\src\loadext.c $(HDR)
          557  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\loadext.c
          558  +
          559  +main.lo:	$(TOP)\src\main.c $(HDR)
          560  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\main.c
          561  +
          562  +malloc.lo:	$(TOP)\src\malloc.c $(HDR)
          563  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\malloc.c
          564  +
          565  +mem0.lo:	$(TOP)\src\mem0.c $(HDR)
          566  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mem0.c
          567  +
          568  +mem1.lo:	$(TOP)\src\mem1.c $(HDR)
          569  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mem1.c
          570  +
          571  +mem2.lo:	$(TOP)\src\mem2.c $(HDR)
          572  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mem2.c
          573  +
          574  +mem3.lo:	$(TOP)\src\mem3.c $(HDR)
          575  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mem3.c
          576  +
          577  +mem5.lo:	$(TOP)\src\mem5.c $(HDR)
          578  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mem5.c
          579  +
          580  +memjournal.lo:	$(TOP)\src\memjournal.c $(HDR)
          581  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\memjournal.c
          582  +
          583  +mutex.lo:	$(TOP)\src\mutex.c $(HDR)
          584  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mutex.c
          585  +
          586  +mutex_noop.lo:	$(TOP)\src\mutex_noop.c $(HDR)
          587  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mutex_noop.c
          588  +
          589  +mutex_os2.lo:	$(TOP)\src\mutex_os2.c $(HDR)
          590  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mutex_os2.c
          591  +
          592  +mutex_unix.lo:	$(TOP)\src\mutex_unix.c $(HDR)
          593  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mutex_unix.c
          594  +
          595  +mutex_w32.lo:	$(TOP)\src\mutex_w32.c $(HDR)
          596  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\mutex_w32.c
          597  +
          598  +notify.lo:	$(TOP)\src\notify.c $(HDR)
          599  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\notify.c
          600  +
          601  +pager.lo:	$(TOP)\src\pager.c $(HDR) $(TOP)\src\pager.h
          602  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\pager.c
          603  +
          604  +pcache.lo:	$(TOP)\src\pcache.c $(HDR) $(TOP)\src\pcache.h
          605  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\pcache.c
          606  +
          607  +pcache1.lo:	$(TOP)\src\pcache1.c $(HDR) $(TOP)\src\pcache.h
          608  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\pcache1.c
          609  +
          610  +os.lo:	$(TOP)\src\os.c $(HDR)
          611  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\os.c
          612  +
          613  +os_unix.lo:	$(TOP)\src\os_unix.c $(HDR)
          614  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\os_unix.c
          615  +
          616  +os_win.lo:	$(TOP)\src\os_win.c $(HDR)
          617  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\os_win.c
          618  +
          619  +os_os2.lo:	$(TOP)\src\os_os2.c $(HDR)
          620  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\os_os2.c
          621  +
          622  +pragma.lo:	$(TOP)\src\pragma.c $(HDR)
          623  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\pragma.c
          624  +
          625  +prepare.lo:	$(TOP)\src\prepare.c $(HDR)
          626  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\prepare.c
          627  +
          628  +printf.lo:	$(TOP)\src\printf.c $(HDR)
          629  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\printf.c
          630  +
          631  +random.lo:	$(TOP)\src\random.c $(HDR)
          632  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\random.c
          633  +
          634  +resolve.lo:	$(TOP)\src\resolve.c $(HDR)
          635  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\resolve.c
          636  +
          637  +rowset.lo:	$(TOP)\src\rowset.c $(HDR)
          638  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\rowset.c
          639  +
          640  +select.lo:	$(TOP)\src\select.c $(HDR)
          641  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\select.c
          642  +
          643  +status.lo:	$(TOP)\src\status.c $(HDR)
          644  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\status.c
          645  +
          646  +table.lo:	$(TOP)\src\table.c $(HDR)
          647  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\table.c
          648  +
          649  +tokenize.lo:	$(TOP)\src\tokenize.c keywordhash.h $(HDR)
          650  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\tokenize.c
          651  +
          652  +trigger.lo:	$(TOP)\src\trigger.c $(HDR)
          653  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\trigger.c
          654  +
          655  +update.lo:	$(TOP)\src\update.c $(HDR)
          656  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\update.c
          657  +
          658  +utf.lo:	$(TOP)\src\utf.c $(HDR)
          659  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\utf.c
          660  +
          661  +util.lo:	$(TOP)\src\util.c $(HDR)
          662  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\util.c
          663  +
          664  +vacuum.lo:	$(TOP)\src\vacuum.c $(HDR)
          665  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vacuum.c
          666  +
          667  +vdbe.lo:	$(TOP)\src\vdbe.c $(HDR)
          668  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbe.c
          669  +
          670  +vdbeapi.lo:	$(TOP)\src\vdbeapi.c $(HDR)
          671  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbeapi.c
          672  +
          673  +vdbeaux.lo:	$(TOP)\src\vdbeaux.c $(HDR)
          674  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbeaux.c
          675  +
          676  +vdbeblob.lo:	$(TOP)\src\vdbeblob.c $(HDR)
          677  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbeblob.c
          678  +
          679  +vdbemem.lo:	$(TOP)\src\vdbemem.c $(HDR)
          680  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbemem.c
          681  +
          682  +vdbetrace.lo:	$(TOP)\src\vdbetrace.c $(HDR)
          683  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vdbetrace.c
          684  +
          685  +vtab.lo:	$(TOP)\src\vtab.c $(HDR)
          686  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\vtab.c
          687  +
          688  +wal.lo:	$(TOP)\src\wal.c $(HDR)
          689  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\wal.c
          690  +
          691  +walker.lo:	$(TOP)\src\walker.c $(HDR)
          692  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\walker.c
          693  +
          694  +where.lo:	$(TOP)\src\where.c $(HDR)
          695  +	$(LTCOMPILE) $(TEMP_STORE) -c $(TOP)\src\where.c
          696  +
          697  +tclsqlite.lo:	$(TOP)\src\tclsqlite.c $(HDR)
          698  +	$(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
          699  +
          700  +tclsqlite-shell.lo:	$(TOP)\src\tclsqlite.c $(HDR)
          701  +	$(LTCOMPILE) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
          702  +
          703  +tclsqlite-stubs.lo:	$(TOP)\src\tclsqlite.c $(HDR)
          704  +	$(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c
          705  +
          706  +tclsqlite3.exe:	tclsqlite-shell.lo libsqlite3.lib
          707  +	$(LTLINK) tclsqlite-shell.lo \
          708  +		/link /LIBPATH:$(TCLLIBDIR) libsqlite3.lib $(LIBTCL)
          709  +
          710  +# Rules to build opcodes.c and opcodes.h
          711  +#
          712  +opcodes.c:	opcodes.h $(TOP)\mkopcodec.awk
          713  +	$(NAWK) "/#define OP_/ { print }" opcodes.h | sort /+45 | $(NAWK) -f $(TOP)\mkopcodec.awk >opcodes.c
          714  +
          715  +opcodes.h:	parse.h $(TOP)\src\vdbe.c $(TOP)\mkopcodeh.awk
          716  +	type parse.h $(TOP)\src\vdbe.c | $(NAWK) -f $(TOP)\mkopcodeh.awk >opcodes.h
          717  +
          718  +# Rules to build parse.c and parse.h - the outputs of lemon.
          719  +#
          720  +parse.h:	parse.c
          721  +
          722  +parse.c:	$(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk
          723  +	copy $(TOP)\src\parse.y .
          724  +	del /Q parse.h
          725  +	.\lemon.exe $(OPT_FEATURE_FLAGS) $(OPTS) parse.y
          726  +	move parse.h parse.h.temp
          727  +	$(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp >parse.h
          728  +
          729  +sqlite3.h:	$(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
          730  +	$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP) >sqlite3.h
          731  +
          732  +mkkeywordhash.exe:	$(TOP)\tool\mkkeywordhash.c
          733  +	$(BCC) -Femkkeywordhash.exe $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c
          734  +
          735  +keywordhash.h:	$(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
          736  +	.\mkkeywordhash.exe >keywordhash.h
          737  +
          738  +
          739  +
          740  +# Rules to build the extension objects.
          741  +#
          742  +icu.lo:	$(TOP)\ext\icu\icu.c $(HDR) $(EXTHDR)
          743  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c
          744  +
          745  +fts2.lo:	$(TOP)\ext\fts2\fts2.c $(HDR) $(EXTHDR)
          746  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2.c
          747  +
          748  +fts2_hash.lo:	$(TOP)\ext\fts2\fts2_hash.c $(HDR) $(EXTHDR)
          749  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_hash.c
          750  +
          751  +fts2_icu.lo:	$(TOP)\ext\fts2\fts2_icu.c $(HDR) $(EXTHDR)
          752  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_icu.c
          753  +
          754  +fts2_porter.lo:	$(TOP)\ext\fts2\fts2_porter.c $(HDR) $(EXTHDR)
          755  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_porter.c
          756  +
          757  +fts2_tokenizer.lo:	$(TOP)\ext\fts2\fts2_tokenizer.c $(HDR) $(EXTHDR)
          758  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer.c
          759  +
          760  +fts2_tokenizer1.lo:	$(TOP)\ext\fts2\fts2_tokenizer1.c $(HDR) $(EXTHDR)
          761  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer1.c
          762  +
          763  +fts3.lo:	$(TOP)\ext\fts3\fts3.c $(HDR) $(EXTHDR)
          764  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c
          765  +
          766  +fts3_aux.lo:	$(TOP)\ext\fts3\fts3_aux.c $(HDR) $(EXTHDR)
          767  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c
          768  +
          769  +fts3_expr.lo:	$(TOP)\ext\fts3\fts3_expr.c $(HDR) $(EXTHDR)
          770  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c
          771  +
          772  +fts3_hash.lo:	$(TOP)\ext\fts3\fts3_hash.c $(HDR) $(EXTHDR)
          773  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c
          774  +
          775  +fts3_icu.lo:	$(TOP)\ext\fts3\fts3_icu.c $(HDR) $(EXTHDR)
          776  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c
          777  +
          778  +fts3_snippet.lo:	$(TOP)\ext\fts3\fts3_snippet.c $(HDR) $(EXTHDR)
          779  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c
          780  +
          781  +fts3_porter.lo:	$(TOP)\ext\fts3\fts3_porter.c $(HDR) $(EXTHDR)
          782  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c
          783  +
          784  +fts3_tokenizer.lo:	$(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR)
          785  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c
          786  +
          787  +fts3_tokenizer1.lo:	$(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR)
          788  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c
          789  +
          790  +fts3_write.lo:	$(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR)
          791  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c
          792  +
          793  +rtree.lo:	$(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR)
          794  +	$(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c
          795  +
          796  +
          797  +# Rules to build the 'testfixture' application.
          798  +#
          799  +# If using the amalgamation, use sqlite3.c directly to build the test
          800  +# fixture.  Otherwise link against libsqlite3.lib.  (This distinction is
          801  +# necessary because the test fixture requires non-API symbols which are
          802  +# hidden when the library is built via the amalgamation).
          803  +#
          804  +TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
          805  +TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE 
          806  +
          807  +TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.lib
          808  +TESTFIXTURE_SRC1 = sqlite3.c
          809  +!IF $(USE_AMALGAMATION)==0
          810  +TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0)
          811  +!ELSE
          812  +TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1)
          813  +!ENDIF
          814  +
          815  +testfixture.exe:	$(TESTFIXTURE_SRC)
          816  +	$(LTLINK) -DSQLITE_NO_SYNC=1 $(TEMP_STORE) $(TESTFIXTURE_FLAGS) \
          817  +		-DBUILD_sqlite -I$(TCLINCDIR) \
          818  +		$(TESTFIXTURE_SRC) /link /LIBPATH:$(TCLLIBDIR) $(LIBTCL) $(TLIBS)
          819  +
          820  +fulltest:	testfixture.exe sqlite3.exe
          821  +	.\testfixture.exe $(TOP)\test\all.test
          822  +
          823  +soaktest:	testfixture.exe sqlite3.exe
          824  +	.\testfixture.exe $(TOP)\test\all.test -soak=1
          825  +
          826  +test:	testfixture.exe sqlite3.exe
          827  +	.\testfixture.exe $(TOP)\test\veryquick.test
          828  +
          829  +spaceanal_tcl.h:	$(TOP)\tool\spaceanal.tcl
          830  +	$(NAWK) "/^[^#]/ { gsub(/\\/,\"\\\\\\\\\");gsub(/\\\"/,\"\\\\\\\"\");gsub(/^/,\"\\\"\");gsub(/$$/,\"\\n\\\"\");print }" \
          831  +		$(TOP)\tool\spaceanal.tcl >spaceanal_tcl.h
          832  +
          833  +sqlite3_analyzer.exe:	$(TESTFIXTURE_SRC) spaceanal_tcl.h
          834  +	$(LTLINK) -DTCLSH=2 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 \
          835  +		-DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE $(TEMP_STORE) \
          836  +		-DBUILD_sqlite -I$(TCLINCDIR) \
          837  +		$(TESTFIXTURE_SRC) /link /LIBPATH:$(TCLLIBDIR) $(LIBTCL) $(TLIBS)
          838  +
          839  +clean:	
          840  +	del /Q *.lo *.lib *.obj sqlite3.exe libsqlite3.lib
          841  +	del /Q sqlite3.h opcodes.c opcodes.h
          842  +	del /Q lemon.exe lempar.c parse.*
          843  +	del /Q mkkeywordhash.exe keywordhash.h
          844  +	-rmdir /Q/S tsrc
          845  +	del /Q .target_source
          846  +	del /Q testfixture.exe test.db
          847  +	del /Q sqlite3.dll sqlite3.lib sqlite3.def
          848  +	del /Q sqlite3.c
          849  +	del /Q sqlite3_analyzer.exe spaceanal_tcl.h
          850  +
          851  +#
          852  +# Windows section
          853  +#
          854  +dll: sqlite3.dll
          855  +
          856  +sqlite3.def: $(LIBOBJ)
          857  +	echo $(LIBOBJ) > real.txt
          858  +	echo $(LIBOBJ) > lib.txt
          859  +	echo 'EXPORTS' >sqlite3.def
          860  +	dumpbin /symbols $(LIBOBJ) \
          861  +		| $(NAWK) "/SECT.*_sqlite3_/ { sub(/^.* _/,\"\");print }" \
          862  +		| sort >>sqlite3.def
          863  +
          864  +sqlite3.dll: $(LIBOBJ) sqlite3.def
          865  +	$(TCC) -LD -Fo$@ /DEF:sqlite3.def $(LIBOBJ)

Changes to test/pager1.test.

   437    437         INSERT INTO t1 SELECT a_string(204), a_string(304) FROM t1;
   438    438         REPLACE INTO t2 SELECT * FROM t1;
   439    439       COMMIT;
   440    440     }
   441    441     db close
   442    442     tstvfs delete
   443    443   } {}
          444  +
          445  +if {$::tcl_platform(platform)!="windows"} {
   444    446   do_test pager1.4.2.2 {
   445    447     faultsim_restore_and_reopen
   446    448     execsql {
   447    449       SELECT count(*) FROM t1;
   448    450       PRAGMA integrity_check;
   449    451     }
   450    452   } {4 ok}
................................................................................
   469    471     hexio_write test.db-journal [expr [file size test.db-journal]-20] 123456
   470    472     foreach f [glob test.db-mj*] { file delete -force $f }
   471    473     execsql {
   472    474       SELECT count(*) FROM t1;
   473    475       PRAGMA integrity_check;
   474    476     }
   475    477   } {4 ok}
          478  +}
   476    479   
   477    480   do_test pager1.4.3.1 {
   478    481     testvfs tstvfs -default 1
   479    482     tstvfs filter xSync
   480    483     tstvfs script xSyncCallback
   481    484     proc xSyncCallback {method file args} {
   482    485       set file [file tail $file]
................................................................................
  1544   1547       INSERT INTO t1 SELECT NULL, a_string(400) FROM t1;          /*  32 */
  1545   1548       INSERT INTO t1 SELECT NULL, a_string(400) FROM t1;          /*  64 */
  1546   1549       INSERT INTO t1 SELECT NULL, a_string(400) FROM t1;          /* 128 */
  1547   1550     COMMIT;
  1548   1551     UPDATE t1 SET b = a_string(400);
  1549   1552   } {persist}
  1550   1553   
         1554  +if {$::tcl_platform(platform)!="windows"} {
  1551   1555   # Run transactions of increasing sizes. Eventually, one (or more than one)
  1552   1556   # of these will write just enough content that one of the old headers created 
  1553   1557   # by the transaction in the block above lies immediately after the content
  1554   1558   # journalled by the current transaction.
  1555   1559   #
  1556   1560   for {set nUp 1} {$nUp<64} {incr nUp} {
  1557   1561     do_execsql_test pager1-13.1.2.$nUp.1 { 
................................................................................
  1566   1570       execsql { SELECT sum(length(b)) FROM t1 } db2
  1567   1571     } [expr {128*400 - ($nUp-1)}]
  1568   1572     do_test pager1-13.1.2.$nUp.4 {
  1569   1573       execsql { PRAGMA integrity_check } db2
  1570   1574     } {ok}
  1571   1575     db2 close
  1572   1576   }
         1577  +}
  1573   1578   
         1579  +if {$::tcl_platform(platform)!="windows"} {
  1574   1580   # Same test as above. But this time with an index on the table.
  1575   1581   #
  1576   1582   do_execsql_test pager1-13.2.1 {
  1577   1583     CREATE INDEX i1 ON t1(b);
  1578   1584     UPDATE t1 SET b = a_string(400);
  1579   1585   } {}
  1580   1586   for {set nUp 1} {$nUp<64} {incr nUp} {
................................................................................
  1586   1592     do_test pager1-13.2.2.$nUp.3 {
  1587   1593       execsql { SELECT sum(length(b)) FROM t1 } db2
  1588   1594     } [expr {128*400 - ($nUp-1)}]
  1589   1595     do_test pager1-13.2.2.$nUp.4 {
  1590   1596       execsql { PRAGMA integrity_check } db2
  1591   1597     } {ok}
  1592   1598     db2 close
         1599  +}
  1593   1600   }
  1594   1601   
  1595   1602   db close
  1596   1603   tv delete
  1597   1604   
  1598   1605   #-------------------------------------------------------------------------
  1599   1606   # Test specal "PRAGMA journal_mode=OFF" test cases.

Changes to test/pagerfault.test.

    15     15   source $testdir/lock_common.tcl
    16     16   source $testdir/malloc_common.tcl
    17     17   
    18     18   if {[permutation] == "inmemory_journal"} {
    19     19     finish_test
    20     20     return
    21     21   }
           22  +
           23  +if {$::tcl_platform(platform)=="windows"} {
           24  +  finish_test
           25  +  return
           26  +}
    22     27   
    23     28   set a_string_counter 1
    24     29   proc a_string {n} {
    25     30     global a_string_counter
    26     31     incr a_string_counter
    27     32     string range [string repeat "${a_string_counter}." $n] 1 $n
    28     33   }