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_func.c \ 682 $(TOP)\src\test_fuzzer.c \ 683 $(TOP)\src\test_hexio.c \ 684 $(TOP)\src\test_init.c \ 685 $(TOP)\src\test_intarray.c \ 686 $(TOP)\src\test_journal.c \ 687 $(TOP)\src\test_malloc.c \ 688 $(TOP)\src\test_multiplex.c \ 689 $(TOP)\src\test_mutex.c \ 690 $(TOP)\src\test_onefile.c \ 691 $(TOP)\src\test_osinst.c \ 692 $(TOP)\src\test_pcache.c \ 693 $(TOP)\src\test_quota.c \ 694 $(TOP)\src\test_rtree.c \ 695 $(TOP)\src\test_schema.c \ 696 $(TOP)\src\test_server.c \ 697 $(TOP)\src\test_superlock.c \ 698 $(TOP)\src\test_syscall.c \ 699 $(TOP)\src\test_stat.c \ 700 $(TOP)\src\test_tclvar.c \ 701 $(TOP)\src\test_thread.c \ 702 $(TOP)\src\test_vfs.c \ 703 $(TOP)\src\test_wholenumber.c \ 704 $(TOP)\src\test_wsd.c \ 705 $(TOP)\ext\fts3\fts3_term.c \ 706 $(TOP)\ext\fts3\fts3_test.c 707 708# Source code to the library files needed by the test fixture 709# 710TESTSRC2 = \ 711 $(TOP)\src\attach.c \ 712 $(TOP)\src\backup.c \ 713 $(TOP)\src\bitvec.c \ 714 $(TOP)\src\btree.c \ 715 $(TOP)\src\build.c \ 716 $(TOP)\src\ctime.c \ 717 $(TOP)\src\date.c \ 718 $(TOP)\src\expr.c \ 719 $(TOP)\src\func.c \ 720 $(TOP)\src\insert.c \ 721 $(TOP)\src\wal.c \ 722 $(TOP)\src\mem5.c \ 723 $(TOP)\src\os.c \ 724 $(TOP)\src\os_unix.c \ 725 $(TOP)\src\os_win.c \ 726 $(TOP)\src\pager.c \ 727 $(TOP)\src\pragma.c \ 728 $(TOP)\src\prepare.c \ 729 $(TOP)\src\printf.c \ 730 $(TOP)\src\random.c \ 731 $(TOP)\src\pcache.c \ 732 $(TOP)\src\pcache1.c \ 733 $(TOP)\src\select.c \ 734 $(TOP)\src\tokenize.c \ 735 $(TOP)\src\utf.c \ 736 $(TOP)\src\util.c \ 737 $(TOP)\src\vdbeapi.c \ 738 $(TOP)\src\vdbeaux.c \ 739 $(TOP)\src\vdbe.c \ 740 $(TOP)\src\vdbemem.c \ 741 $(TOP)\src\vdbesort.c \ 742 $(TOP)\src\vdbetrace.c \ 743 $(TOP)\src\where.c \ 744 parse.c \ 745 $(TOP)\ext\fts3\fts3.c \ 746 $(TOP)\ext\fts3\fts3_aux.c \ 747 $(TOP)\ext\fts3\fts3_expr.c \ 748 $(TOP)\ext\fts3\fts3_tokenizer.c \ 749 $(TOP)\ext\fts3\fts3_unicode.c \ 750 $(TOP)\ext\fts3\fts3_unicode2.c \ 751 $(TOP)\ext\fts3\fts3_write.c \ 752 $(TOP)\ext\async\sqlite3async.c 753 754# Header files used by all library source files. 755# 756HDR = \ 757 $(TOP)\src\btree.h \ 758 $(TOP)\src\btreeInt.h \ 759 $(TOP)\src\hash.h \ 760 $(TOP)\src\hwtime.h \ 761 keywordhash.h \ 762 $(TOP)\src\mutex.h \ 763 opcodes.h \ 764 $(TOP)\src\os.h \ 765 $(TOP)\src\os_common.h \ 766 $(TOP)\src\pager.h \ 767 $(TOP)\src\pcache.h \ 768 parse.h \ 769 sqlite3.h \ 770 $(TOP)\src\sqlite3ext.h \ 771 $(TOP)\src\sqliteInt.h \ 772 $(TOP)\src\sqliteLimit.h \ 773 $(TOP)\src\vdbe.h \ 774 $(TOP)\src\vdbeInt.h 775 776# Header files used by extensions 777# 778EXTHDR = $(EXTHDR) \ 779 $(TOP)\ext\fts1\fts1.h \ 780 $(TOP)\ext\fts1\fts1_hash.h \ 781 $(TOP)\ext\fts1\fts1_tokenizer.h 782EXTHDR = $(EXTHDR) \ 783 $(TOP)\ext\fts2\fts2.h \ 784 $(TOP)\ext\fts2\fts2_hash.h \ 785 $(TOP)\ext\fts2\fts2_tokenizer.h 786EXTHDR = $(EXTHDR) \ 787 $(TOP)\ext\fts3\fts3.h \ 788 $(TOP)\ext\fts3\fts3Int.h \ 789 $(TOP)\ext\fts3\fts3_hash.h \ 790 $(TOP)\ext\fts3\fts3_tokenizer.h 791EXTHDR = $(EXTHDR) \ 792 $(TOP)\ext\rtree\rtree.h 793EXTHDR = $(EXTHDR) \ 794 $(TOP)\ext\icu\sqliteicu.h 795EXTHDR = $(EXTHDR) \ 796 $(TOP)\ext\rtree\sqlite3rtree.h 797 798# This is the default Makefile target. The objects listed here 799# are what get build when you type just "make" with no arguments. 800# 801all: dll libsqlite3.lib sqlite3.exe libtclsqlite3.lib 802 803libsqlite3.lib: $(LIBOBJ) 804 $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS) 805 806libtclsqlite3.lib: tclsqlite.lo libsqlite3.lib 807 $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCL:tcl=tclstub) $(TLIBS) 808 809sqlite3.exe: $(TOP)\src\shell.c libsqlite3.lib $(LIBRESOBJS) sqlite3.h 810 $(LTLINK) $(READLINE_FLAGS) \ 811 $(TOP)\src\shell.c \ 812 /link $(LTLINKOPTS) $(LTLIBPATHS) libsqlite3.lib $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) 813 814# This target creates a directory named "tsrc" and fills it with 815# copies of all of the C source code and header files needed to 816# build on the target system. Some of the C source code and header 817# files are automatically generated. This target takes care of 818# all that automatic generation. 819# 820.target_source: $(SRC) $(TOP)\tool\vdbe-compress.tcl 821 -rmdir /S/Q tsrc 822 -mkdir tsrc 823 for %i in ($(SRC)) do copy /Y %i tsrc 824 del /Q tsrc\sqlite.h.in tsrc\parse.y 825 $(TCLSH_CMD) $(TOP)\tool\vdbe-compress.tcl < tsrc\vdbe.c > vdbe.new 826 move vdbe.new tsrc\vdbe.c 827 echo > .target_source 828 829sqlite3.c: .target_source $(TOP)\tool\mksqlite3c.tcl 830 $(TCLSH_CMD) $(TOP)\tool\mksqlite3c.tcl 831 832sqlite3-all.c: sqlite3.c $(TOP)/tool/split-sqlite3c.tcl 833 $(TCLSH_CMD) $(TOP)/tool/split-sqlite3c.tcl 834 835# Rule to build the amalgamation 836# 837sqlite3.lo: sqlite3.c 838 $(LTCOMPILE) -c sqlite3.c 839 840# Rules to build the LEMON compiler generator 841# 842lempar.c: $(TOP)\src\lempar.c 843 copy $(TOP)\src\lempar.c . 844 845lemon.exe: $(TOP)\tool\lemon.c lempar.c 846 $(BCC) -Daccess=_access -Fe$@ $(TOP)\tool\lemon.c /link $(NLTLIBPATHS) 847 848# Rules to build individual *.lo files from generated *.c files. This 849# applies to: 850# 851# parse.lo 852# opcodes.lo 853# 854parse.lo: parse.c $(HDR) 855 $(LTCOMPILE) -c parse.c 856 857opcodes.lo: opcodes.c 858 $(LTCOMPILE) -c opcodes.c 859 860# Rule to build the Win32 resources object file. 861# 862!IF $(USE_RC)!=0 863$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(HDR) 864 echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h 865 for /F %%V in ('type "$(TOP)\VERSION"') do ( \ 866 echo #define SQLITE_RESOURCE_VERSION %%V \ 867 | $(NAWK) "/.*/ { gsub(/[.]/,\",\");print }" >> sqlite3rc.h \ 868 ) 869 echo #endif >> sqlite3rc.h 870 $(LTRCOMPILE) -fo $(LIBRESOBJS) $(TOP)\src\sqlite3.rc 871!ENDIF 872 873# Rules to build individual *.lo files from files in the src directory. 874# 875alter.lo: $(TOP)\src\alter.c $(HDR) 876 $(LTCOMPILE) -c $(TOP)\src\alter.c 877 878analyze.lo: $(TOP)\src\analyze.c $(HDR) 879 $(LTCOMPILE) -c $(TOP)\src\analyze.c 880 881attach.lo: $(TOP)\src\attach.c $(HDR) 882 $(LTCOMPILE) -c $(TOP)\src\attach.c 883 884auth.lo: $(TOP)\src\auth.c $(HDR) 885 $(LTCOMPILE) -c $(TOP)\src\auth.c 886 887backup.lo: $(TOP)\src\backup.c $(HDR) 888 $(LTCOMPILE) -c $(TOP)\src\backup.c 889 890bitvec.lo: $(TOP)\src\bitvec.c $(HDR) 891 $(LTCOMPILE) -c $(TOP)\src\bitvec.c 892 893btmutex.lo: $(TOP)\src\btmutex.c $(HDR) 894 $(LTCOMPILE) -c $(TOP)\src\btmutex.c 895 896btree.lo: $(TOP)\src\btree.c $(HDR) $(TOP)\src\pager.h 897 $(LTCOMPILE) -c $(TOP)\src\btree.c 898 899build.lo: $(TOP)\src\build.c $(HDR) 900 $(LTCOMPILE) -c $(TOP)\src\build.c 901 902callback.lo: $(TOP)\src\callback.c $(HDR) 903 $(LTCOMPILE) -c $(TOP)\src\callback.c 904 905complete.lo: $(TOP)\src\complete.c $(HDR) 906 $(LTCOMPILE) -c $(TOP)\src\complete.c 907 908ctime.lo: $(TOP)\src\ctime.c $(HDR) 909 $(LTCOMPILE) -c $(TOP)\src\ctime.c 910 911date.lo: $(TOP)\src\date.c $(HDR) 912 $(LTCOMPILE) -c $(TOP)\src\date.c 913 914delete.lo: $(TOP)\src\delete.c $(HDR) 915 $(LTCOMPILE) -c $(TOP)\src\delete.c 916 917expr.lo: $(TOP)\src\expr.c $(HDR) 918 $(LTCOMPILE) -c $(TOP)\src\expr.c 919 920fault.lo: $(TOP)\src\fault.c $(HDR) 921 $(LTCOMPILE) -c $(TOP)\src\fault.c 922 923fkey.lo: $(TOP)\src\fkey.c $(HDR) 924 $(LTCOMPILE) -c $(TOP)\src\fkey.c 925 926func.lo: $(TOP)\src\func.c $(HDR) 927 $(LTCOMPILE) -c $(TOP)\src\func.c 928 929global.lo: $(TOP)\src\global.c $(HDR) 930 $(LTCOMPILE) -c $(TOP)\src\global.c 931 932hash.lo: $(TOP)\src\hash.c $(HDR) 933 $(LTCOMPILE) -c $(TOP)\src\hash.c 934 935insert.lo: $(TOP)\src\insert.c $(HDR) 936 $(LTCOMPILE) -c $(TOP)\src\insert.c 937 938journal.lo: $(TOP)\src\journal.c $(HDR) 939 $(LTCOMPILE) -c $(TOP)\src\journal.c 940 941legacy.lo: $(TOP)\src\legacy.c $(HDR) 942 $(LTCOMPILE) -c $(TOP)\src\legacy.c 943 944loadext.lo: $(TOP)\src\loadext.c $(HDR) 945 $(LTCOMPILE) -c $(TOP)\src\loadext.c 946 947main.lo: $(TOP)\src\main.c $(HDR) 948 $(LTCOMPILE) -c $(TOP)\src\main.c 949 950malloc.lo: $(TOP)\src\malloc.c $(HDR) 951 $(LTCOMPILE) -c $(TOP)\src\malloc.c 952 953mem0.lo: $(TOP)\src\mem0.c $(HDR) 954 $(LTCOMPILE) -c $(TOP)\src\mem0.c 955 956mem1.lo: $(TOP)\src\mem1.c $(HDR) 957 $(LTCOMPILE) -c $(TOP)\src\mem1.c 958 959mem2.lo: $(TOP)\src\mem2.c $(HDR) 960 $(LTCOMPILE) -c $(TOP)\src\mem2.c 961 962mem3.lo: $(TOP)\src\mem3.c $(HDR) 963 $(LTCOMPILE) -c $(TOP)\src\mem3.c 964 965mem5.lo: $(TOP)\src\mem5.c $(HDR) 966 $(LTCOMPILE) -c $(TOP)\src\mem5.c 967 968memjournal.lo: $(TOP)\src\memjournal.c $(HDR) 969 $(LTCOMPILE) -c $(TOP)\src\memjournal.c 970 971mutex.lo: $(TOP)\src\mutex.c $(HDR) 972 $(LTCOMPILE) -c $(TOP)\src\mutex.c 973 974mutex_noop.lo: $(TOP)\src\mutex_noop.c $(HDR) 975 $(LTCOMPILE) -c $(TOP)\src\mutex_noop.c 976 977mutex_unix.lo: $(TOP)\src\mutex_unix.c $(HDR) 978 $(LTCOMPILE) -c $(TOP)\src\mutex_unix.c 979 980mutex_w32.lo: $(TOP)\src\mutex_w32.c $(HDR) 981 $(LTCOMPILE) -c $(TOP)\src\mutex_w32.c 982 983notify.lo: $(TOP)\src\notify.c $(HDR) 984 $(LTCOMPILE) -c $(TOP)\src\notify.c 985 986pager.lo: $(TOP)\src\pager.c $(HDR) $(TOP)\src\pager.h 987 $(LTCOMPILE) -c $(TOP)\src\pager.c 988 989pcache.lo: $(TOP)\src\pcache.c $(HDR) $(TOP)\src\pcache.h 990 $(LTCOMPILE) -c $(TOP)\src\pcache.c 991 992pcache1.lo: $(TOP)\src\pcache1.c $(HDR) $(TOP)\src\pcache.h 993 $(LTCOMPILE) -c $(TOP)\src\pcache1.c 994 995os.lo: $(TOP)\src\os.c $(HDR) 996 $(LTCOMPILE) -c $(TOP)\src\os.c 997 998os_unix.lo: $(TOP)\src\os_unix.c $(HDR) 999 $(LTCOMPILE) -c $(TOP)\src\os_unix.c 1000 1001os_win.lo: $(TOP)\src\os_win.c $(HDR) 1002 $(LTCOMPILE) -c $(TOP)\src\os_win.c 1003 1004pragma.lo: $(TOP)\src\pragma.c $(HDR) 1005 $(LTCOMPILE) -c $(TOP)\src\pragma.c 1006 1007prepare.lo: $(TOP)\src\prepare.c $(HDR) 1008 $(LTCOMPILE) -c $(TOP)\src\prepare.c 1009 1010printf.lo: $(TOP)\src\printf.c $(HDR) 1011 $(LTCOMPILE) -c $(TOP)\src\printf.c 1012 1013random.lo: $(TOP)\src\random.c $(HDR) 1014 $(LTCOMPILE) -c $(TOP)\src\random.c 1015 1016resolve.lo: $(TOP)\src\resolve.c $(HDR) 1017 $(LTCOMPILE) -c $(TOP)\src\resolve.c 1018 1019rowset.lo: $(TOP)\src\rowset.c $(HDR) 1020 $(LTCOMPILE) -c $(TOP)\src\rowset.c 1021 1022select.lo: $(TOP)\src\select.c $(HDR) 1023 $(LTCOMPILE) -c $(TOP)\src\select.c 1024 1025status.lo: $(TOP)\src\status.c $(HDR) 1026 $(LTCOMPILE) -c $(TOP)\src\status.c 1027 1028table.lo: $(TOP)\src\table.c $(HDR) 1029 $(LTCOMPILE) -c $(TOP)\src\table.c 1030 1031tokenize.lo: $(TOP)\src\tokenize.c keywordhash.h $(HDR) 1032 $(LTCOMPILE) -c $(TOP)\src\tokenize.c 1033 1034trigger.lo: $(TOP)\src\trigger.c $(HDR) 1035 $(LTCOMPILE) -c $(TOP)\src\trigger.c 1036 1037update.lo: $(TOP)\src\update.c $(HDR) 1038 $(LTCOMPILE) -c $(TOP)\src\update.c 1039 1040utf.lo: $(TOP)\src\utf.c $(HDR) 1041 $(LTCOMPILE) -c $(TOP)\src\utf.c 1042 1043util.lo: $(TOP)\src\util.c $(HDR) 1044 $(LTCOMPILE) -c $(TOP)\src\util.c 1045 1046vacuum.lo: $(TOP)\src\vacuum.c $(HDR) 1047 $(LTCOMPILE) -c $(TOP)\src\vacuum.c 1048 1049vdbe.lo: $(TOP)\src\vdbe.c $(HDR) 1050 $(LTCOMPILE) -c $(TOP)\src\vdbe.c 1051 1052vdbeapi.lo: $(TOP)\src\vdbeapi.c $(HDR) 1053 $(LTCOMPILE) -c $(TOP)\src\vdbeapi.c 1054 1055vdbeaux.lo: $(TOP)\src\vdbeaux.c $(HDR) 1056 $(LTCOMPILE) -c $(TOP)\src\vdbeaux.c 1057 1058vdbeblob.lo: $(TOP)\src\vdbeblob.c $(HDR) 1059 $(LTCOMPILE) -c $(TOP)\src\vdbeblob.c 1060 1061vdbemem.lo: $(TOP)\src\vdbemem.c $(HDR) 1062 $(LTCOMPILE) -c $(TOP)\src\vdbemem.c 1063 1064vdbesort.lo: $(TOP)\src\vdbesort.c $(HDR) 1065 $(LTCOMPILE) -c $(TOP)\src\vdbesort.c 1066 1067vdbetrace.lo: $(TOP)\src\vdbetrace.c $(HDR) 1068 $(LTCOMPILE) -c $(TOP)\src\vdbetrace.c 1069 1070vtab.lo: $(TOP)\src\vtab.c $(HDR) 1071 $(LTCOMPILE) -c $(TOP)\src\vtab.c 1072 1073wal.lo: $(TOP)\src\wal.c $(HDR) 1074 $(LTCOMPILE) -c $(TOP)\src\wal.c 1075 1076walker.lo: $(TOP)\src\walker.c $(HDR) 1077 $(LTCOMPILE) -c $(TOP)\src\walker.c 1078 1079where.lo: $(TOP)\src\where.c $(HDR) 1080 $(LTCOMPILE) -c $(TOP)\src\where.c 1081 1082tclsqlite.lo: $(TOP)\src\tclsqlite.c $(HDR) 1083 $(LTCOMPILE) -DUSE_TCL_STUBS=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c 1084 1085tclsqlite-shell.lo: $(TOP)\src\tclsqlite.c $(HDR) 1086 $(LTCOMPILE) -DTCLSH=1 -DBUILD_sqlite -I$(TCLINCDIR) -c $(TOP)\src\tclsqlite.c 1087 1088tclsqlite3.exe: tclsqlite-shell.lo libsqlite3.lib $(LIBRESOBJS) 1089 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /OUT:$@ libsqlite3.lib tclsqlite-shell.lo $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1090 1091# Rules to build opcodes.c and opcodes.h 1092# 1093opcodes.c: opcodes.h $(TOP)\mkopcodec.awk 1094 $(NAWK) -f $(TOP)\mkopcodec.awk opcodes.h > opcodes.c 1095 1096opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\mkopcodeh.awk 1097 type parse.h $(TOP)\src\vdbe.c | $(NAWK) -f $(TOP)\mkopcodeh.awk > opcodes.h 1098 1099# Rules to build parse.c and parse.h - the outputs of lemon. 1100# 1101parse.h: parse.c 1102 1103parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk 1104 del /Q parse.y parse.h parse.h.temp 1105 copy $(TOP)\src\parse.y . 1106 .\lemon.exe $(OPT_FEATURE_FLAGS) $(OPTS) parse.y 1107 move parse.h parse.h.temp 1108 $(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h 1109 1110sqlite3.h: $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION 1111 $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP) > sqlite3.h 1112 1113mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c 1114 $(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLIBPATHS) 1115 1116keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe 1117 .\mkkeywordhash.exe > keywordhash.h 1118 1119 1120 1121# Rules to build the extension objects. 1122# 1123icu.lo: $(TOP)\ext\icu\icu.c $(HDR) $(EXTHDR) 1124 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\icu\icu.c 1125 1126fts2.lo: $(TOP)\ext\fts2\fts2.c $(HDR) $(EXTHDR) 1127 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2.c 1128 1129fts2_hash.lo: $(TOP)\ext\fts2\fts2_hash.c $(HDR) $(EXTHDR) 1130 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_hash.c 1131 1132fts2_icu.lo: $(TOP)\ext\fts2\fts2_icu.c $(HDR) $(EXTHDR) 1133 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_icu.c 1134 1135fts2_porter.lo: $(TOP)\ext\fts2\fts2_porter.c $(HDR) $(EXTHDR) 1136 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_porter.c 1137 1138fts2_tokenizer.lo: $(TOP)\ext\fts2\fts2_tokenizer.c $(HDR) $(EXTHDR) 1139 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer.c 1140 1141fts2_tokenizer1.lo: $(TOP)\ext\fts2\fts2_tokenizer1.c $(HDR) $(EXTHDR) 1142 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts2\fts2_tokenizer1.c 1143 1144fts3.lo: $(TOP)\ext\fts3\fts3.c $(HDR) $(EXTHDR) 1145 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3.c 1146 1147fts3_aux.lo: $(TOP)\ext\fts3\fts3_aux.c $(HDR) $(EXTHDR) 1148 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_aux.c 1149 1150fts3_expr.lo: $(TOP)\ext\fts3\fts3_expr.c $(HDR) $(EXTHDR) 1151 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_expr.c 1152 1153fts3_hash.lo: $(TOP)\ext\fts3\fts3_hash.c $(HDR) $(EXTHDR) 1154 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_hash.c 1155 1156fts3_icu.lo: $(TOP)\ext\fts3\fts3_icu.c $(HDR) $(EXTHDR) 1157 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_icu.c 1158 1159fts3_snippet.lo: $(TOP)\ext\fts3\fts3_snippet.c $(HDR) $(EXTHDR) 1160 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_snippet.c 1161 1162fts3_porter.lo: $(TOP)\ext\fts3\fts3_porter.c $(HDR) $(EXTHDR) 1163 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_porter.c 1164 1165fts3_tokenizer.lo: $(TOP)\ext\fts3\fts3_tokenizer.c $(HDR) $(EXTHDR) 1166 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer.c 1167 1168fts3_tokenizer1.lo: $(TOP)\ext\fts3\fts3_tokenizer1.c $(HDR) $(EXTHDR) 1169 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_tokenizer1.c 1170 1171fts3_unicode.lo: $(TOP)\ext\fts3\fts3_unicode.c $(HDR) $(EXTHDR) 1172 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode.c 1173 1174fts3_unicode2.lo: $(TOP)\ext\fts3\fts3_unicode2.c $(HDR) $(EXTHDR) 1175 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_unicode2.c 1176 1177fts3_write.lo: $(TOP)\ext\fts3\fts3_write.c $(HDR) $(EXTHDR) 1178 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\fts3\fts3_write.c 1179 1180rtree.lo: $(TOP)\ext\rtree\rtree.c $(HDR) $(EXTHDR) 1181 $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)\ext\rtree\rtree.c 1182 1183 1184# Rules to build the 'testfixture' application. 1185# 1186# If using the amalgamation, use sqlite3.c directly to build the test 1187# fixture. Otherwise link against libsqlite3.lib. (This distinction is 1188# necessary because the test fixture requires non-API symbols which are 1189# hidden when the library is built via the amalgamation). 1190# 1191TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 1192TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE 1193 1194TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.lib 1195TESTFIXTURE_SRC1 = sqlite3.c 1196!IF $(USE_AMALGAMATION)==0 1197TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC0) 1198!ELSE 1199TESTFIXTURE_SRC = $(TESTSRC) $(TOP)\src\tclsqlite.c $(TESTFIXTURE_SRC1) 1200!ENDIF 1201 1202testfixture.exe: $(TESTFIXTURE_SRC) $(LIBRESOBJS) $(HDR) 1203 $(LTLINK) -DSQLITE_NO_SYNC=1 $(TESTFIXTURE_FLAGS) \ 1204 -DBUILD_sqlite -I$(TCLINCDIR) \ 1205 $(TESTFIXTURE_SRC) \ 1206 /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1207 1208fulltest: testfixture.exe sqlite3.exe 1209 .\testfixture.exe $(TOP)\test\all.test 1210 1211soaktest: testfixture.exe sqlite3.exe 1212 .\testfixture.exe $(TOP)\test\all.test -soak=1 1213 1214fulltestonly: testfixture.exe sqlite3.exe 1215 .\testfixture.exe $(TOP)\test\full.test 1216 1217test: testfixture.exe sqlite3.exe 1218 .\testfixture.exe $(TOP)\test\veryquick.test 1219 1220sqlite3_analyzer.c: sqlite3.c $(TOP)\src\test_stat.c $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl 1221 copy sqlite3.c + $(TOP)\src\test_stat.c + $(TOP)\src\tclsqlite.c $@ 1222 echo static const char *tclsh_main_loop(void){ >> $@ 1223 echo static const char *zMainloop = >> $@ 1224 $(NAWK) -f $(TOP)\tool\tostr.awk $(TOP)\tool\spaceanal.tcl >> $@ 1225 echo ; return zMainloop; } >> $@ 1226 1227sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS) 1228 $(LTLINK) -DBUILD_sqlite -DTCLSH=2 -I$(TCLINCDIR) sqlite3_analyzer.c \ 1229 /link $(LTLINKOPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1230 1231clean: 1232 del /Q *.lo *.ilk *.lib *.obj *.pdb sqlite3.exe libsqlite3.lib 1233 del /Q *.da *.bb *.bbg gmon.out 1234 del /Q sqlite3.h opcodes.c opcodes.h 1235 del /Q lemon.exe lempar.c parse.* 1236 del /Q mkkeywordhash.exe keywordhash.h 1237 -rmdir /Q/S .deps 1238 -rmdir /Q/S .libs 1239 -rmdir /Q/S quota2a 1240 -rmdir /Q/S quota2b 1241 -rmdir /Q/S quota2c 1242 -rmdir /Q/S tsrc 1243 del /Q .target_source 1244 del /Q tclsqlite3.exe tclsqlite3.exp 1245 del /Q testfixture.exe testfixture.exp test.db 1246 del /Q sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def 1247 del /Q sqlite3.c 1248 del /Q sqlite3rc.h 1249 del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c 1250 del /Q sqlite-*-output.vsix 1251 1252# Dynamic link library section. 1253# 1254dll: sqlite3.dll 1255 1256sqlite3.def: libsqlite3.lib 1257 echo EXPORTS > sqlite3.def 1258 dumpbin /all libsqlite3.lib \ 1259 | $(NAWK) "/ 1 _?sqlite3_/ { sub(/^.* _?/,\"\");print }" \ 1260 | sort >> sqlite3.def 1261 1262sqlite3.dll: $(LIBOBJ) $(LIBRESOBJS) sqlite3.def 1263 $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:sqlite3.def /OUT:$@ $(LIBOBJ) $(LIBRESOBJS) $(LTLIBS) $(TLIBS) 1264