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# 8TOP = . 9 10# Set this non-0 to create and use the SQLite amalgamation file. 11# 12!IFNDEF USE_AMALGAMATION 13USE_AMALGAMATION = 1 14!ENDIF 15 16# Set this non-0 to use the International Components for Unicode (ICU). 17# 18!IFNDEF USE_ICU 19USE_ICU = 0 20!ENDIF 21 22# Set this non-0 to dynamically link to the MSVC runtime library. 23# 24!IFNDEF USE_CRT_DLL 25USE_CRT_DLL = 0 26!ENDIF 27 28# Set this non-0 to attempt setting the native compiler automatically 29# for cross-compiling the command line tools needed during the compilation 30# process. 31# 32!IFNDEF XCOMPILE 33XCOMPILE = 0 34!ENDIF 35 36# Set this non-0 to use the native libraries paths for cross-compiling 37# the command line tools needed during the compilation process. 38# 39!IFNDEF USE_NATIVE_LIBPATHS 40USE_NATIVE_LIBPATHS = 0 41!ENDIF 42 43# Set this 0 to skip the compiling and embedding of version resources. 44# 45!IFNDEF USE_RC 46USE_RC = 1 47!ENDIF 48 49# Set this non-0 to compile binaries suitable for the WinRT environment. 50# This setting does not apply to any binaries that require Tcl to operate 51# properly (i.e. the text fixture, etc). 52# 53!IFNDEF FOR_WINRT 54FOR_WINRT = 0 55!ENDIF 56 57# Set this non-0 to skip attempting to look for and/or link with the Tcl 58# runtime library. 59# 60!IFNDEF NO_TCL 61NO_TCL = 0 62!ENDIF 63 64# Set this to non-0 to create and use PDBs. 65# 66!IFNDEF SYMBOLS 67SYMBOLS = 1 68!ENDIF 69 70# Set this to non-0 to use the SQLite debugging heap subsystem. 71# 72!IFNDEF MEMDEBUG 73MEMDEBUG = 0 74!ENDIF 75 76# Set this to non-0 to use the Win32 native heap subsystem. 77# 78!IFNDEF WIN32HEAP 79WIN32HEAP = 0 80!ENDIF 81 82# Set this to one of the following values to enable various debugging 83# features. Each level includes the debugging options from the previous 84# levels. Currently, the recognized values for DEBUG are: 85# 86# 0 == NDEBUG: Disables assert() and other runtime diagnostics. 87# 1 == Disables NDEBUG and all optimizations and then enables PDBs. 88# 2 == SQLITE_DEBUG: Enables various diagnostics messages and code. 89# 3 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call. 90# 4 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros. 91# 5 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros. 92# 93!IFNDEF DEBUG 94DEBUG = 0 95!ENDIF 96 97# Check for the predefined command macro CC. This should point to the compiler 98# binary for the target platform. If it is not defined, simply define it to 99# the legacy default value 'cl.exe'. 100# 101!IFNDEF CC 102CC = cl.exe 103!ENDIF 104 105# Check for the command macro LD. This should point to the linker binary for 106# the target platform. If it is not defined, simply define it to the legacy 107# default value 'link.exe'. 108# 109!IFNDEF LD 110LD = link.exe 111!ENDIF 112 113# Check for the predefined command macro RC. This should point to the resource 114# compiler binary for the target platform. If it is not defined, simply define 115# it to the legacy default value 'rc.exe'. 116# 117!IFNDEF RC 118RC = rc.exe 119!ENDIF 120 121# Check for the command macro NCC. This should point to the compiler binary 122# for the platform the compilation process is taking place on. If it is not 123# defined, simply define it to have the same value as the CC macro. When 124# cross-compiling, it is suggested that this macro be modified via the command 125# line (since nmake itself does not provide a built-in method to guess it). 126# For example, to use the x86 compiler when cross-compiling for x64, a command 127# line similar to the following could be used (all on one line): 128# 129# nmake /f Makefile.msc sqlite3.dll 130# XCOMPILE=1 USE_NATIVE_LIBPATHS=1 131# 132# Alternatively, the full path and file name to the compiler binary for the 133# platform the compilation process is taking place may be specified (all on 134# one line): 135# 136# nmake /f Makefile.msc sqlite3.dll 137# "NCC=""%VCINSTALLDIR%\bin\cl.exe""" 138# USE_NATIVE_LIBPATHS=1 139# 140!IFDEF NCC 141NCC = $(NCC:\\=\) 142!ELSEIF $(XCOMPILE)!=0 143NCC = "$(VCINSTALLDIR)\bin\cl.exe" 144NCC = $(NCC:\\=\) 145!ELSE 146NCC = $(CC) 147!ENDIF 148 149# Check for the MSVC runtime library path macro. Othertise, this 150# value will default to the 'lib' directory underneath the MSVC 151# installation directory. 152# 153!IFNDEF NCRTLIBPATH 154NCRTLIBPATH = $(VCINSTALLDIR)\lib 155!ENDIF 156 157NCRTLIBPATH = $(NCRTLIBPATH:\\=\) 158 159# Check for the Platform SDK library path macro. Othertise, this 160# value will default to the 'lib' directory underneath the Windows 161# SDK installation directory (the environment variable used appears 162# to be available when using Visual C++ 2008 or later via the 163# command line). 164# 165!IFNDEF NSDKLIBPATH 166NSDKLIBPATH = $(WINDOWSSDKDIR)\lib 167!ENDIF 168 169NSDKLIBPATH = $(NSDKLIBPATH:\\=\) 170 171# C compiler and options for use in building executables that 172# will run on the platform that is doing the build. 173# 174BCC = $(NCC) -W3 175 176# Check if the native library paths should be used when compiling 177# the command line tools used during the compilation process. If 178# so, set the necessary macro now. 179# 180!IF $(USE_NATIVE_LIBPATHS)!=0 181NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)" 182!ENDIF 183 184# C compiler and options for use in building executables that 185# will run on the target platform. (BCC and TCC are usually the 186# same unless your are cross-compiling.) 187# 188TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src -fp:precise 189RCC = $(RC) -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src 190 191# When compiling the library for use in the WinRT environment, 192# the following compile-time options must be used as well to 193# disable use of Win32 APIs that are not available and to enable 194# use of Win32 APIs that are specific to Windows 8 and/or WinRT. 195# 196!IF $(FOR_WINRT)!=0 197TCC = $(TCC) -DSQLITE_OS_WINRT=1 198RCC = $(RCC) -DSQLITE_OS_WINRT=1 199TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP 200RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP 201!ENDIF 202 203# Also, we need to dynamically link to the correct MSVC runtime 204# when compiling for WinRT (e.g. debug or release) OR if the 205# USE_CRT_DLL option is set to force dynamically linking to the 206# MSVC runtime library. 207# 208!IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0 209!IF $(DEBUG)>0 210TCC = $(TCC) -MDd 211BCC = $(BCC) -MDd 212!ELSE 213TCC = $(TCC) -MD 214BCC = $(BCC) -MD 215!ENDIF 216!ELSE 217!IF $(DEBUG)>0 218TCC = $(TCC) -MTd 219BCC = $(BCC) -MTd 220!ELSE 221TCC = $(TCC) -MT 222BCC = $(BCC) -MT 223!ENDIF 224!ENDIF 225 226# The mksqlite3c.tcl and mksqlite3h.tcl scripts will pull in 227# any extension header files by default. For non-amalgamation 228# builds, we need to make sure the compiler can find these. 229# 230!IF $(USE_AMALGAMATION)==0 231TCC = $(TCC) -I$(TOP)\ext\fts3 232RCC = $(RCC) -I$(TOP)\ext\fts3 233TCC = $(TCC) -I$(TOP)\ext\rtree 234RCC = $(RCC) -I$(TOP)\ext\rtree 235!ENDIF 236 237# Define -DNDEBUG to compile without debugging (i.e., for production usage) 238# Omitting the define will cause extra debugging code to be inserted and 239# includes extra comments when "EXPLAIN stmt" is used. 240# 241!IF $(DEBUG)==0 242TCC = $(TCC) -DNDEBUG 243BCC = $(BCC) -DNDEBUG 244RCC = $(RCC) -DNDEBUG 245!ENDIF 246 247!IF $(DEBUG)>1 248TCC = $(TCC) -DSQLITE_DEBUG 249RCC = $(RCC) -DSQLITE_DEBUG 250!ENDIF 251 252!IF $(DEBUG)>3 253TCC = $(TCC) -DSQLITE_DEBUG_OS_TRACE=1 254RCC = $(RCC) -DSQLITE_DEBUG_OS_TRACE=1 255!ENDIF 256 257!IF $(DEBUG)>4 258TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE 259RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE 260!ENDIF 261 262# 263# Prevent warnings about "insecure" MSVC runtime library functions 264# being used. 265# 266TCC = $(TCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS 267BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS 268RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS 269 270# 271# Prevent warnings about "deprecated" POSIX functions being used. 272# 273TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS 274BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS 275RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS 276 277# 278# Use the SQLite debugging heap subsystem? 279# 280!IF $(MEMDEBUG)!=0 281TCC = $(TCC) -DSQLITE_MEMDEBUG=1 282RCC = $(RCC) -DSQLITE_MEMDEBUG=1 283 284# 285# Use native Win32 heap subsystem instead of malloc/free? 286# 287!ELSEIF $(WIN32HEAP)!=0 288TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1 289RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1 290 291# 292# Validate the heap on every call into the native Win32 heap subsystem? 293# 294!IF $(DEBUG)>2 295TCC = $(TCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 296RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 297!ENDIF 298!ENDIF 299 300# The locations of the Tcl header and library files. Also, the library that 301# non-stubs enabled programs using Tcl must link against. These variables 302# (TCLINCDIR, TCLLIBDIR, and LIBTCL) may be overridden via the environment 303# prior to running nmake in order to match the actual installed location and 304# version on this machine. 305# 306!IFNDEF TCLINCDIR 307TCLINCDIR = c:\tcl\include 308!ENDIF 309 310!IFNDEF TCLLIBDIR 311TCLLIBDIR = c:\tcl\lib 312!ENDIF 313 314!IFNDEF LIBTCL 315LIBTCL = tcl85.lib 316!ENDIF 317 318# The locations of the ICU header and library files. These variables 319# (ICUINCDIR, ICULIBDIR, and LIBICU) may be overridden via the environment 320# prior to running nmake in order to match the actual installed location on 321# this machine. 322# 323!IFNDEF ICUINCDIR 324ICUINCDIR = c:\icu\include 325!ENDIF 326 327!IFNDEF ICULIBDIR 328ICULIBDIR = c:\icu\lib 329!ENDIF 330 331!IFNDEF LIBICU 332LIBICU = icuuc.lib icuin.lib 333!ENDIF 334 335# This is the command to use for tclsh - normally just "tclsh", but we may 336# know the specific version we want to use. This variable (TCLSH_CMD) may be 337# overridden via the environment prior to running nmake in order to select a 338# specific Tcl shell to use. 339# 340!IFNDEF TCLSH_CMD 341TCLSH_CMD = tclsh85 342!ENDIF 343 344# Compiler options needed for programs that use the readline() library. 345# 346READLINE_FLAGS = -DHAVE_READLINE=0 347 348# The library that programs using readline() must link against. 349# 350LIBREADLINE = 351 352# Should the database engine be compiled threadsafe 353# 354TCC = $(TCC) -DSQLITE_THREADSAFE=1 355RCC = $(RCC) -DSQLITE_THREADSAFE=1 356 357# Do threads override each others locks by default (1), or do we test (-1) 358# 359TCC = $(TCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 360RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 361 362# Any target libraries which libsqlite must be linked against 363# 364!IFNDEF TLIBS 365TLIBS = 366!ENDIF 367 368# Flags controlling use of the in memory btree implementation 369# 370# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to 371# default to file, 2 to default to memory, and 3 to force temporary 372# tables to always be in memory. 373# 374TCC = $(TCC) -DSQLITE_TEMP_STORE=1 375RCC = $(RCC) -DSQLITE_TEMP_STORE=1 376 377# Enable/disable loadable extensions, and other optional features 378# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*). 379# The same set of OMIT and ENABLE flags should be passed to the 380# LEMON parser generator and the mkkeywordhash tool as well. 381 382# BEGIN standard options 383OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1 384OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1 385OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1 386# END standard options 387 388# BEGIN required Windows option 389OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100 390# END required Windows option 391 392TCC = $(TCC) $(OPT_FEATURE_FLAGS) 393RCC = $(RCC) $(OPT_FEATURE_FLAGS) 394 395# Add in any optional parameters specified on the make commane line 396# ie. make "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1". 397TCC = $(TCC) $(OPTS) 398RCC = $(RCC) $(OPTS) 399 400# If symbols are enabled, enable PDBs. 401# If debugging is enabled, disable all optimizations and enable PDBs. 402!IF $(DEBUG)>0 403TCC = $(TCC) -Od -D_DEBUG 404BCC = $(BCC) -Od -D_DEBUG 405RCC = $(RCC) -D_DEBUG 406!ELSE 407TCC = $(TCC) -O2 408BCC = $(BCC) -O2 409!ENDIF 410 411!IF $(DEBUG)>0 || $(SYMBOLS)!=0 412TCC = $(TCC) -Zi 413BCC = $(BCC) -Zi 414!ENDIF 415 416# If ICU support is enabled, add the compiler options for it. 417!IF $(USE_ICU)!=0 418TCC = $(TCC) -DSQLITE_ENABLE_ICU=1 419RCC = $(RCC) -DSQLITE_ENABLE_ICU=1 420TCC = $(TCC) -I$(TOP)\ext\icu 421RCC = $(RCC) -I$(TOP)\ext\icu 422TCC = $(TCC) -I$(ICUINCDIR) 423RCC = $(RCC) -I$(ICUINCDIR) 424!ENDIF 425 426# Command line prefixes for compiling code, compiling resources, 427# linking, etc. 428LTCOMPILE = $(TCC) -Fo$@ 429LTRCOMPILE = $(RCC) -r 430LTLIB = lib.exe 431LTLINK = $(TCC) -Fe$@ 432 433# If a platform was set, force the linker to target that. 434# Note that the vcvars*.bat family of batch files typically 435# set this for you. Otherwise, the linker will attempt 436# to deduce the binary type based on the object files. 437!IFDEF PLATFORM 438LTLINKOPTS = /MACHINE:$(PLATFORM) 439LTLIBOPTS = /MACHINE:$(PLATFORM) 440!ENDIF 441 442# When compiling for use in the WinRT environment, the following 443# linker option must be used to mark the executable as runnable 444# only in the context of an application container. 445# 446!IF $(FOR_WINRT)!=0 447LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER 448!ENDIF 449 450# If either debugging or symbols are enabled, enable PDBs. 451!IF $(DEBUG)>0 || $(SYMBOLS)!=0 452LDFLAGS = /DEBUG 453!ENDIF 454 455# Start with the Tcl related linker options. 456!IF $(NO_TCL)==0 457LTLIBPATHS = /LIBPATH:$(TCLLIBDIR) 458LTLIBS = $(LIBTCL) 459!ENDIF 460 461# If ICU support is enabled, add the linker options for it. 462!IF $(USE_ICU)!=0 463LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR) 464LTLIBS = $(LTLIBS) $(LIBICU) 465!ENDIF 466 467# nawk compatible awk. 468NAWK = gawk.exe 469 470# You should not have to change anything below this line 471############################################################################### 472 473# Object files for the SQLite library (non-amalgamation). 474# 475LIBOBJS0 = alter.lo analyze.lo attach.lo auth.lo \ 476 backup.lo bitvec.lo btmutex.lo btree.lo build.lo \ 477 callback.lo complete.lo ctime.lo date.lo delete.lo \ 478 expr.lo fault.lo fkey.lo \ 479 fts3.lo fts3_aux.lo fts3_expr.lo fts3_hash.lo fts3_icu.lo \ 480 fts3_porter.lo fts3_snippet.lo fts3_tokenizer.lo fts3_tokenizer1.lo \ 481 fts3_unicode.lo fts3_unicode2.lo fts3_write.lo \ 482 func.lo global.lo hash.lo \ 483 icu.lo insert.lo journal.lo legacy.lo loadext.lo \ 484 main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \ 485 memjournal.lo \ 486 mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \ 487 notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \ 488 pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ 489 random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \ 490 table.lo tokenize.lo trigger.lo \ 491 update.lo util.lo vacuum.lo \ 492 vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ 493 vdbetrace.lo wal.lo walker.lo where.lo utf.lo vtab.lo 494 495# Object files for the amalgamation. 496# 497LIBOBJS1 = sqlite3.lo 498 499# Determine the real value of LIBOBJ based on the 'configure' script 500# 501!IF $(USE_AMALGAMATION)==0 502LIBOBJ = $(LIBOBJS0) 503!ELSE 504LIBOBJ = $(LIBOBJS1) 505!ENDIF 506 507# Determine if embedded resource compilation and usage are enabled. 508# 509!IF $(USE_RC)!=0 510LIBRESOBJS = sqlite3res.lo 511!ELSE 512LIBRESOBJS = 513!ENDIF 514 515# All of the source code files. 516# 517SRC = \ 518 $(TOP)\src\alter.c \ 519 $(TOP)\src\analyze.c \ 520 $(TOP)\src\attach.c \ 521 $(TOP)\src\auth.c \ 522 $(TOP)\src\backup.c \ 523 $(TOP)\src\bitvec.c \ 524 $(TOP)\src\btmutex.c \ 525 $(TOP)\src\btree.c \ 526 $(TOP)\src\btree.h \ 527 $(TOP)\src\btreeInt.h \ 528 $(TOP)\src\build.c \ 529 $(TOP)\src\callback.c \ 530 $(TOP)\src\complete.c \ 531 $(TOP)\src\ctime.c \ 532 $(TOP)\src\date.c \ 533 $(TOP)\src\delete.c \ 534 $(TOP)\src\expr.c \ 535 $(TOP)\src\fault.c \ 536 $(TOP)\src\fkey.c \ 537 $(TOP)\src\func.c \ 538 $(TOP)\src\global.c \ 539 $(TOP)\src\hash.c \ 540 $(TOP)\src\hash.h \ 541 $(TOP)\src\hwtime.h \ 542 $(TOP)\src\insert.c \ 543 $(TOP)\src\journal.c \ 544 $(TOP)\src\legacy.c \ 545 $(TOP)\src\loadext.c \ 546 $(TOP)\src\main.c \ 547 $(TOP)\src\malloc.c \ 548 $(TOP)\src\mem0.c \ 549 $(TOP)\src\mem1.c \ 550 $(TOP)\src\mem2.c \ 551 $(TOP)\src\mem3.c \ 552 $(TOP)\src\mem5.c \ 553 $(TOP)\src\memjournal.c \ 554 $(TOP)\src\mutex.c \ 555 $(TOP)\src\mutex.h \ 556 $(TOP)\src\mutex_noop.c \ 557 $(TOP)\src\mutex_unix.c \ 558 $(TOP)\src\mutex_w32.c \ 559 $(TOP)\src\notify.c \ 560 $(TOP)\src\os.c \ 561 $(TOP)\src\os.h \ 562 $(TOP)\src\os_common.h \ 563 $(TOP)\src\os_unix.c \ 564 $(TOP)\src\os_win.c \ 565 $(TOP)\src\pager.c \ 566 $(TOP)\src\pager.h \ 567 $(TOP)\src\parse.y \ 568 $(TOP)\src\pcache.c \ 569 $(TOP)\src\pcache.h \ 570 $(TOP)\src\pcache1.c \ 571 $(TOP)\src\pragma.c \ 572 $(TOP)\src\prepare.c \ 573 $(TOP)\src\printf.c \ 574 $(TOP)\src\random.c \ 575 $(TOP)\src\resolve.c \ 576 $(TOP)\src\rowset.c \ 577 $(TOP)\src\select.c \ 578 $(TOP)\src\status.c \ 579 $(TOP)\src\shell.c \ 580 $(TOP)\src\sqlite.h.in \ 581 $(TOP)\src\sqlite3ext.h \ 582 $(TOP)\src\sqliteInt.h \ 583 $(TOP)\src\sqliteLimit.h \ 584 $(TOP)\src\table.c \ 585 $(TOP)\src\tclsqlite.c \ 586 $(TOP)\src\tokenize.c \ 587 $(TOP)\src\trigger.c \ 588 $(TOP)\src\utf.c \ 589 $(TOP)\src\update.c \ 590 $(TOP)\src\util.c \ 591 $(TOP)\src\vacuum.c \ 592 $(TOP)\src\vdbe.c \ 593 $(TOP)\src\vdbe.h \ 594 $(TOP)\src\vdbeapi.c \ 595 $(TOP)\src\vdbeaux.c \ 596 $(TOP)\src\vdbeblob.c \ 597 $(TOP)\src\vdbemem.c \ 598 $(TOP)\src\vdbesort.c \ 599 $(TOP)\src\vdbetrace.c \ 600 $(TOP)\src\vdbeInt.h \ 601 $(TOP)\src\vtab.c \ 602 $(TOP)\src\wal.c \ 603 $(TOP)\src\wal.h \ 604 $(TOP)\src\walker.c \ 605 $(TOP)\src\where.c 606 607# Source code for extensions 608# 609SRC = $(SRC) \ 610 $(TOP)\ext\fts1\fts1.c \ 611 $(TOP)\ext\fts1\fts1.h \ 612 $(TOP)\ext\fts1\fts1_hash.c \ 613 $(TOP)\ext\fts1\fts1_hash.h \ 614 $(TOP)\ext\fts1\fts1_porter.c \ 615 $(TOP)\ext\fts1\fts1_tokenizer.h \ 616 $(TOP)\ext\fts1\fts1_tokenizer1.c 617SRC = $(SRC) \ 618 $(TOP)\ext\fts2\fts2.c \ 619 $(TOP)\ext\fts2\fts2.h \ 620 $(TOP)\ext\fts2\fts2_hash.c \ 621 $(TOP)\ext\fts2\fts2_hash.h \ 622 $(TOP)\ext\fts2\fts2_icu.c \ 623 $(TOP)\ext\fts2\fts2_porter.c \ 624 $(TOP)\ext\fts2\fts2_tokenizer.h \ 625 $(TOP)\ext\fts2\fts2_tokenizer.c \ 626 $(TOP)\ext\fts2\fts2_tokenizer1.c 627SRC = $(SRC) \ 628 $(TOP)\ext\fts3\fts3.c \ 629 $(TOP)\ext\fts3\fts3.h \ 630 $(TOP)\ext\fts3\fts3Int.h \ 631 $(TOP)\ext\fts3\fts3_aux.c \ 632 $(TOP)\ext\fts3\fts3_expr.c \ 633 $(TOP)\ext\fts3\fts3_hash.c \ 634 $(TOP)\ext\fts3\fts3_hash.h \ 635 $(TOP)\ext\fts3\fts3_icu.c \ 636 $(TOP)\ext\fts3\fts3_porter.c \ 637 $(TOP)\ext\fts3\fts3_snippet.c \ 638 $(TOP)\ext\fts3\fts3_tokenizer.h \ 639 $(TOP)\ext\fts3\fts3_tokenizer.c \ 640 $(TOP)\ext\fts3\fts3_tokenizer1.c \ 641 $(TOP)\ext\fts3\fts3_unicode.c \ 642 $(TOP)\ext\fts3\fts3_unicode2.c \ 643 $(TOP)\ext\fts3\fts3_write.c 644SRC = $(SRC) \ 645 $(TOP)\ext\icu\sqliteicu.h \ 646 $(TOP)\ext\icu\icu.c 647SRC = $(SRC) \ 648 $(TOP)\ext\rtree\rtree.h \ 649 $(TOP)\ext\rtree\rtree.c 650 651 652# Generated source code files 653# 654SRC = $(SRC) \ 655 keywordhash.h \ 656 opcodes.c \ 657 opcodes.h \ 658 parse.c \ 659 parse.h \ 660 sqlite3.h 661 662# Source code to the test files. 663# 664TESTSRC = \ 665 $(TOP)\src\test1.c \ 666 $(TOP)\src\test2.c \ 667 $(TOP)\src\test3.c \ 668 $(TOP)\src\test4.c \ 669 $(TOP)\src\test5.c \ 670 $(TOP)\src\test6.c \ 671 $(TOP)\src\test7.c \ 672 $(TOP)\src\test8.c \ 673 $(TOP)\src\test9.c \ 674 $(TOP)\src\test_autoext.c \ 675 $(TOP)\src\test_async.c \ 676 $(TOP)\src\test_backup.c \ 677 $(TOP)\src\test_btree.c \ 678 $(TOP)\src\test_config.c \ 679 $(TOP)\src\test_demovfs.c \ 680 $(TOP)\src\test_devsym.c \ 681 $(TOP)\src\test_fs.c \ 682 $(TOP)\src\test_func.c \ 683 $(TOP)\src\test_fuzzer.c \ 684 $(TOP)\src\test_hexio.c \ 685 $(TOP)\src\test_init.c \ 686 $(TOP)\src\test_intarray.c \ 687 $(TOP)\src\test_journal.c \ 688 $(TOP)\src\test_malloc.c \ 689 $(TOP)\src\test_multiplex.c \ 690 $(TOP)\src\test_mutex.c \ 691 $(TOP)\src\test_onefile.c \ 692 $(TOP)\src\test_osinst.c \ 693 $(TOP)\src\test_pcache.c \ 694 $(TOP)\src\test_quota.c \ 695 $(TOP)\src\test_regexp.c \ 696 $(TOP)\src\test_rtree.c \ 697 $(TOP)\src\test_schema.c \ 698 $(TOP)\src\test_server.c \ 699 $(TOP)\src\test_superlock.c \ 700 $(TOP)\src\test_syscall.c \ 701 $(TOP)\src\test_stat.c \ 702 $(TOP)\src\test_tclvar.c \ 703 $(TOP)\src\test_thread.c \ 704 $(TOP)\src\test_vfs.c \ 705 $(TOP)\src\test_wholenumber.c \ 706 $(TOP)\src\test_wsd.c \ 707 $(TOP)\ext\fts3\fts3_term.c \ 708 $(TOP)\ext\fts3\fts3_test.c 709 710# Source code to the library files needed by the test fixture 711# 712TESTSRC2 = \ 713 $(TOP)\src\attach.c \ 714 $(TOP)\src\backup.c \ 715 $(TOP)\src\bitvec.c \ 716 $(TOP)\src\btree.c \ 717 $(TOP)\src\build.c \ 718 $(TOP)\src\ctime.c \ 719 $(TOP)\src\date.c \ 720 $(TOP)\src\expr.c \ 721 $(TOP)\src\func.c \ 722 $(TOP)\src\insert.c \ 723 $(TOP)\src\wal.c \ 724 $(TOP)\src\mem5.c \ 725 $(TOP)\src\os.c \ 726 $(TOP)\src\os_unix.c \ 727 $(TOP)\src\os_win.c \ 728 $(TOP)\src\pager.c \ 729 $(TOP)\src\pragma.c \ 730 $(TOP)\src\prepare.c \ 731 $(TOP)\src\printf.c \ 732 $(TOP)\src\random.c \ 733 $(TOP)\src\pcache.c \ 734 $(TOP)\src\pcache1.c \ 735 $(TOP)\src\select.c \ 736 $(TOP)\src\tokenize.c \ 737 $(TOP)\src\utf.c \ 738 $(TOP)\src\util.c \ 739 $(TOP)\src\vdbeapi.c \ 740 $(TOP)\src\vdbeaux.c \ 741 $(TOP)\src\vdbe.c \ 742 $(TOP)\src\vdbemem.c \ 743 $(TOP)\src\vdbesort.c \ 744 $(TOP)\src\vdbetrace.c \ 745 $(TOP)\src\where.c \ 746 parse.c \ 747 $(TOP)\ext\fts3\fts3.c \ 748 $(TOP)\ext\fts3\fts3_aux.c \ 749 $(TOP)\ext\fts3\fts3_expr.c \ 750 $(TOP)\ext\fts3\fts3_tokenizer.c \ 751 $(TOP)\ext\fts3\fts3_unicode.c \ 752 $(TOP)\ext\fts3\fts3_unicode2.c \ 753 $(TOP)\ext\fts3\fts3_write.c \ 754 $(TOP)\ext\async\sqlite3async.c 755 756# Header files used by all library source files. 757# 758HDR = \ 759 $(TOP)\src\btree.h \ 760 $(TOP)\src\btreeInt.h \ 761 $(TOP)\src\hash.h \ 762 $(TOP)\src\hwtime.h \ 763 keywordhash.h \ 764 $(TOP)\src\mutex.h \ 765 opcodes.h \ 766 $(TOP)\src\os.h \ 767 $(TOP)\src\os_common.h \ 768 $(TOP)\src\pager.h \ 769 $(TOP)\src\pcache.h \ 770 parse.h \ 771 sqlite3.h \ 772 $(TOP)\src\sqlite3ext.h \ 773 $(TOP)\src\sqliteInt.h \ 774 $(TOP)\src\sqliteLimit.h \ 775 $(TOP)\src\vdbe.h \ 776 $(TOP)\src\vdbeInt.h 777 778# Header files used by extensions 779# 780EXTHDR = $(EXTHDR) \ 781 $(TOP)\ext\fts1\fts1.h \ 782 $(TOP)\ext\fts1\fts1_hash.h \ 783 $(TOP)\ext\fts1\fts1_tokenizer.h 784EXTHDR = $(EXTHDR) \ 785 $(TOP)\ext\fts2\fts2.h \ 786 $(TOP)\ext\fts2\fts2_hash.h \ 787 $(TOP)\ext\fts2\fts2_tokenizer.h 788EXTHDR = $(EXTHDR) \ 789 $(TOP)\ext\fts3\fts3.h \ 790 $(TOP)\ext\fts3\fts3Int.h \ 791 $(TOP)\ext\fts3\fts3_hash.h \ 792 $(TOP)\ext\fts3\fts3_tokenizer.h 793EXTHDR = $(EXTHDR) \ 794 $(TOP)\ext\rtree\rtree.h 795EXTHDR = $(EXTHDR) \ 796 $(TOP)\ext\icu\sqliteicu.h 797EXTHDR = $(EXTHDR) \ 798 $(TOP)\ext\rtree\sqlite3rtree.h 799 800# This is the default Makefile target. The objects listed here 801# are what get build when you type just "make" with no arguments. 802# 803all: dll libsqlite3.lib sqlite3.exe libtclsqlite3.lib 804 805libsqlite3.lib: $(LIBOBJ) 806 $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS) 807 808libtclsqlite3.lib: tclsqlite.lo libsqlite3.lib 809 $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCL:tcl=tclstub) $(TLIBS) 810 811sqlite3.exe: $(TOP)\src\shell.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h 812 $(LTLINK) $(READLINE_FLAGS) \ 813 $(TOP)\src\shell.c \ 814 /link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) 815 816# This target creates a directory named "tsrc" and fills it with 817# copies of all of the C source code and header files needed to 818# build on the target system. Some of the C source code and header 819# files are automatically generated. This target takes care of 820# all that automatic generation. 821# 822.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl 823 -rmdir /S/Q tsrc 824 -mkdir tsrc 825 for %i in ($(SRC)) do copy /Y %i tsrc 826 del /Q tsrc\sqlite.h.in tsrc\parse.y 827 $(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl < tsrc\vdbe.c > vdbe.new 828 move vdbe.new tsrc\vdbe.c 829 echo > .target_source 830 831sqlite3.c: .target_source $(TOP)\tool\mksqlite3c.tcl 832 $(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl 833 copy tsrc\shell.c . 834 copy tsrc\sqlite3ext.h . 835 836sqlite3-all.c: sqlite3.c $(TOP)\tool\split-sqlite3c.tcl 837 $(TCLSH_CMD) $(TOP)\tool\split-sqlite3c.tcl 838 839# Rule to build the amalgamation 840# 841sqlite3.lo: sqlite3.c 842 $(LTCOMPILE) -c sqlite3.c 843 844# Rules to build the LEMON compiler generator 845# 846lempar.c: $(TOP)\src\lempar.c 847 copy $(TOP)\src\lempar.c . 848 849lemon.exe: $(TOP)\tool\lemon.c lempar.c 850 $(BCC) -Daccess=_access -Fe$@ $(TOP)\tool\lemon.c /link $(NLTLIBPATHS) 851 852# Rules to build individual *.lo files from generated *.c files. This 853# applies to: 854# 855# parse.lo 856# opcodes.lo 857# 858parse.lo: parse.c $(HDR) 859 $(LTCOMPILE) -c parse.c 860 861opcodes.lo: opcodes.c 862 $(LTCOMPILE) -c opcodes.c 863 864# Rule to build the Win32 resources object file. 865# 866!IF $(USE_RC)!=0 867$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(HDR) 868 echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h 869 for /F %%V in ('type "$(TOP)\VERSION"') do ( \ 870 echo #define SQLITE_RESOURCE_VERSION %%V \ 871 | $(NAWK) "/.*/ { gsub(/[.]/,\",\");print }" >> sqlite3rc.h \ 872 ) 873 echo #endif >> sqlite3rc.h 874 $(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc 875!ENDIF 876 877# Rules to build individual *.lo files from files in the src directory. 878# 879alter.lo: $(TOP)\src\alter.c $(HDR) 880 $(LTCOMPILE) -c $(TOP)\src\alter.c 881 882analyze.lo: $(TOP)\src\analyze.c $(HDR) 883 $(LTCOMPILE) -c $(TOP)\src\analyze.c 884 885attach.lo: $(TOP)\src\attach.c $(HDR) 886 $(LTCOMPILE) -c $(TOP)\src\attach.c 887 888auth.lo: $(TOP)\src\auth.c $(HDR) 889 $(LTCOMPILE) -c $(TOP)\src\auth.c 890 891backup.lo: $(TOP)\src\backup.c $(HDR) 892 $(LTCOMPILE) -c $(TOP)\src\backup.c 893 894bitvec.lo: $(TOP)\src\bitvec.c $(HDR) 895 $(LTCOMPILE) -c $(TOP)\src\bitvec.c 896 897btmutex.lo: $(TOP)\src\btmutex.c $(HDR) 898 $(LTCOMPILE) -c $(TOP)\src\btmutex.c 899 900btree.lo: $(TOP)\src\btree.c $(HDR) $(TOP)\src\pager.h 901 $(LTCOMPILE) -c $(TOP)\src\btree.c 902 903build.lo: $(TOP)\src\build.c $(HDR) 904 $(LTCOMPILE) -c $(TOP)\src\build.c 905 906callback.lo: $(TOP)\src\callback.c $(HDR) 907 $(LTCOMPILE) -c $(TOP)\src\callback.c 908 909complete.lo: $(TOP)\src\complete.c $(HDR) 910 $(LTCOMPILE) -c $(TOP)\src\complete.c 911 912ctime.lo: $(TOP)\src\ctime.c $(HDR) 913 $(LTCOMPILE) -c $(TOP)\src\ctime.c 914 915date.lo: $(TOP)\src\date.c $(HDR) 916 $(LTCOMPILE) -c $(TOP)\src\date.c 917 918delete.lo: $(TOP)\src\delete.c $(HDR) 919 $(LTCOMPILE) -c $(TOP)\src\delete.c 920 921expr.lo: $(TOP)\src\expr.c $(HDR) 922 $(LTCOMPILE) -c $(TOP)\src\expr.c 923 924fault.lo: $(TOP)\src\fault.c $(HDR) 925 $(LTCOMPILE) -c $(TOP)\src\fault.c 926 927fkey.lo: $(TOP)\src\fkey.c $(HDR) 928 $(LTCOMPILE) -c $(TOP)\src\fkey.c 929 930func.lo: $(TOP)\src\func.c $(HDR) 931 $(LTCOMPILE) -c $(TOP)\src\func.c 932 933global.lo: $(TOP)\src\global.c $(HDR) 934 $(LTCOMPILE) -c $(TOP)\src\global.c 935 936hash.lo: $(TOP)\src\hash.c $(HDR) 937 $(LTCOMPILE) -c $(TOP)\src\hash.c 938 939insert.lo: $(TOP)\src\insert.c $(HDR) 940 $(LTCOMPILE) -c $(TOP)\src\insert.c 941 942journal.lo: $(TOP)\src\journal.c $(HDR) 943 $(LTCOMPILE) -c $(TOP)\src\journal.c 944 945legacy.lo: $(TOP)\src\legacy.c $(HDR) 946 $(LTCOMPILE) -c $(TOP)\src\legacy.c 947 948loadext.lo: $(TOP)\src\loadext.c $(HDR) 949 $(LTCOMPILE) -c $(TOP)\src\loadext.c 950 951main.lo: $(TOP)\src\main.c $(HDR) 952 $(LTCOMPILE) -c $(TOP)\src\main.c 953 954malloc.lo: $(TOP)\src\malloc.c $(HDR) 955 $(LTCOMPILE) -c $(TOP)\src\malloc.c 956 957mem0.lo: $(TOP)\src\mem0.c $(HDR) 958 $(LTCOMPILE) -c $(TOP)\src\mem0.c 959 960mem1.lo: $(TOP)\src\mem1.c $(HDR) 961 $(LTCOMPILE) -c $(TOP)\src\mem1.c 962 963mem2.lo: $(TOP)\src\mem2.c $(HDR) 964 $(LTCOMPILE) -c $(TOP)\src\mem2.c 965 966mem3.lo: $(TOP)\src\mem3.c $(HDR) 967 $(LTCOMPILE) -c $(TOP)\src\mem3.c 968 969mem5.lo: $(TOP)\src\mem5.c $(HDR) 970 $(LTCOMPILE) -c $(TOP)\src\mem5.c 971 972memjournal.lo: $(TOP)\src\memjournal.c $(HDR) 973 $(LTCOMPILE) -c $(TOP)\src\memjournal.c 974 975mutex.lo: $(TOP)\src\mutex.c $(HDR) 976 $(LTCOMPILE) -c $(TOP)\src\mutex.c 977 978mutex_noop.lo: $(TOP)\src\mutex_noop.c $(HDR) 979 $(LTCOMPILE) -c $(TOP)\src\mutex_noop.c 980 981mutex_unix.lo: $(TOP)\src\mutex_unix.c $(HDR) 982 $(LTCOMPILE) -c $(TOP)\src\mutex_unix.c 983 984mutex_w32.lo: $(TOP)\src\mutex_w32.c $(HDR) 985 $(LTCOMPILE) -c $(TOP)\src\mutex_w32.c 986 987notify.lo: $(TOP)\src\notify.c $(HDR) 988 $(LTCOMPILE) -c $(TOP)\src\notify.c 989 990pager.lo: $(TOP)\src\pager.c $(HDR) $(TOP)\src\pager.h 991 $(LTCOMPILE) -c $(TOP)\src\pager.c 992 993pcache.lo: $(TOP)\src\pcache.c $(HDR) $(TOP)\src\pcache.h 994 $(LTCOMPILE) -c $(TOP)\src\pcache.c 995 996pcache1.lo: $(TOP)\src\pcache1.c $(HDR) $(TOP)\src\pcache.h 997 $(LTCOMPILE) -c $(TOP)\src\pcache1.c 998 999os.lo: $(TOP)\src\os.c $(HDR) 1000 $(LTCOMPILE) -c $(TOP)\src\os.c 1001 1002os_unix.lo: $(TOP)\src\os_unix.c $(HDR) 1003 $(LTCOMPILE) -c $(TOP)\src\os_unix.c 1004 1005os_win.lo: $(TOP)\src\os_win.c $(HDR) 1006 $(LTCOMPILE) -c $(TOP)\src\os_win.c 1007 1008pragma.lo: $(TOP)\src\pragma.c $(HDR) 1009 $(LTCOMPILE) -c $(TOP)\src\pragma.c 1010 1011prepare.lo: $(TOP)\src\prepare.c $(HDR) 1012 $(LTCOMPILE) -c $(TOP)\src\prepare.c 1013 1014printf.lo: $(TOP)\src\printf.c $(HDR) 1015 $(LTCOMPILE) -c $(TOP)\src\printf.c 1016 1017random.lo: $(TOP)\src\random.c $(HDR) 1018 $(LTCOMPILE) -c $(TOP)\src\random.c 1019 1020resolve.lo: $(TOP)\src\resolve.c $(HDR) 1021 $(LTCOMPILE) -c $(TOP)\src\resolve.c 1022 1023rowset.lo: $(TOP)\src\rowset.c $(HDR) 1024 $(LTCOMPILE) -c $(TOP)\src\rowset.c 1025 1026select.lo: $(TOP)\src\select.c $(HDR) 1027 $(LTCOMPILE) -c $(TOP)\src\select.c 1028 1029status.lo: $(TOP)\src\status.c $(HDR) 1030 $(LTCOMPILE) -c $(TOP)\src\status.c 1031 1032table.lo: $(TOP)\src\table.c $(HDR) 1033 $(LTCOMPILE) -c $(TOP)\src\table.c 1034 1035tokenize.lo: $(TOP)\src\tokenize.c keywordhash.h $(HDR) 1036 $(LTCOMPILE) -c $(TOP)\src\tokenize.c 1037 1038trigger.lo: $(TOP)\src\trigger.c $(HDR) 1039 $(LTCOMPILE) -c $(TOP)\src\trigger.c 1040 1041update.lo: $(TOP)\src\update.c $(HDR) 1042 $(LTCOMPILE) -c $(TOP)\src\update.c 1043 1044utf.lo: $(TOP)\src\utf.c $(HDR) 1045 $(LTCOMPILE) -c $(TOP)\src\utf.c 1046 1047util.lo: $(TOP)\src\util.c $(HDR) 1048 $(LTCOMPILE) -c $(TOP)\src\util.c 1049 1050vacuum.lo: $(TOP)\src\vacuum.c $(HDR) 1051 $(LTCOMPILE) -c $(TOP)\src\vacuum.c 1052 1053vdbe.lo: $(TOP)\src\vdbe.c $(HDR) 1054 $(LTCOMPILE) -c $(TOP)\src\vdbe.c 1055 1056vdbeapi.lo: $(TOP)\src\vdbeapi.c $(HDR) 1057 $(LTCOMPILE) -c $(TOP)\src\vdbeapi.c 1058 1059vdbeaux.lo: $(TOP)\src\vdbeaux.c $(HDR) 1060 $(LTCOMPILE) -c $(TOP)\src\vdbeaux.c 1061 1062vdbeblob.lo: $(TOP)\src\vdbeblob.c $(HDR) 1063 $(LTCOMPILE) -c $(TOP)\src\vdbeblob.c 1064 1065vdbemem.lo: $(TOP)\src\vdbemem.c $(HDR) 1066 $(LTCOMPILE) -c $(TOP)\src\vdbemem.c 1067 1068vdbesort.lo: $(TOP)\src\vdbesort.c $(HDR) 1069 $(LTCOMPILE) -c $(TOP)\src\vdbesort.c 1070 1071vdbetrace.lo: $(TOP)\src\vdbetrace.c $(HDR) 1072 $(LTCOMPILE) -c $(TOP)\src\vdbetrace.c 1073 1074vtab.lo: $(TOP)\src\vtab.c $(HDR) 1075 $(LTCOMPILE) -c $(TOP)\src\vtab.c 1076 1077wal.lo: $(TOP)\src\wal.c $(HDR) 1078 $(LTCOMPILE) -c $(TOP)\src\wal.c 1079 1080walker.lo: $(TOP)\src\walker.c $(HDR) 1081 $(LTCOMPILE) -c $(TOP)\src\walker.c 1082 1083where.lo: $(TOP)\src\where.c $(HDR) 1084 $(LTCOMPILE) -c $(TOP)\src\where.c 1085 1086tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR) 1087 $(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c 1088 1089tclsqlite-shell.lo: $(TOP)\src\tclsqlite.c $(HDR) 1090 $(LTCOMPILE) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c 1091 1092tclsqlite3.exe: tclsqlite-shell.lo libsqlite3.lib $(LIBRESOBJS) 1093 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ libsqlite3.lib tclsqlite-shell.lo $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1094 1095# Rules to build opcodes.c and opcodes.h 1096# 1097opcodes.c: opcodes.h $(TOP)\mkopcodec.awk 1098 $(NAWK) -f $(TOP)\mkopcodec.awk opcodes.h > opcodes.c 1099 1100opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\mkopcodeh.awk 1101 type parse.h $(TOP)\src\vdbe.c | $(NAWK) -f $(TOP)\mkopcodeh.awk > opcodes.h 1102 1103# Rules to build parse.c and parse.h - the outputs of lemon. 1104# 1105parse.h: parse.c 1106 1107parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk 1108 del /Q parse.y parse.h parse.h.temp 1109 copy $(TOP)\src\parse.y . 1110 .\lemon.exe $(OPT_FEATURE_FLAGS) $(OPTS) parse.y 1111 move parse.h parse.h.temp 1112 $(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h 1113 1114sqlite3.h: $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION 1115 $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP) > sqlite3.h 1116 1117mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c 1118 $(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLIBPATHS) 1119 1120keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe 1121 .\mkkeywordhash.exe > keywordhash.h 1122 1123 1124 1125# Rules to build the extension objects. 1126# 1127icu.lo: $(TOP)\ext\icu\icu.c $(HDR) $(EXTHDR) 1128 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c 1129 1130fts2.lo: $(TOP)\ext\fts2\fts2.c $(HDR) $(EXTHDR) 1131 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2.c 1132 1133fts2_hash.lo: $(TOP)\ext\fts2\fts2_hash.c $(HDR) $(EXTHDR) 1134 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_hash.c 1135 1136fts2_icu.lo: $(TOP)\ext\fts2\fts2_icu.c $(HDR) $(EXTHDR) 1137 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_icu.c 1138 1139fts2_porter.lo: $(TOP)\ext\fts2\fts2_porter.c $(HDR) $(EXTHDR) 1140 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_porter.c 1141 1142fts2_tokenizer.lo: $(TOP)\ext\fts2\fts2_tokenizer.c $(HDR) $(EXTHDR) 1143 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer.c 1144 1145fts2_tokenizer1.lo: $(TOP)\ext\fts2\fts2_tokenizer1.c $(HDR) $(EXTHDR) 1146 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer1.c 1147 1148fts3.lo: $(TOP)\ext\fts3\fts3.c $(HDR) $(EXTHDR) 1149 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c 1150 1151fts3_aux.lo: $(TOP)\ext\fts3\fts3_aux.c $(HDR) $(EXTHDR) 1152 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c 1153 1154fts3_expr.lo: $(TOP)\ext\fts3\fts3_expr.c $(HDR) $(EXTHDR) 1155 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c 1156 1157fts3_hash.lo: $(TOP)\ext\fts3\fts3_hash.c $(HDR) $(EXTHDR) 1158 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c 1159 1160fts3_icu.lo: $(TOP)\ext\fts3\fts3_icu.c $(HDR) $(EXTHDR) 1161 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c 1162 1163fts3_snippet.lo: $(TOP)\ext\fts3\fts3_snippet.c $(HDR) $(EXTHDR) 1164 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c 1165 1166fts3_porter.lo: $(TOP)\ext\fts3\fts3_porter.c $(HDR) $(EXTHDR) 1167 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c 1168 1169fts3_tokenizer.lo: $(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR) 1170 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c 1171 1172fts3_tokenizer1.lo: $(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR) 1173 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c 1174 1175fts3_unicode.lo: $(TOP)\ext\fts3\fts3_unicode.c $(HDR) $(EXTHDR) 1176 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c 1177 1178fts3_unicode2.lo: $(TOP)\ext\fts3\fts3_unicode2.c $(HDR) $(EXTHDR) 1179 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c 1180 1181fts3_write.lo: $(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR) 1182 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c 1183 1184rtree.lo: $(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR) 1185 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c 1186 1187 1188# Rules to build the 'testfixture' application. 1189# 1190# If using the amalgamation, use sqlite3.c directly to build the test 1191# fixture. Otherwise link against libsqlite3.lib. (This distinction is 1192# necessary because the test fixture requires non-API symbols which are 1193# hidden when the library is built via the amalgamation). 1194# 1195TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 1196TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE 1197 1198TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.lib 1199TESTFIXTURE_SRC1 = sqlite3.c 1200!IF $(USE_AMALGAMATION)==0 1201TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0) 1202!ELSE 1203TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1) 1204!ENDIF 1205 1206testfixture.exe: $(TESTFIXTURE_SRC) $(LIBRESOBJS) $(HDR) 1207 $(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \ 1208 -DBUILD_sqlite -I$(TCLINCDIR) \ 1209 $(TESTFIXTURE_SRC) \ 1210 /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1211 1212fulltest: testfixture.exe sqlite3.exe 1213 .\testfixture.exe $(TOP)\test\all.test 1214 1215soaktest: testfixture.exe sqlite3.exe 1216 .\testfixture.exe $(TOP)\test\all.test -soak=1 1217 1218fulltestonly: testfixture.exe sqlite3.exe 1219 .\testfixture.exe $(TOP)\test\full.test 1220 1221test: testfixture.exe sqlite3.exe 1222 .\testfixture.exe $(TOP)\test\veryquick.test 1223 1224sqlite3_analyzer.c: sqlite3.c $(TOP)\src\test_stat.c $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl 1225 copy sqlite3.c + $(TOP)\src\test_stat.c + $(TOP)\src\tclsqlite.c $@ 1226 echo static const char *tclsh_main_loop(void){ >> $@ 1227 echo static const char *zMainloop = >> $@ 1228 $(NAWK) -f $(TOP)\tool\tostr.awk $(TOP)\tool\spaceanal.tcl >> $@ 1229 echo ; return zMainloop; } >> $@ 1230 1231sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS) 1232 $(LTLINK) -DBUILD_sqlite -DTCLSH=2 -I$(TCLINCDIR) sqlite3_analyzer.c \ 1233 /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1234 1235clean: 1236 del /Q *.lo *.ilk *.lib *.obj *.pdb sqlite3.exe libsqlite3.lib 1237 del /Q *.da *.bb *.bbg gmon.out 1238 del /Q sqlite3.h opcodes.c opcodes.h 1239 del /Q lemon.exe lempar.c parse.* 1240 del /Q mkkeywordhash.exe keywordhash.h 1241 -rmdir /Q/S .deps 1242 -rmdir /Q/S .libs 1243 -rmdir /Q/S quota2a 1244 -rmdir /Q/S quota2b 1245 -rmdir /Q/S quota2c 1246 -rmdir /Q/S tsrc 1247 del /Q .target_source 1248 del /Q tclsqlite3.exe tclsqlite3.exp 1249 del /Q testfixture.exe testfixture.exp test.db 1250 del /Q sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def 1251 del /Q sqlite3.c 1252 del /Q sqlite3rc.h 1253 del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c 1254 del /Q sqlite-*-output.vsix 1255 1256# Dynamic link library section. 1257# 1258dll: sqlite3.dll 1259 1260sqlite3.def: libsqlite3.lib 1261 echo EXPORTS > sqlite3.def 1262 dumpbin /all libsqlite3.lib \ 1263 | $(NAWK) "/ 1 _?sqlite3_/ { sub(/^.* _?/,\"\");print }" \ 1264 | sort >> sqlite3.def 1265 1266sqlite3.dll: $(LIBOBJ) $(LIBRESOBJS) sqlite3.def 1267 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:sqlite3.def /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1268