/ Hex Artifact Content
Login

Artifact ba20905d0169cf0734d205c0f9e18498158553129578d8f64d00cddf98559db0:


0000: 23 0a 23 20 6e 6d 61 6b 65 20 4d 61 6b 65 66 69  #.# nmake Makefi
0010: 6c 65 20 66 6f 72 20 53 51 4c 69 74 65 0a 23 0a  le for SQLite.#.
0020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0050: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0060: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
0070: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0080: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 20 53  ############## S
0090: 54 41 52 54 20 4f 46 20 4f 50 54 49 4f 4e 53 20  TART OF OPTIONS 
00a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
00c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
0110: 0a 23 20 54 68 65 20 74 6f 70 6c 65 76 65 6c 20  .# The toplevel 
0120: 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65  directory of the
0130: 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54   source tree.  T
0140: 68 69 73 20 69 73 20 74 68 65 20 64 69 72 65 63  his is the direc
0150: 74 6f 72 79 0a 23 20 74 68 61 74 20 63 6f 6e 74  tory.# that cont
0160: 61 69 6e 73 20 74 68 69 73 20 22 4d 61 6b 65 66  ains this "Makef
0170: 69 6c 65 2e 6d 73 63 22 2e 0a 23 0a 54 4f 50 20  ile.msc"..#.TOP 
0180: 3d 20 2e 0a 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a  = ...# <<mark>>.
0190: 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d 30  # Set this non-0
01a0: 20 74 6f 20 63 72 65 61 74 65 20 61 6e 64 20 75   to create and u
01b0: 73 65 20 74 68 65 20 53 51 4c 69 74 65 20 61 6d  se the SQLite am
01c0: 61 6c 67 61 6d 61 74 69 6f 6e 20 66 69 6c 65 2e  algamation file.
01d0: 0a 23 0a 21 49 46 4e 44 45 46 20 55 53 45 5f 41  .#.!IFNDEF USE_A
01e0: 4d 41 4c 47 41 4d 41 54 49 4f 4e 0a 55 53 45 5f  MALGAMATION.USE_
01f0: 41 4d 41 4c 47 41 4d 41 54 49 4f 4e 20 3d 20 31  AMALGAMATION = 1
0200: 0a 21 45 4e 44 49 46 0a 23 20 3c 3c 2f 6d 61 72  .!ENDIF.# <</mar
0210: 6b 3e 3e 0a 0a 23 20 53 65 74 20 74 68 69 73 20  k>>..# Set this 
0220: 6e 6f 6e 2d 30 20 74 6f 20 65 6e 61 62 6c 65 20  non-0 to enable 
0230: 66 75 6c 6c 20 77 61 72 6e 69 6e 67 73 20 28 2d  full warnings (-
0240: 57 34 2c 20 65 74 63 29 20 77 68 65 6e 20 63 6f  W4, etc) when co
0250: 6d 70 69 6c 69 6e 67 2e 0a 23 0a 21 49 46 4e 44  mpiling..#.!IFND
0260: 45 46 20 55 53 45 5f 46 55 4c 4c 57 41 52 4e 0a  EF USE_FULLWARN.
0270: 55 53 45 5f 46 55 4c 4c 57 41 52 4e 20 3d 20 31  USE_FULLWARN = 1
0280: 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74 20 74  .!ENDIF..# Set t
0290: 68 69 73 20 6e 6f 6e 2d 30 20 74 6f 20 65 6e 61  his non-0 to ena
02a0: 62 6c 65 20 74 72 65 61 74 69 6e 67 20 77 61 72  ble treating war
02b0: 6e 69 6e 67 73 20 61 73 20 65 72 72 6f 72 73 20  nings as errors 
02c0: 28 2d 57 58 2c 20 65 74 63 29 20 77 68 65 6e 0a  (-WX, etc) when.
02d0: 23 20 63 6f 6d 70 69 6c 69 6e 67 2e 0a 23 0a 21  # compiling..#.!
02e0: 49 46 4e 44 45 46 20 55 53 45 5f 46 41 54 41 4c  IFNDEF USE_FATAL
02f0: 5f 57 41 52 4e 0a 55 53 45 5f 46 41 54 41 4c 5f  _WARN.USE_FATAL_
0300: 57 41 52 4e 20 3d 20 30 0a 21 45 4e 44 49 46 0a  WARN = 0.!ENDIF.
0310: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0320: 30 20 74 6f 20 65 6e 61 62 6c 65 20 66 75 6c 6c  0 to enable full
0330: 20 72 75 6e 74 69 6d 65 20 65 72 72 6f 72 20 63   runtime error c
0340: 68 65 63 6b 73 20 28 2d 52 54 43 31 2c 20 65 74  hecks (-RTC1, et
0350: 63 29 2e 20 20 54 68 69 73 0a 23 20 68 61 73 20  c).  This.# has 
0360: 6e 6f 20 65 66 66 65 63 74 20 69 66 20 28 61 6e  no effect if (an
0370: 79 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  y) optimizations
0380: 20 61 72 65 20 65 6e 61 62 6c 65 64 2e 0a 23 0a   are enabled..#.
0390: 21 49 46 4e 44 45 46 20 55 53 45 5f 52 55 4e 54  !IFNDEF USE_RUNT
03a0: 49 4d 45 5f 43 48 45 43 4b 53 0a 55 53 45 5f 52  IME_CHECKS.USE_R
03b0: 55 4e 54 49 4d 45 5f 43 48 45 43 4b 53 20 3d 20  UNTIME_CHECKS = 
03c0: 30 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74 20  0.!ENDIF..# Set 
03d0: 74 68 69 73 20 6e 6f 6e 2d 30 20 74 6f 20 63 72  this non-0 to cr
03e0: 65 61 74 65 20 61 20 53 51 4c 69 74 65 20 61 6d  eate a SQLite am
03f0: 61 6c 67 61 6d 61 74 69 6f 6e 20 66 69 6c 65 20  algamation file 
0400: 74 68 61 74 20 65 78 63 6c 75 64 65 73 20 74 68  that excludes th
0410: 65 0a 23 20 76 61 72 69 6f 75 73 20 62 75 69 6c  e.# various buil
0420: 74 2d 69 6e 20 65 78 74 65 6e 73 69 6f 6e 73 2e  t-in extensions.
0430: 0a 23 0a 21 49 46 4e 44 45 46 20 4d 49 4e 49 4d  .#.!IFNDEF MINIM
0440: 41 4c 5f 41 4d 41 4c 47 41 4d 41 54 49 4f 4e 0a  AL_AMALGAMATION.
0450: 4d 49 4e 49 4d 41 4c 5f 41 4d 41 4c 47 41 4d 41  MINIMAL_AMALGAMA
0460: 54 49 4f 4e 20 3d 20 30 0a 21 45 4e 44 49 46 0a  TION = 0.!ENDIF.
0470: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0480: 30 20 74 6f 20 75 73 65 20 22 73 74 64 63 61 6c  0 to use "stdcal
0490: 6c 22 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65  l" calling conve
04a0: 6e 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 6f  ntion for the co
04b0: 72 65 20 6c 69 62 72 61 72 79 0a 23 20 61 6e 64  re library.# and
04c0: 20 73 68 65 6c 6c 20 65 78 65 63 75 74 61 62 6c   shell executabl
04d0: 65 2e 0a 23 0a 21 49 46 4e 44 45 46 20 55 53 45  e..#.!IFNDEF USE
04e0: 5f 53 54 44 43 41 4c 4c 0a 55 53 45 5f 53 54 44  _STDCALL.USE_STD
04f0: 43 41 4c 4c 20 3d 20 30 0a 21 45 4e 44 49 46 0a  CALL = 0.!ENDIF.
0500: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0510: 30 20 74 6f 20 68 61 76 65 20 74 68 65 20 73 68  0 to have the sh
0520: 65 6c 6c 20 65 78 65 63 75 74 61 62 6c 65 20 6c  ell executable l
0530: 69 6e 6b 20 61 67 61 69 6e 73 74 20 74 68 65 20  ink against the 
0540: 63 6f 72 65 20 64 79 6e 61 6d 69 63 0a 23 20 6c  core dynamic.# l
0550: 69 6e 6b 20 6c 69 62 72 61 72 79 2e 0a 23 0a 21  ink library..#.!
0560: 49 46 4e 44 45 46 20 44 59 4e 41 4d 49 43 5f 53  IFNDEF DYNAMIC_S
0570: 48 45 4c 4c 0a 44 59 4e 41 4d 49 43 5f 53 48 45  HELL.DYNAMIC_SHE
0580: 4c 4c 20 3d 20 30 0a 21 45 4e 44 49 46 0a 0a 23  LL = 0.!ENDIF..#
0590: 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d 30 20   Set this non-0 
05a0: 74 6f 20 65 6e 61 62 6c 65 20 65 78 74 72 61 20  to enable extra 
05b0: 63 6f 64 65 20 74 68 61 74 20 61 74 74 65 6d 70  code that attemp
05c0: 74 73 20 74 6f 20 64 65 74 65 63 74 20 6d 69 73  ts to detect mis
05d0: 75 73 65 20 6f 66 20 74 68 65 0a 23 20 53 51 4c  use of the.# SQL
05e0: 69 74 65 20 41 50 49 2e 0a 23 0a 21 49 46 4e 44  ite API..#.!IFND
05f0: 45 46 20 41 50 49 5f 41 52 4d 4f 52 0a 41 50 49  EF API_ARMOR.API
0600: 5f 41 52 4d 4f 52 20 3d 20 30 0a 21 45 4e 44 49  _ARMOR = 0.!ENDI
0610: 46 0a 0a 23 20 49 66 20 6e 65 63 65 73 73 61 72  F..# If necessar
0620: 79 2c 20 63 72 65 61 74 65 20 61 20 6c 69 73 74  y, create a list
0630: 20 6f 66 20 68 61 72 6d 6c 65 73 73 20 63 6f 6d   of harmless com
0640: 70 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 20 74  piler warnings t
0650: 6f 20 64 69 73 61 62 6c 65 20 77 68 65 6e 0a 23  o disable when.#
0660: 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 65 20 76   compiling the v
0670: 61 72 69 6f 75 73 20 74 6f 6f 6c 73 2e 20 20 46  arious tools.  F
0680: 6f 72 20 74 68 65 20 53 51 4c 69 74 65 20 73 6f  or the SQLite so
0690: 75 72 63 65 20 63 6f 64 65 20 69 74 73 65 6c 66  urce code itself
06a0: 2c 20 77 61 72 6e 69 6e 67 73 2c 0a 23 20 69 66  , warnings,.# if
06b0: 20 61 6e 79 2c 20 77 69 6c 6c 20 62 65 20 64 69   any, will be di
06c0: 73 61 62 6c 65 64 20 66 72 6f 6d 20 77 69 74 68  sabled from with
06d0: 69 6e 20 69 74 2e 0a 23 0a 21 49 46 4e 44 45 46  in it..#.!IFNDEF
06e0: 20 4e 4f 5f 57 41 52 4e 0a 21 49 46 20 24 28 55   NO_WARN.!IF $(U
06f0: 53 45 5f 46 55 4c 4c 57 41 52 4e 29 21 3d 30 0a  SE_FULLWARN)!=0.
0700: 4e 4f 5f 57 41 52 4e 20 3d 20 2d 77 64 34 30 35  NO_WARN = -wd405
0710: 34 20 2d 77 64 34 30 35 35 20 2d 77 64 34 31 30  4 -wd4055 -wd410
0720: 30 20 2d 77 64 34 31 32 37 20 2d 77 64 34 31 33  0 -wd4127 -wd413
0730: 30 20 2d 77 64 34 31 35 32 20 2d 77 64 34 31 38  0 -wd4152 -wd418
0740: 39 20 2d 77 64 34 32 30 36 0a 4e 4f 5f 57 41 52  9 -wd4206.NO_WAR
0750: 4e 20 3d 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d  N = $(NO_WARN) -
0760: 77 64 34 32 31 30 20 2d 77 64 34 32 33 32 20 2d  wd4210 -wd4232 -
0770: 77 64 34 33 30 35 20 2d 77 64 34 33 30 36 20 2d  wd4305 -wd4306 -
0780: 77 64 34 37 30 32 20 2d 77 64 34 37 30 36 0a 21  wd4702 -wd4706.!
0790: 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23 20  ENDIF.!ENDIF..# 
07a0: 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d 30 20 74  Set this non-0 t
07b0: 6f 20 75 73 65 20 74 68 65 20 6c 69 62 72 61 72  o use the librar
07c0: 79 20 70 61 74 68 73 20 61 6e 64 20 6f 74 68 65  y paths and othe
07d0: 72 20 6f 70 74 69 6f 6e 73 20 6e 65 63 65 73 73  r options necess
07e0: 61 72 79 20 66 6f 72 0a 23 20 57 69 6e 64 6f 77  ary for.# Window
07f0: 73 20 50 68 6f 6e 65 20 38 2e 31 2e 0a 23 0a 21  s Phone 8.1..#.!
0800: 49 46 4e 44 45 46 20 55 53 45 5f 57 50 38 31 5f  IFNDEF USE_WP81_
0810: 4f 50 54 53 0a 55 53 45 5f 57 50 38 31 5f 4f 50  OPTS.USE_WP81_OP
0820: 54 53 20 3d 20 30 0a 21 45 4e 44 49 46 0a 0a 23  TS = 0.!ENDIF..#
0830: 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d 30 20   Set this non-0 
0840: 74 6f 20 73 70 6c 69 74 20 74 68 65 20 53 51 4c  to split the SQL
0850: 69 74 65 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e  ite amalgamation
0860: 20 66 69 6c 65 20 69 6e 74 6f 20 63 68 75 6e 6b   file into chunk
0870: 73 20 74 6f 0a 23 20 62 65 20 75 73 65 64 20 66  s to.# be used f
0880: 6f 72 20 64 65 62 75 67 67 69 6e 67 20 77 69 74  or debugging wit
0890: 68 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f 2e  h Visual Studio.
08a0: 0a 23 0a 21 49 46 4e 44 45 46 20 53 50 4c 49 54  .#.!IFNDEF SPLIT
08b0: 5f 41 4d 41 4c 47 41 4d 41 54 49 4f 4e 0a 53 50  _AMALGAMATION.SP
08c0: 4c 49 54 5f 41 4d 41 4c 47 41 4d 41 54 49 4f 4e  LIT_AMALGAMATION
08d0: 20 3d 20 30 0a 21 45 4e 44 49 46 0a 0a 23 20 3c   = 0.!ENDIF..# <
08e0: 3c 6d 61 72 6b 3e 3e 0a 23 20 53 65 74 20 74 68  <mark>>.# Set th
08f0: 69 73 20 6e 6f 6e 2d 30 20 74 6f 20 75 73 65 20  is non-0 to use 
0900: 74 68 65 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61  the Internationa
0910: 6c 20 43 6f 6d 70 6f 6e 65 6e 74 73 20 66 6f 72  l Components for
0920: 20 55 6e 69 63 6f 64 65 20 28 49 43 55 29 2e 0a   Unicode (ICU)..
0930: 23 0a 21 49 46 4e 44 45 46 20 55 53 45 5f 49 43  #.!IFNDEF USE_IC
0940: 55 0a 55 53 45 5f 49 43 55 20 3d 20 30 0a 21 45  U.USE_ICU = 0.!E
0950: 4e 44 49 46 0a 23 20 3c 3c 2f 6d 61 72 6b 3e 3e  NDIF.# <</mark>>
0960: 0a 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e  ..# Set this non
0970: 2d 30 20 74 6f 20 64 79 6e 61 6d 69 63 61 6c 6c  -0 to dynamicall
0980: 79 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 4d 53  y link to the MS
0990: 56 43 20 72 75 6e 74 69 6d 65 20 6c 69 62 72 61  VC runtime libra
09a0: 72 79 2e 0a 23 0a 21 49 46 4e 44 45 46 20 55 53  ry..#.!IFNDEF US
09b0: 45 5f 43 52 54 5f 44 4c 4c 0a 55 53 45 5f 43 52  E_CRT_DLL.USE_CR
09c0: 54 5f 44 4c 4c 20 3d 20 30 0a 21 45 4e 44 49 46  T_DLL = 0.!ENDIF
09d0: 0a 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e  ..# Set this non
09e0: 2d 30 20 74 6f 20 6c 69 6e 6b 20 74 6f 20 74 68  -0 to link to th
09f0: 65 20 52 50 43 52 54 34 20 6c 69 62 72 61 72 79  e RPCRT4 library
0a00: 2e 0a 23 0a 21 49 46 4e 44 45 46 20 55 53 45 5f  ..#.!IFNDEF USE_
0a10: 52 50 43 52 54 34 5f 4c 49 42 0a 55 53 45 5f 52  RPCRT4_LIB.USE_R
0a20: 50 43 52 54 34 5f 4c 49 42 20 3d 20 30 0a 21 45  PCRT4_LIB = 0.!E
0a30: 4e 44 49 46 0a 0a 23 20 53 65 74 20 74 68 69 73  NDIF..# Set this
0a40: 20 6e 6f 6e 2d 30 20 74 6f 20 67 65 6e 65 72 61   non-0 to genera
0a50: 74 65 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65  te assembly code
0a60: 20 6c 69 73 74 69 6e 67 73 20 66 6f 72 20 74 68   listings for th
0a70: 65 20 73 6f 75 72 63 65 20 63 6f 64 65 0a 23 20  e source code.# 
0a80: 66 69 6c 65 73 2e 0a 23 0a 21 49 46 4e 44 45 46  files..#.!IFNDEF
0a90: 20 55 53 45 5f 4c 49 53 54 49 4e 47 53 0a 55 53   USE_LISTINGS.US
0aa0: 45 5f 4c 49 53 54 49 4e 47 53 20 3d 20 30 0a 21  E_LISTINGS = 0.!
0ab0: 45 4e 44 49 46 0a 0a 23 20 53 65 74 20 74 68 69  ENDIF..# Set thi
0ac0: 73 20 6e 6f 6e 2d 30 20 74 6f 20 61 74 74 65 6d  s non-0 to attem
0ad0: 70 74 20 73 65 74 74 69 6e 67 20 74 68 65 20 6e  pt setting the n
0ae0: 61 74 69 76 65 20 63 6f 6d 70 69 6c 65 72 20 61  ative compiler a
0af0: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 23 20 66  utomatically.# f
0b00: 6f 72 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c 69  or cross-compili
0b10: 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c  ng the command l
0b20: 69 6e 65 20 74 6f 6f 6c 73 20 6e 65 65 64 65 64  ine tools needed
0b30: 20 64 75 72 69 6e 67 20 74 68 65 20 63 6f 6d 70   during the comp
0b40: 69 6c 61 74 69 6f 6e 0a 23 20 70 72 6f 63 65 73  ilation.# proces
0b50: 73 2e 0a 23 0a 21 49 46 4e 44 45 46 20 58 43 4f  s..#.!IFNDEF XCO
0b60: 4d 50 49 4c 45 0a 58 43 4f 4d 50 49 4c 45 20 3d  MPILE.XCOMPILE =
0b70: 20 30 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74   0.!ENDIF..# Set
0b80: 20 74 68 69 73 20 6e 6f 6e 2d 30 20 74 6f 20 75   this non-0 to u
0b90: 73 65 20 74 68 65 20 6e 61 74 69 76 65 20 6c 69  se the native li
0ba0: 62 72 61 72 69 65 73 20 70 61 74 68 73 20 66 6f  braries paths fo
0bb0: 72 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e  r cross-compilin
0bc0: 67 0a 23 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20  g.# the command 
0bd0: 6c 69 6e 65 20 74 6f 6f 6c 73 20 6e 65 65 64 65  line tools neede
0be0: 64 20 64 75 72 69 6e 67 20 74 68 65 20 63 6f 6d  d during the com
0bf0: 70 69 6c 61 74 69 6f 6e 20 70 72 6f 63 65 73 73  pilation process
0c00: 2e 0a 23 0a 21 49 46 4e 44 45 46 20 55 53 45 5f  ..#.!IFNDEF USE_
0c10: 4e 41 54 49 56 45 5f 4c 49 42 50 41 54 48 53 0a  NATIVE_LIBPATHS.
0c20: 55 53 45 5f 4e 41 54 49 56 45 5f 4c 49 42 50 41  USE_NATIVE_LIBPA
0c30: 54 48 53 20 3d 20 30 0a 21 45 4e 44 49 46 0a 0a  THS = 0.!ENDIF..
0c40: 23 20 53 65 74 20 74 68 69 73 20 30 20 74 6f 20  # Set this 0 to 
0c50: 73 6b 69 70 20 74 68 65 20 63 6f 6d 70 69 6c 69  skip the compili
0c60: 6e 67 20 61 6e 64 20 65 6d 62 65 64 64 69 6e 67  ng and embedding
0c70: 20 6f 66 20 76 65 72 73 69 6f 6e 20 72 65 73 6f   of version reso
0c80: 75 72 63 65 73 2e 0a 23 0a 21 49 46 4e 44 45 46  urces..#.!IFNDEF
0c90: 20 55 53 45 5f 52 43 0a 55 53 45 5f 52 43 20 3d   USE_RC.USE_RC =
0ca0: 20 31 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74   1.!ENDIF..# Set
0cb0: 20 74 68 69 73 20 6e 6f 6e 2d 30 20 74 6f 20 63   this non-0 to c
0cc0: 6f 6d 70 69 6c 65 20 62 69 6e 61 72 69 65 73 20  ompile binaries 
0cd0: 73 75 69 74 61 62 6c 65 20 66 6f 72 20 74 68 65  suitable for the
0ce0: 20 57 69 6e 52 54 20 65 6e 76 69 72 6f 6e 6d 65   WinRT environme
0cf0: 6e 74 2e 0a 23 20 54 68 69 73 20 73 65 74 74 69  nt..# This setti
0d00: 6e 67 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c  ng does not appl
0d10: 79 20 74 6f 20 61 6e 79 20 62 69 6e 61 72 69 65  y to any binarie
0d20: 73 20 74 68 61 74 20 72 65 71 75 69 72 65 20 54  s that require T
0d30: 63 6c 20 74 6f 20 6f 70 65 72 61 74 65 0a 23 20  cl to operate.# 
0d40: 70 72 6f 70 65 72 6c 79 20 28 69 2e 65 2e 20 74  properly (i.e. t
0d50: 68 65 20 74 65 78 74 20 66 69 78 74 75 72 65 2c  he text fixture,
0d60: 20 65 74 63 29 2e 0a 23 0a 21 49 46 4e 44 45 46   etc)..#.!IFNDEF
0d70: 20 46 4f 52 5f 57 49 4e 52 54 0a 46 4f 52 5f 57   FOR_WINRT.FOR_W
0d80: 49 4e 52 54 20 3d 20 30 0a 21 45 4e 44 49 46 0a  INRT = 0.!ENDIF.
0d90: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0da0: 30 20 74 6f 20 63 6f 6d 70 69 6c 65 20 62 69 6e  0 to compile bin
0db0: 61 72 69 65 73 20 73 75 69 74 61 62 6c 65 20 66  aries suitable f
0dc0: 6f 72 20 74 68 65 20 55 57 50 20 65 6e 76 69 72  or the UWP envir
0dd0: 6f 6e 6d 65 6e 74 2e 0a 23 20 54 68 69 73 20 73  onment..# This s
0de0: 65 74 74 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20  etting does not 
0df0: 61 70 70 6c 79 20 74 6f 20 61 6e 79 20 62 69 6e  apply to any bin
0e00: 61 72 69 65 73 20 74 68 61 74 20 72 65 71 75 69  aries that requi
0e10: 72 65 20 54 63 6c 20 74 6f 20 6f 70 65 72 61 74  re Tcl to operat
0e20: 65 0a 23 20 70 72 6f 70 65 72 6c 79 20 28 69 2e  e.# properly (i.
0e30: 65 2e 20 74 68 65 20 74 65 78 74 20 66 69 78 74  e. the text fixt
0e40: 75 72 65 2c 20 65 74 63 29 2e 0a 23 0a 21 49 46  ure, etc)..#.!IF
0e50: 4e 44 45 46 20 46 4f 52 5f 55 57 50 0a 46 4f 52  NDEF FOR_UWP.FOR
0e60: 5f 55 57 50 20 3d 20 30 0a 21 45 4e 44 49 46 0a  _UWP = 0.!ENDIF.
0e70: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0e80: 30 20 74 6f 20 63 6f 6d 70 69 6c 65 20 62 69 6e  0 to compile bin
0e90: 61 72 69 65 73 20 73 75 69 74 61 62 6c 65 20 66  aries suitable f
0ea0: 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73 20 31  or the Windows 1
0eb0: 30 20 70 6c 61 74 66 6f 72 6d 2e 0a 23 0a 21 49  0 platform..#.!I
0ec0: 46 4e 44 45 46 20 46 4f 52 5f 57 49 4e 31 30 0a  FNDEF FOR_WIN10.
0ed0: 46 4f 52 5f 57 49 4e 31 30 20 3d 20 30 0a 21 45  FOR_WIN10 = 0.!E
0ee0: 4e 44 49 46 0a 0a 23 20 3c 3c 6d 61 72 6b 3e 3e  NDIF..# <<mark>>
0ef0: 0a 23 20 53 65 74 20 74 68 69 73 20 6e 6f 6e 2d  .# Set this non-
0f00: 30 20 74 6f 20 73 6b 69 70 20 61 74 74 65 6d 70  0 to skip attemp
0f10: 74 69 6e 67 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72  ting to look for
0f20: 20 61 6e 64 2f 6f 72 20 6c 69 6e 6b 20 77 69 74   and/or link wit
0f30: 68 20 74 68 65 20 54 63 6c 0a 23 20 72 75 6e 74  h the Tcl.# runt
0f40: 69 6d 65 20 6c 69 62 72 61 72 79 2e 0a 23 0a 21  ime library..#.!
0f50: 49 46 4e 44 45 46 20 4e 4f 5f 54 43 4c 0a 4e 4f  IFNDEF NO_TCL.NO
0f60: 5f 54 43 4c 20 3d 20 30 0a 21 45 4e 44 49 46 0a  _TCL = 0.!ENDIF.
0f70: 23 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a 23 20 53  # <</mark>>..# S
0f80: 65 74 20 74 68 69 73 20 74 6f 20 6e 6f 6e 2d 30  et this to non-0
0f90: 20 74 6f 20 63 72 65 61 74 65 20 61 6e 64 20 75   to create and u
0fa0: 73 65 20 50 44 42 73 2e 0a 23 0a 21 49 46 4e 44  se PDBs..#.!IFND
0fb0: 45 46 20 53 59 4d 42 4f 4c 53 0a 53 59 4d 42 4f  EF SYMBOLS.SYMBO
0fc0: 4c 53 20 3d 20 31 0a 21 45 4e 44 49 46 0a 0a 23  LS = 1.!ENDIF..#
0fd0: 20 53 65 74 20 74 68 69 73 20 74 6f 20 6e 6f 6e   Set this to non
0fe0: 2d 30 20 74 6f 20 75 73 65 20 74 68 65 20 53 51  -0 to use the SQ
0ff0: 4c 69 74 65 20 64 65 62 75 67 67 69 6e 67 20 68  Lite debugging h
1000: 65 61 70 20 73 75 62 73 79 73 74 65 6d 2e 0a 23  eap subsystem..#
1010: 0a 21 49 46 4e 44 45 46 20 4d 45 4d 44 45 42 55  .!IFNDEF MEMDEBU
1020: 47 0a 4d 45 4d 44 45 42 55 47 20 3d 20 30 0a 21  G.MEMDEBUG = 0.!
1030: 45 4e 44 49 46 0a 0a 23 20 53 65 74 20 74 68 69  ENDIF..# Set thi
1040: 73 20 74 6f 20 6e 6f 6e 2d 30 20 74 6f 20 75 73  s to non-0 to us
1050: 65 20 74 68 65 20 57 69 6e 33 32 20 6e 61 74 69  e the Win32 nati
1060: 76 65 20 68 65 61 70 20 73 75 62 73 79 73 74 65  ve heap subsyste
1070: 6d 2e 0a 23 0a 21 49 46 4e 44 45 46 20 57 49 4e  m..#.!IFNDEF WIN
1080: 33 32 48 45 41 50 0a 57 49 4e 33 32 48 45 41 50  32HEAP.WIN32HEAP
1090: 20 3d 20 30 0a 21 45 4e 44 49 46 0a 0a 23 20 53   = 0.!ENDIF..# S
10a0: 65 74 20 74 68 69 73 20 74 6f 20 6e 6f 6e 2d 30  et this to non-0
10b0: 20 74 6f 20 65 6e 61 62 6c 65 20 4f 53 54 52 41   to enable OSTRA
10c0: 43 45 28 29 20 6d 61 63 72 6f 73 2c 20 77 68 69  CE() macros, whi
10d0: 63 68 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c  ch can be useful
10e0: 20 77 68 65 6e 0a 23 20 64 65 62 75 67 67 69 6e   when.# debuggin
10f0: 67 2e 0a 23 0a 21 49 46 4e 44 45 46 20 4f 53 54  g..#.!IFNDEF OST
1100: 52 41 43 45 0a 4f 53 54 52 41 43 45 20 3d 20 30  RACE.OSTRACE = 0
1110: 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74 20 74  .!ENDIF..# Set t
1120: 68 69 73 20 74 6f 20 6f 6e 65 20 6f 66 20 74 68  his to one of th
1130: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 6c 75  e following valu
1140: 65 73 20 74 6f 20 65 6e 61 62 6c 65 20 76 61 72  es to enable var
1150: 69 6f 75 73 20 64 65 62 75 67 67 69 6e 67 0a 23  ious debugging.#
1160: 20 66 65 61 74 75 72 65 73 2e 20 20 45 61 63 68   features.  Each
1170: 20 6c 65 76 65 6c 20 69 6e 63 6c 75 64 65 73 20   level includes 
1180: 74 68 65 20 64 65 62 75 67 67 69 6e 67 20 6f 70  the debugging op
1190: 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 70  tions from the p
11a0: 72 65 76 69 6f 75 73 0a 23 20 6c 65 76 65 6c 73  revious.# levels
11b0: 2e 20 20 43 75 72 72 65 6e 74 6c 79 2c 20 74 68  .  Currently, th
11c0: 65 20 72 65 63 6f 67 6e 69 7a 65 64 20 76 61 6c  e recognized val
11d0: 75 65 73 20 66 6f 72 20 44 45 42 55 47 20 61 72  ues for DEBUG ar
11e0: 65 3a 0a 23 0a 23 20 30 20 3d 3d 20 4e 44 45 42  e:.#.# 0 == NDEB
11f0: 55 47 3a 20 44 69 73 61 62 6c 65 73 20 61 73 73  UG: Disables ass
1200: 65 72 74 28 29 20 61 6e 64 20 6f 74 68 65 72 20  ert() and other 
1210: 72 75 6e 74 69 6d 65 20 64 69 61 67 6e 6f 73 74  runtime diagnost
1220: 69 63 73 2e 0a 23 20 31 20 3d 3d 20 53 51 4c 49  ics..# 1 == SQLI
1230: 54 45 5f 45 4e 41 42 4c 45 5f 41 50 49 5f 41 52  TE_ENABLE_API_AR
1240: 4d 4f 52 3a 20 65 78 74 72 61 20 61 74 74 65 6d  MOR: extra attem
1250: 70 74 73 20 74 6f 20 64 65 74 65 63 74 20 6d 69  pts to detect mi
1260: 73 75 73 65 20 6f 66 20 74 68 65 20 41 50 49 2e  suse of the API.
1270: 0a 23 20 32 20 3d 3d 20 44 69 73 61 62 6c 65 73  .# 2 == Disables
1280: 20 4e 44 45 42 55 47 20 61 6e 64 20 61 6c 6c 20   NDEBUG and all 
1290: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 6e  optimizations an
12a0: 64 20 74 68 65 6e 20 65 6e 61 62 6c 65 73 20 50  d then enables P
12b0: 44 42 73 2e 0a 23 20 33 20 3d 3d 20 53 51 4c 49  DBs..# 3 == SQLI
12c0: 54 45 5f 44 45 42 55 47 3a 20 45 6e 61 62 6c 65  TE_DEBUG: Enable
12d0: 73 20 76 61 72 69 6f 75 73 20 64 69 61 67 6e 6f  s various diagno
12e0: 73 74 69 63 73 20 6d 65 73 73 61 67 65 73 20 61  stics messages a
12f0: 6e 64 20 63 6f 64 65 2e 0a 23 20 34 20 3d 3d 20  nd code..# 4 == 
1300: 53 51 4c 49 54 45 5f 57 49 4e 33 32 5f 4d 41 4c  SQLITE_WIN32_MAL
1310: 4c 4f 43 5f 56 41 4c 49 44 41 54 45 3a 20 56 61  LOC_VALIDATE: Va
1320: 6c 69 64 61 74 65 20 74 68 65 20 57 69 6e 33 32  lidate the Win32
1330: 20 6e 61 74 69 76 65 20 68 65 61 70 20 70 65 72   native heap per
1340: 20 63 61 6c 6c 2e 0a 23 20 35 20 3d 3d 20 53 51   call..# 5 == SQ
1350: 4c 49 54 45 5f 44 45 42 55 47 5f 4f 53 5f 54 52  LITE_DEBUG_OS_TR
1360: 41 43 45 3a 20 45 6e 61 62 6c 65 73 20 6f 75 74  ACE: Enables out
1370: 70 75 74 20 66 72 6f 6d 20 74 68 65 20 4f 53 54  put from the OST
1380: 52 41 43 45 28 29 20 6d 61 63 72 6f 73 2e 0a 23  RACE() macros..#
1390: 20 36 20 3d 3d 20 53 51 4c 49 54 45 5f 45 4e 41   6 == SQLITE_ENA
13a0: 42 4c 45 5f 49 4f 54 52 41 43 45 3a 20 45 6e 61  BLE_IOTRACE: Ena
13b0: 62 6c 65 73 20 6f 75 74 70 75 74 20 66 72 6f 6d  bles output from
13c0: 20 74 68 65 20 49 4f 54 52 41 43 45 28 29 20 6d   the IOTRACE() m
13d0: 61 63 72 6f 73 2e 0a 23 0a 21 49 46 4e 44 45 46  acros..#.!IFNDEF
13e0: 20 44 45 42 55 47 0a 44 45 42 55 47 20 3d 20 30   DEBUG.DEBUG = 0
13f0: 0a 21 45 4e 44 49 46 0a 0a 23 20 45 6e 61 62 6c  .!ENDIF..# Enabl
1400: 65 20 75 73 65 20 6f 66 20 61 76 61 69 6c 61 62  e use of availab
1410: 6c 65 20 63 6f 6d 70 69 6c 65 72 20 6f 70 74 69  le compiler opti
1420: 6d 69 7a 61 74 69 6f 6e 73 3f 20 20 4e 6f 72 6d  mizations?  Norm
1430: 61 6c 6c 79 2c 20 74 68 69 73 20 73 68 6f 75 6c  ally, this shoul
1440: 64 20 62 65 0a 23 20 6e 6f 6e 2d 7a 65 72 6f 2e  d be.# non-zero.
1450: 20 20 53 65 74 74 69 6e 67 20 74 68 69 73 20 74    Setting this t
1460: 6f 20 7a 65 72 6f 2c 20 74 68 75 73 20 64 69 73  o zero, thus dis
1470: 61 62 6c 69 6e 67 20 61 6c 6c 20 63 6f 6d 70 69  abling all compi
1480: 6c 65 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ler optimization
1490: 73 2c 0a 23 20 63 61 6e 20 62 65 20 75 73 65 66  s,.# can be usef
14a0: 75 6c 20 66 6f 72 20 74 65 73 74 69 6e 67 2e 0a  ul for testing..
14b0: 23 0a 21 49 46 4e 44 45 46 20 4f 50 54 49 4d 49  #.!IFNDEF OPTIMI
14c0: 5a 41 54 49 4f 4e 53 0a 4f 50 54 49 4d 49 5a 41  ZATIONS.OPTIMIZA
14d0: 54 49 4f 4e 53 20 3d 20 32 0a 21 45 4e 44 49 46  TIONS = 2.!ENDIF
14e0: 0a 0a 23 20 53 65 74 20 74 68 69 73 20 74 6f 20  ..# Set this to 
14f0: 6e 6f 6e 2d 30 20 74 6f 20 65 6e 61 62 6c 65 20  non-0 to enable 
1500: 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20  support for the 
1510: 73 65 73 73 69 6f 6e 20 65 78 74 65 6e 73 69 6f  session extensio
1520: 6e 2e 0a 23 0a 21 49 46 4e 44 45 46 20 53 45 53  n..#.!IFNDEF SES
1530: 53 49 4f 4e 0a 53 45 53 53 49 4f 4e 20 3d 20 30  SION.SESSION = 0
1540: 0a 21 45 4e 44 49 46 0a 0a 23 20 53 65 74 20 74  .!ENDIF..# Set t
1550: 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66  he source code f
1560: 69 6c 65 20 74 6f 20 62 65 20 75 73 65 64 20 62  ile to be used b
1570: 79 20 65 78 65 63 75 74 61 62 6c 65 73 20 61 6e  y executables an
1580: 64 20 6c 69 62 72 61 72 69 65 73 20 77 68 65 6e  d libraries when
1590: 0a 23 20 74 68 65 79 20 6e 65 65 64 20 74 68 65  .# they need the
15a0: 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 0a 23   amalgamation..#
15b0: 0a 21 49 46 4e 44 45 46 20 53 51 4c 49 54 45 33  .!IFNDEF SQLITE3
15c0: 43 0a 21 49 46 20 24 28 53 50 4c 49 54 5f 41 4d  C.!IF $(SPLIT_AM
15d0: 41 4c 47 41 4d 41 54 49 4f 4e 29 21 3d 30 0a 53  ALGAMATION)!=0.S
15e0: 51 4c 49 54 45 33 43 20 3d 20 73 71 6c 69 74 65  QLITE3C = sqlite
15f0: 33 2d 61 6c 6c 2e 63 0a 21 45 4c 53 45 0a 53 51  3-all.c.!ELSE.SQ
1600: 4c 49 54 45 33 43 20 3d 20 73 71 6c 69 74 65 33  LITE3C = sqlite3
1610: 2e 63 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46  .c.!ENDIF.!ENDIF
1620: 0a 0a 23 20 53 65 74 20 74 68 65 20 69 6e 63 6c  ..# Set the incl
1630: 75 64 65 20 63 6f 64 65 20 66 69 6c 65 20 74 6f  ude code file to
1640: 20 62 65 20 75 73 65 64 20 62 79 20 65 78 65 63   be used by exec
1650: 75 74 61 62 6c 65 73 20 61 6e 64 20 6c 69 62 72  utables and libr
1660: 61 72 69 65 73 20 77 68 65 6e 0a 23 20 74 68 65  aries when.# the
1670: 79 20 6e 65 65 64 20 53 51 4c 69 74 65 2e 0a 23  y need SQLite..#
1680: 0a 21 49 46 4e 44 45 46 20 53 51 4c 49 54 45 33  .!IFNDEF SQLITE3
1690: 48 0a 53 51 4c 49 54 45 33 48 20 3d 20 73 71 6c  H.SQLITE3H = sql
16a0: 69 74 65 33 2e 68 0a 21 45 4e 44 49 46 0a 0a 23  ite3.h.!ENDIF..#
16b0: 20 54 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d   This is the nam
16c0: 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65  e to use for the
16d0: 20 53 51 4c 69 74 65 20 64 79 6e 61 6d 69 63 20   SQLite dynamic 
16e0: 6c 69 6e 6b 20 6c 69 62 72 61 72 79 20 28 44 4c  link library (DL
16f0: 4c 29 2e 0a 23 0a 21 49 46 4e 44 45 46 20 53 51  L)..#.!IFNDEF SQ
1700: 4c 49 54 45 33 44 4c 4c 0a 21 49 46 20 24 28 46  LITE3DLL.!IF $(F
1710: 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 53 51 4c  OR_WIN10)!=0.SQL
1720: 49 54 45 33 44 4c 4c 20 3d 20 77 69 6e 73 71 6c  ITE3DLL = winsql
1730: 69 74 65 33 2e 64 6c 6c 0a 21 45 4c 53 45 0a 53  ite3.dll.!ELSE.S
1740: 51 4c 49 54 45 33 44 4c 4c 20 3d 20 73 71 6c 69  QLITE3DLL = sqli
1750: 74 65 33 2e 64 6c 6c 0a 21 45 4e 44 49 46 0a 21  te3.dll.!ENDIF.!
1760: 45 4e 44 49 46 0a 0a 23 20 54 68 69 73 20 69 73  ENDIF..# This is
1770: 20 74 68 65 20 6e 61 6d 65 20 74 6f 20 75 73 65   the name to use
1780: 20 66 6f 72 20 74 68 65 20 53 51 4c 69 74 65 20   for the SQLite 
1790: 69 6d 70 6f 72 74 20 6c 69 62 72 61 72 79 20 28  import library (
17a0: 4c 49 42 29 2e 0a 23 0a 21 49 46 4e 44 45 46 20  LIB)..#.!IFNDEF 
17b0: 53 51 4c 49 54 45 33 4c 49 42 0a 21 49 46 20 24  SQLITE3LIB.!IF $
17c0: 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 53  (FOR_WIN10)!=0.S
17d0: 51 4c 49 54 45 33 4c 49 42 20 3d 20 77 69 6e 73  QLITE3LIB = wins
17e0: 71 6c 69 74 65 33 2e 6c 69 62 0a 21 45 4c 53 45  qlite3.lib.!ELSE
17f0: 0a 53 51 4c 49 54 45 33 4c 49 42 20 3d 20 73 71  .SQLITE3LIB = sq
1800: 6c 69 74 65 33 2e 6c 69 62 0a 21 45 4e 44 49 46  lite3.lib.!ENDIF
1810: 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68 69 73 20  .!ENDIF..# This 
1820: 69 73 20 74 68 65 20 6e 61 6d 65 20 74 6f 20 75  is the name to u
1830: 73 65 20 66 6f 72 20 74 68 65 20 53 51 4c 69 74  se for the SQLit
1840: 65 20 73 68 65 6c 6c 20 65 78 65 63 75 74 61 62  e shell executab
1850: 6c 65 20 28 45 58 45 29 2e 0a 23 0a 21 49 46 4e  le (EXE)..#.!IFN
1860: 44 45 46 20 53 51 4c 49 54 45 33 45 58 45 0a 21  DEF SQLITE3EXE.!
1870: 49 46 20 24 28 46 4f 52 5f 57 49 4e 31 30 29 21  IF $(FOR_WIN10)!
1880: 3d 30 0a 53 51 4c 49 54 45 33 45 58 45 20 3d 20  =0.SQLITE3EXE = 
1890: 77 69 6e 73 71 6c 69 74 65 33 73 68 65 6c 6c 2e  winsqlite3shell.
18a0: 65 78 65 0a 21 45 4c 53 45 0a 53 51 4c 49 54 45  exe.!ELSE.SQLITE
18b0: 33 45 58 45 20 3d 20 73 71 6c 69 74 65 33 2e 65  3EXE = sqlite3.e
18c0: 78 65 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46  xe.!ENDIF.!ENDIF
18d0: 0a 0a 23 20 54 68 69 73 20 69 73 20 74 68 65 20  ..# This is the 
18e0: 61 72 67 75 6d 65 6e 74 20 75 73 65 64 20 74 6f  argument used to
18f0: 20 73 65 74 20 74 68 65 20 70 72 6f 67 72 61 6d   set the program
1900: 20 64 61 74 61 62 61 73 65 20 28 50 44 42 29 20   database (PDB) 
1910: 66 69 6c 65 20 66 6f 72 20 74 68 65 0a 23 20 53  file for the.# S
1920: 51 4c 69 74 65 20 73 68 65 6c 6c 20 65 78 65 63  QLite shell exec
1930: 75 74 61 62 6c 65 20 28 45 58 45 29 2e 0a 23 0a  utable (EXE)..#.
1940: 21 49 46 4e 44 45 46 20 53 51 4c 49 54 45 33 45  !IFNDEF SQLITE3E
1950: 58 45 50 44 42 0a 21 49 46 20 24 28 46 4f 52 5f  XEPDB.!IF $(FOR_
1960: 57 49 4e 31 30 29 21 3d 30 0a 53 51 4c 49 54 45  WIN10)!=0.SQLITE
1970: 33 45 58 45 50 44 42 20 3d 0a 21 45 4c 53 45 0a  3EXEPDB =.!ELSE.
1980: 53 51 4c 49 54 45 33 45 58 45 50 44 42 20 3d 20  SQLITE3EXEPDB = 
1990: 2f 70 64 62 3a 73 71 6c 69 74 65 33 73 68 2e 70  /pdb:sqlite3sh.p
19a0: 64 62 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46  db.!ENDIF.!ENDIF
19b0: 0a 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a 23 20 54  ..# <<mark>>.# T
19c0: 68 65 73 65 20 61 72 65 20 74 68 65 20 6e 61 6d  hese are the nam
19d0: 65 73 20 6f 66 20 74 68 65 20 63 75 73 74 6f 6d  es of the custom
19e0: 69 7a 65 64 20 54 63 6c 20 68 65 61 64 65 72 20  ized Tcl header 
19f0: 66 69 6c 65 73 20 75 73 65 64 20 62 79 20 76 61  files used by va
1a00: 72 69 6f 75 73 20 70 61 72 74 73 0a 23 20 6f 66  rious parts.# of
1a10: 20 74 68 69 73 20 6d 61 6b 65 66 69 6c 65 20 77   this makefile w
1a20: 68 65 6e 20 74 68 65 20 73 74 64 63 61 6c 6c 20  hen the stdcall 
1a30: 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69  calling conventi
1a40: 6f 6e 20 69 73 20 69 6e 20 75 73 65 2e 20 20 49  on is in use.  I
1a50: 74 20 69 73 20 6e 6f 74 0a 23 20 75 73 65 64 20  t is not.# used 
1a60: 66 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 70 75  for any other pu
1a70: 72 70 6f 73 65 2e 0a 23 0a 21 49 46 4e 44 45 46  rpose..#.!IFNDEF
1a80: 20 53 51 4c 49 54 45 54 43 4c 48 0a 53 51 4c 49   SQLITETCLH.SQLI
1a90: 54 45 54 43 4c 48 20 3d 20 73 71 6c 69 74 65 5f  TETCLH = sqlite_
1aa0: 74 63 6c 2e 68 0a 21 45 4e 44 49 46 0a 0a 21 49  tcl.h.!ENDIF..!I
1ab0: 46 4e 44 45 46 20 53 51 4c 49 54 45 54 43 4c 44  FNDEF SQLITETCLD
1ac0: 45 43 4c 53 48 0a 53 51 4c 49 54 45 54 43 4c 44  ECLSH.SQLITETCLD
1ad0: 45 43 4c 53 48 20 3d 20 73 71 6c 69 74 65 5f 74  ECLSH = sqlite_t
1ae0: 63 6c 44 65 63 6c 73 2e 68 0a 21 45 4e 44 49 46  clDecls.h.!ENDIF
1af0: 0a 0a 23 20 54 68 65 73 65 20 61 72 65 20 74 68  ..# These are th
1b00: 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 61 72  e additional tar
1b10: 67 65 74 73 20 74 68 61 74 20 74 68 65 20 74 61  gets that the ta
1b20: 72 67 65 74 73 20 74 68 61 74 20 69 6e 74 65 67  rgets that integ
1b30: 72 61 74 65 20 77 69 74 68 20 74 68 65 0a 23 20  rate with the.# 
1b40: 54 63 6c 20 6c 69 62 72 61 72 79 20 73 68 6f 75  Tcl library shou
1b50: 6c 64 20 64 65 70 65 6e 64 20 6f 6e 20 77 68 65  ld depend on whe
1b60: 6e 20 63 6f 6d 70 69 6c 69 6e 67 2c 20 65 74 63  n compiling, etc
1b70: 2e 0a 23 0a 21 49 46 4e 44 45 46 20 53 51 4c 49  ..#.!IFNDEF SQLI
1b80: 54 45 5f 54 43 4c 5f 44 45 50 0a 21 49 46 20 24  TE_TCL_DEP.!IF $
1b90: 28 55 53 45 5f 53 54 44 43 41 4c 4c 29 21 3d 30  (USE_STDCALL)!=0
1ba0: 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31 30 29   || $(FOR_WIN10)
1bb0: 21 3d 30 0a 53 51 4c 49 54 45 5f 54 43 4c 5f 44  !=0.SQLITE_TCL_D
1bc0: 45 50 20 3d 20 24 28 53 51 4c 49 54 45 54 43 4c  EP = $(SQLITETCL
1bd0: 44 45 43 4c 53 48 29 20 24 28 53 51 4c 49 54 45  DECLSH) $(SQLITE
1be0: 54 43 4c 48 29 0a 21 45 4c 53 45 0a 53 51 4c 49  TCLH).!ELSE.SQLI
1bf0: 54 45 5f 54 43 4c 5f 44 45 50 20 3d 0a 21 45 4e  TE_TCL_DEP =.!EN
1c00: 44 49 46 0a 21 45 4e 44 49 46 0a 23 20 3c 3c 2f  DIF.!ENDIF.# <</
1c10: 6d 61 72 6b 3e 3e 0a 0a 23 20 54 68 65 73 65 20  mark>>..# These 
1c20: 61 72 65 20 74 68 65 20 22 73 74 61 6e 64 61 72  are the "standar
1c30: 64 22 20 53 51 4c 69 74 65 20 63 6f 6d 70 69 6c  d" SQLite compil
1c40: 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 75 73  ation options us
1c50: 65 64 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e  ed when compilin
1c60: 67 20 66 6f 72 0a 23 20 74 68 65 20 57 69 6e 64  g for.# the Wind
1c70: 6f 77 73 20 70 6c 61 74 66 6f 72 6d 2e 0a 23 0a  ows platform..#.
1c80: 21 49 46 4e 44 45 46 20 4f 50 54 5f 46 45 41 54  !IFNDEF OPT_FEAT
1c90: 55 52 45 5f 46 4c 41 47 53 0a 21 49 46 20 24 28  URE_FLAGS.!IF $(
1ca0: 4d 49 4e 49 4d 41 4c 5f 41 4d 41 4c 47 41 4d 41  MINIMAL_AMALGAMA
1cb0: 54 49 4f 4e 29 3d 3d 30 0a 4f 50 54 5f 46 45 41  TION)==0.OPT_FEA
1cc0: 54 55 52 45 5f 46 4c 41 47 53 20 3d 20 24 28 4f  TURE_FLAGS = $(O
1cd0: 50 54 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53  PT_FEATURE_FLAGS
1ce0: 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c  ) -DSQLITE_ENABL
1cf0: 45 5f 46 54 53 33 3d 31 0a 4f 50 54 5f 46 45 41  E_FTS3=1.OPT_FEA
1d00: 54 55 52 45 5f 46 4c 41 47 53 20 3d 20 24 28 4f  TURE_FLAGS = $(O
1d10: 50 54 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53  PT_FEATURE_FLAGS
1d20: 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c  ) -DSQLITE_ENABL
1d30: 45 5f 52 54 52 45 45 3d 31 0a 21 45 4e 44 49 46  E_RTREE=1.!ENDIF
1d40: 0a 4f 50 54 5f 46 45 41 54 55 52 45 5f 46 4c 41  .OPT_FEATURE_FLA
1d50: 47 53 20 3d 20 24 28 4f 50 54 5f 46 45 41 54 55  GS = $(OPT_FEATU
1d60: 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51 4c 49  RE_FLAGS) -DSQLI
1d70: 54 45 5f 45 4e 41 42 4c 45 5f 43 4f 4c 55 4d 4e  TE_ENABLE_COLUMN
1d80: 5f 4d 45 54 41 44 41 54 41 3d 31 0a 21 45 4e 44  _METADATA=1.!END
1d90: 49 46 0a 0a 23 20 53 68 6f 75 6c 64 20 74 68 65  IF..# Should the
1da0: 20 73 65 73 73 69 6f 6e 20 65 78 74 65 6e 73 69   session extensi
1db0: 6f 6e 20 62 65 20 65 6e 61 62 6c 65 64 3f 20 20  on be enabled?  
1dc0: 49 66 20 73 6f 2c 20 61 64 64 20 63 6f 6d 70 69  If so, add compi
1dd0: 6c 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 0a 23  lation options.#
1de0: 20 74 6f 20 65 6e 61 62 6c 65 20 69 74 2e 0a 23   to enable it..#
1df0: 0a 21 49 46 20 24 28 53 45 53 53 49 4f 4e 29 21  .!IF $(SESSION)!
1e00: 3d 30 0a 4f 50 54 5f 46 45 41 54 55 52 45 5f 46  =0.OPT_FEATURE_F
1e10: 4c 41 47 53 20 3d 20 24 28 4f 50 54 5f 46 45 41  LAGS = $(OPT_FEA
1e20: 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51  TURE_FLAGS) -DSQ
1e30: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 53 45 53 53  LITE_ENABLE_SESS
1e40: 49 4f 4e 3d 31 0a 4f 50 54 5f 46 45 41 54 55 52  ION=1.OPT_FEATUR
1e50: 45 5f 46 4c 41 47 53 20 3d 20 24 28 4f 50 54 5f  E_FLAGS = $(OPT_
1e60: 46 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20 2d  FEATURE_FLAGS) -
1e70: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 50  DSQLITE_ENABLE_P
1e80: 52 45 55 50 44 41 54 45 5f 48 4f 4f 4b 3d 31 0a  REUPDATE_HOOK=1.
1e90: 21 45 4e 44 49 46 0a 0a 23 20 54 68 65 73 65 20  !ENDIF..# These 
1ea0: 61 72 65 20 74 68 65 20 22 65 78 74 65 6e 64 65  are the "extende
1eb0: 64 22 20 53 51 4c 69 74 65 20 63 6f 6d 70 69 6c  d" SQLite compil
1ec0: 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 75 73  ation options us
1ed0: 65 64 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e  ed when compilin
1ee0: 67 20 66 6f 72 0a 23 20 74 68 65 20 57 69 6e 64  g for.# the Wind
1ef0: 6f 77 73 20 31 30 20 70 6c 61 74 66 6f 72 6d 2e  ows 10 platform.
1f00: 0a 23 0a 21 49 46 4e 44 45 46 20 45 58 54 5f 46  .#.!IFNDEF EXT_F
1f10: 45 41 54 55 52 45 5f 46 4c 41 47 53 0a 21 49 46  EATURE_FLAGS.!IF
1f20: 20 24 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30   $(FOR_WIN10)!=0
1f30: 0a 45 58 54 5f 46 45 41 54 55 52 45 5f 46 4c 41  .EXT_FEATURE_FLA
1f40: 47 53 20 3d 20 24 28 45 58 54 5f 46 45 41 54 55  GS = $(EXT_FEATU
1f50: 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51 4c 49  RE_FLAGS) -DSQLI
1f60: 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 34 3d 31  TE_ENABLE_FTS4=1
1f70: 0a 45 58 54 5f 46 45 41 54 55 52 45 5f 46 4c 41  .EXT_FEATURE_FLA
1f80: 47 53 20 3d 20 24 28 45 58 54 5f 46 45 41 54 55  GS = $(EXT_FEATU
1f90: 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51 4c 49  RE_FLAGS) -DSQLI
1fa0: 54 45 5f 53 59 53 54 45 4d 5f 4d 41 4c 4c 4f 43  TE_SYSTEM_MALLOC
1fb0: 3d 31 0a 45 58 54 5f 46 45 41 54 55 52 45 5f 46  =1.EXT_FEATURE_F
1fc0: 4c 41 47 53 20 3d 20 24 28 45 58 54 5f 46 45 41  LAGS = $(EXT_FEA
1fd0: 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51  TURE_FLAGS) -DSQ
1fe0: 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 43 41 4c 54  LITE_OMIT_LOCALT
1ff0: 49 4d 45 3d 31 0a 21 45 4c 53 45 0a 45 58 54 5f  IME=1.!ELSE.EXT_
2000: 46 45 41 54 55 52 45 5f 46 4c 41 47 53 20 3d 0a  FEATURE_FLAGS =.
2010: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23  !ENDIF.!ENDIF..#
2020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2050: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2060: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
2070: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2080: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 20 45  ############## E
2090: 4e 44 20 4f 46 20 4f 50 54 49 4f 4e 53 20 23 23  ND OF OPTIONS ##
20a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
20c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
20f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 0a  ##############..
2110: 23 20 57 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67  # When compiling
2120: 20 66 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73   for the Windows
2130: 20 31 30 20 70 6c 61 74 66 6f 72 6d 2c 20 74 68   10 platform, th
2140: 65 20 50 4c 41 54 46 4f 52 4d 20 6d 61 63 72 6f  e PLATFORM macro
2150: 20 6d 75 73 74 20 62 65 20 73 65 74 0a 23 20 74   must be set.# t
2160: 6f 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65  o an appropriate
2170: 20 76 61 6c 75 65 20 28 65 2e 67 2e 20 78 38 36   value (e.g. x86
2180: 2c 20 78 36 34 2c 20 61 72 6d 2c 20 61 72 6d 36  , x64, arm, arm6
2190: 34 2c 20 65 74 63 29 2e 0a 23 0a 21 49 46 20 24  4, etc)..#.!IF $
21a0: 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 21  (FOR_WIN10)!=0.!
21b0: 49 46 4e 44 45 46 20 50 4c 41 54 46 4f 52 4d 0a  IFNDEF PLATFORM.
21c0: 21 45 52 52 4f 52 20 55 73 69 6e 67 20 74 68 65  !ERROR Using the
21d0: 20 46 4f 52 5f 57 49 4e 31 30 20 6f 70 74 69 6f   FOR_WIN10 optio
21e0: 6e 20 72 65 71 75 69 72 65 73 20 61 20 76 61 6c  n requires a val
21f0: 75 65 20 66 6f 72 20 50 4c 41 54 46 4f 52 4d 2e  ue for PLATFORM.
2200: 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a  .!ENDIF.!ENDIF..
2210: 23 20 54 68 69 73 20 61 73 73 75 6d 65 73 20 74  # This assumes t
2220: 68 61 74 20 4d 53 56 43 20 69 73 20 61 6c 77 61  hat MSVC is alwa
2230: 79 73 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 20  ys installed in 
2240: 33 32 2d 62 69 74 20 50 72 6f 67 72 61 6d 20 46  32-bit Program F
2250: 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 0a 23  iles directory.#
2260: 20 61 6e 64 20 73 65 74 73 20 74 68 65 20 76 61   and sets the va
2270: 72 69 61 62 6c 65 20 66 6f 72 20 75 73 65 20 69  riable for use i
2280: 6e 20 6c 6f 63 61 74 69 6e 67 20 6f 74 68 65 72  n locating other
2290: 20 33 32 2d 62 69 74 20 69 6e 73 74 61 6c 6c 73   32-bit installs
22a0: 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 23 0a   accordingly..#.
22b0: 50 52 4f 47 52 41 4d 46 49 4c 45 53 5f 58 38 36  PROGRAMFILES_X86
22c0: 20 3d 20 24 28 56 43 49 4e 53 54 41 4c 4c 44 49   = $(VCINSTALLDI
22d0: 52 29 5c 2e 2e 5c 2e 2e 0a 50 52 4f 47 52 41 4d  R)\..\...PROGRAM
22e0: 46 49 4c 45 53 5f 58 38 36 20 3d 20 24 28 50 52  FILES_X86 = $(PR
22f0: 4f 47 52 41 4d 46 49 4c 45 53 5f 58 38 36 3a 5c  OGRAMFILES_X86:\
2300: 5c 3d 5c 29 0a 0a 23 20 43 68 65 63 6b 20 66 6f  \=\)..# Check fo
2310: 72 20 74 68 65 20 70 72 65 64 65 66 69 6e 65 64  r the predefined
2320: 20 63 6f 6d 6d 61 6e 64 20 6d 61 63 72 6f 20 43   command macro C
2330: 43 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20  C.  This should 
2340: 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 6f 6d  point to the com
2350: 70 69 6c 65 72 0a 23 20 62 69 6e 61 72 79 20 66  piler.# binary f
2360: 6f 72 20 74 68 65 20 74 61 72 67 65 74 20 70 6c  or the target pl
2370: 61 74 66 6f 72 6d 2e 20 20 49 66 20 69 74 20 69  atform.  If it i
2380: 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2c 20 73  s not defined, s
2390: 69 6d 70 6c 79 20 64 65 66 69 6e 65 20 69 74 20  imply define it 
23a0: 74 6f 0a 23 20 74 68 65 20 6c 65 67 61 63 79 20  to.# the legacy 
23b0: 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 27 63  default value 'c
23c0: 6c 2e 65 78 65 27 2e 0a 23 0a 21 49 46 4e 44 45  l.exe'..#.!IFNDE
23d0: 46 20 43 43 0a 43 43 20 3d 20 63 6c 2e 65 78 65  F CC.CC = cl.exe
23e0: 0a 21 45 4e 44 49 46 0a 0a 23 20 43 68 65 63 6b  .!ENDIF..# Check
23f0: 20 66 6f 72 20 74 68 65 20 70 72 65 64 65 66 69   for the predefi
2400: 6e 65 64 20 63 6f 6d 6d 61 6e 64 20 6d 61 63 72  ned command macr
2410: 6f 20 43 53 43 2e 20 20 54 68 69 73 20 73 68 6f  o CSC.  This sho
2420: 75 6c 64 20 70 6f 69 6e 74 20 74 6f 20 61 20 77  uld point to a w
2430: 6f 72 6b 69 6e 67 0a 23 20 43 20 53 68 61 72 70  orking.# C Sharp
2440: 20 63 6f 6d 70 69 6c 65 72 20 62 69 6e 61 72 79   compiler binary
2450: 2e 20 20 49 66 20 69 74 20 69 73 20 6e 6f 74 20  .  If it is not 
2460: 64 65 66 69 6e 65 64 2c 20 73 69 6d 70 6c 79 20  defined, simply 
2470: 64 65 66 69 6e 65 20 69 74 20 74 6f 20 74 68 65  define it to the
2480: 0a 23 20 6c 65 67 61 63 79 20 64 65 66 61 75 6c  .# legacy defaul
2490: 74 20 76 61 6c 75 65 20 27 63 73 63 2e 65 78 65  t value 'csc.exe
24a0: 27 2e 0a 23 0a 21 49 46 4e 44 45 46 20 43 53 43  '..#.!IFNDEF CSC
24b0: 0a 43 53 43 20 3d 20 63 73 63 2e 65 78 65 0a 21  .CSC = csc.exe.!
24c0: 45 4e 44 49 46 0a 0a 23 20 43 68 65 63 6b 20 66  ENDIF..# Check f
24d0: 6f 72 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6d  or the command m
24e0: 61 63 72 6f 20 4c 44 2e 20 20 54 68 69 73 20 73  acro LD.  This s
24f0: 68 6f 75 6c 64 20 70 6f 69 6e 74 20 74 6f 20 74  hould point to t
2500: 68 65 20 6c 69 6e 6b 65 72 20 62 69 6e 61 72 79  he linker binary
2510: 20 66 6f 72 0a 23 20 74 68 65 20 74 61 72 67 65   for.# the targe
2520: 74 20 70 6c 61 74 66 6f 72 6d 2e 20 20 49 66 20  t platform.  If 
2530: 69 74 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65  it is not define
2540: 64 2c 20 73 69 6d 70 6c 79 20 64 65 66 69 6e 65  d, simply define
2550: 20 69 74 20 74 6f 20 74 68 65 20 6c 65 67 61 63   it to the legac
2560: 79 0a 23 20 64 65 66 61 75 6c 74 20 76 61 6c 75  y.# default valu
2570: 65 20 27 6c 69 6e 6b 2e 65 78 65 27 2e 0a 23 0a  e 'link.exe'..#.
2580: 21 49 46 4e 44 45 46 20 4c 44 0a 4c 44 20 3d 20  !IFNDEF LD.LD = 
2590: 6c 69 6e 6b 2e 65 78 65 0a 21 45 4e 44 49 46 0a  link.exe.!ENDIF.
25a0: 0a 23 20 43 68 65 63 6b 20 66 6f 72 20 74 68 65  .# Check for the
25b0: 20 70 72 65 64 65 66 69 6e 65 64 20 63 6f 6d 6d   predefined comm
25c0: 61 6e 64 20 6d 61 63 72 6f 20 52 43 2e 20 20 54  and macro RC.  T
25d0: 68 69 73 20 73 68 6f 75 6c 64 20 70 6f 69 6e 74  his should point
25e0: 20 74 6f 20 74 68 65 20 72 65 73 6f 75 72 63 65   to the resource
25f0: 0a 23 20 63 6f 6d 70 69 6c 65 72 20 62 69 6e 61  .# compiler bina
2600: 72 79 20 66 6f 72 20 74 68 65 20 74 61 72 67 65  ry for the targe
2610: 74 20 70 6c 61 74 66 6f 72 6d 2e 20 20 49 66 20  t platform.  If 
2620: 69 74 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65  it is not define
2630: 64 2c 20 73 69 6d 70 6c 79 20 64 65 66 69 6e 65  d, simply define
2640: 0a 23 20 69 74 20 74 6f 20 74 68 65 20 6c 65 67  .# it to the leg
2650: 61 63 79 20 64 65 66 61 75 6c 74 20 76 61 6c 75  acy default valu
2660: 65 20 27 72 63 2e 65 78 65 27 2e 0a 23 0a 21 49  e 'rc.exe'..#.!I
2670: 46 4e 44 45 46 20 52 43 0a 52 43 20 3d 20 72 63  FNDEF RC.RC = rc
2680: 2e 65 78 65 0a 21 45 4e 44 49 46 0a 0a 23 20 43  .exe.!ENDIF..# C
2690: 68 65 63 6b 20 66 6f 72 20 74 68 65 20 4d 53 56  heck for the MSV
26a0: 43 20 72 75 6e 74 69 6d 65 20 6c 69 62 72 61 72  C runtime librar
26b0: 79 20 70 61 74 68 20 6d 61 63 72 6f 2e 20 20 4f  y path macro.  O
26c0: 74 68 65 72 77 69 73 65 2c 20 74 68 69 73 20 76  therwise, this v
26d0: 61 6c 75 65 20 77 69 6c 6c 0a 23 20 64 65 66 61  alue will.# defa
26e0: 75 6c 74 20 74 6f 20 74 68 65 20 27 6c 69 62 27  ult to the 'lib'
26f0: 20 64 69 72 65 63 74 6f 72 79 20 75 6e 64 65 72   directory under
2700: 6e 65 61 74 68 20 74 68 65 20 4d 53 56 43 20 69  neath the MSVC i
2710: 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65  nstallation dire
2720: 63 74 6f 72 79 2e 0a 23 0a 21 49 46 4e 44 45 46  ctory..#.!IFNDEF
2730: 20 43 52 54 4c 49 42 50 41 54 48 0a 43 52 54 4c   CRTLIBPATH.CRTL
2740: 49 42 50 41 54 48 20 3d 20 24 28 56 43 49 4e 53  IBPATH = $(VCINS
2750: 54 41 4c 4c 44 49 52 29 5c 6c 69 62 0a 21 45 4e  TALLDIR)\lib.!EN
2760: 44 49 46 0a 0a 43 52 54 4c 49 42 50 41 54 48 20  DIF..CRTLIBPATH 
2770: 3d 20 24 28 43 52 54 4c 49 42 50 41 54 48 3a 5c  = $(CRTLIBPATH:\
2780: 5c 3d 5c 29 0a 0a 23 20 43 68 65 63 6b 20 66 6f  \=\)..# Check fo
2790: 72 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6d 61  r the command ma
27a0: 63 72 6f 20 4e 43 43 2e 20 20 54 68 69 73 20 73  cro NCC.  This s
27b0: 68 6f 75 6c 64 20 70 6f 69 6e 74 20 74 6f 20 74  hould point to t
27c0: 68 65 20 63 6f 6d 70 69 6c 65 72 20 62 69 6e 61  he compiler bina
27d0: 72 79 0a 23 20 66 6f 72 20 74 68 65 20 70 6c 61  ry.# for the pla
27e0: 74 66 6f 72 6d 20 74 68 65 20 63 6f 6d 70 69 6c  tform the compil
27f0: 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 20 69 73  ation process is
2800: 20 74 61 6b 69 6e 67 20 70 6c 61 63 65 20 6f 6e   taking place on
2810: 2e 20 20 49 66 20 69 74 20 69 73 20 6e 6f 74 0a  .  If it is not.
2820: 23 20 64 65 66 69 6e 65 64 2c 20 73 69 6d 70 6c  # defined, simpl
2830: 79 20 64 65 66 69 6e 65 20 69 74 20 74 6f 20 68  y define it to h
2840: 61 76 65 20 74 68 65 20 73 61 6d 65 20 76 61 6c  ave the same val
2850: 75 65 20 61 73 20 74 68 65 20 43 43 20 6d 61 63  ue as the CC mac
2860: 72 6f 2e 20 20 57 68 65 6e 0a 23 20 63 72 6f 73  ro.  When.# cros
2870: 73 2d 63 6f 6d 70 69 6c 69 6e 67 2c 20 69 74 20  s-compiling, it 
2880: 69 73 20 73 75 67 67 65 73 74 65 64 20 74 68 61  is suggested tha
2890: 74 20 74 68 69 73 20 6d 61 63 72 6f 20 62 65 20  t this macro be 
28a0: 6d 6f 64 69 66 69 65 64 20 76 69 61 20 74 68 65  modified via the
28b0: 20 63 6f 6d 6d 61 6e 64 0a 23 20 6c 69 6e 65 20   command.# line 
28c0: 28 73 69 6e 63 65 20 6e 6d 61 6b 65 20 69 74 73  (since nmake its
28d0: 65 6c 66 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f  elf does not pro
28e0: 76 69 64 65 20 61 20 62 75 69 6c 74 2d 69 6e 20  vide a built-in 
28f0: 6d 65 74 68 6f 64 20 74 6f 20 67 75 65 73 73 20  method to guess 
2900: 69 74 29 2e 0a 23 20 46 6f 72 20 65 78 61 6d 70  it)..# For examp
2910: 6c 65 2c 20 74 6f 20 75 73 65 20 74 68 65 20 78  le, to use the x
2920: 38 36 20 63 6f 6d 70 69 6c 65 72 20 77 68 65 6e  86 compiler when
2930: 20 63 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e 67   cross-compiling
2940: 20 66 6f 72 20 78 36 34 2c 20 61 20 63 6f 6d 6d   for x64, a comm
2950: 61 6e 64 0a 23 20 6c 69 6e 65 20 73 69 6d 69 6c  and.# line simil
2960: 61 72 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77  ar to the follow
2970: 69 6e 67 20 63 6f 75 6c 64 20 62 65 20 75 73 65  ing could be use
2980: 64 20 28 61 6c 6c 20 6f 6e 20 6f 6e 65 20 6c 69  d (all on one li
2990: 6e 65 29 3a 0a 23 0a 23 20 20 20 20 20 6e 6d 61  ne):.#.#     nma
29a0: 6b 65 20 2f 66 20 4d 61 6b 65 66 69 6c 65 2e 6d  ke /f Makefile.m
29b0: 73 63 20 73 71 6c 69 74 65 33 2e 64 6c 6c 0a 23  sc sqlite3.dll.#
29c0: 20 20 20 20 20 20 20 20 20 20 20 58 43 4f 4d 50             XCOMP
29d0: 49 4c 45 3d 31 20 55 53 45 5f 4e 41 54 49 56 45  ILE=1 USE_NATIVE
29e0: 5f 4c 49 42 50 41 54 48 53 3d 31 0a 23 0a 23 20  _LIBPATHS=1.#.# 
29f0: 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 74  Alternatively, t
2a00: 68 65 20 66 75 6c 6c 20 70 61 74 68 20 61 6e 64  he full path and
2a10: 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f 20 74 68   file name to th
2a20: 65 20 63 6f 6d 70 69 6c 65 72 20 62 69 6e 61 72  e compiler binar
2a30: 79 20 66 6f 72 20 74 68 65 0a 23 20 70 6c 61 74  y for the.# plat
2a40: 66 6f 72 6d 20 74 68 65 20 63 6f 6d 70 69 6c 61  form the compila
2a50: 74 69 6f 6e 20 70 72 6f 63 65 73 73 20 69 73 20  tion process is 
2a60: 74 61 6b 69 6e 67 20 70 6c 61 63 65 20 6d 61 79  taking place may
2a70: 20 62 65 20 73 70 65 63 69 66 69 65 64 20 28 61   be specified (a
2a80: 6c 6c 20 6f 6e 0a 23 20 6f 6e 65 20 6c 69 6e 65  ll on.# one line
2a90: 29 3a 0a 23 0a 23 20 20 20 20 20 6e 6d 61 6b 65  ):.#.#     nmake
2aa0: 20 2f 66 20 4d 61 6b 65 66 69 6c 65 2e 6d 73 63   /f Makefile.msc
2ab0: 20 73 71 6c 69 74 65 33 2e 64 6c 6c 0a 23 20 20   sqlite3.dll.#  
2ac0: 20 20 20 20 20 20 20 20 20 22 4e 43 43 3d 22 22           "NCC=""
2ad0: 25 56 43 49 4e 53 54 41 4c 4c 44 49 52 25 5c 62  %VCINSTALLDIR%\b
2ae0: 69 6e 5c 63 6c 2e 65 78 65 22 22 22 0a 23 20 20  in\cl.exe""".#  
2af0: 20 20 20 20 20 20 20 20 20 55 53 45 5f 4e 41 54           USE_NAT
2b00: 49 56 45 5f 4c 49 42 50 41 54 48 53 3d 31 0a 23  IVE_LIBPATHS=1.#
2b10: 0a 21 49 46 44 45 46 20 4e 43 43 0a 4e 43 43 20  .!IFDEF NCC.NCC 
2b20: 3d 20 24 28 4e 43 43 3a 5c 5c 3d 5c 29 0a 21 45  = $(NCC:\\=\).!E
2b30: 4c 53 45 49 46 20 24 28 58 43 4f 4d 50 49 4c 45  LSEIF $(XCOMPILE
2b40: 29 21 3d 30 0a 4e 43 43 20 3d 20 22 24 28 56 43  )!=0.NCC = "$(VC
2b50: 49 4e 53 54 41 4c 4c 44 49 52 29 5c 62 69 6e 5c  INSTALLDIR)\bin\
2b60: 24 28 43 43 29 22 0a 4e 43 43 20 3d 20 24 28 4e  $(CC)".NCC = $(N
2b70: 43 43 3a 5c 5c 3d 5c 29 0a 21 45 4c 53 45 0a 4e  CC:\\=\).!ELSE.N
2b80: 43 43 20 3d 20 24 28 43 43 29 0a 21 45 4e 44 49  CC = $(CC).!ENDI
2b90: 46 0a 0a 23 20 43 68 65 63 6b 20 66 6f 72 20 74  F..# Check for t
2ba0: 68 65 20 4d 53 56 43 20 6e 61 74 69 76 65 20 72  he MSVC native r
2bb0: 75 6e 74 69 6d 65 20 6c 69 62 72 61 72 79 20 70  untime library p
2bc0: 61 74 68 20 6d 61 63 72 6f 2e 20 20 4f 74 68 65  ath macro.  Othe
2bd0: 72 77 69 73 65 2c 0a 23 20 74 68 69 73 20 76 61  rwise,.# this va
2be0: 6c 75 65 20 77 69 6c 6c 20 64 65 66 61 75 6c 74  lue will default
2bf0: 20 74 6f 20 74 68 65 20 27 6c 69 62 27 20 64 69   to the 'lib' di
2c00: 72 65 63 74 6f 72 79 20 75 6e 64 65 72 6e 65 61  rectory undernea
2c10: 74 68 20 74 68 65 20 4d 53 56 43 0a 23 20 69 6e  th the MSVC.# in
2c20: 73 74 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65 63  stallation direc
2c30: 74 6f 72 79 2e 0a 23 0a 21 49 46 4e 44 45 46 20  tory..#.!IFNDEF 
2c40: 4e 43 52 54 4c 49 42 50 41 54 48 0a 4e 43 52 54  NCRTLIBPATH.NCRT
2c50: 4c 49 42 50 41 54 48 20 3d 20 24 28 56 43 49 4e  LIBPATH = $(VCIN
2c60: 53 54 41 4c 4c 44 49 52 29 5c 6c 69 62 0a 21 45  STALLDIR)\lib.!E
2c70: 4e 44 49 46 0a 0a 4e 43 52 54 4c 49 42 50 41 54  NDIF..NCRTLIBPAT
2c80: 48 20 3d 20 24 28 4e 43 52 54 4c 49 42 50 41 54  H = $(NCRTLIBPAT
2c90: 48 3a 5c 5c 3d 5c 29 0a 0a 23 20 43 68 65 63 6b  H:\\=\)..# Check
2ca0: 20 66 6f 72 20 74 68 65 20 50 6c 61 74 66 6f 72   for the Platfor
2cb0: 6d 20 53 44 4b 20 6c 69 62 72 61 72 79 20 70 61  m SDK library pa
2cc0: 74 68 20 6d 61 63 72 6f 2e 20 20 4f 74 68 65 72  th macro.  Other
2cd0: 77 69 73 65 2c 20 74 68 69 73 0a 23 20 76 61 6c  wise, this.# val
2ce0: 75 65 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 20  ue will default 
2cf0: 74 6f 20 74 68 65 20 27 6c 69 62 27 20 64 69 72  to the 'lib' dir
2d00: 65 63 74 6f 72 79 20 75 6e 64 65 72 6e 65 61 74  ectory underneat
2d10: 68 20 74 68 65 20 57 69 6e 64 6f 77 73 0a 23 20  h the Windows.# 
2d20: 53 44 4b 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e  SDK installation
2d30: 20 64 69 72 65 63 74 6f 72 79 20 28 74 68 65 20   directory (the 
2d40: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
2d50: 61 62 6c 65 20 75 73 65 64 20 61 70 70 65 61 72  able used appear
2d60: 73 0a 23 20 74 6f 20 62 65 20 61 76 61 69 6c 61  s.# to be availa
2d70: 62 6c 65 20 77 68 65 6e 20 75 73 69 6e 67 20 56  ble when using V
2d80: 69 73 75 61 6c 20 43 2b 2b 20 32 30 30 38 20 6f  isual C++ 2008 o
2d90: 72 20 6c 61 74 65 72 20 76 69 61 20 74 68 65 0a  r later via the.
2da0: 23 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 29 2e  # command line).
2db0: 0a 23 0a 21 49 46 4e 44 45 46 20 4e 53 44 4b 4c  .#.!IFNDEF NSDKL
2dc0: 49 42 50 41 54 48 0a 4e 53 44 4b 4c 49 42 50 41  IBPATH.NSDKLIBPA
2dd0: 54 48 20 3d 20 24 28 57 49 4e 44 4f 57 53 53 44  TH = $(WINDOWSSD
2de0: 4b 44 49 52 29 5c 6c 69 62 0a 21 45 4e 44 49 46  KDIR)\lib.!ENDIF
2df0: 0a 0a 4e 53 44 4b 4c 49 42 50 41 54 48 20 3d 20  ..NSDKLIBPATH = 
2e00: 24 28 4e 53 44 4b 4c 49 42 50 41 54 48 3a 5c 5c  $(NSDKLIBPATH:\\
2e10: 3d 5c 29 0a 0a 23 20 43 68 65 63 6b 20 66 6f 72  =\)..# Check for
2e20: 20 74 68 65 20 55 43 52 54 20 6c 69 62 72 61 72   the UCRT librar
2e30: 79 20 70 61 74 68 20 6d 61 63 72 6f 2e 20 20 4f  y path macro.  O
2e40: 74 68 65 72 77 69 73 65 2c 20 74 68 69 73 20 76  therwise, this v
2e50: 61 6c 75 65 20 77 69 6c 6c 0a 23 20 64 65 66 61  alue will.# defa
2e60: 75 6c 74 20 74 6f 20 74 68 65 20 76 65 72 73 69  ult to the versi
2e70: 6f 6e 2d 73 70 65 63 69 66 69 63 2c 20 70 6c 61  on-specific, pla
2e80: 74 66 6f 72 6d 2d 73 70 65 63 69 66 69 63 20 27  tform-specific '
2e90: 6c 69 62 27 20 64 69 72 65 63 74 6f 72 79 0a 23  lib' directory.#
2ea0: 20 75 6e 64 65 72 6e 65 61 74 68 20 74 68 65 20   underneath the 
2eb0: 57 69 6e 64 6f 77 73 20 53 44 4b 20 69 6e 73 74  Windows SDK inst
2ec0: 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f  allation directo
2ed0: 72 79 2e 0a 23 0a 21 49 46 4e 44 45 46 20 55 43  ry..#.!IFNDEF UC
2ee0: 52 54 4c 49 42 50 41 54 48 0a 55 43 52 54 4c 49  RTLIBPATH.UCRTLI
2ef0: 42 50 41 54 48 20 3d 20 24 28 57 49 4e 44 4f 57  BPATH = $(WINDOW
2f00: 53 53 44 4b 44 49 52 29 5c 6c 69 62 5c 24 28 57  SSDKDIR)\lib\$(W
2f10: 49 4e 44 4f 57 53 53 44 4b 4c 49 42 56 45 52 53  INDOWSSDKLIBVERS
2f20: 49 4f 4e 29 5c 75 63 72 74 5c 24 28 50 4c 41 54  ION)\ucrt\$(PLAT
2f30: 46 4f 52 4d 29 0a 21 45 4e 44 49 46 0a 0a 55 43  FORM).!ENDIF..UC
2f40: 52 54 4c 49 42 50 41 54 48 20 3d 20 24 28 55 43  RTLIBPATH = $(UC
2f50: 52 54 4c 49 42 50 41 54 48 3a 5c 5c 3d 5c 29 0a  RTLIBPATH:\\=\).
2f60: 0a 23 20 43 20 63 6f 6d 70 69 6c 65 72 20 61 6e  .# C compiler an
2f70: 64 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 75 73  d options for us
2f80: 65 20 69 6e 20 62 75 69 6c 64 69 6e 67 20 65 78  e in building ex
2f90: 65 63 75 74 61 62 6c 65 73 20 74 68 61 74 0a 23  ecutables that.#
2fa0: 20 77 69 6c 6c 20 72 75 6e 20 6f 6e 20 74 68 65   will run on the
2fb0: 20 70 6c 61 74 66 6f 72 6d 20 74 68 61 74 20 69   platform that i
2fc0: 73 20 64 6f 69 6e 67 20 74 68 65 20 62 75 69 6c  s doing the buil
2fd0: 64 2e 0a 23 0a 21 49 46 20 24 28 55 53 45 5f 46  d..#.!IF $(USE_F
2fe0: 55 4c 4c 57 41 52 4e 29 21 3d 30 0a 42 43 43 20  ULLWARN)!=0.BCC 
2ff0: 3d 20 24 28 4e 43 43 29 20 2d 6e 6f 6c 6f 67 6f  = $(NCC) -nologo
3000: 20 2d 57 34 20 24 28 43 43 4f 50 54 53 29 20 24   -W4 $(CCOPTS) $
3010: 28 42 43 43 4f 50 54 53 29 0a 21 45 4c 53 45 0a  (BCCOPTS).!ELSE.
3020: 42 43 43 20 3d 20 24 28 4e 43 43 29 20 2d 6e 6f  BCC = $(NCC) -no
3030: 6c 6f 67 6f 20 2d 57 33 20 24 28 43 43 4f 50 54  logo -W3 $(CCOPT
3040: 53 29 20 24 28 42 43 43 4f 50 54 53 29 0a 21 45  S) $(BCCOPTS).!E
3050: 4e 44 49 46 0a 0a 23 20 43 68 65 63 6b 20 69 66  NDIF..# Check if
3060: 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65 20 6c   assembly code l
3070: 69 73 74 69 6e 67 73 20 73 68 6f 75 6c 64 20 62  istings should b
3080: 65 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20  e generated for 
3090: 74 68 65 20 73 6f 75 72 63 65 0a 23 20 63 6f 64  the source.# cod
30a0: 65 20 66 69 6c 65 73 20 74 6f 20 62 65 20 63 6f  e files to be co
30b0: 6d 70 69 6c 65 64 2e 0a 23 0a 21 49 46 20 24 28  mpiled..#.!IF $(
30c0: 55 53 45 5f 4c 49 53 54 49 4e 47 53 29 21 3d 30  USE_LISTINGS)!=0
30d0: 0a 42 43 43 20 3d 20 24 28 42 43 43 29 20 2d 46  .BCC = $(BCC) -F
30e0: 41 63 73 0a 21 45 4e 44 49 46 0a 0a 23 20 43 68  Acs.!ENDIF..# Ch
30f0: 65 63 6b 20 69 66 20 74 68 65 20 6e 61 74 69 76  eck if the nativ
3100: 65 20 6c 69 62 72 61 72 79 20 70 61 74 68 73 20  e library paths 
3110: 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 77  should be used w
3120: 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67 0a 23 20  hen compiling.# 
3130: 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65  the command line
3140: 20 74 6f 6f 6c 73 20 75 73 65 64 20 64 75 72 69   tools used duri
3150: 6e 67 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69  ng the compilati
3160: 6f 6e 20 70 72 6f 63 65 73 73 2e 20 20 49 66 0a  on process.  If.
3170: 23 20 73 6f 2c 20 73 65 74 20 74 68 65 20 6e 65  # so, set the ne
3180: 63 65 73 73 61 72 79 20 6d 61 63 72 6f 20 6e 6f  cessary macro no
3190: 77 2e 0a 23 0a 21 49 46 20 24 28 55 53 45 5f 4e  w..#.!IF $(USE_N
31a0: 41 54 49 56 45 5f 4c 49 42 50 41 54 48 53 29 21  ATIVE_LIBPATHS)!
31b0: 3d 30 0a 4e 4c 54 4c 49 42 50 41 54 48 53 20 3d  =0.NLTLIBPATHS =
31c0: 20 22 2f 4c 49 42 50 41 54 48 3a 24 28 4e 43 52   "/LIBPATH:$(NCR
31d0: 54 4c 49 42 50 41 54 48 29 22 20 22 2f 4c 49 42  TLIBPATH)" "/LIB
31e0: 50 41 54 48 3a 24 28 4e 53 44 4b 4c 49 42 50 41  PATH:$(NSDKLIBPA
31f0: 54 48 29 22 0a 0a 21 49 46 44 45 46 20 4e 55 43  TH)"..!IFDEF NUC
3200: 52 54 4c 49 42 50 41 54 48 0a 4e 55 43 52 54 4c  RTLIBPATH.NUCRTL
3210: 49 42 50 41 54 48 20 3d 20 24 28 4e 55 43 52 54  IBPATH = $(NUCRT
3220: 4c 49 42 50 41 54 48 3a 5c 5c 3d 5c 29 0a 4e 4c  LIBPATH:\\=\).NL
3230: 54 4c 49 42 50 41 54 48 53 20 3d 20 24 28 4e 4c  TLIBPATHS = $(NL
3240: 54 4c 49 42 50 41 54 48 53 29 20 22 2f 4c 49 42  TLIBPATHS) "/LIB
3250: 50 41 54 48 3a 24 28 4e 55 43 52 54 4c 49 42 50  PATH:$(NUCRTLIBP
3260: 41 54 48 29 22 0a 21 45 4e 44 49 46 0a 21 45 4e  ATH)".!ENDIF.!EN
3270: 44 49 46 0a 0a 23 20 43 20 63 6f 6d 70 69 6c 65  DIF..# C compile
3280: 72 20 61 6e 64 20 6f 70 74 69 6f 6e 73 20 66 6f  r and options fo
3290: 72 20 75 73 65 20 69 6e 20 62 75 69 6c 64 69 6e  r use in buildin
32a0: 67 20 65 78 65 63 75 74 61 62 6c 65 73 20 74 68  g executables th
32b0: 61 74 0a 23 20 77 69 6c 6c 20 72 75 6e 20 6f 6e  at.# will run on
32c0: 20 74 68 65 20 74 61 72 67 65 74 20 70 6c 61 74   the target plat
32d0: 66 6f 72 6d 2e 20 20 28 42 43 43 20 61 6e 64 20  form.  (BCC and 
32e0: 54 43 43 20 61 72 65 20 75 73 75 61 6c 6c 79 20  TCC are usually 
32f0: 74 68 65 0a 23 20 73 61 6d 65 20 75 6e 6c 65 73  the.# same unles
3300: 73 20 79 6f 75 72 20 61 72 65 20 63 72 6f 73 73  s your are cross
3310: 2d 63 6f 6d 70 69 6c 69 6e 67 2e 29 0a 23 0a 21  -compiling.).#.!
3320: 49 46 20 24 28 55 53 45 5f 46 55 4c 4c 57 41 52  IF $(USE_FULLWAR
3330: 4e 29 21 3d 30 0a 54 43 43 20 3d 20 24 28 43 43  N)!=0.TCC = $(CC
3340: 29 20 2d 6e 6f 6c 6f 67 6f 20 2d 57 34 20 2d 44  ) -nologo -W4 -D
3350: 49 4e 43 4c 55 44 45 5f 4d 53 56 43 5f 48 3d 31  INCLUDE_MSVC_H=1
3360: 20 24 28 43 43 4f 50 54 53 29 20 24 28 54 43 43   $(CCOPTS) $(TCC
3370: 4f 50 54 53 29 0a 21 45 4c 53 45 0a 54 43 43 20  OPTS).!ELSE.TCC 
3380: 3d 20 24 28 43 43 29 20 2d 6e 6f 6c 6f 67 6f 20  = $(CC) -nologo 
3390: 2d 57 33 20 24 28 43 43 4f 50 54 53 29 20 24 28  -W3 $(CCOPTS) $(
33a0: 54 43 43 4f 50 54 53 29 0a 21 45 4e 44 49 46 0a  TCCOPTS).!ENDIF.
33b0: 0a 23 20 43 68 65 63 6b 20 69 66 20 77 61 72 6e  .# Check if warn
33c0: 69 6e 67 73 20 73 68 6f 75 6c 64 20 62 65 20 74  ings should be t
33d0: 72 65 61 74 65 64 20 61 73 20 65 72 72 6f 72 73  reated as errors
33e0: 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67 2e   when compiling.
33f0: 0a 23 0a 21 49 46 20 24 28 55 53 45 5f 46 41 54  .#.!IF $(USE_FAT
3400: 41 4c 5f 57 41 52 4e 29 21 3d 30 0a 54 43 43 20  AL_WARN)!=0.TCC 
3410: 3d 20 24 28 54 43 43 29 20 2d 57 58 0a 21 45 4e  = $(TCC) -WX.!EN
3420: 44 49 46 0a 0a 54 43 43 20 3d 20 24 28 54 43 43  DIF..TCC = $(TCC
3430: 29 20 2d 44 53 51 4c 49 54 45 5f 4f 53 5f 57 49  ) -DSQLITE_OS_WI
3440: 4e 3d 31 20 2d 49 2e 20 2d 49 24 28 54 4f 50 29  N=1 -I. -I$(TOP)
3450: 20 2d 49 24 28 54 4f 50 29 5c 73 72 63 20 2d 66   -I$(TOP)\src -f
3460: 70 3a 70 72 65 63 69 73 65 0a 52 43 43 20 3d 20  p:precise.RCC = 
3470: 24 28 52 43 29 20 2d 44 53 51 4c 49 54 45 5f 4f  $(RC) -DSQLITE_O
3480: 53 5f 57 49 4e 3d 31 20 2d 49 2e 20 2d 49 24 28  S_WIN=1 -I. -I$(
3490: 54 4f 50 29 20 2d 49 24 28 54 4f 50 29 5c 73 72  TOP) -I$(TOP)\sr
34a0: 63 20 24 28 52 43 4f 50 54 53 29 20 24 28 52 43  c $(RCOPTS) $(RC
34b0: 43 4f 50 54 53 29 0a 0a 23 20 43 68 65 63 6b 20  COPTS)..# Check 
34c0: 69 66 20 77 65 20 77 61 6e 74 20 74 6f 20 75 73  if we want to us
34d0: 65 20 74 68 65 20 22 73 74 64 63 61 6c 6c 22 20  e the "stdcall" 
34e0: 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69  calling conventi
34f0: 6f 6e 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e  on when compilin
3500: 67 2e 0a 23 20 54 68 69 73 20 69 73 20 6e 6f 74  g..# This is not
3510: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68   supported by th
3520: 65 20 63 6f 6d 70 69 6c 65 72 73 20 66 6f 72 20  e compilers for 
3530: 6e 6f 6e 2d 78 38 36 20 70 6c 61 74 66 6f 72 6d  non-x86 platform
3540: 73 2e 20 20 49 74 20 73 68 6f 75 6c 64 0a 23 20  s.  It should.# 
3550: 61 6c 73 6f 20 62 65 20 6e 6f 74 65 64 20 68 65  also be noted he
3560: 72 65 20 74 68 61 74 20 62 75 69 6c 64 69 6e 67  re that building
3570: 20 61 6e 79 20 74 61 72 67 65 74 20 77 69 74 68   any target with
3580: 20 74 68 65 73 65 20 22 73 74 64 63 61 6c 6c 22   these "stdcall"
3590: 20 6f 70 74 69 6f 6e 73 0a 23 20 77 69 6c 6c 20   options.# will 
35a0: 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 66 61 69 6c  most likely fail
35b0: 20 69 66 20 74 68 65 20 54 63 6c 20 6c 69 62 72   if the Tcl libr
35c0: 61 72 79 20 69 73 20 61 6c 73 6f 20 72 65 71 75  ary is also requ
35d0: 69 72 65 64 2e 20 20 54 68 69 73 20 69 73 20 64  ired.  This is d
35e0: 75 65 0a 23 20 74 6f 20 68 6f 77 20 74 68 65 20  ue.# to how the 
35f0: 54 63 6c 20 6c 69 62 72 61 72 79 20 66 75 6e 63  Tcl library func
3600: 74 69 6f 6e 73 20 61 72 65 20 64 65 63 6c 61 72  tions are declar
3610: 65 64 20 61 6e 64 20 65 78 70 6f 72 74 65 64 20  ed and exported 
3620: 28 69 2e 65 2e 20 77 69 74 68 6f 75 74 0a 23 20  (i.e. without.# 
3630: 61 6e 20 65 78 70 6c 69 63 69 74 20 63 61 6c 6c  an explicit call
3640: 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 2c 20  ing convention, 
3650: 77 68 69 63 68 20 72 65 73 75 6c 74 73 20 69 6e  which results in
3660: 20 22 63 64 65 63 6c 22 29 2e 0a 23 0a 21 49 46   "cdecl")..#.!IF
3670: 20 24 28 55 53 45 5f 53 54 44 43 41 4c 4c 29 21   $(USE_STDCALL)!
3680: 3d 30 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31  =0 || $(FOR_WIN1
3690: 30 29 21 3d 30 0a 21 49 46 20 22 24 28 50 4c 41  0)!=0.!IF "$(PLA
36a0: 54 46 4f 52 4d 29 22 3d 3d 22 78 38 36 22 0a 43  TFORM)"=="x86".C
36b0: 4f 52 45 5f 43 43 4f 4e 56 5f 4f 50 54 53 20 3d  ORE_CCONV_OPTS =
36c0: 20 2d 47 7a 20 2d 44 53 51 4c 49 54 45 5f 43 44   -Gz -DSQLITE_CD
36d0: 45 43 4c 3d 5f 5f 63 64 65 63 6c 20 2d 44 53 51  ECL=__cdecl -DSQ
36e0: 4c 49 54 45 5f 41 50 49 43 41 4c 4c 3d 5f 5f 73  LITE_APICALL=__s
36f0: 74 64 63 61 6c 6c 20 2d 44 53 51 4c 49 54 45 5f  tdcall -DSQLITE_
3700: 43 41 4c 4c 42 41 43 4b 3d 5f 5f 73 74 64 63 61  CALLBACK=__stdca
3710: 6c 6c 20 2d 44 53 51 4c 49 54 45 5f 53 59 53 41  ll -DSQLITE_SYSA
3720: 50 49 3d 5f 5f 73 74 64 63 61 6c 6c 0a 53 48 45  PI=__stdcall.SHE
3730: 4c 4c 5f 43 43 4f 4e 56 5f 4f 50 54 53 20 3d 20  LL_CCONV_OPTS = 
3740: 2d 47 7a 20 2d 44 53 51 4c 49 54 45 5f 43 44 45  -Gz -DSQLITE_CDE
3750: 43 4c 3d 5f 5f 63 64 65 63 6c 20 2d 44 53 51 4c  CL=__cdecl -DSQL
3760: 49 54 45 5f 41 50 49 43 41 4c 4c 3d 5f 5f 73 74  ITE_APICALL=__st
3770: 64 63 61 6c 6c 20 2d 44 53 51 4c 49 54 45 5f 43  dcall -DSQLITE_C
3780: 41 4c 4c 42 41 43 4b 3d 5f 5f 73 74 64 63 61 6c  ALLBACK=__stdcal
3790: 6c 20 2d 44 53 51 4c 49 54 45 5f 53 59 53 41 50  l -DSQLITE_SYSAP
37a0: 49 3d 5f 5f 73 74 64 63 61 6c 6c 0a 23 20 3c 3c  I=__stdcall.# <<
37b0: 6d 61 72 6b 3e 3e 0a 54 45 53 54 5f 43 43 4f 4e  mark>>.TEST_CCON
37c0: 56 5f 4f 50 54 53 20 3d 20 2d 47 7a 20 2d 44 53  V_OPTS = -Gz -DS
37d0: 51 4c 49 54 45 5f 43 44 45 43 4c 3d 5f 5f 63 64  QLITE_CDECL=__cd
37e0: 65 63 6c 20 2d 44 53 51 4c 49 54 45 5f 41 50 49  ecl -DSQLITE_API
37f0: 43 41 4c 4c 3d 5f 5f 73 74 64 63 61 6c 6c 20 2d  CALL=__stdcall -
3800: 44 53 51 4c 49 54 45 5f 43 41 4c 4c 42 41 43 4b  DSQLITE_CALLBACK
3810: 3d 5f 5f 73 74 64 63 61 6c 6c 20 2d 44 53 51 4c  =__stdcall -DSQL
3820: 49 54 45 5f 53 59 53 41 50 49 3d 5f 5f 73 74 64  ITE_SYSAPI=__std
3830: 63 61 6c 6c 20 2d 44 49 4e 43 4c 55 44 45 5f 53  call -DINCLUDE_S
3840: 51 4c 49 54 45 5f 54 43 4c 5f 48 3d 31 20 2d 44  QLITE_TCL_H=1 -D
3850: 53 51 4c 49 54 45 5f 54 43 4c 41 50 49 3d 5f 5f  SQLITE_TCLAPI=__
3860: 63 64 65 63 6c 0a 23 20 3c 3c 2f 6d 61 72 6b 3e  cdecl.# <</mark>
3870: 3e 0a 21 45 4c 53 45 0a 21 49 46 4e 44 45 46 20  >.!ELSE.!IFNDEF 
3880: 50 4c 41 54 46 4f 52 4d 0a 43 4f 52 45 5f 43 43  PLATFORM.CORE_CC
3890: 4f 4e 56 5f 4f 50 54 53 20 3d 20 2d 47 7a 20 2d  ONV_OPTS = -Gz -
38a0: 44 53 51 4c 49 54 45 5f 43 44 45 43 4c 3d 5f 5f  DSQLITE_CDECL=__
38b0: 63 64 65 63 6c 20 2d 44 53 51 4c 49 54 45 5f 41  cdecl -DSQLITE_A
38c0: 50 49 43 41 4c 4c 3d 5f 5f 73 74 64 63 61 6c 6c  PICALL=__stdcall
38d0: 20 2d 44 53 51 4c 49 54 45 5f 43 41 4c 4c 42 41   -DSQLITE_CALLBA
38e0: 43 4b 3d 5f 5f 73 74 64 63 61 6c 6c 20 2d 44 53  CK=__stdcall -DS
38f0: 51 4c 49 54 45 5f 53 59 53 41 50 49 3d 5f 5f 73  QLITE_SYSAPI=__s
3900: 74 64 63 61 6c 6c 0a 53 48 45 4c 4c 5f 43 43 4f  tdcall.SHELL_CCO
3910: 4e 56 5f 4f 50 54 53 20 3d 20 2d 47 7a 20 2d 44  NV_OPTS = -Gz -D
3920: 53 51 4c 49 54 45 5f 43 44 45 43 4c 3d 5f 5f 63  SQLITE_CDECL=__c
3930: 64 65 63 6c 20 2d 44 53 51 4c 49 54 45 5f 41 50  decl -DSQLITE_AP
3940: 49 43 41 4c 4c 3d 5f 5f 73 74 64 63 61 6c 6c 20  ICALL=__stdcall 
3950: 2d 44 53 51 4c 49 54 45 5f 43 41 4c 4c 42 41 43  -DSQLITE_CALLBAC
3960: 4b 3d 5f 5f 73 74 64 63 61 6c 6c 20 2d 44 53 51  K=__stdcall -DSQ
3970: 4c 49 54 45 5f 53 59 53 41 50 49 3d 5f 5f 73 74  LITE_SYSAPI=__st
3980: 64 63 61 6c 6c 0a 23 20 3c 3c 6d 61 72 6b 3e 3e  dcall.# <<mark>>
3990: 0a 54 45 53 54 5f 43 43 4f 4e 56 5f 4f 50 54 53  .TEST_CCONV_OPTS
39a0: 20 3d 20 2d 47 7a 20 2d 44 53 51 4c 49 54 45 5f   = -Gz -DSQLITE_
39b0: 43 44 45 43 4c 3d 5f 5f 63 64 65 63 6c 20 2d 44  CDECL=__cdecl -D
39c0: 53 51 4c 49 54 45 5f 41 50 49 43 41 4c 4c 3d 5f  SQLITE_APICALL=_
39d0: 5f 73 74 64 63 61 6c 6c 20 2d 44 53 51 4c 49 54  _stdcall -DSQLIT
39e0: 45 5f 43 41 4c 4c 42 41 43 4b 3d 5f 5f 73 74 64  E_CALLBACK=__std
39f0: 63 61 6c 6c 20 2d 44 53 51 4c 49 54 45 5f 53 59  call -DSQLITE_SY
3a00: 53 41 50 49 3d 5f 5f 73 74 64 63 61 6c 6c 20 2d  SAPI=__stdcall -
3a10: 44 49 4e 43 4c 55 44 45 5f 53 51 4c 49 54 45 5f  DINCLUDE_SQLITE_
3a20: 54 43 4c 5f 48 3d 31 20 2d 44 53 51 4c 49 54 45  TCL_H=1 -DSQLITE
3a30: 5f 54 43 4c 41 50 49 3d 5f 5f 63 64 65 63 6c 0a  _TCLAPI=__cdecl.
3a40: 23 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 21 45 4c 53  # <</mark>>.!ELS
3a50: 45 0a 43 4f 52 45 5f 43 43 4f 4e 56 5f 4f 50 54  E.CORE_CCONV_OPT
3a60: 53 20 3d 0a 53 48 45 4c 4c 5f 43 43 4f 4e 56 5f  S =.SHELL_CCONV_
3a70: 4f 50 54 53 20 3d 0a 23 20 3c 3c 6d 61 72 6b 3e  OPTS =.# <<mark>
3a80: 3e 0a 54 45 53 54 5f 43 43 4f 4e 56 5f 4f 50 54  >.TEST_CCONV_OPT
3a90: 53 20 3d 0a 23 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a  S =.# <</mark>>.
3aa0: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 21 45  !ENDIF.!ENDIF.!E
3ab0: 4c 53 45 0a 43 4f 52 45 5f 43 43 4f 4e 56 5f 4f  LSE.CORE_CCONV_O
3ac0: 50 54 53 20 3d 0a 53 48 45 4c 4c 5f 43 43 4f 4e  PTS =.SHELL_CCON
3ad0: 56 5f 4f 50 54 53 20 3d 0a 23 20 3c 3c 6d 61 72  V_OPTS =.# <<mar
3ae0: 6b 3e 3e 0a 54 45 53 54 5f 43 43 4f 4e 56 5f 4f  k>>.TEST_CCONV_O
3af0: 50 54 53 20 3d 0a 23 20 3c 3c 2f 6d 61 72 6b 3e  PTS =.# <</mark>
3b00: 3e 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68 65 73  >.!ENDIF..# Thes
3b10: 65 20 61 72 65 20 61 64 64 69 74 69 6f 6e 61 6c  e are additional
3b20: 20 63 6f 6d 70 69 6c 65 72 20 6f 70 74 69 6f 6e   compiler option
3b30: 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 63  s used for the c
3b40: 6f 72 65 20 6c 69 62 72 61 72 79 2e 0a 23 0a 21  ore library..#.!
3b50: 49 46 4e 44 45 46 20 43 4f 52 45 5f 43 4f 4d 50  IFNDEF CORE_COMP
3b60: 49 4c 45 5f 4f 50 54 53 0a 21 49 46 20 24 28 44  ILE_OPTS.!IF $(D
3b70: 59 4e 41 4d 49 43 5f 53 48 45 4c 4c 29 21 3d 30  YNAMIC_SHELL)!=0
3b80: 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31 30 29   || $(FOR_WIN10)
3b90: 21 3d 30 0a 43 4f 52 45 5f 43 4f 4d 50 49 4c 45  !=0.CORE_COMPILE
3ba0: 5f 4f 50 54 53 20 3d 20 24 28 43 4f 52 45 5f 43  _OPTS = $(CORE_C
3bb0: 43 4f 4e 56 5f 4f 50 54 53 29 20 2d 44 53 51 4c  CONV_OPTS) -DSQL
3bc0: 49 54 45 5f 41 50 49 3d 5f 5f 64 65 63 6c 73 70  ITE_API=__declsp
3bd0: 65 63 28 64 6c 6c 65 78 70 6f 72 74 29 0a 21 45  ec(dllexport).!E
3be0: 4c 53 45 0a 43 4f 52 45 5f 43 4f 4d 50 49 4c 45  LSE.CORE_COMPILE
3bf0: 5f 4f 50 54 53 20 3d 20 24 28 43 4f 52 45 5f 43  _OPTS = $(CORE_C
3c00: 43 4f 4e 56 5f 4f 50 54 53 29 0a 21 45 4e 44 49  CONV_OPTS).!ENDI
3c10: 46 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68 65 73  F.!ENDIF..# Thes
3c20: 65 20 61 72 65 20 74 68 65 20 61 64 64 69 74 69  e are the additi
3c30: 6f 6e 61 6c 20 74 61 72 67 65 74 73 20 74 68 61  onal targets tha
3c40: 74 20 74 68 65 20 63 6f 72 65 20 6c 69 62 72 61  t the core libra
3c50: 72 79 20 73 68 6f 75 6c 64 20 64 65 70 65 6e 64  ry should depend
3c60: 20 6f 6e 0a 23 20 77 68 65 6e 20 6c 69 6e 6b 69   on.# when linki
3c70: 6e 67 2e 0a 23 0a 21 49 46 4e 44 45 46 20 43 4f  ng..#.!IFNDEF CO
3c80: 52 45 5f 4c 49 4e 4b 5f 44 45 50 0a 21 49 46 20  RE_LINK_DEP.!IF 
3c90: 24 28 44 59 4e 41 4d 49 43 5f 53 48 45 4c 4c 29  $(DYNAMIC_SHELL)
3ca0: 21 3d 30 0a 43 4f 52 45 5f 4c 49 4e 4b 5f 44 45  !=0.CORE_LINK_DE
3cb0: 50 20 3d 0a 21 45 4c 53 45 49 46 20 24 28 46 4f  P =.!ELSEIF $(FO
3cc0: 52 5f 57 49 4e 31 30 29 3d 3d 30 20 7c 7c 20 22  R_WIN10)==0 || "
3cd0: 24 28 50 4c 41 54 46 4f 52 4d 29 22 3d 3d 22 78  $(PLATFORM)"=="x
3ce0: 38 36 22 0a 43 4f 52 45 5f 4c 49 4e 4b 5f 44 45  86".CORE_LINK_DE
3cf0: 50 20 3d 20 73 71 6c 69 74 65 33 2e 64 65 66 0a  P = sqlite3.def.
3d00: 21 45 4c 53 45 0a 43 4f 52 45 5f 4c 49 4e 4b 5f  !ELSE.CORE_LINK_
3d10: 44 45 50 20 3d 0a 21 45 4e 44 49 46 0a 21 45 4e  DEP =.!ENDIF.!EN
3d20: 44 49 46 0a 0a 23 20 54 68 65 73 65 20 61 72 65  DIF..# These are
3d30: 20 61 64 64 69 74 69 6f 6e 61 6c 20 6c 69 6e 6b   additional link
3d40: 65 72 20 6f 70 74 69 6f 6e 73 20 75 73 65 64 20  er options used 
3d50: 66 6f 72 20 74 68 65 20 63 6f 72 65 20 6c 69 62  for the core lib
3d60: 72 61 72 79 2e 0a 23 0a 21 49 46 4e 44 45 46 20  rary..#.!IFNDEF 
3d70: 43 4f 52 45 5f 4c 49 4e 4b 5f 4f 50 54 53 0a 21  CORE_LINK_OPTS.!
3d80: 49 46 20 24 28 44 59 4e 41 4d 49 43 5f 53 48 45  IF $(DYNAMIC_SHE
3d90: 4c 4c 29 21 3d 30 0a 43 4f 52 45 5f 4c 49 4e 4b  LL)!=0.CORE_LINK
3da0: 5f 4f 50 54 53 20 3d 0a 21 45 4c 53 45 49 46 20  _OPTS =.!ELSEIF 
3db0: 24 28 46 4f 52 5f 57 49 4e 31 30 29 3d 3d 30 20  $(FOR_WIN10)==0 
3dc0: 7c 7c 20 22 24 28 50 4c 41 54 46 4f 52 4d 29 22  || "$(PLATFORM)"
3dd0: 3d 3d 22 78 38 36 22 0a 43 4f 52 45 5f 4c 49 4e  =="x86".CORE_LIN
3de0: 4b 5f 4f 50 54 53 20 3d 20 2f 44 45 46 3a 73 71  K_OPTS = /DEF:sq
3df0: 6c 69 74 65 33 2e 64 65 66 0a 21 45 4c 53 45 0a  lite3.def.!ELSE.
3e00: 43 4f 52 45 5f 4c 49 4e 4b 5f 4f 50 54 53 20 3d  CORE_LINK_OPTS =
3e10: 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a  .!ENDIF.!ENDIF..
3e20: 23 20 54 68 65 73 65 20 61 72 65 20 61 64 64 69  # These are addi
3e30: 74 69 6f 6e 61 6c 20 63 6f 6d 70 69 6c 65 72 20  tional compiler 
3e40: 6f 70 74 69 6f 6e 73 20 75 73 65 64 20 66 6f 72  options used for
3e50: 20 74 68 65 20 73 68 65 6c 6c 20 65 78 65 63 75   the shell execu
3e60: 74 61 62 6c 65 2e 0a 23 0a 21 49 46 4e 44 45 46  table..#.!IFNDEF
3e70: 20 53 48 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f   SHELL_COMPILE_O
3e80: 50 54 53 0a 21 49 46 20 24 28 44 59 4e 41 4d 49  PTS.!IF $(DYNAMI
3e90: 43 5f 53 48 45 4c 4c 29 21 3d 30 20 7c 7c 20 24  C_SHELL)!=0 || $
3ea0: 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 53  (FOR_WIN10)!=0.S
3eb0: 48 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  HELL_COMPILE_OPT
3ec0: 53 20 3d 20 24 28 53 48 45 4c 4c 5f 43 43 4f 4e  S = $(SHELL_CCON
3ed0: 56 5f 4f 50 54 53 29 20 2d 44 53 51 4c 49 54 45  V_OPTS) -DSQLITE
3ee0: 5f 41 50 49 3d 5f 5f 64 65 63 6c 73 70 65 63 28  _API=__declspec(
3ef0: 64 6c 6c 69 6d 70 6f 72 74 29 0a 21 45 4c 53 45  dllimport).!ELSE
3f00: 0a 53 48 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f  .SHELL_COMPILE_O
3f10: 50 54 53 20 3d 20 24 28 53 48 45 4c 4c 5f 43 43  PTS = $(SHELL_CC
3f20: 4f 4e 56 5f 4f 50 54 53 29 0a 21 45 4e 44 49 46  ONV_OPTS).!ENDIF
3f30: 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68 69 73 20  .!ENDIF..# This 
3f40: 69 73 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f  is the source co
3f50: 64 65 20 74 68 61 74 20 74 68 65 20 73 68 65 6c  de that the shel
3f60: 6c 20 65 78 65 63 75 74 61 62 6c 65 20 73 68 6f  l executable sho
3f70: 75 6c 64 20 62 65 20 63 6f 6d 70 69 6c 65 64 0a  uld be compiled.
3f80: 23 20 77 69 74 68 2e 0a 23 0a 21 49 46 4e 44 45  # with..#.!IFNDE
3f90: 46 20 53 48 45 4c 4c 5f 43 4f 52 45 5f 53 52 43  F SHELL_CORE_SRC
3fa0: 0a 21 49 46 20 24 28 44 59 4e 41 4d 49 43 5f 53  .!IF $(DYNAMIC_S
3fb0: 48 45 4c 4c 29 21 3d 30 20 7c 7c 20 24 28 46 4f  HELL)!=0 || $(FO
3fc0: 52 5f 57 49 4e 31 30 29 21 3d 30 0a 53 48 45 4c  R_WIN10)!=0.SHEL
3fd0: 4c 5f 43 4f 52 45 5f 53 52 43 20 3d 0a 21 45 4c  L_CORE_SRC =.!EL
3fe0: 53 45 0a 53 48 45 4c 4c 5f 43 4f 52 45 5f 53 52  SE.SHELL_CORE_SR
3ff0: 43 20 3d 20 24 28 53 51 4c 49 54 45 33 43 29 0a  C = $(SQLITE3C).
4000: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23  !ENDIF.!ENDIF..#
4010: 20 54 68 69 73 20 69 73 20 74 68 65 20 63 6f 72   This is the cor
4020: 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20 74  e library that t
4030: 68 65 20 73 68 65 6c 6c 20 65 78 65 63 75 74 61  he shell executa
4040: 62 6c 65 20 73 68 6f 75 6c 64 20 64 65 70 65 6e  ble should depen
4050: 64 20 6f 6e 2e 0a 23 0a 21 49 46 4e 44 45 46 20  d on..#.!IFNDEF 
4060: 53 48 45 4c 4c 5f 43 4f 52 45 5f 44 45 50 0a 21  SHELL_CORE_DEP.!
4070: 49 46 20 24 28 44 59 4e 41 4d 49 43 5f 53 48 45  IF $(DYNAMIC_SHE
4080: 4c 4c 29 21 3d 30 20 7c 7c 20 24 28 46 4f 52 5f  LL)!=0 || $(FOR_
4090: 57 49 4e 31 30 29 21 3d 30 0a 53 48 45 4c 4c 5f  WIN10)!=0.SHELL_
40a0: 43 4f 52 45 5f 44 45 50 20 3d 20 24 28 53 51 4c  CORE_DEP = $(SQL
40b0: 49 54 45 33 44 4c 4c 29 0a 21 45 4c 53 45 0a 53  ITE3DLL).!ELSE.S
40c0: 48 45 4c 4c 5f 43 4f 52 45 5f 44 45 50 20 3d 0a  HELL_CORE_DEP =.
40d0: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23  !ENDIF.!ENDIF..#
40e0: 20 54 68 69 73 20 69 73 20 74 68 65 20 63 6f 72   This is the cor
40f0: 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20 74  e library that t
4100: 68 65 20 73 68 65 6c 6c 20 65 78 65 63 75 74 61  he shell executa
4110: 62 6c 65 20 73 68 6f 75 6c 64 20 6c 69 6e 6b 20  ble should link 
4120: 77 69 74 68 2e 0a 23 0a 21 49 46 4e 44 45 46 20  with..#.!IFNDEF 
4130: 53 48 45 4c 4c 5f 43 4f 52 45 5f 4c 49 42 0a 21  SHELL_CORE_LIB.!
4140: 49 46 20 24 28 44 59 4e 41 4d 49 43 5f 53 48 45  IF $(DYNAMIC_SHE
4150: 4c 4c 29 21 3d 30 20 7c 7c 20 24 28 46 4f 52 5f  LL)!=0 || $(FOR_
4160: 57 49 4e 31 30 29 21 3d 30 0a 53 48 45 4c 4c 5f  WIN10)!=0.SHELL_
4170: 43 4f 52 45 5f 4c 49 42 20 3d 20 24 28 53 51 4c  CORE_LIB = $(SQL
4180: 49 54 45 33 4c 49 42 29 0a 21 45 4c 53 45 0a 53  ITE3LIB).!ELSE.S
4190: 48 45 4c 4c 5f 43 4f 52 45 5f 4c 49 42 20 3d 0a  HELL_CORE_LIB =.
41a0: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23  !ENDIF.!ENDIF..#
41b0: 20 54 68 65 73 65 20 61 72 65 20 61 64 64 69 74   These are addit
41c0: 69 6f 6e 61 6c 20 6c 69 6e 6b 65 72 20 6f 70 74  ional linker opt
41d0: 69 6f 6e 73 20 75 73 65 64 20 66 6f 72 20 74 68  ions used for th
41e0: 65 20 73 68 65 6c 6c 20 65 78 65 63 75 74 61 62  e shell executab
41f0: 6c 65 2e 0a 23 0a 21 49 46 4e 44 45 46 20 53 48  le..#.!IFNDEF SH
4200: 45 4c 4c 5f 4c 49 4e 4b 5f 4f 50 54 53 0a 53 48  ELL_LINK_OPTS.SH
4210: 45 4c 4c 5f 4c 49 4e 4b 5f 4f 50 54 53 20 3d 20  ELL_LINK_OPTS = 
4220: 24 28 53 48 45 4c 4c 5f 43 4f 52 45 5f 4c 49 42  $(SHELL_CORE_LIB
4230: 29 0a 21 45 4e 44 49 46 0a 0a 23 20 43 68 65 63  ).!ENDIF..# Chec
4240: 6b 20 69 66 20 61 73 73 65 6d 62 6c 79 20 63 6f  k if assembly co
4250: 64 65 20 6c 69 73 74 69 6e 67 73 20 73 68 6f 75  de listings shou
4260: 6c 64 20 62 65 20 67 65 6e 65 72 61 74 65 64 20  ld be generated 
4270: 66 6f 72 20 74 68 65 20 73 6f 75 72 63 65 0a 23  for the source.#
4280: 20 63 6f 64 65 20 66 69 6c 65 73 20 74 6f 20 62   code files to b
4290: 65 20 63 6f 6d 70 69 6c 65 64 2e 0a 23 0a 21 49  e compiled..#.!I
42a0: 46 20 24 28 55 53 45 5f 4c 49 53 54 49 4e 47 53  F $(USE_LISTINGS
42b0: 29 21 3d 30 0a 54 43 43 20 3d 20 24 28 54 43 43  )!=0.TCC = $(TCC
42c0: 29 20 2d 46 41 63 73 0a 21 45 4e 44 49 46 0a 0a  ) -FAcs.!ENDIF..
42d0: 23 20 57 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67  # When compiling
42e0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 66 6f 72   the library for
42f0: 20 75 73 65 20 69 6e 20 74 68 65 20 57 69 6e 52   use in the WinR
4300: 54 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 0a 23  T environment,.#
4310: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63   the following c
4320: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69  ompile-time opti
4330: 6f 6e 73 20 6d 75 73 74 20 62 65 20 75 73 65 64  ons must be used
4340: 20 61 73 20 77 65 6c 6c 20 74 6f 0a 23 20 64 69   as well to.# di
4350: 73 61 62 6c 65 20 75 73 65 20 6f 66 20 57 69 6e  sable use of Win
4360: 33 32 20 41 50 49 73 20 74 68 61 74 20 61 72 65  32 APIs that are
4370: 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 61   not available a
4380: 6e 64 20 74 6f 20 65 6e 61 62 6c 65 0a 23 20 75  nd to enable.# u
4390: 73 65 20 6f 66 20 57 69 6e 33 32 20 41 50 49 73  se of Win32 APIs
43a0: 20 74 68 61 74 20 61 72 65 20 73 70 65 63 69 66   that are specif
43b0: 69 63 20 74 6f 20 57 69 6e 64 6f 77 73 20 38 20  ic to Windows 8 
43c0: 61 6e 64 2f 6f 72 20 57 69 6e 52 54 2e 0a 23 0a  and/or WinRT..#.
43d0: 21 49 46 20 24 28 46 4f 52 5f 57 49 4e 52 54 29  !IF $(FOR_WINRT)
43e0: 21 3d 30 0a 54 43 43 20 3d 20 24 28 54 43 43 29  !=0.TCC = $(TCC)
43f0: 20 2d 44 53 51 4c 49 54 45 5f 4f 53 5f 57 49 4e   -DSQLITE_OS_WIN
4400: 52 54 3d 31 0a 52 43 43 20 3d 20 24 28 52 43 43  RT=1.RCC = $(RCC
4410: 29 20 2d 44 53 51 4c 49 54 45 5f 4f 53 5f 57 49  ) -DSQLITE_OS_WI
4420: 4e 52 54 3d 31 0a 54 43 43 20 3d 20 24 28 54 43  NRT=1.TCC = $(TC
4430: 43 29 20 2d 44 57 49 4e 41 50 49 5f 46 41 4d 49  C) -DWINAPI_FAMI
4440: 4c 59 3d 57 49 4e 41 50 49 5f 46 41 4d 49 4c 59  LY=WINAPI_FAMILY
4450: 5f 41 50 50 0a 52 43 43 20 3d 20 24 28 52 43 43  _APP.RCC = $(RCC
4460: 29 20 2d 44 57 49 4e 41 50 49 5f 46 41 4d 49 4c  ) -DWINAPI_FAMIL
4470: 59 3d 57 49 4e 41 50 49 5f 46 41 4d 49 4c 59 5f  Y=WINAPI_FAMILY_
4480: 41 50 50 0a 21 45 4e 44 49 46 0a 0a 23 20 43 20  APP.!ENDIF..# C 
4490: 63 6f 6d 70 69 6c 65 72 20 6f 70 74 69 6f 6e 73  compiler options
44a0: 20 66 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73   for the Windows
44b0: 20 31 30 20 70 6c 61 74 66 6f 72 6d 20 28 6e 65   10 platform (ne
44c0: 65 64 73 20 4d 53 56 43 20 32 30 31 35 29 2e 0a  eds MSVC 2015)..
44d0: 23 0a 21 49 46 20 24 28 46 4f 52 5f 57 49 4e 31  #.!IF $(FOR_WIN1
44e0: 30 29 21 3d 30 0a 54 43 43 20 3d 20 24 28 54 43  0)!=0.TCC = $(TC
44f0: 43 29 20 2f 64 32 67 75 61 72 64 34 20 2d 44 5f  C) /d2guard4 -D_
4500: 41 52 4d 5f 57 49 4e 41 50 49 5f 50 41 52 54 49  ARM_WINAPI_PARTI
4510: 54 49 4f 4e 5f 44 45 53 4b 54 4f 50 5f 53 44 4b  TION_DESKTOP_SDK
4520: 5f 41 56 41 49 4c 41 42 4c 45 0a 42 43 43 20 3d  _AVAILABLE.BCC =
4530: 20 24 28 42 43 43 29 20 2f 64 32 67 75 61 72 64   $(BCC) /d2guard
4540: 34 20 2d 44 5f 41 52 4d 5f 57 49 4e 41 50 49 5f  4 -D_ARM_WINAPI_
4550: 50 41 52 54 49 54 49 4f 4e 5f 44 45 53 4b 54 4f  PARTITION_DESKTO
4560: 50 5f 53 44 4b 5f 41 56 41 49 4c 41 42 4c 45 0a  P_SDK_AVAILABLE.
4570: 21 45 4e 44 49 46 0a 0a 23 20 41 6c 73 6f 2c 20  !ENDIF..# Also, 
4580: 77 65 20 6e 65 65 64 20 74 6f 20 64 79 6e 61 6d  we need to dynam
4590: 69 63 61 6c 6c 79 20 6c 69 6e 6b 20 74 6f 20 74  ically link to t
45a0: 68 65 20 63 6f 72 72 65 63 74 20 4d 53 56 43 20  he correct MSVC 
45b0: 72 75 6e 74 69 6d 65 0a 23 20 77 68 65 6e 20 63  runtime.# when c
45c0: 6f 6d 70 69 6c 69 6e 67 20 66 6f 72 20 57 69 6e  ompiling for Win
45d0: 52 54 20 28 65 2e 67 2e 20 64 65 62 75 67 20 6f  RT (e.g. debug o
45e0: 72 20 72 65 6c 65 61 73 65 29 20 4f 52 20 69 66  r release) OR if
45f0: 20 74 68 65 0a 23 20 55 53 45 5f 43 52 54 5f 44   the.# USE_CRT_D
4600: 4c 4c 20 6f 70 74 69 6f 6e 20 69 73 20 73 65 74  LL option is set
4610: 20 74 6f 20 66 6f 72 63 65 20 64 79 6e 61 6d 69   to force dynami
4620: 63 61 6c 6c 79 20 6c 69 6e 6b 69 6e 67 20 74 6f  cally linking to
4630: 20 74 68 65 0a 23 20 4d 53 56 43 20 72 75 6e 74   the.# MSVC runt
4640: 69 6d 65 20 6c 69 62 72 61 72 79 2e 0a 23 0a 21  ime library..#.!
4650: 49 46 20 24 28 46 4f 52 5f 57 49 4e 52 54 29 21  IF $(FOR_WINRT)!
4660: 3d 30 20 7c 7c 20 24 28 55 53 45 5f 43 52 54 5f  =0 || $(USE_CRT_
4670: 44 4c 4c 29 21 3d 30 0a 21 49 46 20 24 28 44 45  DLL)!=0.!IF $(DE
4680: 42 55 47 29 3e 31 0a 54 43 43 20 3d 20 24 28 54  BUG)>1.TCC = $(T
4690: 43 43 29 20 2d 4d 44 64 0a 42 43 43 20 3d 20 24  CC) -MDd.BCC = $
46a0: 28 42 43 43 29 20 2d 4d 44 64 0a 21 45 4c 53 45  (BCC) -MDd.!ELSE
46b0: 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20 2d 4d  .TCC = $(TCC) -M
46c0: 44 0a 42 43 43 20 3d 20 24 28 42 43 43 29 20 2d  D.BCC = $(BCC) -
46d0: 4d 44 0a 21 45 4e 44 49 46 0a 21 45 4c 53 45 0a  MD.!ENDIF.!ELSE.
46e0: 21 49 46 20 24 28 44 45 42 55 47 29 3e 31 0a 54  !IF $(DEBUG)>1.T
46f0: 43 43 20 3d 20 24 28 54 43 43 29 20 2d 4d 54 64  CC = $(TCC) -MTd
4700: 0a 42 43 43 20 3d 20 24 28 42 43 43 29 20 2d 4d  .BCC = $(BCC) -M
4710: 54 64 0a 21 45 4c 53 45 0a 54 43 43 20 3d 20 24  Td.!ELSE.TCC = $
4720: 28 54 43 43 29 20 2d 4d 54 0a 42 43 43 20 3d 20  (TCC) -MT.BCC = 
4730: 24 28 42 43 43 29 20 2d 4d 54 0a 21 45 4e 44 49  $(BCC) -MT.!ENDI
4740: 46 0a 21 45 4e 44 49 46 0a 0a 23 20 3c 3c 6d 61  F.!ENDIF..# <<ma
4750: 72 6b 3e 3e 0a 23 20 54 68 65 20 6d 6b 73 71 6c  rk>>.# The mksql
4760: 69 74 65 33 63 2e 74 63 6c 20 61 6e 64 20 6d 6b  ite3c.tcl and mk
4770: 73 71 6c 69 74 65 33 68 2e 74 63 6c 20 73 63 72  sqlite3h.tcl scr
4780: 69 70 74 73 20 77 69 6c 6c 20 70 75 6c 6c 20 69  ipts will pull i
4790: 6e 0a 23 20 61 6e 79 20 65 78 74 65 6e 73 69 6f  n.# any extensio
47a0: 6e 20 68 65 61 64 65 72 20 66 69 6c 65 73 20 62  n header files b
47b0: 79 20 64 65 66 61 75 6c 74 2e 20 20 46 6f 72 20  y default.  For 
47c0: 6e 6f 6e 2d 61 6d 61 6c 67 61 6d 61 74 69 6f 6e  non-amalgamation
47d0: 0a 23 20 62 75 69 6c 64 73 2c 20 77 65 20 6e 65  .# builds, we ne
47e0: 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20  ed to make sure 
47f0: 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 6e  the compiler can
4800: 20 66 69 6e 64 20 74 68 65 73 65 2e 0a 23 0a 21   find these..#.!
4810: 49 46 20 24 28 55 53 45 5f 41 4d 41 4c 47 41 4d  IF $(USE_AMALGAM
4820: 41 54 49 4f 4e 29 3d 3d 30 0a 54 43 43 20 3d 20  ATION)==0.TCC = 
4830: 24 28 54 43 43 29 20 2d 49 24 28 54 4f 50 29 5c  $(TCC) -I$(TOP)\
4840: 65 78 74 5c 66 74 73 33 0a 52 43 43 20 3d 20 24  ext\fts3.RCC = $
4850: 28 52 43 43 29 20 2d 49 24 28 54 4f 50 29 5c 65  (RCC) -I$(TOP)\e
4860: 78 74 5c 66 74 73 33 0a 54 43 43 20 3d 20 24 28  xt\fts3.TCC = $(
4870: 54 43 43 29 20 2d 49 24 28 54 4f 50 29 5c 65 78  TCC) -I$(TOP)\ex
4880: 74 5c 72 74 72 65 65 0a 52 43 43 20 3d 20 24 28  t\rtree.RCC = $(
4890: 52 43 43 29 20 2d 49 24 28 54 4f 50 29 5c 65 78  RCC) -I$(TOP)\ex
48a0: 74 5c 72 74 72 65 65 0a 54 43 43 20 3d 20 24 28  t\rtree.TCC = $(
48b0: 54 43 43 29 20 2d 49 24 28 54 4f 50 29 5c 65 78  TCC) -I$(TOP)\ex
48c0: 74 5c 73 65 73 73 69 6f 6e 0a 52 43 43 20 3d 20  t\session.RCC = 
48d0: 24 28 52 43 43 29 20 2d 49 24 28 54 4f 50 29 5c  $(RCC) -I$(TOP)\
48e0: 65 78 74 5c 73 65 73 73 69 6f 6e 0a 21 45 4e 44  ext\session.!END
48f0: 49 46 0a 0a 23 20 54 68 65 20 6d 6b 73 71 6c 69  IF..# The mksqli
4900: 74 65 33 63 2e 74 63 6c 20 73 63 72 69 70 74 20  te3c.tcl script 
4910: 61 63 63 65 70 74 73 20 73 6f 6d 65 20 6f 70 74  accepts some opt
4920: 69 6f 6e 73 20 6f 6e 20 74 68 65 20 63 6f 6d 6d  ions on the comm
4930: 61 6e 64 0a 23 20 6c 69 6e 65 2e 20 20 57 68 65  and.# line.  Whe
4940: 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 77 69 74 68  n compiling with
4950: 20 64 65 62 75 67 67 69 6e 67 20 65 6e 61 62 6c   debugging enabl
4960: 65 64 2c 20 73 6f 6d 65 20 6f 66 20 74 68 65 73  ed, some of thes
4970: 65 0a 23 20 6f 70 74 69 6f 6e 73 20 61 72 65 20  e.# options are 
4980: 6e 65 63 65 73 73 61 72 79 20 69 6e 20 6f 72 64  necessary in ord
4990: 65 72 20 74 6f 20 61 6c 6c 6f 77 20 64 65 62 75  er to allow debu
49a0: 67 67 69 6e 67 20 73 79 6d 62 6f 6c 73 20 74 6f  gging symbols to
49b0: 0a 23 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c  .# work correctl
49c0: 79 20 77 69 74 68 20 56 69 73 75 61 6c 20 53 74  y with Visual St
49d0: 75 64 69 6f 20 77 68 65 6e 20 75 73 69 6e 67 20  udio when using 
49e0: 74 68 65 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e  the amalgamation
49f0: 2e 0a 23 0a 21 49 46 4e 44 45 46 20 4d 4b 53 51  ..#.!IFNDEF MKSQ
4a00: 4c 49 54 45 33 43 5f 54 4f 4f 4c 0a 21 49 46 20  LITE3C_TOOL.!IF 
4a10: 24 28 4d 49 4e 49 4d 41 4c 5f 41 4d 41 4c 47 41  $(MINIMAL_AMALGA
4a20: 4d 41 54 49 4f 4e 29 21 3d 30 0a 4d 4b 53 51 4c  MATION)!=0.MKSQL
4a30: 49 54 45 33 43 5f 54 4f 4f 4c 20 3d 20 24 28 54  ITE3C_TOOL = $(T
4a40: 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 73 71 6c 69 74  OP)\tool\mksqlit
4a50: 65 33 63 2d 6e 6f 65 78 74 2e 74 63 6c 0a 21 45  e3c-noext.tcl.!E
4a60: 4c 53 45 0a 4d 4b 53 51 4c 49 54 45 33 43 5f 54  LSE.MKSQLITE3C_T
4a70: 4f 4f 4c 20 3d 20 24 28 54 4f 50 29 5c 74 6f 6f  OOL = $(TOP)\too
4a80: 6c 5c 6d 6b 73 71 6c 69 74 65 33 63 2e 74 63 6c  l\mksqlite3c.tcl
4a90: 0a 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a  .!ENDIF.!ENDIF..
4aa0: 21 49 46 4e 44 45 46 20 4d 4b 53 51 4c 49 54 45  !IFNDEF MKSQLITE
4ab0: 33 43 5f 41 52 47 53 0a 21 49 46 20 24 28 44 45  3C_ARGS.!IF $(DE
4ac0: 42 55 47 29 3e 31 0a 4d 4b 53 51 4c 49 54 45 33  BUG)>1.MKSQLITE3
4ad0: 43 5f 41 52 47 53 20 3d 20 2d 2d 6c 69 6e 65 6d  C_ARGS = --linem
4ae0: 61 63 72 6f 73 0a 21 45 4c 53 45 0a 4d 4b 53 51  acros.!ELSE.MKSQ
4af0: 4c 49 54 45 33 43 5f 41 52 47 53 20 3d 0a 21 45  LITE3C_ARGS =.!E
4b00: 4e 44 49 46 0a 21 49 46 20 24 28 55 53 45 5f 53  NDIF.!IF $(USE_S
4b10: 54 44 43 41 4c 4c 29 21 3d 30 20 7c 7c 20 24 28  TDCALL)!=0 || $(
4b20: 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 4d 4b  FOR_WIN10)!=0.MK
4b30: 53 51 4c 49 54 45 33 43 5f 41 52 47 53 20 3d 20  SQLITE3C_ARGS = 
4b40: 24 28 4d 4b 53 51 4c 49 54 45 33 43 5f 41 52 47  $(MKSQLITE3C_ARG
4b50: 53 29 20 2d 2d 75 73 65 61 70 69 63 61 6c 6c 0a  S) --useapicall.
4b60: 21 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 0a 23  !ENDIF.!ENDIF..#
4b70: 20 54 68 65 20 6d 6b 73 71 6c 69 74 65 33 68 2e   The mksqlite3h.
4b80: 74 63 6c 20 73 63 72 69 70 74 20 61 63 63 65 70  tcl script accep
4b90: 74 73 20 73 6f 6d 65 20 6f 70 74 69 6f 6e 73 20  ts some options 
4ba0: 6f 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c  on the command l
4bb0: 69 6e 65 2e 0a 23 20 57 68 65 6e 20 63 6f 6d 70  ine..# When comp
4bc0: 69 6c 69 6e 67 20 77 69 74 68 20 73 74 64 63 61  iling with stdca
4bd0: 6c 6c 20 73 75 70 70 6f 72 74 2c 20 73 6f 6d 65  ll support, some
4be0: 20 6f 66 20 74 68 65 73 65 20 6f 70 74 69 6f 6e   of these option
4bf0: 73 20 61 72 65 0a 23 20 6e 65 63 65 73 73 61 72  s are.# necessar
4c00: 79 2e 0a 23 0a 21 49 46 4e 44 45 46 20 4d 4b 53  y..#.!IFNDEF MKS
4c10: 51 4c 49 54 45 33 48 5f 41 52 47 53 0a 21 49 46  QLITE3H_ARGS.!IF
4c20: 20 24 28 55 53 45 5f 53 54 44 43 41 4c 4c 29 21   $(USE_STDCALL)!
4c30: 3d 30 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31  =0 || $(FOR_WIN1
4c40: 30 29 21 3d 30 0a 4d 4b 53 51 4c 49 54 45 33 48  0)!=0.MKSQLITE3H
4c50: 5f 41 52 47 53 20 3d 20 2d 2d 75 73 65 61 70 69  _ARGS = --useapi
4c60: 63 61 6c 6c 0a 21 45 4c 53 45 0a 4d 4b 53 51 4c  call.!ELSE.MKSQL
4c70: 49 54 45 33 48 5f 41 52 47 53 20 3d 0a 21 45 4e  ITE3H_ARGS =.!EN
4c80: 44 49 46 0a 21 45 4e 44 49 46 0a 23 20 3c 3c 2f  DIF.!ENDIF.# <</
4c90: 6d 61 72 6b 3e 3e 0a 0a 23 20 44 65 66 69 6e 65  mark>>..# Define
4ca0: 20 2d 44 4e 44 45 42 55 47 20 74 6f 20 63 6f 6d   -DNDEBUG to com
4cb0: 70 69 6c 65 20 77 69 74 68 6f 75 74 20 64 65 62  pile without deb
4cc0: 75 67 67 69 6e 67 20 28 69 2e 65 2e 2c 20 66 6f  ugging (i.e., fo
4cd0: 72 20 70 72 6f 64 75 63 74 69 6f 6e 20 75 73 61  r production usa
4ce0: 67 65 29 0a 23 20 4f 6d 69 74 74 69 6e 67 20 74  ge).# Omitting t
4cf0: 68 65 20 64 65 66 69 6e 65 20 77 69 6c 6c 20 63  he define will c
4d00: 61 75 73 65 20 65 78 74 72 61 20 64 65 62 75 67  ause extra debug
4d10: 67 69 6e 67 20 63 6f 64 65 20 74 6f 20 62 65 20  ging code to be 
4d20: 69 6e 73 65 72 74 65 64 20 61 6e 64 0a 23 20 69  inserted and.# i
4d30: 6e 63 6c 75 64 65 73 20 65 78 74 72 61 20 63 6f  ncludes extra co
4d40: 6d 6d 65 6e 74 73 20 77 68 65 6e 20 22 45 58 50  mments when "EXP
4d50: 4c 41 49 4e 20 73 74 6d 74 22 20 69 73 20 75 73  LAIN stmt" is us
4d60: 65 64 2e 0a 23 0a 21 49 46 20 24 28 44 45 42 55  ed..#.!IF $(DEBU
4d70: 47 29 3d 3d 30 0a 54 43 43 20 3d 20 24 28 54 43  G)==0.TCC = $(TC
4d80: 43 29 20 2d 44 4e 44 45 42 55 47 0a 42 43 43 20  C) -DNDEBUG.BCC 
4d90: 3d 20 24 28 42 43 43 29 20 2d 44 4e 44 45 42 55  = $(BCC) -DNDEBU
4da0: 47 0a 52 43 43 20 3d 20 24 28 52 43 43 29 20 2d  G.RCC = $(RCC) -
4db0: 44 4e 44 45 42 55 47 0a 21 45 4e 44 49 46 0a 0a  DNDEBUG.!ENDIF..
4dc0: 21 49 46 20 24 28 44 45 42 55 47 29 3e 30 20 7c  !IF $(DEBUG)>0 |
4dd0: 7c 20 24 28 41 50 49 5f 41 52 4d 4f 52 29 21 3d  | $(API_ARMOR)!=
4de0: 30 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31 30  0 || $(FOR_WIN10
4df0: 29 21 3d 30 0a 54 43 43 20 3d 20 24 28 54 43 43  )!=0.TCC = $(TCC
4e00: 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c  ) -DSQLITE_ENABL
4e10: 45 5f 41 50 49 5f 41 52 4d 4f 52 3d 31 0a 52 43  E_API_ARMOR=1.RC
4e20: 43 20 3d 20 24 28 52 43 43 29 20 2d 44 53 51 4c  C = $(RCC) -DSQL
4e30: 49 54 45 5f 45 4e 41 42 4c 45 5f 41 50 49 5f 41  ITE_ENABLE_API_A
4e40: 52 4d 4f 52 3d 31 0a 21 45 4e 44 49 46 0a 0a 21  RMOR=1.!ENDIF..!
4e50: 49 46 20 24 28 44 45 42 55 47 29 3e 32 0a 54 43  IF $(DEBUG)>2.TC
4e60: 43 20 3d 20 24 28 54 43 43 29 20 2d 44 53 51 4c  C = $(TCC) -DSQL
4e70: 49 54 45 5f 44 45 42 55 47 3d 31 0a 52 43 43 20  ITE_DEBUG=1.RCC 
4e80: 3d 20 24 28 52 43 43 29 20 2d 44 53 51 4c 49 54  = $(RCC) -DSQLIT
4e90: 45 5f 44 45 42 55 47 3d 31 0a 21 49 46 20 24 28  E_DEBUG=1.!IF $(
4ea0: 44 59 4e 41 4d 49 43 5f 53 48 45 4c 4c 29 3d 3d  DYNAMIC_SHELL)==
4eb0: 30 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20 2d  0.TCC = $(TCC) -
4ec0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 57  DSQLITE_ENABLE_W
4ed0: 48 45 52 45 54 52 41 43 45 20 2d 44 53 51 4c 49  HERETRACE -DSQLI
4ee0: 54 45 5f 45 4e 41 42 4c 45 5f 53 45 4c 45 43 54  TE_ENABLE_SELECT
4ef0: 54 52 41 43 45 0a 52 43 43 20 3d 20 24 28 52 43  TRACE.RCC = $(RC
4f00: 43 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42  C) -DSQLITE_ENAB
4f10: 4c 45 5f 57 48 45 52 45 54 52 41 43 45 20 2d 44  LE_WHERETRACE -D
4f20: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 53 45  SQLITE_ENABLE_SE
4f30: 4c 45 43 54 54 52 41 43 45 0a 21 45 4e 44 49 46  LECTTRACE.!ENDIF
4f40: 0a 21 45 4e 44 49 46 0a 0a 21 49 46 20 24 28 44  .!ENDIF..!IF $(D
4f50: 45 42 55 47 29 3e 34 20 7c 7c 20 24 28 4f 53 54  EBUG)>4 || $(OST
4f60: 52 41 43 45 29 21 3d 30 0a 54 43 43 20 3d 20 24  RACE)!=0.TCC = $
4f70: 28 54 43 43 29 20 2d 44 53 51 4c 49 54 45 5f 46  (TCC) -DSQLITE_F
4f80: 4f 52 43 45 5f 4f 53 5f 54 52 41 43 45 3d 31 20  ORCE_OS_TRACE=1 
4f90: 2d 44 53 51 4c 49 54 45 5f 44 45 42 55 47 5f 4f  -DSQLITE_DEBUG_O
4fa0: 53 5f 54 52 41 43 45 3d 31 0a 52 43 43 20 3d 20  S_TRACE=1.RCC = 
4fb0: 24 28 52 43 43 29 20 2d 44 53 51 4c 49 54 45 5f  $(RCC) -DSQLITE_
4fc0: 46 4f 52 43 45 5f 4f 53 5f 54 52 41 43 45 3d 31  FORCE_OS_TRACE=1
4fd0: 20 2d 44 53 51 4c 49 54 45 5f 44 45 42 55 47 5f   -DSQLITE_DEBUG_
4fe0: 4f 53 5f 54 52 41 43 45 3d 31 0a 21 45 4e 44 49  OS_TRACE=1.!ENDI
4ff0: 46 0a 0a 21 49 46 20 24 28 44 45 42 55 47 29 3e  F..!IF $(DEBUG)>
5000: 35 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20 2d  5.TCC = $(TCC) -
5010: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 49  DSQLITE_ENABLE_I
5020: 4f 54 52 41 43 45 3d 31 0a 52 43 43 20 3d 20 24  OTRACE=1.RCC = $
5030: 28 52 43 43 29 20 2d 44 53 51 4c 49 54 45 5f 45  (RCC) -DSQLITE_E
5040: 4e 41 42 4c 45 5f 49 4f 54 52 41 43 45 3d 31 0a  NABLE_IOTRACE=1.
5050: 21 45 4e 44 49 46 0a 0a 23 20 50 72 65 76 65 6e  !ENDIF..# Preven
5060: 74 20 77 61 72 6e 69 6e 67 73 20 61 62 6f 75 74  t warnings about
5070: 20 22 69 6e 73 65 63 75 72 65 22 20 4d 53 56 43   "insecure" MSVC
5080: 20 72 75 6e 74 69 6d 65 20 6c 69 62 72 61 72 79   runtime library
5090: 20 66 75 6e 63 74 69 6f 6e 73 0a 23 20 62 65 69   functions.# bei
50a0: 6e 67 20 75 73 65 64 2e 0a 23 0a 54 43 43 20 3d  ng used..#.TCC =
50b0: 20 24 28 54 43 43 29 20 2d 44 5f 43 52 54 5f 53   $(TCC) -D_CRT_S
50c0: 45 43 55 52 45 5f 4e 4f 5f 44 45 50 52 45 43 41  ECURE_NO_DEPRECA
50d0: 54 45 20 2d 44 5f 43 52 54 5f 53 45 43 55 52 45  TE -D_CRT_SECURE
50e0: 5f 4e 4f 5f 57 41 52 4e 49 4e 47 53 0a 42 43 43  _NO_WARNINGS.BCC
50f0: 20 3d 20 24 28 42 43 43 29 20 2d 44 5f 43 52 54   = $(BCC) -D_CRT
5100: 5f 53 45 43 55 52 45 5f 4e 4f 5f 44 45 50 52 45  _SECURE_NO_DEPRE
5110: 43 41 54 45 20 2d 44 5f 43 52 54 5f 53 45 43 55  CATE -D_CRT_SECU
5120: 52 45 5f 4e 4f 5f 57 41 52 4e 49 4e 47 53 0a 52  RE_NO_WARNINGS.R
5130: 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44 5f 43  CC = $(RCC) -D_C
5140: 52 54 5f 53 45 43 55 52 45 5f 4e 4f 5f 44 45 50  RT_SECURE_NO_DEP
5150: 52 45 43 41 54 45 20 2d 44 5f 43 52 54 5f 53 45  RECATE -D_CRT_SE
5160: 43 55 52 45 5f 4e 4f 5f 57 41 52 4e 49 4e 47 53  CURE_NO_WARNINGS
5170: 0a 0a 23 20 50 72 65 76 65 6e 74 20 77 61 72 6e  ..# Prevent warn
5180: 69 6e 67 73 20 61 62 6f 75 74 20 22 64 65 70 72  ings about "depr
5190: 65 63 61 74 65 64 22 20 50 4f 53 49 58 20 66 75  ecated" POSIX fu
51a0: 6e 63 74 69 6f 6e 73 20 62 65 69 6e 67 20 75 73  nctions being us
51b0: 65 64 2e 0a 23 0a 54 43 43 20 3d 20 24 28 54 43  ed..#.TCC = $(TC
51c0: 43 29 20 2d 44 5f 43 52 54 5f 4e 4f 4e 53 54 44  C) -D_CRT_NONSTD
51d0: 43 5f 4e 4f 5f 44 45 50 52 45 43 41 54 45 20 2d  C_NO_DEPRECATE -
51e0: 44 5f 43 52 54 5f 4e 4f 4e 53 54 44 43 5f 4e 4f  D_CRT_NONSTDC_NO
51f0: 5f 57 41 52 4e 49 4e 47 53 0a 42 43 43 20 3d 20  _WARNINGS.BCC = 
5200: 24 28 42 43 43 29 20 2d 44 5f 43 52 54 5f 4e 4f  $(BCC) -D_CRT_NO
5210: 4e 53 54 44 43 5f 4e 4f 5f 44 45 50 52 45 43 41  NSTDC_NO_DEPRECA
5220: 54 45 20 2d 44 5f 43 52 54 5f 4e 4f 4e 53 54 44  TE -D_CRT_NONSTD
5230: 43 5f 4e 4f 5f 57 41 52 4e 49 4e 47 53 0a 52 43  C_NO_WARNINGS.RC
5240: 43 20 3d 20 24 28 52 43 43 29 20 2d 44 5f 43 52  C = $(RCC) -D_CR
5250: 54 5f 4e 4f 4e 53 54 44 43 5f 4e 4f 5f 44 45 50  T_NONSTDC_NO_DEP
5260: 52 45 43 41 54 45 20 2d 44 5f 43 52 54 5f 4e 4f  RECATE -D_CRT_NO
5270: 4e 53 54 44 43 5f 4e 4f 5f 57 41 52 4e 49 4e 47  NSTDC_NO_WARNING
5280: 53 0a 0a 23 20 55 73 65 20 74 68 65 20 53 51 4c  S..# Use the SQL
5290: 69 74 65 20 64 65 62 75 67 67 69 6e 67 20 68 65  ite debugging he
52a0: 61 70 20 73 75 62 73 79 73 74 65 6d 3f 0a 23 0a  ap subsystem?.#.
52b0: 21 49 46 20 24 28 4d 45 4d 44 45 42 55 47 29 21  !IF $(MEMDEBUG)!
52c0: 3d 30 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20  =0.TCC = $(TCC) 
52d0: 2d 44 53 51 4c 49 54 45 5f 4d 45 4d 44 45 42 55  -DSQLITE_MEMDEBU
52e0: 47 3d 31 0a 52 43 43 20 3d 20 24 28 52 43 43 29  G=1.RCC = $(RCC)
52f0: 20 2d 44 53 51 4c 49 54 45 5f 4d 45 4d 44 45 42   -DSQLITE_MEMDEB
5300: 55 47 3d 31 0a 0a 23 20 55 73 65 20 6e 61 74 69  UG=1..# Use nati
5310: 76 65 20 57 69 6e 33 32 20 68 65 61 70 20 73 75  ve Win32 heap su
5320: 62 73 79 73 74 65 6d 20 69 6e 73 74 65 61 64 20  bsystem instead 
5330: 6f 66 20 6d 61 6c 6c 6f 63 2f 66 72 65 65 3f 0a  of malloc/free?.
5340: 23 0a 21 45 4c 53 45 49 46 20 24 28 57 49 4e 33  #.!ELSEIF $(WIN3
5350: 32 48 45 41 50 29 21 3d 30 0a 54 43 43 20 3d 20  2HEAP)!=0.TCC = 
5360: 24 28 54 43 43 29 20 2d 44 53 51 4c 49 54 45 5f  $(TCC) -DSQLITE_
5370: 57 49 4e 33 32 5f 4d 41 4c 4c 4f 43 3d 31 0a 52  WIN32_MALLOC=1.R
5380: 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44 53 51  CC = $(RCC) -DSQ
5390: 4c 49 54 45 5f 57 49 4e 33 32 5f 4d 41 4c 4c 4f  LITE_WIN32_MALLO
53a0: 43 3d 31 0a 0a 23 20 56 61 6c 69 64 61 74 65 20  C=1..# Validate 
53b0: 74 68 65 20 68 65 61 70 20 6f 6e 20 65 76 65 72  the heap on ever
53c0: 79 20 63 61 6c 6c 20 69 6e 74 6f 20 74 68 65 20  y call into the 
53d0: 6e 61 74 69 76 65 20 57 69 6e 33 32 20 68 65 61  native Win32 hea
53e0: 70 20 73 75 62 73 79 73 74 65 6d 3f 0a 23 0a 21  p subsystem?.#.!
53f0: 49 46 20 24 28 44 45 42 55 47 29 3e 33 0a 54 43  IF $(DEBUG)>3.TC
5400: 43 20 3d 20 24 28 54 43 43 29 20 2d 44 53 51 4c  C = $(TCC) -DSQL
5410: 49 54 45 5f 57 49 4e 33 32 5f 4d 41 4c 4c 4f 43  ITE_WIN32_MALLOC
5420: 5f 56 41 4c 49 44 41 54 45 3d 31 0a 52 43 43 20  _VALIDATE=1.RCC 
5430: 3d 20 24 28 52 43 43 29 20 2d 44 53 51 4c 49 54  = $(RCC) -DSQLIT
5440: 45 5f 57 49 4e 33 32 5f 4d 41 4c 4c 4f 43 5f 56  E_WIN32_MALLOC_V
5450: 41 4c 49 44 41 54 45 3d 31 0a 21 45 4e 44 49 46  ALIDATE=1.!ENDIF
5460: 0a 21 45 4e 44 49 46 0a 0a 23 20 3c 3c 6d 61 72  .!ENDIF..# <<mar
5470: 6b 3e 3e 0a 23 20 54 68 65 20 6c 6f 63 61 74 69  k>>.# The locati
5480: 6f 6e 73 20 6f 66 20 74 68 65 20 54 63 6c 20 68  ons of the Tcl h
5490: 65 61 64 65 72 20 61 6e 64 20 6c 69 62 72 61 72  eader and librar
54a0: 79 20 66 69 6c 65 73 2e 20 20 41 6c 73 6f 2c 20  y files.  Also, 
54b0: 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74  the library that
54c0: 0a 23 20 6e 6f 6e 2d 73 74 75 62 73 20 65 6e 61  .# non-stubs ena
54d0: 62 6c 65 64 20 70 72 6f 67 72 61 6d 73 20 75 73  bled programs us
54e0: 69 6e 67 20 54 63 6c 20 6d 75 73 74 20 6c 69 6e  ing Tcl must lin
54f0: 6b 20 61 67 61 69 6e 73 74 2e 20 20 54 68 65 73  k against.  Thes
5500: 65 20 76 61 72 69 61 62 6c 65 73 0a 23 20 28 54  e variables.# (T
5510: 43 4c 49 4e 43 44 49 52 2c 20 54 43 4c 4c 49 42  CLINCDIR, TCLLIB
5520: 44 49 52 2c 20 61 6e 64 20 4c 49 42 54 43 4c 29  DIR, and LIBTCL)
5530: 20 6d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64   may be overridd
5540: 65 6e 20 76 69 61 20 74 68 65 20 65 6e 76 69 72  en via the envir
5550: 6f 6e 6d 65 6e 74 0a 23 20 70 72 69 6f 72 20 74  onment.# prior t
5560: 6f 20 72 75 6e 6e 69 6e 67 20 6e 6d 61 6b 65 20  o running nmake 
5570: 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 74 63  in order to matc
5580: 68 20 74 68 65 20 61 63 74 75 61 6c 20 69 6e 73  h the actual ins
5590: 74 61 6c 6c 65 64 20 6c 6f 63 61 74 69 6f 6e 20  talled location 
55a0: 61 6e 64 0a 23 20 76 65 72 73 69 6f 6e 20 6f 6e  and.# version on
55b0: 20 74 68 69 73 20 6d 61 63 68 69 6e 65 2e 0a 23   this machine..#
55c0: 0a 21 49 46 4e 44 45 46 20 54 43 4c 49 4e 43 44  .!IFNDEF TCLINCD
55d0: 49 52 0a 54 43 4c 49 4e 43 44 49 52 20 3d 20 63  IR.TCLINCDIR = c
55e0: 3a 5c 74 63 6c 5c 69 6e 63 6c 75 64 65 0a 21 45  :\tcl\include.!E
55f0: 4e 44 49 46 0a 0a 21 49 46 4e 44 45 46 20 54 43  NDIF..!IFNDEF TC
5600: 4c 4c 49 42 44 49 52 0a 54 43 4c 4c 49 42 44 49  LLIBDIR.TCLLIBDI
5610: 52 20 3d 20 63 3a 5c 74 63 6c 5c 6c 69 62 0a 21  R = c:\tcl\lib.!
5620: 45 4e 44 49 46 0a 0a 21 49 46 4e 44 45 46 20 4c  ENDIF..!IFNDEF L
5630: 49 42 54 43 4c 0a 4c 49 42 54 43 4c 20 3d 20 74  IBTCL.LIBTCL = t
5640: 63 6c 38 36 2e 6c 69 62 0a 21 45 4e 44 49 46 0a  cl86.lib.!ENDIF.
5650: 0a 21 49 46 4e 44 45 46 20 4c 49 42 54 43 4c 53  .!IFNDEF LIBTCLS
5660: 54 55 42 0a 4c 49 42 54 43 4c 53 54 55 42 20 3d  TUB.LIBTCLSTUB =
5670: 20 74 63 6c 73 74 75 62 38 36 2e 6c 69 62 0a 21   tclstub86.lib.!
5680: 45 4e 44 49 46 0a 0a 21 49 46 4e 44 45 46 20 4c  ENDIF..!IFNDEF L
5690: 49 42 54 43 4c 50 41 54 48 0a 4c 49 42 54 43 4c  IBTCLPATH.LIBTCL
56a0: 50 41 54 48 20 3d 20 63 3a 5c 74 63 6c 5c 62 69  PATH = c:\tcl\bi
56b0: 6e 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68 65 20  n.!ENDIF..# The 
56c0: 6c 6f 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 65  locations of the
56d0: 20 49 43 55 20 68 65 61 64 65 72 20 61 6e 64 20   ICU header and 
56e0: 6c 69 62 72 61 72 79 20 66 69 6c 65 73 2e 20 20  library files.  
56f0: 54 68 65 73 65 20 76 61 72 69 61 62 6c 65 73 0a  These variables.
5700: 23 20 28 49 43 55 49 4e 43 44 49 52 2c 20 49 43  # (ICUINCDIR, IC
5710: 55 4c 49 42 44 49 52 2c 20 61 6e 64 20 4c 49 42  ULIBDIR, and LIB
5720: 49 43 55 29 20 6d 61 79 20 62 65 20 6f 76 65 72  ICU) may be over
5730: 72 69 64 64 65 6e 20 76 69 61 20 74 68 65 20 65  ridden via the e
5740: 6e 76 69 72 6f 6e 6d 65 6e 74 0a 23 20 70 72 69  nvironment.# pri
5750: 6f 72 20 74 6f 20 72 75 6e 6e 69 6e 67 20 6e 6d  or to running nm
5760: 61 6b 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ake in order to 
5770: 6d 61 74 63 68 20 74 68 65 20 61 63 74 75 61 6c  match the actual
5780: 20 69 6e 73 74 61 6c 6c 65 64 20 6c 6f 63 61 74   installed locat
5790: 69 6f 6e 20 6f 6e 0a 23 20 74 68 69 73 20 6d 61  ion on.# this ma
57a0: 63 68 69 6e 65 2e 0a 23 0a 21 49 46 4e 44 45 46  chine..#.!IFNDEF
57b0: 20 49 43 55 49 4e 43 44 49 52 0a 49 43 55 49 4e   ICUINCDIR.ICUIN
57c0: 43 44 49 52 20 3d 20 63 3a 5c 69 63 75 5c 69 6e  CDIR = c:\icu\in
57d0: 63 6c 75 64 65 0a 21 45 4e 44 49 46 0a 0a 21 49  clude.!ENDIF..!I
57e0: 46 4e 44 45 46 20 49 43 55 4c 49 42 44 49 52 0a  FNDEF ICULIBDIR.
57f0: 49 43 55 4c 49 42 44 49 52 20 3d 20 63 3a 5c 69  ICULIBDIR = c:\i
5800: 63 75 5c 6c 69 62 0a 21 45 4e 44 49 46 0a 0a 21  cu\lib.!ENDIF..!
5810: 49 46 4e 44 45 46 20 4c 49 42 49 43 55 0a 4c 49  IFNDEF LIBICU.LI
5820: 42 49 43 55 20 3d 20 69 63 75 75 63 2e 6c 69 62  BICU = icuuc.lib
5830: 20 69 63 75 69 6e 2e 6c 69 62 0a 21 45 4e 44 49   icuin.lib.!ENDI
5840: 46 0a 0a 23 20 54 68 69 73 20 69 73 20 74 68 65  F..# This is the
5850: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 75 73 65 20   command to use 
5860: 66 6f 72 20 74 63 6c 73 68 20 2d 20 6e 6f 72 6d  for tclsh - norm
5870: 61 6c 6c 79 20 6a 75 73 74 20 22 74 63 6c 73 68  ally just "tclsh
5880: 22 2c 20 62 75 74 20 77 65 20 6d 61 79 0a 23 20  ", but we may.# 
5890: 6b 6e 6f 77 20 74 68 65 20 73 70 65 63 69 66 69  know the specifi
58a0: 63 20 76 65 72 73 69 6f 6e 20 77 65 20 77 61 6e  c version we wan
58b0: 74 20 74 6f 20 75 73 65 2e 20 20 54 68 69 73 20  t to use.  This 
58c0: 76 61 72 69 61 62 6c 65 20 28 54 43 4c 53 48 5f  variable (TCLSH_
58d0: 43 4d 44 29 20 6d 61 79 20 62 65 0a 23 20 6f 76  CMD) may be.# ov
58e0: 65 72 72 69 64 64 65 6e 20 76 69 61 20 74 68 65  erridden via the
58f0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 70 72 69   environment pri
5900: 6f 72 20 74 6f 20 72 75 6e 6e 69 6e 67 20 6e 6d  or to running nm
5910: 61 6b 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ake in order to 
5920: 73 65 6c 65 63 74 20 61 0a 23 20 73 70 65 63 69  select a.# speci
5930: 66 69 63 20 54 63 6c 20 73 68 65 6c 6c 20 74 6f  fic Tcl shell to
5940: 20 75 73 65 2e 0a 23 0a 21 49 46 4e 44 45 46 20   use..#.!IFNDEF 
5950: 54 43 4c 53 48 5f 43 4d 44 0a 54 43 4c 53 48 5f  TCLSH_CMD.TCLSH_
5960: 43 4d 44 20 3d 20 74 63 6c 73 68 0a 21 45 4e 44  CMD = tclsh.!END
5970: 49 46 0a 23 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a  IF.# <</mark>>..
5980: 23 20 43 6f 6d 70 69 6c 65 72 20 6f 70 74 69 6f  # Compiler optio
5990: 6e 73 20 6e 65 65 64 65 64 20 66 6f 72 20 70 72  ns needed for pr
59a0: 6f 67 72 61 6d 73 20 74 68 61 74 20 75 73 65 20  ograms that use 
59b0: 74 68 65 20 72 65 61 64 6c 69 6e 65 28 29 20 6c  the readline() l
59c0: 69 62 72 61 72 79 2e 0a 23 0a 21 49 46 4e 44 45  ibrary..#.!IFNDE
59d0: 46 20 52 45 41 44 4c 49 4e 45 5f 46 4c 41 47 53  F READLINE_FLAGS
59e0: 0a 52 45 41 44 4c 49 4e 45 5f 46 4c 41 47 53 20  .READLINE_FLAGS 
59f0: 3d 20 2d 44 48 41 56 45 5f 52 45 41 44 4c 49 4e  = -DHAVE_READLIN
5a00: 45 3d 30 0a 21 45 4e 44 49 46 0a 0a 23 20 54 68  E=0.!ENDIF..# Th
5a10: 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20 70  e library that p
5a20: 72 6f 67 72 61 6d 73 20 75 73 69 6e 67 20 72 65  rograms using re
5a30: 61 64 6c 69 6e 65 28 29 20 6d 75 73 74 20 6c 69  adline() must li
5a40: 6e 6b 20 61 67 61 69 6e 73 74 2e 0a 23 0a 21 49  nk against..#.!I
5a50: 46 4e 44 45 46 20 4c 49 42 52 45 41 44 4c 49 4e  FNDEF LIBREADLIN
5a60: 45 0a 4c 49 42 52 45 41 44 4c 49 4e 45 20 3d 0a  E.LIBREADLINE =.
5a70: 21 45 4e 44 49 46 0a 0a 23 20 53 68 6f 75 6c 64  !ENDIF..# Should
5a80: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 65 6e   the database en
5a90: 67 69 6e 65 20 62 65 20 63 6f 6d 70 69 6c 65 64  gine be compiled
5aa0: 20 74 68 72 65 61 64 73 61 66 65 0a 23 0a 54 43   threadsafe.#.TC
5ab0: 43 20 3d 20 24 28 54 43 43 29 20 2d 44 53 51 4c  C = $(TCC) -DSQL
5ac0: 49 54 45 5f 54 48 52 45 41 44 53 41 46 45 3d 31  ITE_THREADSAFE=1
5ad0: 0a 52 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44  .RCC = $(RCC) -D
5ae0: 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41 46  SQLITE_THREADSAF
5af0: 45 3d 31 0a 0a 23 20 44 6f 20 74 68 72 65 61 64  E=1..# Do thread
5b00: 73 20 6f 76 65 72 72 69 64 65 20 65 61 63 68 20  s override each 
5b10: 6f 74 68 65 72 73 20 6c 6f 63 6b 73 20 62 79 20  others locks by 
5b20: 64 65 66 61 75 6c 74 20 28 31 29 2c 20 6f 72 20  default (1), or 
5b30: 64 6f 20 77 65 20 74 65 73 74 20 28 2d 31 29 0a  do we test (-1).
5b40: 23 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20 2d  #.TCC = $(TCC) -
5b50: 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44 5f 4f  DSQLITE_THREAD_O
5b60: 56 45 52 52 49 44 45 5f 4c 4f 43 4b 3d 2d 31 0a  VERRIDE_LOCK=-1.
5b70: 52 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44 53  RCC = $(RCC) -DS
5b80: 51 4c 49 54 45 5f 54 48 52 45 41 44 5f 4f 56 45  QLITE_THREAD_OVE
5b90: 52 52 49 44 45 5f 4c 4f 43 4b 3d 2d 31 0a 0a 23  RRIDE_LOCK=-1..#
5ba0: 20 41 6e 79 20 74 61 72 67 65 74 20 6c 69 62 72   Any target libr
5bb0: 61 72 69 65 73 20 77 68 69 63 68 20 6c 69 62 73  aries which libs
5bc0: 71 6c 69 74 65 20 6d 75 73 74 20 62 65 20 6c 69  qlite must be li
5bd0: 6e 6b 65 64 20 61 67 61 69 6e 73 74 0a 23 0a 21  nked against.#.!
5be0: 49 46 4e 44 45 46 20 54 4c 49 42 53 0a 54 4c 49  IFNDEF TLIBS.TLI
5bf0: 42 53 20 3d 0a 21 45 4e 44 49 46 0a 0a 23 20 46  BS =.!ENDIF..# F
5c00: 6c 61 67 73 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67  lags controlling
5c10: 20 75 73 65 20 6f 66 20 74 68 65 20 69 6e 20 6d   use of the in m
5c20: 65 6d 6f 72 79 20 62 74 72 65 65 20 69 6d 70 6c  emory btree impl
5c30: 65 6d 65 6e 74 61 74 69 6f 6e 0a 23 0a 23 20 53  ementation.#.# S
5c40: 51 4c 49 54 45 5f 54 45 4d 50 5f 53 54 4f 52 45  QLITE_TEMP_STORE
5c50: 20 69 73 20 30 20 74 6f 20 66 6f 72 63 65 20 74   is 0 to force t
5c60: 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 20  emporary tables 
5c70: 74 6f 20 62 65 20 69 6e 20 61 20 66 69 6c 65 2c  to be in a file,
5c80: 20 31 20 74 6f 0a 23 20 64 65 66 61 75 6c 74 20   1 to.# default 
5c90: 74 6f 20 66 69 6c 65 2c 20 32 20 74 6f 20 64 65  to file, 2 to de
5ca0: 66 61 75 6c 74 20 74 6f 20 6d 65 6d 6f 72 79 2c  fault to memory,
5cb0: 20 61 6e 64 20 33 20 74 6f 20 66 6f 72 63 65 20   and 3 to force 
5cc0: 74 65 6d 70 6f 72 61 72 79 0a 23 20 74 61 62 6c  temporary.# tabl
5cd0: 65 73 20 74 6f 20 61 6c 77 61 79 73 20 62 65 20  es to always be 
5ce0: 69 6e 20 6d 65 6d 6f 72 79 2e 0a 23 0a 54 43 43  in memory..#.TCC
5cf0: 20 3d 20 24 28 54 43 43 29 20 2d 44 53 51 4c 49   = $(TCC) -DSQLI
5d00: 54 45 5f 54 45 4d 50 5f 53 54 4f 52 45 3d 31 0a  TE_TEMP_STORE=1.
5d10: 52 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44 53  RCC = $(RCC) -DS
5d20: 51 4c 49 54 45 5f 54 45 4d 50 5f 53 54 4f 52 45  QLITE_TEMP_STORE
5d30: 3d 31 0a 0a 23 20 45 6e 61 62 6c 65 2f 64 69 73  =1..# Enable/dis
5d40: 61 62 6c 65 20 6c 6f 61 64 61 62 6c 65 20 65 78  able loadable ex
5d50: 74 65 6e 73 69 6f 6e 73 2c 20 61 6e 64 20 6f 74  tensions, and ot
5d60: 68 65 72 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61  her optional fea
5d70: 74 75 72 65 73 0a 23 20 62 61 73 65 64 20 6f 6e  tures.# based on
5d80: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 20   configuration. 
5d90: 28 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 2a 2c  (-DSQLITE_OMIT*,
5da0: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
5db0: 2a 29 2e 0a 23 20 54 68 65 20 73 61 6d 65 20 73  *)..# The same s
5dc0: 65 74 20 6f 66 20 4f 4d 49 54 20 61 6e 64 20 45  et of OMIT and E
5dd0: 4e 41 42 4c 45 20 66 6c 61 67 73 20 73 68 6f 75  NABLE flags shou
5de0: 6c 64 20 62 65 20 70 61 73 73 65 64 20 74 6f 20  ld be passed to 
5df0: 74 68 65 0a 23 20 4c 45 4d 4f 4e 20 70 61 72 73  the.# LEMON pars
5e00: 65 72 20 67 65 6e 65 72 61 74 6f 72 20 61 6e 64  er generator and
5e10: 20 74 68 65 20 6d 6b 6b 65 79 77 6f 72 64 68 61   the mkkeywordha
5e20: 73 68 20 74 6f 6f 6c 20 61 73 20 77 65 6c 6c 2e  sh tool as well.
5e30: 0a 0a 23 20 54 68 65 73 65 20 61 72 65 20 74 68  ..# These are th
5e40: 65 20 72 65 71 75 69 72 65 64 20 53 51 4c 69 74  e required SQLit
5e50: 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 70  e compilation op
5e60: 74 69 6f 6e 73 20 75 73 65 64 20 77 68 65 6e 20  tions used when 
5e70: 63 6f 6d 70 69 6c 69 6e 67 20 66 6f 72 0a 23 20  compiling for.# 
5e80: 74 68 65 20 57 69 6e 64 6f 77 73 20 70 6c 61 74  the Windows plat
5e90: 66 6f 72 6d 2e 0a 23 0a 52 45 51 5f 46 45 41 54  form..#.REQ_FEAT
5ea0: 55 52 45 5f 46 4c 41 47 53 20 3d 20 24 28 52 45  URE_FLAGS = $(RE
5eb0: 51 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53 29  Q_FEATURE_FLAGS)
5ec0: 20 2d 44 53 51 4c 49 54 45 5f 4d 41 58 5f 54 52   -DSQLITE_MAX_TR
5ed0: 49 47 47 45 52 5f 44 45 50 54 48 3d 31 30 30 0a  IGGER_DEPTH=100.
5ee0: 0a 23 20 49 66 20 77 65 20 61 72 65 20 6c 69 6e  .# If we are lin
5ef0: 6b 69 6e 67 20 74 6f 20 74 68 65 20 52 50 43 52  king to the RPCR
5f00: 54 34 20 6c 69 62 72 61 72 79 2c 20 65 6e 61 62  T4 library, enab
5f10: 6c 65 20 66 65 61 74 75 72 65 73 20 74 68 61 74  le features that
5f20: 20 6e 65 65 64 20 69 74 2e 0a 23 0a 21 49 46 20   need it..#.!IF 
5f30: 24 28 55 53 45 5f 52 50 43 52 54 34 5f 4c 49 42  $(USE_RPCRT4_LIB
5f40: 29 21 3d 30 0a 52 45 51 5f 46 45 41 54 55 52 45  )!=0.REQ_FEATURE
5f50: 5f 46 4c 41 47 53 20 3d 20 24 28 52 45 51 5f 46  _FLAGS = $(REQ_F
5f60: 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44  EATURE_FLAGS) -D
5f70: 53 51 4c 49 54 45 5f 57 49 4e 33 32 5f 55 53 45  SQLITE_WIN32_USE
5f80: 5f 55 55 49 44 3d 31 0a 21 45 4e 44 49 46 0a 0a  _UUID=1.!ENDIF..
5f90: 23 20 41 64 64 20 74 68 65 20 72 65 71 75 69 72  # Add the requir
5fa0: 65 64 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20  ed and optional 
5fb0: 53 51 4c 69 74 65 20 63 6f 6d 70 69 6c 61 74 69  SQLite compilati
5fc0: 6f 6e 20 6f 70 74 69 6f 6e 73 20 69 6e 74 6f 20  on options into 
5fd0: 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 23 20 6c 69  the command.# li
5fe0: 6e 65 73 20 75 73 65 64 20 74 6f 20 69 6e 76 6f  nes used to invo
5ff0: 6b 65 20 74 68 65 20 4d 53 56 43 20 63 6f 64 65  ke the MSVC code
6000: 20 61 6e 64 20 72 65 73 6f 75 72 63 65 20 63 6f   and resource co
6010: 6d 70 69 6c 65 72 73 2e 0a 23 0a 54 43 43 20 3d  mpilers..#.TCC =
6020: 20 24 28 54 43 43 29 20 24 28 52 45 51 5f 46 45   $(TCC) $(REQ_FE
6030: 41 54 55 52 45 5f 46 4c 41 47 53 29 20 24 28 4f  ATURE_FLAGS) $(O
6040: 50 54 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53  PT_FEATURE_FLAGS
6050: 29 20 24 28 45 58 54 5f 46 45 41 54 55 52 45 5f  ) $(EXT_FEATURE_
6060: 46 4c 41 47 53 29 0a 52 43 43 20 3d 20 24 28 52  FLAGS).RCC = $(R
6070: 43 43 29 20 24 28 52 45 51 5f 46 45 41 54 55 52  CC) $(REQ_FEATUR
6080: 45 5f 46 4c 41 47 53 29 20 24 28 4f 50 54 5f 46  E_FLAGS) $(OPT_F
6090: 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20 24 28  EATURE_FLAGS) $(
60a0: 45 58 54 5f 46 45 41 54 55 52 45 5f 46 4c 41 47  EXT_FEATURE_FLAG
60b0: 53 29 0a 0a 23 20 41 64 64 20 69 6e 20 61 6e 79  S)..# Add in any
60c0: 20 6f 70 74 69 6f 6e 61 6c 20 70 61 72 61 6d 65   optional parame
60d0: 74 65 72 73 20 73 70 65 63 69 66 69 65 64 20 6f  ters specified o
60e0: 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 65 20 6c 69  n the commane li
60f0: 6e 65 2c 20 65 2e 67 2e 0a 23 20 6e 6d 61 6b 65  ne, e.g..# nmake
6100: 20 2f 66 20 4d 61 6b 65 66 69 6c 65 2e 6d 73 63   /f Makefile.msc
6110: 20 61 6c 6c 20 22 4f 50 54 53 3d 2d 44 53 51 4c   all "OPTS=-DSQL
6120: 49 54 45 5f 45 4e 41 42 4c 45 5f 46 4f 4f 3d 31  ITE_ENABLE_FOO=1
6130: 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 46   -DSQLITE_OMIT_F
6140: 4f 4f 3d 31 22 0a 23 0a 54 43 43 20 3d 20 24 28  OO=1".#.TCC = $(
6150: 54 43 43 29 20 24 28 4f 50 54 53 29 0a 52 43 43  TCC) $(OPTS).RCC
6160: 20 3d 20 24 28 52 43 43 29 20 24 28 4f 50 54 53   = $(RCC) $(OPTS
6170: 29 0a 0a 23 20 49 66 20 63 6f 6d 70 69 6c 69 6e  )..# If compilin
6180: 67 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 2c  g for debugging,
6190: 20 61 64 64 20 73 6f 6d 65 20 64 65 66 69 6e 65   add some define
61a0: 73 2e 0a 23 0a 21 49 46 20 24 28 44 45 42 55 47  s..#.!IF $(DEBUG
61b0: 29 3e 31 0a 54 43 43 20 3d 20 24 28 54 43 43 29  )>1.TCC = $(TCC)
61c0: 20 2d 44 5f 44 45 42 55 47 0a 42 43 43 20 3d 20   -D_DEBUG.BCC = 
61d0: 24 28 42 43 43 29 20 2d 44 5f 44 45 42 55 47 0a  $(BCC) -D_DEBUG.
61e0: 52 43 43 20 3d 20 24 28 52 43 43 29 20 2d 44 5f  RCC = $(RCC) -D_
61f0: 44 45 42 55 47 0a 21 45 4e 44 49 46 0a 0a 23 20  DEBUG.!ENDIF..# 
6200: 49 66 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  If optimizations
6210: 20 61 72 65 20 65 6e 61 62 6c 65 64 20 6f 72 20   are enabled or 
6220: 64 69 73 61 62 6c 65 64 20 28 65 69 74 68 65 72  disabled (either
6230: 20 69 6d 70 6c 69 63 69 74 6c 79 20 6f 72 0a 23   implicitly or.#
6240: 20 65 78 70 6c 69 63 69 74 6c 79 29 2c 20 61 64   explicitly), ad
6250: 64 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20  d the necessary 
6260: 66 6c 61 67 73 2e 0a 23 0a 21 49 46 20 24 28 44  flags..#.!IF $(D
6270: 45 42 55 47 29 3e 31 20 7c 7c 20 24 28 4f 50 54  EBUG)>1 || $(OPT
6280: 49 4d 49 5a 41 54 49 4f 4e 53 29 3d 3d 30 0a 54  IMIZATIONS)==0.T
6290: 43 43 20 3d 20 24 28 54 43 43 29 20 2d 4f 64 0a  CC = $(TCC) -Od.
62a0: 42 43 43 20 3d 20 24 28 42 43 43 29 20 2d 4f 64  BCC = $(BCC) -Od
62b0: 0a 21 49 46 20 24 28 55 53 45 5f 52 55 4e 54 49  .!IF $(USE_RUNTI
62c0: 4d 45 5f 43 48 45 43 4b 53 29 21 3d 30 0a 54 43  ME_CHECKS)!=0.TC
62d0: 43 20 3d 20 24 28 54 43 43 29 20 2d 52 54 43 31  C = $(TCC) -RTC1
62e0: 0a 42 43 43 20 3d 20 24 28 42 43 43 29 20 2d 52  .BCC = $(BCC) -R
62f0: 54 43 31 0a 21 45 4e 44 49 46 0a 21 45 4c 53 45  TC1.!ENDIF.!ELSE
6300: 49 46 20 24 28 4f 50 54 49 4d 49 5a 41 54 49 4f  IF $(OPTIMIZATIO
6310: 4e 53 29 3e 3d 33 0a 54 43 43 20 3d 20 24 28 54  NS)>=3.TCC = $(T
6320: 43 43 29 20 2d 4f 78 0a 42 43 43 20 3d 20 24 28  CC) -Ox.BCC = $(
6330: 42 43 43 29 20 2d 4f 78 0a 21 45 4c 53 45 49 46  BCC) -Ox.!ELSEIF
6340: 20 24 28 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 53   $(OPTIMIZATIONS
6350: 29 3d 3d 32 0a 54 43 43 20 3d 20 24 28 54 43 43  )==2.TCC = $(TCC
6360: 29 20 2d 4f 32 0a 42 43 43 20 3d 20 24 28 42 43  ) -O2.BCC = $(BC
6370: 43 29 20 2d 4f 32 0a 21 45 4c 53 45 49 46 20 24  C) -O2.!ELSEIF $
6380: 28 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 53 29 3d  (OPTIMIZATIONS)=
6390: 3d 31 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20  =1.TCC = $(TCC) 
63a0: 2d 4f 31 0a 42 43 43 20 3d 20 24 28 42 43 43 29  -O1.BCC = $(BCC)
63b0: 20 2d 4f 31 0a 21 45 4e 44 49 46 0a 0a 23 20 49   -O1.!ENDIF..# I
63c0: 66 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 65 6e  f symbols are en
63d0: 61 62 6c 65 64 20 28 6f 72 20 63 6f 6d 70 69 6c  abled (or compil
63e0: 69 6e 67 20 66 6f 72 20 64 65 62 75 67 67 69 6e  ing for debuggin
63f0: 67 29 2c 20 65 6e 61 62 6c 65 20 50 44 42 73 2e  g), enable PDBs.
6400: 0a 23 0a 21 49 46 20 24 28 44 45 42 55 47 29 3e  .#.!IF $(DEBUG)>
6410: 31 20 7c 7c 20 24 28 53 59 4d 42 4f 4c 53 29 21  1 || $(SYMBOLS)!
6420: 3d 30 0a 54 43 43 20 3d 20 24 28 54 43 43 29 20  =0.TCC = $(TCC) 
6430: 2d 5a 69 0a 42 43 43 20 3d 20 24 28 42 43 43 29  -Zi.BCC = $(BCC)
6440: 20 2d 5a 69 0a 21 45 4e 44 49 46 0a 0a 23 20 3c   -Zi.!ENDIF..# <
6450: 3c 6d 61 72 6b 3e 3e 0a 23 20 49 66 20 49 43 55  <mark>>.# If ICU
6460: 20 73 75 70 70 6f 72 74 20 69 73 20 65 6e 61 62   support is enab
6470: 6c 65 64 2c 20 61 64 64 20 74 68 65 20 63 6f 6d  led, add the com
6480: 70 69 6c 65 72 20 6f 70 74 69 6f 6e 73 20 66 6f  piler options fo
6490: 72 20 69 74 2e 0a 23 0a 21 49 46 20 24 28 55 53  r it..#.!IF $(US
64a0: 45 5f 49 43 55 29 21 3d 30 0a 54 43 43 20 3d 20  E_ICU)!=0.TCC = 
64b0: 24 28 54 43 43 29 20 2d 44 53 51 4c 49 54 45 5f  $(TCC) -DSQLITE_
64c0: 45 4e 41 42 4c 45 5f 49 43 55 3d 31 0a 52 43 43  ENABLE_ICU=1.RCC
64d0: 20 3d 20 24 28 52 43 43 29 20 2d 44 53 51 4c 49   = $(RCC) -DSQLI
64e0: 54 45 5f 45 4e 41 42 4c 45 5f 49 43 55 3d 31 0a  TE_ENABLE_ICU=1.
64f0: 54 43 43 20 3d 20 24 28 54 43 43 29 20 2d 49 24  TCC = $(TCC) -I$
6500: 28 54 4f 50 29 5c 65 78 74 5c 69 63 75 0a 52 43  (TOP)\ext\icu.RC
6510: 43 20 3d 20 24 28 52 43 43 29 20 2d 49 24 28 54  C = $(RCC) -I$(T
6520: 4f 50 29 5c 65 78 74 5c 69 63 75 0a 54 43 43 20  OP)\ext\icu.TCC 
6530: 3d 20 24 28 54 43 43 29 20 2d 49 24 28 49 43 55  = $(TCC) -I$(ICU
6540: 49 4e 43 44 49 52 29 0a 52 43 43 20 3d 20 24 28  INCDIR).RCC = $(
6550: 52 43 43 29 20 2d 49 24 28 49 43 55 49 4e 43 44  RCC) -I$(ICUINCD
6560: 49 52 29 0a 21 45 4e 44 49 46 0a 23 20 3c 3c 2f  IR).!ENDIF.# <</
6570: 6d 61 72 6b 3e 3e 0a 0a 23 20 43 6f 6d 6d 61 6e  mark>>..# Comman
6580: 64 20 6c 69 6e 65 20 70 72 65 66 69 78 65 73 20  d line prefixes 
6590: 66 6f 72 20 63 6f 6d 70 69 6c 69 6e 67 20 63 6f  for compiling co
65a0: 64 65 2c 20 63 6f 6d 70 69 6c 69 6e 67 20 72 65  de, compiling re
65b0: 73 6f 75 72 63 65 73 2c 0a 23 20 6c 69 6e 6b 69  sources,.# linki
65c0: 6e 67 2c 20 65 74 63 2e 0a 23 0a 4c 54 43 4f 4d  ng, etc..#.LTCOM
65d0: 50 49 4c 45 20 3d 20 24 28 54 43 43 29 20 2d 46  PILE = $(TCC) -F
65e0: 6f 24 40 0a 4c 54 52 43 4f 4d 50 49 4c 45 20 3d  o$@.LTRCOMPILE =
65f0: 20 24 28 52 43 43 29 20 2d 72 0a 4c 54 4c 49 42   $(RCC) -r.LTLIB
6600: 20 3d 20 6c 69 62 2e 65 78 65 0a 4c 54 4c 49 4e   = lib.exe.LTLIN
6610: 4b 20 3d 20 24 28 54 43 43 29 20 2d 46 65 24 40  K = $(TCC) -Fe$@
6620: 0a 0a 23 20 49 66 20 72 65 71 75 65 73 74 65 64  ..# If requested
6630: 2c 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 52 50  , link to the RP
6640: 43 52 54 34 20 6c 69 62 72 61 72 79 2e 0a 23 0a  CRT4 library..#.
6650: 21 49 46 20 24 28 55 53 45 5f 52 50 43 52 54 34  !IF $(USE_RPCRT4
6660: 5f 4c 49 42 29 21 3d 30 0a 4c 54 4c 49 4e 4b 20  _LIB)!=0.LTLINK 
6670: 3d 20 24 28 4c 54 4c 49 4e 4b 29 20 72 70 63 72  = $(LTLINK) rpcr
6680: 74 34 2e 6c 69 62 0a 21 45 4e 44 49 46 0a 0a 23  t4.lib.!ENDIF..#
6690: 20 49 66 20 61 20 70 6c 61 74 66 6f 72 6d 20 77   If a platform w
66a0: 61 73 20 73 65 74 2c 20 66 6f 72 63 65 20 74 68  as set, force th
66b0: 65 20 6c 69 6e 6b 65 72 20 74 6f 20 74 61 72 67  e linker to targ
66c0: 65 74 20 74 68 61 74 2e 0a 23 20 4e 6f 74 65 20  et that..# Note 
66d0: 74 68 61 74 20 74 68 65 20 76 63 76 61 72 73 2a  that the vcvars*
66e0: 2e 62 61 74 20 66 61 6d 69 6c 79 20 6f 66 20 62  .bat family of b
66f0: 61 74 63 68 20 66 69 6c 65 73 20 74 79 70 69 63  atch files typic
6700: 61 6c 6c 79 0a 23 20 73 65 74 20 74 68 69 73 20  ally.# set this 
6710: 66 6f 72 20 79 6f 75 2e 20 20 4f 74 68 65 72 77  for you.  Otherw
6720: 69 73 65 2c 20 74 68 65 20 6c 69 6e 6b 65 72 20  ise, the linker 
6730: 77 69 6c 6c 20 61 74 74 65 6d 70 74 0a 23 20 74  will attempt.# t
6740: 6f 20 64 65 64 75 63 65 20 74 68 65 20 62 69 6e  o deduce the bin
6750: 61 72 79 20 74 79 70 65 20 62 61 73 65 64 20 6f  ary type based o
6760: 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 66 69 6c  n the object fil
6770: 65 73 2e 0a 21 49 46 44 45 46 20 50 4c 41 54 46  es..!IFDEF PLATF
6780: 4f 52 4d 0a 4c 54 4c 49 4e 4b 4f 50 54 53 20 3d  ORM.LTLINKOPTS =
6790: 20 2f 4e 4f 4c 4f 47 4f 20 2f 4d 41 43 48 49 4e   /NOLOGO /MACHIN
67a0: 45 3a 24 28 50 4c 41 54 46 4f 52 4d 29 0a 4c 54  E:$(PLATFORM).LT
67b0: 4c 49 42 4f 50 54 53 20 3d 20 2f 4e 4f 4c 4f 47  LIBOPTS = /NOLOG
67c0: 4f 20 2f 4d 41 43 48 49 4e 45 3a 24 28 50 4c 41  O /MACHINE:$(PLA
67d0: 54 46 4f 52 4d 29 0a 21 45 4c 53 45 0a 4c 54 4c  TFORM).!ELSE.LTL
67e0: 49 4e 4b 4f 50 54 53 20 3d 20 2f 4e 4f 4c 4f 47  INKOPTS = /NOLOG
67f0: 4f 0a 4c 54 4c 49 42 4f 50 54 53 20 3d 20 2f 4e  O.LTLIBOPTS = /N
6800: 4f 4c 4f 47 4f 0a 21 45 4e 44 49 46 0a 0a 23 20  OLOGO.!ENDIF..# 
6810: 57 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 66  When compiling f
6820: 6f 72 20 75 73 65 20 69 6e 20 74 68 65 20 57 69  or use in the Wi
6830: 6e 52 54 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c  nRT environment,
6840: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 23   the following.#
6850: 20 6c 69 6e 6b 65 72 20 6f 70 74 69 6f 6e 20 6d   linker option m
6860: 75 73 74 20 62 65 20 75 73 65 64 20 74 6f 20 6d  ust be used to m
6870: 61 72 6b 20 74 68 65 20 65 78 65 63 75 74 61 62  ark the executab
6880: 6c 65 20 61 73 20 72 75 6e 6e 61 62 6c 65 0a 23  le as runnable.#
6890: 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 63 6f 6e   only in the con
68a0: 74 65 78 74 20 6f 66 20 61 6e 20 61 70 70 6c 69  text of an appli
68b0: 63 61 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 65 72  cation container
68c0: 2e 0a 23 0a 21 49 46 20 24 28 46 4f 52 5f 57 49  ..#.!IF $(FOR_WI
68d0: 4e 52 54 29 21 3d 30 0a 4c 54 4c 49 4e 4b 4f 50  NRT)!=0.LTLINKOP
68e0: 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50 54  TS = $(LTLINKOPT
68f0: 53 29 20 2f 41 50 50 43 4f 4e 54 41 49 4e 45 52  S) /APPCONTAINER
6900: 0a 21 49 46 20 22 24 28 56 49 53 55 41 4c 53 54  .!IF "$(VISUALST
6910: 55 44 49 4f 56 45 52 53 49 4f 4e 29 22 3d 3d 22  UDIOVERSION)"=="
6920: 31 32 2e 30 22 20 7c 7c 20 22 24 28 56 49 53 55  12.0" || "$(VISU
6930: 41 4c 53 54 55 44 49 4f 56 45 52 53 49 4f 4e 29  ALSTUDIOVERSION)
6940: 22 3d 3d 22 31 34 2e 30 22 0a 21 49 46 4e 44 45  "=="14.0".!IFNDE
6950: 46 20 53 54 4f 52 45 4c 49 42 50 41 54 48 0a 21  F STORELIBPATH.!
6960: 49 46 20 22 24 28 50 4c 41 54 46 4f 52 4d 29 22  IF "$(PLATFORM)"
6970: 3d 3d 22 78 38 36 22 0a 53 54 4f 52 45 4c 49 42  =="x86".STORELIB
6980: 50 41 54 48 20 3d 20 24 28 43 52 54 4c 49 42 50  PATH = $(CRTLIBP
6990: 41 54 48 29 5c 73 74 6f 72 65 0a 21 45 4c 53 45  ATH)\store.!ELSE
69a0: 49 46 20 22 24 28 50 4c 41 54 46 4f 52 4d 29 22  IF "$(PLATFORM)"
69b0: 3d 3d 22 78 36 34 22 0a 53 54 4f 52 45 4c 49 42  =="x64".STORELIB
69c0: 50 41 54 48 20 3d 20 24 28 43 52 54 4c 49 42 50  PATH = $(CRTLIBP
69d0: 41 54 48 29 5c 73 74 6f 72 65 5c 61 6d 64 36 34  ATH)\store\amd64
69e0: 0a 21 45 4c 53 45 49 46 20 22 24 28 50 4c 41 54  .!ELSEIF "$(PLAT
69f0: 46 4f 52 4d 29 22 3d 3d 22 41 52 4d 22 0a 53 54  FORM)"=="ARM".ST
6a00: 4f 52 45 4c 49 42 50 41 54 48 20 3d 20 24 28 43  ORELIBPATH = $(C
6a10: 52 54 4c 49 42 50 41 54 48 29 5c 73 74 6f 72 65  RTLIBPATH)\store
6a20: 5c 61 72 6d 0a 21 45 4c 53 45 0a 53 54 4f 52 45  \arm.!ELSE.STORE
6a30: 4c 49 42 50 41 54 48 20 3d 20 24 28 43 52 54 4c  LIBPATH = $(CRTL
6a40: 49 42 50 41 54 48 29 5c 73 74 6f 72 65 0a 21 45  IBPATH)\store.!E
6a50: 4e 44 49 46 0a 21 45 4e 44 49 46 0a 53 54 4f 52  NDIF.!ENDIF.STOR
6a60: 45 4c 49 42 50 41 54 48 20 3d 20 24 28 53 54 4f  ELIBPATH = $(STO
6a70: 52 45 4c 49 42 50 41 54 48 3a 5c 5c 3d 5c 29 0a  RELIBPATH:\\=\).
6a80: 4c 54 4c 49 4e 4b 4f 50 54 53 20 3d 20 24 28 4c  LTLINKOPTS = $(L
6a90: 54 4c 49 4e 4b 4f 50 54 53 29 20 22 2f 4c 49 42  TLINKOPTS) "/LIB
6aa0: 50 41 54 48 3a 24 28 53 54 4f 52 45 4c 49 42 50  PATH:$(STORELIBP
6ab0: 41 54 48 29 22 0a 21 45 4e 44 49 46 0a 21 45 4e  ATH)".!ENDIF.!EN
6ac0: 44 49 46 0a 0a 23 20 57 68 65 6e 20 63 6f 6d 70  DIF..# When comp
6ad0: 69 6c 69 6e 67 20 66 6f 72 20 57 69 6e 64 6f 77  iling for Window
6ae0: 73 20 50 68 6f 6e 65 20 38 2e 31 2c 20 61 6e 20  s Phone 8.1, an 
6af0: 65 78 74 72 61 20 6c 69 62 72 61 72 79 20 70 61  extra library pa
6b00: 74 68 20 69 73 0a 23 20 72 65 71 75 69 72 65 64  th is.# required
6b10: 2e 0a 23 0a 21 49 46 20 24 28 55 53 45 5f 57 50  ..#.!IF $(USE_WP
6b20: 38 31 5f 4f 50 54 53 29 21 3d 30 0a 21 49 46 4e  81_OPTS)!=0.!IFN
6b30: 44 45 46 20 57 50 38 31 4c 49 42 50 41 54 48 0a  DEF WP81LIBPATH.
6b40: 21 49 46 20 22 24 28 50 4c 41 54 46 4f 52 4d 29  !IF "$(PLATFORM)
6b50: 22 3d 3d 22 78 38 36 22 0a 57 50 38 31 4c 49 42  "=="x86".WP81LIB
6b60: 50 41 54 48 20 3d 20 24 28 50 52 4f 47 52 41 4d  PATH = $(PROGRAM
6b70: 46 49 4c 45 53 5f 58 38 36 29 5c 57 69 6e 64 6f  FILES_X86)\Windo
6b80: 77 73 20 50 68 6f 6e 65 20 4b 69 74 73 5c 38 2e  ws Phone Kits\8.
6b90: 31 5c 6c 69 62 5c 78 38 36 0a 21 45 4c 53 45 49  1\lib\x86.!ELSEI
6ba0: 46 20 22 24 28 50 4c 41 54 46 4f 52 4d 29 22 3d  F "$(PLATFORM)"=
6bb0: 3d 22 41 52 4d 22 0a 57 50 38 31 4c 49 42 50 41  ="ARM".WP81LIBPA
6bc0: 54 48 20 3d 20 24 28 50 52 4f 47 52 41 4d 46 49  TH = $(PROGRAMFI
6bd0: 4c 45 53 5f 58 38 36 29 5c 57 69 6e 64 6f 77 73  LES_X86)\Windows
6be0: 20 50 68 6f 6e 65 20 4b 69 74 73 5c 38 2e 31 5c   Phone Kits\8.1\
6bf0: 6c 69 62 5c 41 52 4d 0a 21 45 4c 53 45 0a 57 50  lib\ARM.!ELSE.WP
6c00: 38 31 4c 49 42 50 41 54 48 20 3d 20 24 28 50 52  81LIBPATH = $(PR
6c10: 4f 47 52 41 4d 46 49 4c 45 53 5f 58 38 36 29 5c  OGRAMFILES_X86)\
6c20: 57 69 6e 64 6f 77 73 20 50 68 6f 6e 65 20 4b 69  Windows Phone Ki
6c30: 74 73 5c 38 2e 31 5c 6c 69 62 5c 78 38 36 0a 21  ts\8.1\lib\x86.!
6c40: 45 4e 44 49 46 0a 21 45 4e 44 49 46 0a 21 45 4e  ENDIF.!ENDIF.!EN
6c50: 44 49 46 0a 0a 23 20 57 68 65 6e 20 63 6f 6d 70  DIF..# When comp
6c60: 69 6c 69 6e 67 20 66 6f 72 20 57 69 6e 64 6f 77  iling for Window
6c70: 73 20 50 68 6f 6e 65 20 38 2e 31 2c 20 73 6f 6d  s Phone 8.1, som
6c80: 65 20 65 78 74 72 61 20 6c 69 6e 6b 65 72 20 6f  e extra linker o
6c90: 70 74 69 6f 6e 73 0a 23 20 61 72 65 20 61 6c 73  ptions.# are als
6ca0: 6f 20 72 65 71 75 69 72 65 64 2e 0a 23 0a 21 49  o required..#.!I
6cb0: 46 20 24 28 55 53 45 5f 57 50 38 31 5f 4f 50 54  F $(USE_WP81_OPT
6cc0: 53 29 21 3d 30 0a 21 49 46 44 45 46 20 57 50 38  S)!=0.!IFDEF WP8
6cd0: 31 4c 49 42 50 41 54 48 0a 4c 54 4c 49 4e 4b 4f  1LIBPATH.LTLINKO
6ce0: 50 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50  PTS = $(LTLINKOP
6cf0: 54 53 29 20 22 2f 4c 49 42 50 41 54 48 3a 24 28  TS) "/LIBPATH:$(
6d00: 57 50 38 31 4c 49 42 50 41 54 48 29 22 0a 21 45  WP81LIBPATH)".!E
6d10: 4e 44 49 46 0a 4c 54 4c 49 4e 4b 4f 50 54 53 20  NDIF.LTLINKOPTS 
6d20: 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 20  = $(LTLINKOPTS) 
6d30: 2f 44 59 4e 41 4d 49 43 42 41 53 45 0a 4c 54 4c  /DYNAMICBASE.LTL
6d40: 49 4e 4b 4f 50 54 53 20 3d 20 24 28 4c 54 4c 49  INKOPTS = $(LTLI
6d50: 4e 4b 4f 50 54 53 29 20 57 69 6e 64 6f 77 73 50  NKOPTS) WindowsP
6d60: 68 6f 6e 65 43 6f 72 65 2e 6c 69 62 20 52 75 6e  honeCore.lib Run
6d70: 74 69 6d 65 4f 62 6a 65 63 74 2e 6c 69 62 20 50  timeObject.lib P
6d80: 68 6f 6e 65 41 70 70 4d 6f 64 65 6c 48 6f 73 74  honeAppModelHost
6d90: 2e 6c 69 62 0a 4c 54 4c 49 4e 4b 4f 50 54 53 20  .lib.LTLINKOPTS 
6da0: 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 20  = $(LTLINKOPTS) 
6db0: 2f 4e 4f 44 45 46 41 55 4c 54 4c 49 42 3a 6b 65  /NODEFAULTLIB:ke
6dc0: 72 6e 65 6c 33 32 2e 6c 69 62 20 2f 4e 4f 44 45  rnel32.lib /NODE
6dd0: 46 41 55 4c 54 4c 49 42 3a 6f 6c 65 33 32 2e 6c  FAULTLIB:ole32.l
6de0: 69 62 0a 21 45 4e 44 49 46 0a 0a 23 20 57 68 65  ib.!ENDIF..# Whe
6df0: 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 66 6f 72 20  n compiling for 
6e00: 55 57 50 20 6f 72 20 74 68 65 20 57 69 6e 64 6f  UWP or the Windo
6e10: 77 73 20 31 30 20 70 6c 61 74 66 6f 72 6d 2c 20  ws 10 platform, 
6e20: 73 6f 6d 65 20 65 78 74 72 61 20 6c 69 6e 6b 65  some extra linke
6e30: 72 0a 23 20 6f 70 74 69 6f 6e 73 20 61 72 65 20  r.# options are 
6e40: 61 6c 73 6f 20 72 65 71 75 69 72 65 64 2e 0a 23  also required..#
6e50: 0a 21 49 46 20 24 28 46 4f 52 5f 55 57 50 29 21  .!IF $(FOR_UWP)!
6e60: 3d 30 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31  =0 || $(FOR_WIN1
6e70: 30 29 21 3d 30 0a 4c 54 4c 49 4e 4b 4f 50 54 53  0)!=0.LTLINKOPTS
6e80: 20 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29   = $(LTLINKOPTS)
6e90: 20 2f 44 59 4e 41 4d 49 43 42 41 53 45 20 2f 4e   /DYNAMICBASE /N
6ea0: 4f 44 45 46 41 55 4c 54 4c 49 42 3a 6b 65 72 6e  ODEFAULTLIB:kern
6eb0: 65 6c 33 32 2e 6c 69 62 0a 4c 54 4c 49 4e 4b 4f  el32.lib.LTLINKO
6ec0: 50 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50  PTS = $(LTLINKOP
6ed0: 54 53 29 20 6d 69 6e 63 6f 72 65 2e 6c 69 62 0a  TS) mincore.lib.
6ee0: 21 49 46 44 45 46 20 50 53 44 4b 4c 49 42 50 41  !IFDEF PSDKLIBPA
6ef0: 54 48 0a 4c 54 4c 49 4e 4b 4f 50 54 53 20 3d 20  TH.LTLINKOPTS = 
6f00: 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 20 22 2f  $(LTLINKOPTS) "/
6f10: 4c 49 42 50 41 54 48 3a 24 28 50 53 44 4b 4c 49  LIBPATH:$(PSDKLI
6f20: 42 50 41 54 48 29 22 0a 21 45 4e 44 49 46 0a 21  BPATH)".!ENDIF.!
6f30: 45 4e 44 49 46 0a 0a 21 49 46 20 24 28 46 4f 52  ENDIF..!IF $(FOR
6f40: 5f 57 49 4e 31 30 29 21 3d 30 0a 4c 54 4c 49 4e  _WIN10)!=0.LTLIN
6f50: 4b 4f 50 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b  KOPTS = $(LTLINK
6f60: 4f 50 54 53 29 20 2f 67 75 61 72 64 3a 63 66 20  OPTS) /guard:cf 
6f70: 22 2f 4c 49 42 50 41 54 48 3a 24 28 55 43 52 54  "/LIBPATH:$(UCRT
6f80: 4c 49 42 50 41 54 48 29 22 0a 21 49 46 20 24 28  LIBPATH)".!IF $(
6f90: 44 45 42 55 47 29 3e 31 0a 4c 54 4c 49 4e 4b 4f  DEBUG)>1.LTLINKO
6fa0: 50 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b 4f 50  PTS = $(LTLINKOP
6fb0: 54 53 29 20 2f 4e 4f 44 45 46 41 55 4c 54 4c 49  TS) /NODEFAULTLI
6fc0: 42 3a 6c 69 62 75 63 72 74 64 2e 6c 69 62 20 2f  B:libucrtd.lib /
6fd0: 44 45 46 41 55 4c 54 4c 49 42 3a 75 63 72 74 64  DEFAULTLIB:ucrtd
6fe0: 2e 6c 69 62 0a 21 45 4c 53 45 0a 4c 54 4c 49 4e  .lib.!ELSE.LTLIN
6ff0: 4b 4f 50 54 53 20 3d 20 24 28 4c 54 4c 49 4e 4b  KOPTS = $(LTLINK
7000: 4f 50 54 53 29 20 2f 4e 4f 44 45 46 41 55 4c 54  OPTS) /NODEFAULT
7010: 4c 49 42 3a 6c 69 62 75 63 72 74 2e 6c 69 62 20  LIB:libucrt.lib 
7020: 2f 44 45 46 41 55 4c 54 4c 49 42 3a 75 63 72 74  /DEFAULTLIB:ucrt
7030: 2e 6c 69 62 0a 21 45 4e 44 49 46 0a 21 45 4e 44  .lib.!ENDIF.!END
7040: 49 46 0a 0a 23 20 49 66 20 65 69 74 68 65 72 20  IF..# If either 
7050: 64 65 62 75 67 67 69 6e 67 20 6f 72 20 73 79 6d  debugging or sym
7060: 62 6f 6c 73 20 61 72 65 20 65 6e 61 62 6c 65 64  bols are enabled
7070: 2c 20 65 6e 61 62 6c 65 20 50 44 42 73 2e 0a 23  , enable PDBs..#
7080: 0a 21 49 46 20 24 28 44 45 42 55 47 29 3e 31 20  .!IF $(DEBUG)>1 
7090: 7c 7c 20 24 28 53 59 4d 42 4f 4c 53 29 21 3d 30  || $(SYMBOLS)!=0
70a0: 0a 4c 44 46 4c 41 47 53 20 3d 20 2f 44 45 42 55  .LDFLAGS = /DEBU
70b0: 47 20 24 28 4c 44 4f 50 54 53 29 0a 21 45 4c 53  G $(LDOPTS).!ELS
70c0: 45 0a 4c 44 46 4c 41 47 53 20 3d 20 24 28 4c 44  E.LDFLAGS = $(LD
70d0: 4f 50 54 53 29 0a 21 45 4e 44 49 46 0a 0a 23 20  OPTS).!ENDIF..# 
70e0: 3c 3c 6d 61 72 6b 3e 3e 0a 23 20 53 74 61 72 74  <<mark>>.# Start
70f0: 20 77 69 74 68 20 74 68 65 20 54 63 6c 20 72 65   with the Tcl re
7100: 6c 61 74 65 64 20 6c 69 6e 6b 65 72 20 6f 70 74  lated linker opt
7110: 69 6f 6e 73 2e 0a 23 0a 21 49 46 20 24 28 4e 4f  ions..#.!IF $(NO
7120: 5f 54 43 4c 29 3d 3d 30 0a 4c 54 4c 49 42 50 41  _TCL)==0.LTLIBPA
7130: 54 48 53 20 3d 20 2f 4c 49 42 50 41 54 48 3a 24  THS = /LIBPATH:$
7140: 28 54 43 4c 4c 49 42 44 49 52 29 0a 4c 54 4c 49  (TCLLIBDIR).LTLI
7150: 42 53 20 3d 20 24 28 4c 49 42 54 43 4c 29 0a 21  BS = $(LIBTCL).!
7160: 45 4e 44 49 46 0a 0a 23 20 49 66 20 49 43 55 20  ENDIF..# If ICU 
7170: 73 75 70 70 6f 72 74 20 69 73 20 65 6e 61 62 6c  support is enabl
7180: 65 64 2c 20 61 64 64 20 74 68 65 20 6c 69 6e 6b  ed, add the link
7190: 65 72 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 69  er options for i
71a0: 74 2e 0a 23 0a 21 49 46 20 24 28 55 53 45 5f 49  t..#.!IF $(USE_I
71b0: 43 55 29 21 3d 30 0a 4c 54 4c 49 42 50 41 54 48  CU)!=0.LTLIBPATH
71c0: 53 20 3d 20 24 28 4c 54 4c 49 42 50 41 54 48 53  S = $(LTLIBPATHS
71d0: 29 20 2f 4c 49 42 50 41 54 48 3a 24 28 49 43 55  ) /LIBPATH:$(ICU
71e0: 4c 49 42 44 49 52 29 0a 4c 54 4c 49 42 53 20 3d  LIBDIR).LTLIBS =
71f0: 20 24 28 4c 54 4c 49 42 53 29 20 24 28 4c 49 42   $(LTLIBS) $(LIB
7200: 49 43 55 29 0a 21 45 4e 44 49 46 0a 23 20 3c 3c  ICU).!ENDIF.# <<
7210: 2f 6d 61 72 6b 3e 3e 0a 0a 23 20 59 6f 75 20 73  /mark>>..# You s
7220: 68 6f 75 6c 64 20 6e 6f 74 20 68 61 76 65 20 74  hould not have t
7230: 6f 20 63 68 61 6e 67 65 20 61 6e 79 74 68 69 6e  o change anythin
7240: 67 20 62 65 6c 6f 77 20 74 68 69 73 20 6c 69 6e  g below this lin
7250: 65 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  e.##############
7260: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7270: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7280: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7290: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
72a0: 23 0a 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a 23 20  #..# <<mark>>.# 
72b0: 4f 62 6a 65 63 74 20 66 69 6c 65 73 20 66 6f 72  Object files for
72c0: 20 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62 72   the SQLite libr
72d0: 61 72 79 20 28 6e 6f 6e 2d 61 6d 61 6c 67 61 6d  ary (non-amalgam
72e0: 61 74 69 6f 6e 29 2e 0a 23 0a 4c 49 42 4f 42 4a  ation)..#.LIBOBJ
72f0: 53 30 20 3d 20 76 64 62 65 2e 6c 6f 20 70 61 72  S0 = vdbe.lo par
7300: 73 65 2e 6c 6f 20 61 6c 74 65 72 2e 6c 6f 20 61  se.lo alter.lo a
7310: 6e 61 6c 79 7a 65 2e 6c 6f 20 61 74 74 61 63 68  nalyze.lo attach
7320: 2e 6c 6f 20 61 75 74 68 2e 6c 6f 20 5c 0a 20 20  .lo auth.lo \.  
7330: 20 20 20 20 20 20 20 62 61 63 6b 75 70 2e 6c 6f         backup.lo
7340: 20 62 69 74 76 65 63 2e 6c 6f 20 62 74 6d 75 74   bitvec.lo btmut
7350: 65 78 2e 6c 6f 20 62 74 72 65 65 2e 6c 6f 20 62  ex.lo btree.lo b
7360: 75 69 6c 64 2e 6c 6f 20 5c 0a 20 20 20 20 20 20  uild.lo \.      
7370: 20 20 20 63 61 6c 6c 62 61 63 6b 2e 6c 6f 20 63     callback.lo c
7380: 6f 6d 70 6c 65 74 65 2e 6c 6f 20 63 74 69 6d 65  omplete.lo ctime
7390: 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20 64  .lo \.         d
73a0: 61 74 65 2e 6c 6f 20 64 62 70 61 67 65 2e 6c 6f  ate.lo dbpage.lo
73b0: 20 64 62 73 74 61 74 2e 6c 6f 20 64 65 6c 65 74   dbstat.lo delet
73c0: 65 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20  e.lo \.         
73d0: 65 78 70 72 2e 6c 6f 20 66 61 75 6c 74 2e 6c 6f  expr.lo fault.lo
73e0: 20 66 6b 65 79 2e 6c 6f 20 5c 0a 20 20 20 20 20   fkey.lo \.     
73f0: 20 20 20 20 66 74 73 33 2e 6c 6f 20 66 74 73 33      fts3.lo fts3
7400: 5f 61 75 78 2e 6c 6f 20 66 74 73 33 5f 65 78 70  _aux.lo fts3_exp
7410: 72 2e 6c 6f 20 66 74 73 33 5f 68 61 73 68 2e 6c  r.lo fts3_hash.l
7420: 6f 20 66 74 73 33 5f 69 63 75 2e 6c 6f 20 5c 0a  o fts3_icu.lo \.
7430: 20 20 20 20 20 20 20 20 20 66 74 73 33 5f 70 6f           fts3_po
7440: 72 74 65 72 2e 6c 6f 20 66 74 73 33 5f 73 6e 69  rter.lo fts3_sni
7450: 70 70 65 74 2e 6c 6f 20 66 74 73 33 5f 74 6f 6b  ppet.lo fts3_tok
7460: 65 6e 69 7a 65 72 2e 6c 6f 20 66 74 73 33 5f 74  enizer.lo fts3_t
7470: 6f 6b 65 6e 69 7a 65 72 31 2e 6c 6f 20 5c 0a 20  okenizer1.lo \. 
7480: 20 20 20 20 20 20 20 20 66 74 73 33 5f 74 6f 6b          fts3_tok
7490: 65 6e 69 7a 65 5f 76 74 61 62 2e 6c 6f 20 66 74  enize_vtab.lo ft
74a0: 73 33 5f 75 6e 69 63 6f 64 65 2e 6c 6f 20 66 74  s3_unicode.lo ft
74b0: 73 33 5f 75 6e 69 63 6f 64 65 32 2e 6c 6f 20 66  s3_unicode2.lo f
74c0: 74 73 33 5f 77 72 69 74 65 2e 6c 6f 20 5c 0a 20  ts3_write.lo \. 
74d0: 20 20 20 20 20 20 20 20 66 74 73 35 2e 6c 6f 20          fts5.lo 
74e0: 5c 0a 20 20 20 20 20 20 20 20 20 66 75 6e 63 2e  \.         func.
74f0: 6c 6f 20 67 6c 6f 62 61 6c 2e 6c 6f 20 68 61 73  lo global.lo has
7500: 68 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20  h.lo \.         
7510: 69 63 75 2e 6c 6f 20 69 6e 73 65 72 74 2e 6c 6f  icu.lo insert.lo
7520: 20 6c 65 67 61 63 79 2e 6c 6f 20 6c 6f 61 64 65   legacy.lo loade
7530: 78 74 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20  xt.lo \.        
7540: 20 6d 61 69 6e 2e 6c 6f 20 6d 61 6c 6c 6f 63 2e   main.lo malloc.
7550: 6c 6f 20 6d 65 6d 30 2e 6c 6f 20 6d 65 6d 31 2e  lo mem0.lo mem1.
7560: 6c 6f 20 6d 65 6d 32 2e 6c 6f 20 6d 65 6d 33 2e  lo mem2.lo mem3.
7570: 6c 6f 20 6d 65 6d 35 2e 6c 6f 20 5c 0a 20 20 20  lo mem5.lo \.   
7580: 20 20 20 20 20 20 6d 65 6d 6a 6f 75 72 6e 61 6c        memjournal
7590: 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20 6d  .lo \.         m
75a0: 75 74 65 78 2e 6c 6f 20 6d 75 74 65 78 5f 6e 6f  utex.lo mutex_no
75b0: 6f 70 2e 6c 6f 20 6d 75 74 65 78 5f 75 6e 69 78  op.lo mutex_unix
75c0: 2e 6c 6f 20 6d 75 74 65 78 5f 77 33 32 2e 6c 6f  .lo mutex_w32.lo
75d0: 20 5c 0a 20 20 20 20 20 20 20 20 20 6e 6f 74 69   \.         noti
75e0: 66 79 2e 6c 6f 20 6f 70 63 6f 64 65 73 2e 6c 6f  fy.lo opcodes.lo
75f0: 20 6f 73 2e 6c 6f 20 6f 73 5f 75 6e 69 78 2e 6c   os.lo os_unix.l
7600: 6f 20 6f 73 5f 77 69 6e 2e 6c 6f 20 5c 0a 20 20  o os_win.lo \.  
7610: 20 20 20 20 20 20 20 70 61 67 65 72 2e 6c 6f 20         pager.lo 
7620: 70 63 61 63 68 65 2e 6c 6f 20 70 63 61 63 68 65  pcache.lo pcache
7630: 31 2e 6c 6f 20 70 72 61 67 6d 61 2e 6c 6f 20 70  1.lo pragma.lo p
7640: 72 65 70 61 72 65 2e 6c 6f 20 70 72 69 6e 74 66  repare.lo printf
7650: 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20 72  .lo \.         r
7660: 61 6e 64 6f 6d 2e 6c 6f 20 72 65 73 6f 6c 76 65  andom.lo resolve
7670: 2e 6c 6f 20 72 6f 77 73 65 74 2e 6c 6f 20 72 74  .lo rowset.lo rt
7680: 72 65 65 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20  ree.lo \.       
7690: 20 20 73 71 6c 69 74 65 33 73 65 73 73 69 6f 6e    sqlite3session
76a0: 2e 6c 6f 20 73 65 6c 65 63 74 2e 6c 6f 20 73 71  .lo select.lo sq
76b0: 6c 69 74 65 33 72 62 75 2e 6c 6f 20 73 74 61 74  lite3rbu.lo stat
76c0: 75 73 2e 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20  us.lo \.        
76d0: 20 74 61 62 6c 65 2e 6c 6f 20 74 68 72 65 61 64   table.lo thread
76e0: 73 2e 6c 6f 20 74 6f 6b 65 6e 69 7a 65 2e 6c 6f  s.lo tokenize.lo
76f0: 20 74 72 65 65 76 69 65 77 2e 6c 6f 20 74 72 69   treeview.lo tri
7700: 67 67 65 72 2e 6c 6f 20 5c 0a 20 20 20 20 20 20  gger.lo \.      
7710: 20 20 20 75 70 64 61 74 65 2e 6c 6f 20 75 74 69     update.lo uti
7720: 6c 2e 6c 6f 20 76 61 63 75 75 6d 2e 6c 6f 20 5c  l.lo vacuum.lo \
7730: 0a 20 20 20 20 20 20 20 20 20 76 64 62 65 61 70  .         vdbeap
7740: 69 2e 6c 6f 20 76 64 62 65 61 75 78 2e 6c 6f 20  i.lo vdbeaux.lo 
7750: 76 64 62 65 62 6c 6f 62 2e 6c 6f 20 76 64 62 65  vdbeblob.lo vdbe
7760: 6d 65 6d 2e 6c 6f 20 76 64 62 65 73 6f 72 74 2e  mem.lo vdbesort.
7770: 6c 6f 20 5c 0a 20 20 20 20 20 20 20 20 20 76 64  lo \.         vd
7780: 62 65 74 72 61 63 65 2e 6c 6f 20 77 61 6c 2e 6c  betrace.lo wal.l
7790: 6f 20 77 61 6c 6b 65 72 2e 6c 6f 20 77 68 65 72  o walker.lo wher
77a0: 65 2e 6c 6f 20 77 68 65 72 65 63 6f 64 65 2e 6c  e.lo wherecode.l
77b0: 6f 20 77 68 65 72 65 65 78 70 72 2e 6c 6f 20 5c  o whereexpr.lo \
77c0: 0a 20 20 20 20 20 20 20 20 20 75 74 66 2e 6c 6f  .         utf.lo
77d0: 20 76 74 61 62 2e 6c 6f 0a 23 20 3c 3c 2f 6d 61   vtab.lo.# <</ma
77e0: 72 6b 3e 3e 0a 0a 23 20 4f 62 6a 65 63 74 20 66  rk>>..# Object f
77f0: 69 6c 65 73 20 66 6f 72 20 74 68 65 20 61 6d 61  iles for the ama
7800: 6c 67 61 6d 61 74 69 6f 6e 2e 0a 23 0a 4c 49 42  lgamation..#.LIB
7810: 4f 42 4a 53 31 20 3d 20 73 71 6c 69 74 65 33 2e  OBJS1 = sqlite3.
7820: 6c 6f 0a 0a 23 20 44 65 74 65 72 6d 69 6e 65 20  lo..# Determine 
7830: 74 68 65 20 72 65 61 6c 20 76 61 6c 75 65 20 6f  the real value o
7840: 66 20 4c 49 42 4f 42 4a 20 62 61 73 65 64 20 6f  f LIBOBJ based o
7850: 6e 20 74 68 65 20 27 63 6f 6e 66 69 67 75 72 65  n the 'configure
7860: 27 20 73 63 72 69 70 74 0a 23 0a 23 20 3c 3c 6d  ' script.#.# <<m
7870: 61 72 6b 3e 3e 0a 21 49 46 20 24 28 55 53 45 5f  ark>>.!IF $(USE_
7880: 41 4d 41 4c 47 41 4d 41 54 49 4f 4e 29 3d 3d 30  AMALGAMATION)==0
7890: 0a 4c 49 42 4f 42 4a 20 3d 20 24 28 4c 49 42 4f  .LIBOBJ = $(LIBO
78a0: 42 4a 53 30 29 0a 21 45 4c 53 45 0a 23 20 3c 3c  BJS0).!ELSE.# <<
78b0: 2f 6d 61 72 6b 3e 3e 0a 4c 49 42 4f 42 4a 20 3d  /mark>>.LIBOBJ =
78c0: 20 24 28 4c 49 42 4f 42 4a 53 31 29 0a 23 20 3c   $(LIBOBJS1).# <
78d0: 3c 6d 61 72 6b 3e 3e 0a 21 45 4e 44 49 46 0a 23  <mark>>.!ENDIF.#
78e0: 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a 23 20 44 65   <</mark>>..# De
78f0: 74 65 72 6d 69 6e 65 20 69 66 20 65 6d 62 65 64  termine if embed
7900: 64 65 64 20 72 65 73 6f 75 72 63 65 20 63 6f 6d  ded resource com
7910: 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 75 73 61  pilation and usa
7920: 67 65 20 61 72 65 20 65 6e 61 62 6c 65 64 2e 0a  ge are enabled..
7930: 23 0a 21 49 46 20 24 28 55 53 45 5f 52 43 29 21  #.!IF $(USE_RC)!
7940: 3d 30 0a 4c 49 42 52 45 53 4f 42 4a 53 20 3d 20  =0.LIBRESOBJS = 
7950: 73 71 6c 69 74 65 33 72 65 73 2e 6c 6f 0a 21 45  sqlite3res.lo.!E
7960: 4c 53 45 0a 4c 49 42 52 45 53 4f 42 4a 53 20 3d  LSE.LIBRESOBJS =
7970: 0a 21 45 4e 44 49 46 0a 0a 23 20 3c 3c 6d 61 72  .!ENDIF..# <<mar
7980: 6b 3e 3e 0a 23 20 43 6f 72 65 20 73 6f 75 72 63  k>>.# Core sourc
7990: 65 20 63 6f 64 65 20 66 69 6c 65 73 2c 20 70 61  e code files, pa
79a0: 72 74 20 31 2e 0a 23 0a 53 52 43 30 30 20 3d 20  rt 1..#.SRC00 = 
79b0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 61  \.  $(TOP)\src\a
79c0: 6c 74 65 72 2e 63 20 5c 0a 20 20 24 28 54 4f 50  lter.c \.  $(TOP
79d0: 29 5c 73 72 63 5c 61 6e 61 6c 79 7a 65 2e 63 20  )\src\analyze.c 
79e0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 61  \.  $(TOP)\src\a
79f0: 74 74 61 63 68 2e 63 20 5c 0a 20 20 24 28 54 4f  ttach.c \.  $(TO
7a00: 50 29 5c 73 72 63 5c 61 75 74 68 2e 63 20 5c 0a  P)\src\auth.c \.
7a10: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 62 61 63    $(TOP)\src\bac
7a20: 6b 75 70 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  kup.c \.  $(TOP)
7a30: 5c 73 72 63 5c 62 69 74 76 65 63 2e 63 20 5c 0a  \src\bitvec.c \.
7a40: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 62 74 6d    $(TOP)\src\btm
7a50: 75 74 65 78 2e 63 20 5c 0a 20 20 24 28 54 4f 50  utex.c \.  $(TOP
7a60: 29 5c 73 72 63 5c 62 74 72 65 65 2e 63 20 5c 0a  )\src\btree.c \.
7a70: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 62 75 69    $(TOP)\src\bui
7a80: 6c 64 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  ld.c \.  $(TOP)\
7a90: 73 72 63 5c 63 61 6c 6c 62 61 63 6b 2e 63 20 5c  src\callback.c \
7aa0: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 63 6f  .  $(TOP)\src\co
7ab0: 6d 70 6c 65 74 65 2e 63 20 5c 0a 20 20 24 28 54  mplete.c \.  $(T
7ac0: 4f 50 29 5c 73 72 63 5c 63 74 69 6d 65 2e 63 20  OP)\src\ctime.c 
7ad0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 64  \.  $(TOP)\src\d
7ae0: 61 74 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  ate.c \.  $(TOP)
7af0: 5c 73 72 63 5c 64 62 70 61 67 65 2e 63 20 5c 0a  \src\dbpage.c \.
7b00: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 64 62 73    $(TOP)\src\dbs
7b10: 74 61 74 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  tat.c \.  $(TOP)
7b20: 5c 73 72 63 5c 64 65 6c 65 74 65 2e 63 20 5c 0a  \src\delete.c \.
7b30: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 65 78 70    $(TOP)\src\exp
7b40: 72 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  r.c \.  $(TOP)\s
7b50: 72 63 5c 66 61 75 6c 74 2e 63 20 5c 0a 20 20 24  rc\fault.c \.  $
7b60: 28 54 4f 50 29 5c 73 72 63 5c 66 6b 65 79 2e 63  (TOP)\src\fkey.c
7b70: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
7b80: 66 75 6e 63 2e 63 20 5c 0a 20 20 24 28 54 4f 50  func.c \.  $(TOP
7b90: 29 5c 73 72 63 5c 67 6c 6f 62 61 6c 2e 63 20 5c  )\src\global.c \
7ba0: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 68 61  .  $(TOP)\src\ha
7bb0: 73 68 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  sh.c \.  $(TOP)\
7bc0: 73 72 63 5c 69 6e 73 65 72 74 2e 63 20 5c 0a 20  src\insert.c \. 
7bd0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 6c 65 67 61   $(TOP)\src\lega
7be0: 63 79 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  cy.c \.  $(TOP)\
7bf0: 73 72 63 5c 6c 6f 61 64 65 78 74 2e 63 20 5c 0a  src\loadext.c \.
7c00: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d 61 69    $(TOP)\src\mai
7c10: 6e 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  n.c \.  $(TOP)\s
7c20: 72 63 5c 6d 61 6c 6c 6f 63 2e 63 20 5c 0a 20 20  rc\malloc.c \.  
7c30: 24 28 54 4f 50 29 5c 73 72 63 5c 6d 65 6d 30 2e  $(TOP)\src\mem0.
7c40: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  c \.  $(TOP)\src
7c50: 5c 6d 65 6d 31 2e 63 20 5c 0a 20 20 24 28 54 4f  \mem1.c \.  $(TO
7c60: 50 29 5c 73 72 63 5c 6d 65 6d 32 2e 63 20 5c 0a  P)\src\mem2.c \.
7c70: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d 65 6d    $(TOP)\src\mem
7c80: 33 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  3.c \.  $(TOP)\s
7c90: 72 63 5c 6d 65 6d 35 2e 63 20 5c 0a 20 20 24 28  rc\mem5.c \.  $(
7ca0: 54 4f 50 29 5c 73 72 63 5c 6d 65 6d 6a 6f 75 72  TOP)\src\memjour
7cb0: 6e 61 6c 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  nal.c \.  $(TOP)
7cc0: 5c 73 72 63 5c 6d 75 74 65 78 2e 63 20 5c 0a 20  \src\mutex.c \. 
7cd0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65   $(TOP)\src\mute
7ce0: 78 5f 6e 6f 6f 70 2e 63 20 5c 0a 20 20 24 28 54  x_noop.c \.  $(T
7cf0: 4f 50 29 5c 73 72 63 5c 6d 75 74 65 78 5f 75 6e  OP)\src\mutex_un
7d00: 69 78 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  ix.c \.  $(TOP)\
7d10: 73 72 63 5c 6d 75 74 65 78 5f 77 33 32 2e 63 20  src\mutex_w32.c 
7d20: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 6e  \.  $(TOP)\src\n
7d30: 6f 74 69 66 79 2e 63 20 5c 0a 20 20 24 28 54 4f  otify.c \.  $(TO
7d40: 50 29 5c 73 72 63 5c 6f 73 2e 63 20 5c 0a 20 20  P)\src\os.c \.  
7d50: 24 28 54 4f 50 29 5c 73 72 63 5c 6f 73 5f 75 6e  $(TOP)\src\os_un
7d60: 69 78 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  ix.c \.  $(TOP)\
7d70: 73 72 63 5c 6f 73 5f 77 69 6e 2e 63 0a 0a 23 20  src\os_win.c..# 
7d80: 43 6f 72 65 20 73 6f 75 72 63 65 20 63 6f 64 65  Core source code
7d90: 20 66 69 6c 65 73 2c 20 70 61 72 74 20 32 2e 0a   files, part 2..
7da0: 23 0a 53 52 43 30 31 20 3d 20 5c 0a 20 20 24 28  #.SRC01 = \.  $(
7db0: 54 4f 50 29 5c 73 72 63 5c 70 61 67 65 72 2e 63  TOP)\src\pager.c
7dc0: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
7dd0: 70 63 61 63 68 65 2e 63 20 5c 0a 20 20 24 28 54  pcache.c \.  $(T
7de0: 4f 50 29 5c 73 72 63 5c 70 63 61 63 68 65 31 2e  OP)\src\pcache1.
7df0: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  c \.  $(TOP)\src
7e00: 5c 70 72 61 67 6d 61 2e 63 20 5c 0a 20 20 24 28  \pragma.c \.  $(
7e10: 54 4f 50 29 5c 73 72 63 5c 70 72 65 70 61 72 65  TOP)\src\prepare
7e20: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
7e30: 63 5c 70 72 69 6e 74 66 2e 63 20 5c 0a 20 20 24  c\printf.c \.  $
7e40: 28 54 4f 50 29 5c 73 72 63 5c 72 61 6e 64 6f 6d  (TOP)\src\random
7e50: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
7e60: 63 5c 72 65 73 6f 6c 76 65 2e 63 20 5c 0a 20 20  c\resolve.c \.  
7e70: 24 28 54 4f 50 29 5c 73 72 63 5c 72 6f 77 73 65  $(TOP)\src\rowse
7e80: 74 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  t.c \.  $(TOP)\s
7e90: 72 63 5c 73 65 6c 65 63 74 2e 63 20 5c 0a 20 20  rc\select.c \.  
7ea0: 24 28 54 4f 50 29 5c 73 72 63 5c 73 74 61 74 75  $(TOP)\src\statu
7eb0: 73 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  s.c \.  $(TOP)\s
7ec0: 72 63 5c 74 61 62 6c 65 2e 63 20 5c 0a 20 20 24  rc\table.c \.  $
7ed0: 28 54 4f 50 29 5c 73 72 63 5c 74 68 72 65 61 64  (TOP)\src\thread
7ee0: 73 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  s.c \.  $(TOP)\s
7ef0: 72 63 5c 74 63 6c 73 71 6c 69 74 65 2e 63 20 5c  rc\tclsqlite.c \
7f00: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 6f  .  $(TOP)\src\to
7f10: 6b 65 6e 69 7a 65 2e 63 20 5c 0a 20 20 24 28 54  kenize.c \.  $(T
7f20: 4f 50 29 5c 73 72 63 5c 74 72 65 65 76 69 65 77  OP)\src\treeview
7f30: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
7f40: 63 5c 74 72 69 67 67 65 72 2e 63 20 5c 0a 20 20  c\trigger.c \.  
7f50: 24 28 54 4f 50 29 5c 73 72 63 5c 75 74 66 2e 63  $(TOP)\src\utf.c
7f60: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
7f70: 75 70 64 61 74 65 2e 63 20 5c 0a 20 20 24 28 54  update.c \.  $(T
7f80: 4f 50 29 5c 73 72 63 5c 75 74 69 6c 2e 63 20 5c  OP)\src\util.c \
7f90: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 61  .  $(TOP)\src\va
7fa0: 63 75 75 6d 2e 63 20 5c 0a 20 20 24 28 54 4f 50  cuum.c \.  $(TOP
7fb0: 29 5c 73 72 63 5c 76 64 62 65 2e 63 20 5c 0a 20  )\src\vdbe.c \. 
7fc0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65   $(TOP)\src\vdbe
7fd0: 61 70 69 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  api.c \.  $(TOP)
7fe0: 5c 73 72 63 5c 76 64 62 65 61 75 78 2e 63 20 5c  \src\vdbeaux.c \
7ff0: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64  .  $(TOP)\src\vd
8000: 62 65 62 6c 6f 62 2e 63 20 5c 0a 20 20 24 28 54  beblob.c \.  $(T
8010: 4f 50 29 5c 73 72 63 5c 76 64 62 65 6d 65 6d 2e  OP)\src\vdbemem.
8020: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  c \.  $(TOP)\src
8030: 5c 76 64 62 65 73 6f 72 74 2e 63 20 5c 0a 20 20  \vdbesort.c \.  
8040: 24 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65 74  $(TOP)\src\vdbet
8050: 72 61 63 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50  race.c \.  $(TOP
8060: 29 5c 73 72 63 5c 76 74 61 62 2e 63 20 5c 0a 20  )\src\vtab.c \. 
8070: 20 24 28 54 4f 50 29 5c 73 72 63 5c 77 61 6c 2e   $(TOP)\src\wal.
8080: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  c \.  $(TOP)\src
8090: 5c 77 61 6c 6b 65 72 2e 63 20 5c 0a 20 20 24 28  \walker.c \.  $(
80a0: 54 4f 50 29 5c 73 72 63 5c 77 68 65 72 65 2e 63  TOP)\src\where.c
80b0: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
80c0: 77 68 65 72 65 63 6f 64 65 2e 63 20 5c 0a 20 20  wherecode.c \.  
80d0: 24 28 54 4f 50 29 5c 73 72 63 5c 77 68 65 72 65  $(TOP)\src\where
80e0: 65 78 70 72 2e 63 0a 0a 23 20 43 6f 72 65 20 6d  expr.c..# Core m
80f0: 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 66 69 6c  iscellaneous fil
8100: 65 73 2e 0a 23 0a 53 52 43 30 33 20 3d 20 5c 0a  es..#.SRC03 = \.
8110: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 70 61 72    $(TOP)\src\par
8120: 73 65 2e 79 0a 0a 23 20 43 6f 72 65 20 68 65 61  se.y..# Core hea
8130: 64 65 72 20 66 69 6c 65 73 2c 20 70 61 72 74 20  der files, part 
8140: 31 2e 0a 23 0a 53 52 43 30 34 20 3d 20 5c 0a 20  1..#.SRC04 = \. 
8150: 20 24 28 54 4f 50 29 5c 73 72 63 5c 62 74 72 65   $(TOP)\src\btre
8160: 65 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  e.h \.  $(TOP)\s
8170: 72 63 5c 62 74 72 65 65 49 6e 74 2e 68 20 5c 0a  rc\btreeInt.h \.
8180: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 68 61 73    $(TOP)\src\has
8190: 68 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  h.h \.  $(TOP)\s
81a0: 72 63 5c 68 77 74 69 6d 65 2e 68 20 5c 0a 20 20  rc\hwtime.h \.  
81b0: 24 28 54 4f 50 29 5c 73 72 63 5c 6d 73 76 63 2e  $(TOP)\src\msvc.
81c0: 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  h \.  $(TOP)\src
81d0: 5c 6d 75 74 65 78 2e 68 20 5c 0a 20 20 24 28 54  \mutex.h \.  $(T
81e0: 4f 50 29 5c 73 72 63 5c 6f 73 2e 68 20 5c 0a 20  OP)\src\os.h \. 
81f0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 6f 73 5f 63   $(TOP)\src\os_c
8200: 6f 6d 6d 6f 6e 2e 68 20 5c 0a 20 20 24 28 54 4f  ommon.h \.  $(TO
8210: 50 29 5c 73 72 63 5c 6f 73 5f 73 65 74 75 70 2e  P)\src\os_setup.
8220: 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  h \.  $(TOP)\src
8230: 5c 6f 73 5f 77 69 6e 2e 68 0a 0a 23 20 43 6f 72  \os_win.h..# Cor
8240: 65 20 68 65 61 64 65 72 20 66 69 6c 65 73 2c 20  e header files, 
8250: 70 61 72 74 20 32 2e 0a 23 0a 53 52 43 30 35 20  part 2..#.SRC05 
8260: 3d 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  = \.  $(TOP)\src
8270: 5c 70 61 67 65 72 2e 68 20 5c 0a 20 20 24 28 54  \pager.h \.  $(T
8280: 4f 50 29 5c 73 72 63 5c 70 63 61 63 68 65 2e 68  OP)\src\pcache.h
8290: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
82a0: 70 72 61 67 6d 61 2e 68 20 5c 0a 20 20 24 28 54  pragma.h \.  $(T
82b0: 4f 50 29 5c 73 72 63 5c 73 71 6c 69 74 65 2e 68  OP)\src\sqlite.h
82c0: 2e 69 6e 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  .in \.  $(TOP)\s
82d0: 72 63 5c 73 71 6c 69 74 65 33 65 78 74 2e 68 20  rc\sqlite3ext.h 
82e0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 73  \.  $(TOP)\src\s
82f0: 71 6c 69 74 65 49 6e 74 2e 68 20 5c 0a 20 20 24  qliteInt.h \.  $
8300: 28 54 4f 50 29 5c 73 72 63 5c 73 71 6c 69 74 65  (TOP)\src\sqlite
8310: 4c 69 6d 69 74 2e 68 20 5c 0a 20 20 24 28 54 4f  Limit.h \.  $(TO
8320: 50 29 5c 73 72 63 5c 76 64 62 65 2e 68 20 5c 0a  P)\src\vdbe.h \.
8330: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64 62    $(TOP)\src\vdb
8340: 65 49 6e 74 2e 68 20 5c 0a 20 20 24 28 54 4f 50  eInt.h \.  $(TOP
8350: 29 5c 73 72 63 5c 76 78 77 6f 72 6b 73 2e 68 20  )\src\vxworks.h 
8360: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 77  \.  $(TOP)\src\w
8370: 61 6c 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c  al.h \.  $(TOP)\
8380: 73 72 63 5c 77 68 65 72 65 49 6e 74 2e 68 0a 0a  src\whereInt.h..
8390: 23 20 45 78 74 65 6e 73 69 6f 6e 20 73 6f 75 72  # Extension sour
83a0: 63 65 20 63 6f 64 65 20 66 69 6c 65 73 2c 20 70  ce code files, p
83b0: 61 72 74 20 31 2e 0a 23 0a 53 52 43 30 36 20 3d  art 1..#.SRC06 =
83c0: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c   \.  $(TOP)\ext\
83d0: 66 74 73 31 5c 66 74 73 31 2e 63 20 5c 0a 20 20  fts1\fts1.c \.  
83e0: 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 31 5c  $(TOP)\ext\fts1\
83f0: 66 74 73 31 5f 68 61 73 68 2e 63 20 5c 0a 20 20  fts1_hash.c \.  
8400: 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 31 5c  $(TOP)\ext\fts1\
8410: 66 74 73 31 5f 70 6f 72 74 65 72 2e 63 20 5c 0a  fts1_porter.c \.
8420: 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73    $(TOP)\ext\fts
8430: 31 5c 66 74 73 31 5f 74 6f 6b 65 6e 69 7a 65 72  1\fts1_tokenizer
8440: 31 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  1.c \.  $(TOP)\e
8450: 78 74 5c 66 74 73 32 5c 66 74 73 32 2e 63 20 5c  xt\fts2\fts2.c \
8460: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
8470: 73 32 5c 66 74 73 32 5f 68 61 73 68 2e 63 20 5c  s2\fts2_hash.c \
8480: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
8490: 73 32 5c 66 74 73 32 5f 69 63 75 2e 63 20 5c 0a  s2\fts2_icu.c \.
84a0: 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73    $(TOP)\ext\fts
84b0: 32 5c 66 74 73 32 5f 70 6f 72 74 65 72 2e 63 20  2\fts2_porter.c 
84c0: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66  \.  $(TOP)\ext\f
84d0: 74 73 32 5c 66 74 73 32 5f 74 6f 6b 65 6e 69 7a  ts2\fts2_tokeniz
84e0: 65 72 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  er.c \.  $(TOP)\
84f0: 65 78 74 5c 66 74 73 32 5c 66 74 73 32 5f 74 6f  ext\fts2\fts2_to
8500: 6b 65 6e 69 7a 65 72 31 2e 63 0a 0a 23 20 45 78  kenizer1.c..# Ex
8510: 74 65 6e 73 69 6f 6e 20 73 6f 75 72 63 65 20 63  tension source c
8520: 6f 64 65 20 66 69 6c 65 73 2c 20 70 61 72 74 20  ode files, part 
8530: 32 2e 0a 23 0a 53 52 43 30 37 20 3d 20 5c 0a 20  2..#.SRC07 = \. 
8540: 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33   $(TOP)\ext\fts3
8550: 5c 66 74 73 33 2e 63 20 5c 0a 20 20 24 28 54 4f  \fts3.c \.  $(TO
8560: 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33  P)\ext\fts3\fts3
8570: 5f 61 75 78 2e 63 20 5c 0a 20 20 24 28 54 4f 50  _aux.c \.  $(TOP
8580: 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f  )\ext\fts3\fts3_
8590: 65 78 70 72 2e 63 20 5c 0a 20 20 24 28 54 4f 50  expr.c \.  $(TOP
85a0: 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f  )\ext\fts3\fts3_
85b0: 68 61 73 68 2e 63 20 5c 0a 20 20 24 28 54 4f 50  hash.c \.  $(TOP
85c0: 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f  )\ext\fts3\fts3_
85d0: 69 63 75 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  icu.c \.  $(TOP)
85e0: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 70  \ext\fts3\fts3_p
85f0: 6f 72 74 65 72 2e 63 20 5c 0a 20 20 24 28 54 4f  orter.c \.  $(TO
8600: 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33  P)\ext\fts3\fts3
8610: 5f 73 6e 69 70 70 65 74 2e 63 20 5c 0a 20 20 24  _snippet.c \.  $
8620: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66  (TOP)\ext\fts3\f
8630: 74 73 33 5f 74 6f 6b 65 6e 69 7a 65 72 2e 63 20  ts3_tokenizer.c 
8640: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66  \.  $(TOP)\ext\f
8650: 74 73 33 5c 66 74 73 33 5f 74 6f 6b 65 6e 69 7a  ts3\fts3_tokeniz
8660: 65 72 31 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  er1.c \.  $(TOP)
8670: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 74  \ext\fts3\fts3_t
8680: 6f 6b 65 6e 69 7a 65 5f 76 74 61 62 2e 63 20 5c  okenize_vtab.c \
8690: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
86a0: 73 33 5c 66 74 73 33 5f 75 6e 69 63 6f 64 65 2e  s3\fts3_unicode.
86b0: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74  c \.  $(TOP)\ext
86c0: 5c 66 74 73 33 5c 66 74 73 33 5f 75 6e 69 63 6f  \fts3\fts3_unico
86d0: 64 65 32 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  de2.c \.  $(TOP)
86e0: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 77  \ext\fts3\fts3_w
86f0: 72 69 74 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50  rite.c \.  $(TOP
8700: 29 5c 65 78 74 5c 69 63 75 5c 69 63 75 2e 63 20  )\ext\icu\icu.c 
8710: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 72  \.  $(TOP)\ext\r
8720: 74 72 65 65 5c 72 74 72 65 65 2e 63 20 5c 0a 20  tree\rtree.c \. 
8730: 20 24 28 54 4f 50 29 5c 65 78 74 5c 73 65 73 73   $(TOP)\ext\sess
8740: 69 6f 6e 5c 73 71 6c 69 74 65 33 73 65 73 73 69  ion\sqlite3sessi
8750: 6f 6e 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  on.c \.  $(TOP)\
8760: 65 78 74 5c 72 62 75 5c 73 71 6c 69 74 65 33 72  ext\rbu\sqlite3r
8770: 62 75 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  bu.c \.  $(TOP)\
8780: 65 78 74 5c 6d 69 73 63 5c 6a 73 6f 6e 31 2e 63  ext\misc\json1.c
8790: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c   \.  $(TOP)\ext\
87a0: 6d 69 73 63 5c 73 74 6d 74 2e 63 0a 0a 23 20 45  misc\stmt.c..# E
87b0: 78 74 65 6e 73 69 6f 6e 20 68 65 61 64 65 72 20  xtension header 
87c0: 66 69 6c 65 73 2c 20 70 61 72 74 20 31 2e 0a 23  files, part 1..#
87d0: 0a 53 52 43 30 38 20 3d 20 5c 0a 20 20 24 28 54  .SRC08 = \.  $(T
87e0: 4f 50 29 5c 65 78 74 5c 66 74 73 31 5c 66 74 73  OP)\ext\fts1\fts
87f0: 31 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  1.h \.  $(TOP)\e
8800: 78 74 5c 66 74 73 31 5c 66 74 73 31 5f 68 61 73  xt\fts1\fts1_has
8810: 68 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  h.h \.  $(TOP)\e
8820: 78 74 5c 66 74 73 31 5c 66 74 73 31 5f 74 6f 6b  xt\fts1\fts1_tok
8830: 65 6e 69 7a 65 72 2e 68 20 5c 0a 20 20 24 28 54  enizer.h \.  $(T
8840: 4f 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73  OP)\ext\fts2\fts
8850: 32 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  2.h \.  $(TOP)\e
8860: 78 74 5c 66 74 73 32 5c 66 74 73 32 5f 68 61 73  xt\fts2\fts2_has
8870: 68 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  h.h \.  $(TOP)\e
8880: 78 74 5c 66 74 73 32 5c 66 74 73 32 5f 74 6f 6b  xt\fts2\fts2_tok
8890: 65 6e 69 7a 65 72 2e 68 0a 0a 23 20 45 78 74 65  enizer.h..# Exte
88a0: 6e 73 69 6f 6e 20 68 65 61 64 65 72 20 66 69 6c  nsion header fil
88b0: 65 73 2c 20 70 61 72 74 20 32 2e 0a 23 0a 53 52  es, part 2..#.SR
88c0: 43 30 39 20 3d 20 5c 0a 20 20 24 28 54 4f 50 29  C09 = \.  $(TOP)
88d0: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 2e 68  \ext\fts3\fts3.h
88e0: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c   \.  $(TOP)\ext\
88f0: 66 74 73 33 5c 66 74 73 33 49 6e 74 2e 68 20 5c  fts3\fts3Int.h \
8900: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
8910: 73 33 5c 66 74 73 33 5f 68 61 73 68 2e 68 20 5c  s3\fts3_hash.h \
8920: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
8930: 73 33 5c 66 74 73 33 5f 74 6f 6b 65 6e 69 7a 65  s3\fts3_tokenize
8940: 72 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  r.h \.  $(TOP)\e
8950: 78 74 5c 69 63 75 5c 73 71 6c 69 74 65 69 63 75  xt\icu\sqliteicu
8960: 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .h \.  $(TOP)\ex
8970: 74 5c 72 74 72 65 65 5c 72 74 72 65 65 2e 68 20  t\rtree\rtree.h 
8980: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 72  \.  $(TOP)\ext\r
8990: 62 75 5c 73 71 6c 69 74 65 33 72 62 75 2e 68 20  bu\sqlite3rbu.h 
89a0: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 73  \.  $(TOP)\ext\s
89b0: 65 73 73 69 6f 6e 5c 73 71 6c 69 74 65 33 73 65  ession\sqlite3se
89c0: 73 73 69 6f 6e 2e 68 0a 0a 23 20 47 65 6e 65 72  ssion.h..# Gener
89d0: 61 74 65 64 20 73 6f 75 72 63 65 20 63 6f 64 65  ated source code
89e0: 20 66 69 6c 65 73 0a 23 0a 53 52 43 31 30 20 3d   files.#.SRC10 =
89f0: 20 5c 0a 20 20 6f 70 63 6f 64 65 73 2e 63 20 5c   \.  opcodes.c \
8a00: 0a 20 20 70 61 72 73 65 2e 63 0a 0a 23 20 47 65  .  parse.c..# Ge
8a10: 6e 65 72 61 74 65 64 20 68 65 61 64 65 72 20 66  nerated header f
8a20: 69 6c 65 73 0a 23 0a 53 52 43 31 31 20 3d 20 5c  iles.#.SRC11 = \
8a30: 0a 20 20 6b 65 79 77 6f 72 64 68 61 73 68 2e 68  .  keywordhash.h
8a40: 20 5c 0a 20 20 6f 70 63 6f 64 65 73 2e 68 20 5c   \.  opcodes.h \
8a50: 0a 20 20 70 61 72 73 65 2e 68 20 5c 0a 20 20 73  .  parse.h \.  s
8a60: 68 65 6c 6c 2e 63 20 5c 0a 20 20 24 28 53 51 4c  hell.c \.  $(SQL
8a70: 49 54 45 33 48 29 0a 0a 23 20 47 65 6e 65 72 61  ITE3H)..# Genera
8a80: 74 65 64 20 54 63 6c 20 68 65 61 64 65 72 20 66  ted Tcl header f
8a90: 69 6c 65 73 0a 23 0a 21 49 46 20 24 28 55 53 45  iles.#.!IF $(USE
8aa0: 5f 53 54 44 43 41 4c 4c 29 21 3d 30 20 7c 7c 20  _STDCALL)!=0 || 
8ab0: 24 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a  $(FOR_WIN10)!=0.
8ac0: 53 52 43 31 32 20 3d 20 5c 0a 20 20 24 28 53 51  SRC12 = \.  $(SQ
8ad0: 4c 49 54 45 54 43 4c 48 29 20 5c 0a 20 20 24 28  LITETCLH) \.  $(
8ae0: 53 51 4c 49 54 45 54 43 4c 44 45 43 4c 53 48 29  SQLITETCLDECLSH)
8af0: 0a 21 45 4c 53 45 0a 53 52 43 31 32 20 3d 0a 21  .!ELSE.SRC12 =.!
8b00: 45 4e 44 49 46 0a 0a 23 20 41 6c 6c 20 73 6f 75  ENDIF..# All sou
8b10: 72 63 65 20 63 6f 64 65 20 66 69 6c 65 73 2e 0a  rce code files..
8b20: 23 0a 53 52 43 20 3d 20 24 28 53 52 43 30 30 29  #.SRC = $(SRC00)
8b30: 20 24 28 53 52 43 30 31 29 20 24 28 53 52 43 30   $(SRC01) $(SRC0
8b40: 33 29 20 24 28 53 52 43 30 34 29 20 24 28 53 52  3) $(SRC04) $(SR
8b50: 43 30 35 29 20 24 28 53 52 43 30 36 29 20 24 28  C05) $(SRC06) $(
8b60: 53 52 43 30 37 29 20 24 28 53 52 43 30 38 29 20  SRC07) $(SRC08) 
8b70: 24 28 53 52 43 30 39 29 20 24 28 53 52 43 31 30  $(SRC09) $(SRC10
8b80: 29 20 24 28 53 52 43 31 31 29 0a 0a 23 20 53 6f  ) $(SRC11)..# So
8b90: 75 72 63 65 20 63 6f 64 65 20 74 6f 20 74 68 65  urce code to the
8ba0: 20 74 65 73 74 20 66 69 6c 65 73 2e 0a 23 0a 54   test files..#.T
8bb0: 45 53 54 53 52 43 20 3d 20 5c 0a 20 20 24 28 54  ESTSRC = \.  $(T
8bc0: 4f 50 29 5c 73 72 63 5c 74 65 73 74 31 2e 63 20  OP)\src\test1.c 
8bd0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74  \.  $(TOP)\src\t
8be0: 65 73 74 32 2e 63 20 5c 0a 20 20 24 28 54 4f 50  est2.c \.  $(TOP
8bf0: 29 5c 73 72 63 5c 74 65 73 74 33 2e 63 20 5c 0a  )\src\test3.c \.
8c00: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
8c10: 74 34 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  t4.c \.  $(TOP)\
8c20: 73 72 63 5c 74 65 73 74 35 2e 63 20 5c 0a 20 20  src\test5.c \.  
8c30: 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 36  $(TOP)\src\test6
8c40: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
8c50: 63 5c 74 65 73 74 37 2e 63 20 5c 0a 20 20 24 28  c\test7.c \.  $(
8c60: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 38 2e 63  TOP)\src\test8.c
8c70: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
8c80: 74 65 73 74 39 2e 63 20 5c 0a 20 20 24 28 54 4f  test9.c \.  $(TO
8c90: 50 29 5c 73 72 63 5c 74 65 73 74 5f 61 75 74 6f  P)\src\test_auto
8ca0: 65 78 74 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  ext.c \.  $(TOP)
8cb0: 5c 73 72 63 5c 74 65 73 74 5f 61 73 79 6e 63 2e  \src\test_async.
8cc0: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63  c \.  $(TOP)\src
8cd0: 5c 74 65 73 74 5f 62 61 63 6b 75 70 2e 63 20 5c  \test_backup.c \
8ce0: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65  .  $(TOP)\src\te
8cf0: 73 74 5f 62 65 73 74 69 6e 64 65 78 2e 63 20 5c  st_bestindex.c \
8d00: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65  .  $(TOP)\src\te
8d10: 73 74 5f 62 6c 6f 62 2e 63 20 5c 0a 20 20 24 28  st_blob.c \.  $(
8d20: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 62 74  TOP)\src\test_bt
8d30: 72 65 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  ree.c \.  $(TOP)
8d40: 5c 73 72 63 5c 74 65 73 74 5f 63 6f 6e 66 69 67  \src\test_config
8d50: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
8d60: 63 5c 74 65 73 74 5f 64 65 6c 65 74 65 2e 63 20  c\test_delete.c 
8d70: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74  \.  $(TOP)\src\t
8d80: 65 73 74 5f 64 65 6d 6f 76 66 73 2e 63 20 5c 0a  est_demovfs.c \.
8d90: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
8da0: 74 5f 64 65 76 73 79 6d 2e 63 20 5c 0a 20 20 24  t_devsym.c \.  $
8db0: 28 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 66  (TOP)\src\test_f
8dc0: 73 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  s.c \.  $(TOP)\s
8dd0: 72 63 5c 74 65 73 74 5f 66 75 6e 63 2e 63 20 5c  rc\test_func.c \
8de0: 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65  .  $(TOP)\src\te
8df0: 73 74 5f 68 65 78 69 6f 2e 63 20 5c 0a 20 20 24  st_hexio.c \.  $
8e00: 28 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 69  (TOP)\src\test_i
8e10: 6e 69 74 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  nit.c \.  $(TOP)
8e20: 5c 73 72 63 5c 74 65 73 74 5f 69 6e 74 61 72 72  \src\test_intarr
8e30: 61 79 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c  ay.c \.  $(TOP)\
8e40: 73 72 63 5c 74 65 73 74 5f 6a 6f 75 72 6e 61 6c  src\test_journal
8e50: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
8e60: 63 5c 74 65 73 74 5f 6d 61 6c 6c 6f 63 2e 63 20  c\test_malloc.c 
8e70: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74  \.  $(TOP)\src\t
8e80: 65 73 74 5f 6d 64 35 2e 63 20 5c 0a 20 20 24 28  est_md5.c \.  $(
8e90: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 6d 75  TOP)\src\test_mu
8ea0: 6c 74 69 70 6c 65 78 2e 63 20 5c 0a 20 20 24 28  ltiplex.c \.  $(
8eb0: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 6d 75  TOP)\src\test_mu
8ec0: 74 65 78 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  tex.c \.  $(TOP)
8ed0: 5c 73 72 63 5c 74 65 73 74 5f 6f 6e 65 66 69 6c  \src\test_onefil
8ee0: 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  e.c \.  $(TOP)\s
8ef0: 72 63 5c 74 65 73 74 5f 6f 73 69 6e 73 74 2e 63  rc\test_osinst.c
8f00: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c   \.  $(TOP)\src\
8f10: 74 65 73 74 5f 70 63 61 63 68 65 2e 63 20 5c 0a  test_pcache.c \.
8f20: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
8f30: 74 5f 71 75 6f 74 61 2e 63 20 5c 0a 20 20 24 28  t_quota.c \.  $(
8f40: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 72 74  TOP)\src\test_rt
8f50: 72 65 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  ree.c \.  $(TOP)
8f60: 5c 73 72 63 5c 74 65 73 74 5f 73 63 68 65 6d 61  \src\test_schema
8f70: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72  .c \.  $(TOP)\sr
8f80: 63 5c 74 65 73 74 5f 73 65 72 76 65 72 2e 63 20  c\test_server.c 
8f90: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74  \.  $(TOP)\src\t
8fa0: 65 73 74 5f 73 75 70 65 72 6c 6f 63 6b 2e 63 20  est_superlock.c 
8fb0: 5c 0a 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74  \.  $(TOP)\src\t
8fc0: 65 73 74 5f 73 79 73 63 61 6c 6c 2e 63 20 5c 0a  est_syscall.c \.
8fd0: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
8fe0: 74 5f 74 63 6c 73 68 2e 63 20 5c 0a 20 20 24 28  t_tclsh.c \.  $(
8ff0: 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f 74 63  TOP)\src\test_tc
9000: 6c 76 61 72 2e 63 20 5c 0a 20 20 24 28 54 4f 50  lvar.c \.  $(TOP
9010: 29 5c 73 72 63 5c 74 65 73 74 5f 74 68 72 65 61  )\src\test_threa
9020: 64 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 73  d.c \.  $(TOP)\s
9030: 72 63 5c 74 65 73 74 5f 76 66 73 2e 63 20 5c 0a  rc\test_vfs.c \.
9040: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
9050: 74 5f 77 69 6e 64 69 72 65 6e 74 2e 63 20 5c 0a  t_windirent.c \.
9060: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73    $(TOP)\src\tes
9070: 74 5f 77 73 64 2e 63 20 5c 0a 20 20 24 28 54 4f  t_wsd.c \.  $(TO
9080: 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33  P)\ext\fts3\fts3
9090: 5f 74 65 72 6d 2e 63 20 5c 0a 20 20 24 28 54 4f  _term.c \.  $(TO
90a0: 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33  P)\ext\fts3\fts3
90b0: 5f 74 65 73 74 2e 63 20 5c 0a 20 20 24 28 54 4f  _test.c \.  $(TO
90c0: 50 29 5c 65 78 74 5c 72 62 75 5c 74 65 73 74 5f  P)\ext\rbu\test_
90d0: 72 62 75 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  rbu.c \.  $(TOP)
90e0: 5c 65 78 74 5c 73 65 73 73 69 6f 6e 5c 74 65 73  \ext\session\tes
90f0: 74 5f 73 65 73 73 69 6f 6e 2e 63 0a 0a 23 20 53  t_session.c..# S
9100: 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b 65 64  tatically linked
9110: 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 23 0a 54   extensions..#.T
9120: 45 53 54 45 58 54 20 3d 20 5c 0a 20 20 24 28 54  ESTEXT = \.  $(T
9130: 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c 61 6d 61  OP)\ext\misc\ama
9140: 74 63 68 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  tch.c \.  $(TOP)
9150: 5c 65 78 74 5c 6d 69 73 63 5c 63 61 72 72 61 79  \ext\misc\carray
9160: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .c \.  $(TOP)\ex
9170: 74 5c 6d 69 73 63 5c 63 6c 6f 73 75 72 65 2e 63  t\misc\closure.c
9180: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c   \.  $(TOP)\ext\
9190: 6d 69 73 63 5c 63 73 76 2e 63 20 5c 0a 20 20 24  misc\csv.c \.  $
91a0: 28 54 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c 65  (TOP)\ext\misc\e
91b0: 76 61 6c 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  val.c \.  $(TOP)
91c0: 5c 65 78 74 5c 6d 69 73 63 5c 66 69 6c 65 69 6f  \ext\misc\fileio
91d0: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .c \.  $(TOP)\ex
91e0: 74 5c 6d 69 73 63 5c 66 75 7a 7a 65 72 2e 63 20  t\misc\fuzzer.c 
91f0: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66  \.  $(TOP)\ext\f
9200: 74 73 35 5c 66 74 73 35 5f 74 63 6c 2e 63 20 5c  ts5\fts5_tcl.c \
9210: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  .  $(TOP)\ext\ft
9220: 73 35 5c 66 74 73 35 5f 74 65 73 74 5f 6d 69 2e  s5\fts5_test_mi.
9230: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74  c \.  $(TOP)\ext
9240: 5c 66 74 73 35 5c 66 74 73 35 5f 74 65 73 74 5f  \fts5\fts5_test_
9250: 74 6f 6b 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  tok.c \.  $(TOP)
9260: 5c 65 78 74 5c 6d 69 73 63 5c 69 65 65 65 37 35  \ext\misc\ieee75
9270: 34 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  4.c \.  $(TOP)\e
9280: 78 74 5c 6d 69 73 63 5c 6d 6d 61 70 77 61 72 6d  xt\misc\mmapwarm
9290: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .c \.  $(TOP)\ex
92a0: 74 5c 6d 69 73 63 5c 6e 65 78 74 63 68 61 72 2e  t\misc\nextchar.
92b0: 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74  c \.  $(TOP)\ext
92c0: 5c 6d 69 73 63 5c 70 65 72 63 65 6e 74 69 6c 65  \misc\percentile
92d0: 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .c \.  $(TOP)\ex
92e0: 74 5c 6d 69 73 63 5c 72 65 67 65 78 70 2e 63 20  t\misc\regexp.c 
92f0: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 6d  \.  $(TOP)\ext\m
9300: 69 73 63 5c 72 65 6d 65 6d 62 65 72 2e 63 20 5c  isc\remember.c \
9310: 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 6d 69  .  $(TOP)\ext\mi
9320: 73 63 5c 73 65 72 69 65 73 2e 63 20 5c 0a 20 20  sc\series.c \.  
9330: 24 28 54 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c  $(TOP)\ext\misc\
9340: 73 70 65 6c 6c 66 69 78 2e 63 20 5c 0a 20 20 24  spellfix.c \.  $
9350: 28 54 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c 74  (TOP)\ext\misc\t
9360: 6f 74 79 70 65 2e 63 20 5c 0a 20 20 24 28 54 4f  otype.c \.  $(TO
9370: 50 29 5c 65 78 74 5c 6d 69 73 63 5c 75 6e 69 6f  P)\ext\misc\unio
9380: 6e 76 74 61 62 2e 63 20 5c 0a 20 20 24 28 54 4f  nvtab.c \.  $(TO
9390: 50 29 5c 65 78 74 5c 6d 69 73 63 5c 77 68 6f 6c  P)\ext\misc\whol
93a0: 65 6e 75 6d 62 65 72 2e 63 0a 0a 23 20 53 6f 75  enumber.c..# Sou
93b0: 72 63 65 20 63 6f 64 65 20 74 6f 20 74 68 65 20  rce code to the 
93c0: 6c 69 62 72 61 72 79 20 66 69 6c 65 73 20 6e 65  library files ne
93d0: 65 64 65 64 20 62 79 20 74 68 65 20 74 65 73 74  eded by the test
93e0: 20 66 69 78 74 75 72 65 0a 23 20 28 6e 6f 6e 2d   fixture.# (non-
93f0: 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 29 0a 23 0a  amalgamation).#.
9400: 54 45 53 54 53 52 43 32 20 3d 20 5c 0a 20 20 24  TESTSRC2 = \.  $
9410: 28 53 52 43 30 30 29 20 5c 0a 20 20 24 28 53 52  (SRC00) \.  $(SR
9420: 43 30 31 29 20 5c 0a 20 20 24 28 53 52 43 30 36  C01) \.  $(SRC06
9430: 29 20 5c 0a 20 20 24 28 53 52 43 30 37 29 20 5c  ) \.  $(SRC07) \
9440: 0a 20 20 24 28 53 52 43 31 30 29 20 5c 0a 20 20  .  $(SRC10) \.  
9450: 24 28 54 4f 50 29 5c 65 78 74 5c 61 73 79 6e 63  $(TOP)\ext\async
9460: 5c 73 71 6c 69 74 65 33 61 73 79 6e 63 2e 63 0a  \sqlite3async.c.
9470: 0a 23 20 48 65 61 64 65 72 20 66 69 6c 65 73 20  .# Header files 
9480: 75 73 65 64 20 62 79 20 61 6c 6c 20 6c 69 62 72  used by all libr
9490: 61 72 79 20 73 6f 75 72 63 65 20 66 69 6c 65 73  ary source files
94a0: 2e 0a 23 0a 48 44 52 20 3d 20 5c 0a 20 20 20 24  ..#.HDR = \.   $
94b0: 28 54 4f 50 29 5c 73 72 63 5c 62 74 72 65 65 2e  (TOP)\src\btree.
94c0: 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73 72  h \.   $(TOP)\sr
94d0: 63 5c 62 74 72 65 65 49 6e 74 2e 68 20 5c 0a 20  c\btreeInt.h \. 
94e0: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 68 61 73    $(TOP)\src\has
94f0: 68 2e 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c  h.h \.   $(TOP)\
9500: 73 72 63 5c 68 77 74 69 6d 65 2e 68 20 5c 0a 20  src\hwtime.h \. 
9510: 20 20 6b 65 79 77 6f 72 64 68 61 73 68 2e 68 20    keywordhash.h 
9520: 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73 72 63 5c  \.   $(TOP)\src\
9530: 6d 73 76 63 2e 68 20 5c 0a 20 20 20 24 28 54 4f  msvc.h \.   $(TO
9540: 50 29 5c 73 72 63 5c 6d 75 74 65 78 2e 68 20 5c  P)\src\mutex.h \
9550: 0a 20 20 20 6f 70 63 6f 64 65 73 2e 68 20 5c 0a  .   opcodes.h \.
9560: 20 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 6f 73     $(TOP)\src\os
9570: 2e 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73  .h \.   $(TOP)\s
9580: 72 63 5c 6f 73 5f 63 6f 6d 6d 6f 6e 2e 68 20 5c  rc\os_common.h \
9590: 0a 20 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 6f  .   $(TOP)\src\o
95a0: 73 5f 73 65 74 75 70 2e 68 20 5c 0a 20 20 20 24  s_setup.h \.   $
95b0: 28 54 4f 50 29 5c 73 72 63 5c 6f 73 5f 77 69 6e  (TOP)\src\os_win
95c0: 2e 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73  .h \.   $(TOP)\s
95d0: 72 63 5c 70 61 67 65 72 2e 68 20 5c 0a 20 20 20  rc\pager.h \.   
95e0: 24 28 54 4f 50 29 5c 73 72 63 5c 70 63 61 63 68  $(TOP)\src\pcach
95f0: 65 2e 68 20 5c 0a 20 20 20 70 61 72 73 65 2e 68  e.h \.   parse.h
9600: 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73 72 63   \.   $(TOP)\src
9610: 5c 70 72 61 67 6d 61 2e 68 20 5c 0a 20 20 20 24  \pragma.h \.   $
9620: 28 53 51 4c 49 54 45 33 48 29 20 5c 0a 20 20 20  (SQLITE3H) \.   
9630: 73 71 6c 69 74 65 33 65 78 74 2e 68 20 5c 0a 20  sqlite3ext.h \. 
9640: 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 73 71 6c    $(TOP)\src\sql
9650: 69 74 65 49 6e 74 2e 68 20 5c 0a 20 20 20 24 28  iteInt.h \.   $(
9660: 54 4f 50 29 5c 73 72 63 5c 73 71 6c 69 74 65 4c  TOP)\src\sqliteL
9670: 69 6d 69 74 2e 68 20 5c 0a 20 20 20 24 28 54 4f  imit.h \.   $(TO
9680: 50 29 5c 73 72 63 5c 76 64 62 65 2e 68 20 5c 0a  P)\src\vdbe.h \.
9690: 20 20 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64     $(TOP)\src\vd
96a0: 62 65 49 6e 74 2e 68 20 5c 0a 20 20 20 24 28 54  beInt.h \.   $(T
96b0: 4f 50 29 5c 73 72 63 5c 76 78 77 6f 72 6b 73 2e  OP)\src\vxworks.
96c0: 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 73 72  h \.   $(TOP)\sr
96d0: 63 5c 77 68 65 72 65 49 6e 74 2e 68 0a 0a 23 20  c\whereInt.h..# 
96e0: 48 65 61 64 65 72 20 66 69 6c 65 73 20 75 73 65  Header files use
96f0: 64 20 62 79 20 65 78 74 65 6e 73 69 6f 6e 73 0a  d by extensions.
9700: 23 0a 45 58 54 48 44 52 20 3d 20 24 28 45 58 54  #.EXTHDR = $(EXT
9710: 48 44 52 29 20 5c 0a 20 20 24 28 54 4f 50 29 5c  HDR) \.  $(TOP)\
9720: 65 78 74 5c 66 74 73 31 5c 66 74 73 31 2e 68 20  ext\fts1\fts1.h 
9730: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66  \.  $(TOP)\ext\f
9740: 74 73 31 5c 66 74 73 31 5f 68 61 73 68 2e 68 20  ts1\fts1_hash.h 
9750: 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66  \.  $(TOP)\ext\f
9760: 74 73 31 5c 66 74 73 31 5f 74 6f 6b 65 6e 69 7a  ts1\fts1_tokeniz
9770: 65 72 2e 68 0a 45 58 54 48 44 52 20 3d 20 24 28  er.h.EXTHDR = $(
9780: 45 58 54 48 44 52 29 20 5c 0a 20 20 24 28 54 4f  EXTHDR) \.  $(TO
9790: 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73 32  P)\ext\fts2\fts2
97a0: 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .h \.  $(TOP)\ex
97b0: 74 5c 66 74 73 32 5c 66 74 73 32 5f 68 61 73 68  t\fts2\fts2_hash
97c0: 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65 78  .h \.  $(TOP)\ex
97d0: 74 5c 66 74 73 32 5c 66 74 73 32 5f 74 6f 6b 65  t\fts2\fts2_toke
97e0: 6e 69 7a 65 72 2e 68 0a 45 58 54 48 44 52 20 3d  nizer.h.EXTHDR =
97f0: 20 24 28 45 58 54 48 44 52 29 20 5c 0a 20 20 24   $(EXTHDR) \.  $
9800: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66  (TOP)\ext\fts3\f
9810: 74 73 33 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29  ts3.h \.  $(TOP)
9820: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 49 6e  \ext\fts3\fts3In
9830: 74 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  t.h \.  $(TOP)\e
9840: 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 68 61 73  xt\fts3\fts3_has
9850: 68 2e 68 20 5c 0a 20 20 24 28 54 4f 50 29 5c 65  h.h \.  $(TOP)\e
9860: 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 74 6f 6b  xt\fts3\fts3_tok
9870: 65 6e 69 7a 65 72 2e 68 0a 45 58 54 48 44 52 20  enizer.h.EXTHDR 
9880: 3d 20 24 28 45 58 54 48 44 52 29 20 5c 0a 20 20  = $(EXTHDR) \.  
9890: 24 28 54 4f 50 29 5c 65 78 74 5c 72 74 72 65 65  $(TOP)\ext\rtree
98a0: 5c 72 74 72 65 65 2e 68 0a 45 58 54 48 44 52 20  \rtree.h.EXTHDR 
98b0: 3d 20 24 28 45 58 54 48 44 52 29 20 5c 0a 20 20  = $(EXTHDR) \.  
98c0: 24 28 54 4f 50 29 5c 65 78 74 5c 69 63 75 5c 73  $(TOP)\ext\icu\s
98d0: 71 6c 69 74 65 69 63 75 2e 68 0a 45 58 54 48 44  qliteicu.h.EXTHD
98e0: 52 20 3d 20 24 28 45 58 54 48 44 52 29 20 5c 0a  R = $(EXTHDR) \.
98f0: 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 72 74 72    $(TOP)\ext\rtr
9900: 65 65 5c 73 71 6c 69 74 65 33 72 74 72 65 65 2e  ee\sqlite3rtree.
9910: 68 0a 45 58 54 48 44 52 20 3d 20 24 28 45 58 54  h.EXTHDR = $(EXT
9920: 48 44 52 29 20 5c 0a 20 20 24 28 54 4f 50 29 5c  HDR) \.  $(TOP)\
9930: 65 78 74 5c 73 65 73 73 69 6f 6e 5c 73 71 6c 69  ext\session\sqli
9940: 74 65 33 73 65 73 73 69 6f 6e 2e 68 0a 0a 23 20  te3session.h..# 
9950: 65 78 65 63 75 74 61 62 6c 65 73 20 6e 65 65 64  executables need
9960: 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67 0a 23  ed for testing.#
9970: 0a 54 45 53 54 50 52 4f 47 53 20 3d 20 5c 0a 20  .TESTPROGS = \. 
9980: 20 74 65 73 74 66 69 78 74 75 72 65 2e 65 78 65   testfixture.exe
9990: 20 5c 0a 20 20 24 28 53 51 4c 49 54 45 33 45 58   \.  $(SQLITE3EX
99a0: 45 29 20 5c 0a 20 20 73 71 6c 69 74 65 33 5f 61  E) \.  sqlite3_a
99b0: 6e 61 6c 79 7a 65 72 2e 65 78 65 20 5c 0a 20 20  nalyzer.exe \.  
99c0: 73 71 6c 69 74 65 33 5f 63 68 65 63 6b 65 72 2e  sqlite3_checker.
99d0: 65 78 65 20 5c 0a 20 20 73 71 6c 64 69 66 66 2e  exe \.  sqldiff.
99e0: 65 78 65 20 5c 0a 20 20 64 62 68 61 73 68 2e 65  exe \.  dbhash.e
99f0: 78 65 0a 0a 23 20 44 61 74 61 62 61 73 65 73 20  xe..# Databases 
9a00: 63 6f 6e 74 61 69 6e 69 6e 67 20 66 75 7a 7a 65  containing fuzze
9a10: 72 20 74 65 73 74 20 63 61 73 65 73 0a 23 0a 46  r test cases.#.F
9a20: 55 5a 5a 44 41 54 41 20 3d 20 5c 0a 20 20 24 28  UZZDATA = \.  $(
9a30: 54 4f 50 29 5c 74 65 73 74 5c 66 75 7a 7a 64 61  TOP)\test\fuzzda
9a40: 74 61 31 2e 64 62 20 5c 0a 20 20 24 28 54 4f 50  ta1.db \.  $(TOP
9a50: 29 5c 74 65 73 74 5c 66 75 7a 7a 64 61 74 61 32  )\test\fuzzdata2
9a60: 2e 64 62 20 5c 0a 20 20 24 28 54 4f 50 29 5c 74  .db \.  $(TOP)\t
9a70: 65 73 74 5c 66 75 7a 7a 64 61 74 61 33 2e 64 62  est\fuzzdata3.db
9a80: 20 5c 0a 20 20 24 28 54 4f 50 29 5c 74 65 73 74   \.  $(TOP)\test
9a90: 5c 66 75 7a 7a 64 61 74 61 34 2e 64 62 20 5c 0a  \fuzzdata4.db \.
9aa0: 20 20 24 28 54 4f 50 29 5c 74 65 73 74 5c 66 75    $(TOP)\test\fu
9ab0: 7a 7a 64 61 74 61 35 2e 64 62 0a 23 20 3c 3c 2f  zzdata5.db.# <</
9ac0: 6d 61 72 6b 3e 3e 0a 0a 23 20 41 64 64 69 74 69  mark>>..# Additi
9ad0: 6f 6e 61 6c 20 63 6f 6d 70 69 6c 65 72 20 6f 70  onal compiler op
9ae0: 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 73 68  tions for the sh
9af0: 65 6c 6c 2e 20 20 54 68 65 73 65 20 61 72 65 20  ell.  These are 
9b00: 6f 6e 6c 79 20 65 66 66 65 63 74 69 76 65 0a 23  only effective.#
9b10: 20 77 68 65 6e 20 74 68 65 20 73 68 65 6c 6c 20   when the shell 
9b20: 69 73 20 6e 6f 74 20 62 65 69 6e 67 20 64 79 6e  is not being dyn
9b30: 61 6d 69 63 61 6c 6c 79 20 6c 69 6e 6b 65 64 2e  amically linked.
9b40: 0a 23 0a 21 49 46 20 24 28 44 59 4e 41 4d 49 43  .#.!IF $(DYNAMIC
9b50: 5f 53 48 45 4c 4c 29 3d 3d 30 20 26 26 20 24 28  _SHELL)==0 && $(
9b60: 46 4f 52 5f 57 49 4e 31 30 29 3d 3d 30 0a 53 48  FOR_WIN10)==0.SH
9b70: 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ELL_COMPILE_OPTS
9b80: 20 3d 20 24 28 53 48 45 4c 4c 5f 43 4f 4d 50 49   = $(SHELL_COMPI
9b90: 4c 45 5f 4f 50 54 53 29 20 2d 44 53 51 4c 49 54  LE_OPTS) -DSQLIT
9ba0: 45 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 31 20 2d  E_ENABLE_JSON1 -
9bb0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
9bc0: 54 53 34 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  TS4 -DSQLITE_ENA
9bd0: 42 4c 45 5f 45 58 50 4c 41 49 4e 5f 43 4f 4d 4d  BLE_EXPLAIN_COMM
9be0: 45 4e 54 53 20 2d 44 53 51 4c 49 54 45 5f 45 4e  ENTS -DSQLITE_EN
9bf0: 41 42 4c 45 5f 53 54 4d 54 56 54 41 42 0a 53 48  ABLE_STMTVTAB.SH
9c00: 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ELL_COMPILE_OPTS
9c10: 20 3d 20 24 28 53 48 45 4c 4c 5f 43 4f 4d 50 49   = $(SHELL_COMPI
9c20: 4c 45 5f 4f 50 54 53 29 20 2d 44 53 51 4c 49 54  LE_OPTS) -DSQLIT
9c30: 45 5f 45 4e 41 42 4c 45 5f 44 42 50 41 47 45 5f  E_ENABLE_DBPAGE_
9c40: 56 54 41 42 20 2d 44 53 51 4c 49 54 45 5f 45 4e  VTAB -DSQLITE_EN
9c50: 41 42 4c 45 5f 44 42 53 54 41 54 5f 56 54 41 42  ABLE_DBSTAT_VTAB
9c60: 0a 21 45 4e 44 49 46 0a 0a 23 20 3c 3c 6d 61 72  .!ENDIF..# <<mar
9c70: 6b 3e 3e 0a 23 20 45 78 74 72 61 20 63 6f 6d 70  k>>.# Extra comp
9c80: 69 6c 65 72 20 6f 70 74 69 6f 6e 73 20 66 6f 72  iler options for
9c90: 20 76 61 72 69 6f 75 73 20 74 65 73 74 20 74 6f   various test to
9ca0: 6f 6c 73 2e 0a 23 0a 4d 50 54 45 53 54 45 52 5f  ols..#.MPTESTER_
9cb0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 20 3d 20 2d  COMPILE_OPTS = -
9cc0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4a  DSQLITE_ENABLE_J
9cd0: 53 4f 4e 31 20 2d 44 53 51 4c 49 54 45 5f 45 4e  SON1 -DSQLITE_EN
9ce0: 41 42 4c 45 5f 46 54 53 35 0a 46 55 5a 5a 45 52  ABLE_FTS5.FUZZER
9cf0: 53 48 45 4c 4c 5f 43 4f 4d 50 49 4c 45 5f 4f 50  SHELL_COMPILE_OP
9d00: 54 53 20 3d 20 2d 44 53 51 4c 49 54 45 5f 45 4e  TS = -DSQLITE_EN
9d10: 41 42 4c 45 5f 4a 53 4f 4e 31 0a 46 55 5a 5a 43  ABLE_JSON1.FUZZC
9d20: 48 45 43 4b 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  HECK_COMPILE_OPT
9d30: 53 20 3d 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  S = -DSQLITE_ENA
9d40: 42 4c 45 5f 4a 53 4f 4e 31 20 2d 44 53 51 4c 49  BLE_JSON1 -DSQLI
9d50: 54 45 5f 45 4e 41 42 4c 45 5f 4d 45 4d 53 59 53  TE_ENABLE_MEMSYS
9d60: 35 20 2d 44 53 51 4c 49 54 45 5f 4f 53 53 5f 46  5 -DSQLITE_OSS_F
9d70: 55 5a 5a 20 2d 44 53 51 4c 49 54 45 5f 4d 41 58  UZZ -DSQLITE_MAX
9d80: 5f 4d 45 4d 4f 52 59 3d 35 30 30 30 30 30 30 30  _MEMORY=50000000
9d90: 0a 46 55 5a 5a 43 48 45 43 4b 5f 53 52 43 20 3d  .FUZZCHECK_SRC =
9da0: 20 24 28 54 4f 50 29 5c 74 65 73 74 5c 66 75 7a   $(TOP)\test\fuz
9db0: 7a 63 68 65 63 6b 2e 63 20 24 28 54 4f 50 29 5c  zcheck.c $(TOP)\
9dc0: 74 65 73 74 5c 6f 73 73 66 75 7a 7a 2e 63 0a 4f  test\ossfuzz.c.O
9dd0: 53 53 53 48 45 4c 4c 5f 53 52 43 20 3d 20 24 28  SSSHELL_SRC = $(
9de0: 54 4f 50 29 5c 74 65 73 74 5c 6f 73 73 73 68 65  TOP)\test\ossshe
9df0: 6c 6c 2e 63 20 24 28 54 4f 50 29 5c 74 65 73 74  ll.c $(TOP)\test
9e00: 5c 6f 73 73 66 75 7a 7a 2e 63 0a 44 42 46 55 5a  \ossfuzz.c.DBFUZ
9e10: 5a 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 20 3d  Z_COMPILE_OPTS =
9e20: 20 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44   -DSQLITE_THREAD
9e30: 53 41 46 45 3d 30 20 2d 44 53 51 4c 49 54 45 5f  SAFE=0 -DSQLITE_
9e40: 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e 53  OMIT_LOAD_EXTENS
9e50: 49 4f 4e 0a 4b 56 5f 43 4f 4d 50 49 4c 45 5f 4f  ION.KV_COMPILE_O
9e60: 50 54 53 20 3d 20 2d 44 53 51 4c 49 54 45 5f 54  PTS = -DSQLITE_T
9e70: 48 52 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51  HREADSAFE=0 -DSQ
9e80: 4c 49 54 45 5f 44 49 52 45 43 54 5f 4f 56 45 52  LITE_DIRECT_OVER
9e90: 46 4c 4f 57 5f 52 45 41 44 0a 44 42 53 45 4c 46  FLOW_READ.DBSELF
9ea0: 54 45 53 54 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  TEST_COMPILE_OPT
9eb0: 53 20 3d 20 2d 44 53 51 4c 49 54 45 5f 54 48 52  S = -DSQLITE_THR
9ec0: 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51 4c 49  EADSAFE=0 -DSQLI
9ed0: 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54  TE_OMIT_LOAD_EXT
9ee0: 45 4e 53 49 4f 4e 20 2d 44 53 51 4c 49 54 45 5f  ENSION -DSQLITE_
9ef0: 45 4e 41 42 4c 45 5f 52 54 52 45 45 20 2d 44 53  ENABLE_RTREE -DS
9f00: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53  QLITE_ENABLE_FTS
9f10: 34 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c  4 -DSQLITE_ENABL
9f20: 45 5f 46 54 53 35 0a 53 54 5f 43 4f 4d 50 49 4c  E_FTS5.ST_COMPIL
9f30: 45 5f 4f 50 54 53 20 3d 20 2d 44 53 51 4c 49 54  E_OPTS = -DSQLIT
9f40: 45 5f 54 48 52 45 41 44 53 41 46 45 3d 30 0a 0a  E_THREADSAFE=0..
9f50: 23 20 53 74 61 6e 64 61 72 64 20 6f 70 74 69 6f  # Standard optio
9f60: 6e 73 20 74 6f 20 74 65 73 74 66 69 78 74 75 72  ns to testfixtur
9f70: 65 2e 0a 23 0a 54 45 53 54 4f 50 54 53 20 3d 20  e..#.TESTOPTS = 
9f80: 2d 2d 76 65 72 62 6f 73 65 3d 66 69 6c 65 20 2d  --verbose=file -
9f90: 2d 6f 75 74 70 75 74 3d 74 65 73 74 2d 6f 75 74  -output=test-out
9fa0: 2e 74 78 74 0a 0a 23 20 45 78 74 72 61 20 74 61  .txt..# Extra ta
9fb0: 72 67 65 74 73 20 66 6f 72 20 74 68 65 20 22 61  rgets for the "a
9fc0: 6c 6c 22 20 74 61 72 67 65 74 20 74 68 61 74 20  ll" target that 
9fd0: 72 65 71 75 69 72 65 20 54 63 6c 2e 0a 23 0a 21  require Tcl..#.!
9fe0: 49 46 20 24 28 4e 4f 5f 54 43 4c 29 3d 3d 30 0a  IF $(NO_TCL)==0.
9ff0: 41 4c 4c 5f 54 43 4c 5f 54 41 52 47 45 54 53 20  ALL_TCL_TARGETS 
a000: 3d 20 6c 69 62 74 63 6c 73 71 6c 69 74 65 33 2e  = libtclsqlite3.
a010: 6c 69 62 0a 21 45 4c 53 45 0a 41 4c 4c 5f 54 43  lib.!ELSE.ALL_TC
a020: 4c 5f 54 41 52 47 45 54 53 20 3d 0a 21 45 4e 44  L_TARGETS =.!END
a030: 49 46 0a 23 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a  IF.# <</mark>>..
a040: 23 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65  # This is the de
a050: 66 61 75 6c 74 20 4d 61 6b 65 66 69 6c 65 20 74  fault Makefile t
a060: 61 72 67 65 74 2e 20 20 54 68 65 20 6f 62 6a 65  arget.  The obje
a070: 63 74 73 20 6c 69 73 74 65 64 20 68 65 72 65 0a  cts listed here.
a080: 23 20 61 72 65 20 77 68 61 74 20 67 65 74 20 62  # are what get b
a090: 75 69 6c 64 20 77 68 65 6e 20 79 6f 75 20 74 79  uild when you ty
a0a0: 70 65 20 6a 75 73 74 20 22 6d 61 6b 65 22 20 77  pe just "make" w
a0b0: 69 74 68 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73  ith no arguments
a0c0: 2e 0a 23 0a 61 6c 6c 3a 09 64 6c 6c 20 6c 69 62  ..#.all:.dll lib
a0d0: 73 71 6c 69 74 65 33 2e 6c 69 62 20 73 68 65 6c  sqlite3.lib shel
a0e0: 6c 20 24 28 41 4c 4c 5f 54 43 4c 5f 54 41 52 47  l $(ALL_TCL_TARG
a0f0: 45 54 53 29 0a 0a 23 20 44 79 6e 61 6d 69 63 20  ETS)..# Dynamic 
a100: 6c 69 6e 6b 20 6c 69 62 72 61 72 79 20 73 65 63  link library sec
a110: 74 69 6f 6e 2e 0a 23 0a 64 6c 6c 3a 09 24 28 53  tion..#.dll:.$(S
a120: 51 4c 49 54 45 33 44 4c 4c 29 0a 0a 23 20 53 68  QLITE3DLL)..# Sh
a130: 65 6c 6c 20 65 78 65 63 75 74 61 62 6c 65 2e 0a  ell executable..
a140: 23 0a 73 68 65 6c 6c 3a 09 24 28 53 51 4c 49 54  #.shell:.$(SQLIT
a150: 45 33 45 58 45 29 0a 0a 23 20 3c 3c 6d 61 72 6b  E3EXE)..# <<mark
a160: 3e 3e 0a 6c 69 62 73 71 6c 69 74 65 33 2e 6c 69  >>.libsqlite3.li
a170: 62 3a 09 24 28 4c 49 42 4f 42 4a 29 0a 09 24 28  b:.$(LIBOBJ)..$(
a180: 4c 54 4c 49 42 29 20 24 28 4c 54 4c 49 42 4f 50  LTLIB) $(LTLIBOP
a190: 54 53 29 20 2f 4f 55 54 3a 24 40 20 24 28 4c 49  TS) /OUT:$@ $(LI
a1a0: 42 4f 42 4a 29 20 24 28 54 4c 49 42 53 29 0a 0a  BOBJ) $(TLIBS)..
a1b0: 6c 69 62 74 63 6c 73 71 6c 69 74 65 33 2e 6c 69  libtclsqlite3.li
a1c0: 62 3a 09 74 63 6c 73 71 6c 69 74 65 2e 6c 6f 20  b:.tclsqlite.lo 
a1d0: 6c 69 62 73 71 6c 69 74 65 33 2e 6c 69 62 0a 09  libsqlite3.lib..
a1e0: 24 28 4c 54 4c 49 42 29 20 24 28 4c 54 4c 49 42  $(LTLIB) $(LTLIB
a1f0: 4f 50 54 53 29 20 24 28 4c 54 4c 49 42 50 41 54  OPTS) $(LTLIBPAT
a200: 48 53 29 20 2f 4f 55 54 3a 24 40 20 74 63 6c 73  HS) /OUT:$@ tcls
a210: 71 6c 69 74 65 2e 6c 6f 20 6c 69 62 73 71 6c 69  qlite.lo libsqli
a220: 74 65 33 2e 6c 69 62 20 24 28 4c 49 42 54 43 4c  te3.lib $(LIBTCL
a230: 53 54 55 42 29 20 24 28 54 4c 49 42 53 29 0a 23  STUB) $(TLIBS).#
a240: 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a 24 28 53 51   <</mark>>..$(SQ
a250: 4c 49 54 45 33 44 4c 4c 29 3a 09 24 28 4c 49 42  LITE3DLL):.$(LIB
a260: 4f 42 4a 29 20 24 28 4c 49 42 52 45 53 4f 42 4a  OBJ) $(LIBRESOBJ
a270: 53 29 20 24 28 43 4f 52 45 5f 4c 49 4e 4b 5f 44  S) $(CORE_LINK_D
a280: 45 50 29 0a 09 24 28 4c 44 29 20 24 28 4c 44 46  EP)..$(LD) $(LDF
a290: 4c 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50  LAGS) $(LTLINKOP
a2a0: 54 53 29 20 24 28 4c 54 4c 49 42 50 41 54 48 53  TS) $(LTLIBPATHS
a2b0: 29 20 2f 44 4c 4c 20 24 28 43 4f 52 45 5f 4c 49  ) /DLL $(CORE_LI
a2c0: 4e 4b 5f 4f 50 54 53 29 20 2f 4f 55 54 3a 24 40  NK_OPTS) /OUT:$@
a2d0: 20 24 28 4c 49 42 4f 42 4a 29 20 24 28 4c 49 42   $(LIBOBJ) $(LIB
a2e0: 52 45 53 4f 42 4a 53 29 20 24 28 4c 54 4c 49 42  RESOBJS) $(LTLIB
a2f0: 53 29 20 24 28 54 4c 49 42 53 29 0a 0a 23 20 3c  S) $(TLIBS)..# <
a300: 3c 62 6c 6f 63 6b 32 3e 3e 0a 73 71 6c 69 74 65  <block2>>.sqlite
a310: 33 2e 64 65 66 3a 09 6c 69 62 73 71 6c 69 74 65  3.def:.libsqlite
a320: 33 2e 6c 69 62 0a 09 65 63 68 6f 20 45 58 50 4f  3.lib..echo EXPO
a330: 52 54 53 20 3e 20 73 71 6c 69 74 65 33 2e 64 65  RTS > sqlite3.de
a340: 66 0a 09 64 75 6d 70 62 69 6e 20 2f 61 6c 6c 20  f..dumpbin /all 
a350: 6c 69 62 73 71 6c 69 74 65 33 2e 6c 69 62 20 5c  libsqlite3.lib \
a360: 0a 09 09 7c 20 24 28 54 43 4c 53 48 5f 43 4d 44  ...| $(TCLSH_CMD
a370: 29 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 72 65  ) $(TOP)\tool\re
a380: 70 6c 61 63 65 2e 74 63 6c 20 69 6e 63 6c 75 64  place.tcl includ
a390: 65 20 22 5e 5c 73 2b 31 20 5f 3f 28 73 71 6c 69  e "^\s+1 _?(sqli
a3a0: 74 65 33 28 3f 3a 73 65 73 73 69 6f 6e 7c 63 68  te3(?:session|ch
a3b0: 61 6e 67 65 73 65 74 7c 63 68 61 6e 67 65 67 72  angeset|changegr
a3c0: 6f 75 70 29 3f 5f 5b 5e 40 5d 2a 29 28 3f 3a 40  oup)?_[^@]*)(?:@
a3d0: 5c 64 2b 29 3f 24 24 22 20 5c 31 20 5c 0a 09 09  \d+)?$$" \1 \...
a3e0: 7c 20 73 6f 72 74 20 3e 3e 20 73 71 6c 69 74 65  | sort >> sqlite
a3f0: 33 2e 64 65 66 0a 23 20 3c 3c 2f 62 6c 6f 63 6b  3.def.# <</block
a400: 32 3e 3e 0a 0a 24 28 53 51 4c 49 54 45 33 45 58  2>>..$(SQLITE3EX
a410: 45 29 3a 09 73 68 65 6c 6c 2e 63 20 24 28 53 48  E):.shell.c $(SH
a420: 45 4c 4c 5f 43 4f 52 45 5f 44 45 50 29 20 24 28  ELL_CORE_DEP) $(
a430: 4c 49 42 52 45 53 4f 42 4a 53 29 20 24 28 53 48  LIBRESOBJS) $(SH
a440: 45 4c 4c 5f 43 4f 52 45 5f 53 52 43 29 20 24 28  ELL_CORE_SRC) $(
a450: 53 51 4c 49 54 45 33 48 29 0a 09 24 28 4c 54 4c  SQLITE3H)..$(LTL
a460: 49 4e 4b 29 20 24 28 53 48 45 4c 4c 5f 43 4f 4d  INK) $(SHELL_COM
a470: 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 52 45 41  PILE_OPTS) $(REA
a480: 44 4c 49 4e 45 5f 46 4c 41 47 53 29 20 73 68 65  DLINE_FLAGS) she
a490: 6c 6c 2e 63 20 24 28 53 48 45 4c 4c 5f 43 4f 52  ll.c $(SHELL_COR
a4a0: 45 5f 53 52 43 29 20 5c 0a 09 09 2f 6c 69 6e 6b  E_SRC) \.../link
a4b0: 20 24 28 53 51 4c 49 54 45 33 45 58 45 50 44 42   $(SQLITE3EXEPDB
a4c0: 29 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c  ) $(LDFLAGS) $(L
a4d0: 54 4c 49 4e 4b 4f 50 54 53 29 20 24 28 53 48 45  TLINKOPTS) $(SHE
a4e0: 4c 4c 5f 4c 49 4e 4b 5f 4f 50 54 53 29 20 24 28  LL_LINK_OPTS) $(
a4f0: 4c 54 4c 49 42 50 41 54 48 53 29 20 24 28 4c 49  LTLIBPATHS) $(LI
a500: 42 52 45 53 4f 42 4a 53 29 20 24 28 4c 49 42 52  BRESOBJS) $(LIBR
a510: 45 41 44 4c 49 4e 45 29 20 24 28 4c 54 4c 49 42  EADLINE) $(LTLIB
a520: 53 29 20 24 28 54 4c 49 42 53 29 0a 0a 23 20 3c  S) $(TLIBS)..# <
a530: 3c 6d 61 72 6b 3e 3e 0a 73 71 6c 64 69 66 66 2e  <mark>>.sqldiff.
a540: 65 78 65 3a 09 24 28 54 4f 50 29 5c 74 6f 6f 6c  exe:.$(TOP)\tool
a550: 5c 73 71 6c 64 69 66 66 2e 63 20 24 28 53 51 4c  \sqldiff.c $(SQL
a560: 49 54 45 33 43 29 20 24 28 53 51 4c 49 54 45 33  ITE3C) $(SQLITE3
a570: 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28  H)..$(LTLINK) $(
a580: 4e 4f 5f 57 41 52 4e 29 20 24 28 54 4f 50 29 5c  NO_WARN) $(TOP)\
a590: 74 6f 6f 6c 5c 73 71 6c 64 69 66 66 2e 63 20 24  tool\sqldiff.c $
a5a0: 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b  (SQLITE3C) /link
a5b0: 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54   $(LDFLAGS) $(LT
a5c0: 4c 49 4e 4b 4f 50 54 53 29 0a 0a 64 62 68 61 73  LINKOPTS)..dbhas
a5d0: 68 2e 65 78 65 3a 09 24 28 54 4f 50 29 5c 74 6f  h.exe:.$(TOP)\to
a5e0: 6f 6c 5c 64 62 68 61 73 68 2e 63 20 24 28 53 51  ol\dbhash.c $(SQ
a5f0: 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49 54 45  LITE3C) $(SQLITE
a600: 33 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24  3H)..$(LTLINK) $
a610: 28 4e 4f 5f 57 41 52 4e 29 20 24 28 54 4f 50 29  (NO_WARN) $(TOP)
a620: 5c 74 6f 6f 6c 5c 64 62 68 61 73 68 2e 63 20 24  \tool\dbhash.c $
a630: 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b  (SQLITE3C) /link
a640: 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54   $(LDFLAGS) $(LT
a650: 4c 49 4e 4b 4f 50 54 53 29 0a 0a 73 63 72 75 62  LINKOPTS)..scrub
a660: 2e 65 78 65 3a 09 24 28 54 4f 50 29 5c 65 78 74  .exe:.$(TOP)\ext
a670: 5c 6d 69 73 63 5c 73 63 72 75 62 2e 63 20 24 28  \misc\scrub.c $(
a680: 53 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49  SQLITE3C) $(SQLI
a690: 54 45 33 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29  TE3H)..$(LTLINK)
a6a0: 20 24 28 4e 4f 5f 57 41 52 4e 29 20 24 28 54 4f   $(NO_WARN) $(TO
a6b0: 50 29 5c 65 78 74 5c 6d 69 73 63 5c 73 63 72 75  P)\ext\misc\scru
a6c0: 62 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  b.c $(SQLITE3C) 
a6d0: 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29  /link $(LDFLAGS)
a6e0: 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a   $(LTLINKOPTS)..
a6f0: 73 72 63 63 6b 31 2e 65 78 65 3a 09 24 28 54 4f  srcck1.exe:.$(TO
a700: 50 29 5c 74 6f 6f 6c 5c 73 72 63 63 6b 31 2e 63  P)\tool\srcck1.c
a710: 0a 09 24 28 42 43 43 29 20 24 28 4e 4f 5f 57 41  ..$(BCC) $(NO_WA
a720: 52 4e 29 20 2d 46 65 24 40 20 24 28 54 4f 50 29  RN) -Fe$@ $(TOP)
a730: 5c 74 6f 6f 6c 5c 73 72 63 63 6b 31 2e 63 0a 0a  \tool\srcck1.c..
a740: 73 6f 75 72 63 65 74 65 73 74 3a 09 73 72 63 63  sourcetest:.srcc
a750: 6b 31 2e 65 78 65 20 73 71 6c 69 74 65 33 2e 63  k1.exe sqlite3.c
a760: 0a 09 73 72 63 63 6b 31 2e 65 78 65 20 73 71 6c  ..srcck1.exe sql
a770: 69 74 65 33 2e 63 0a 0a 66 75 7a 7a 65 72 73 68  ite3.c..fuzzersh
a780: 65 6c 6c 2e 65 78 65 3a 09 24 28 54 4f 50 29 5c  ell.exe:.$(TOP)\
a790: 74 6f 6f 6c 5c 66 75 7a 7a 65 72 73 68 65 6c 6c  tool\fuzzershell
a7a0: 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20 24  .c $(SQLITE3C) $
a7b0: 28 53 51 4c 49 54 45 33 48 29 0a 09 24 28 4c 54  (SQLITE3H)..$(LT
a7c0: 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e 29  LINK) $(NO_WARN)
a7d0: 20 24 28 46 55 5a 5a 45 52 53 48 45 4c 4c 5f 43   $(FUZZERSHELL_C
a7e0: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 54  OMPILE_OPTS) $(T
a7f0: 4f 50 29 5c 74 6f 6f 6c 5c 66 75 7a 7a 65 72 73  OP)\tool\fuzzers
a800: 68 65 6c 6c 2e 63 20 24 28 53 51 4c 49 54 45 33  hell.c $(SQLITE3
a810: 43 29 20 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41  C) /link $(LDFLA
a820: 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53  GS) $(LTLINKOPTS
a830: 29 0a 0a 64 62 66 75 7a 7a 2e 65 78 65 3a 09 24  )..dbfuzz.exe:.$
a840: 28 54 4f 50 29 5c 74 65 73 74 5c 64 62 66 75 7a  (TOP)\test\dbfuz
a850: 7a 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  z.c $(SQLITE3C) 
a860: 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24 28 4c  $(SQLITE3H)..$(L
a870: 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e  TLINK) $(NO_WARN
a880: 29 20 24 28 44 42 46 55 5a 5a 5f 43 4f 4d 50 49  ) $(DBFUZZ_COMPI
a890: 4c 45 5f 4f 50 54 53 29 20 24 28 54 4f 50 29 5c  LE_OPTS) $(TOP)\
a8a0: 74 65 73 74 5c 64 62 66 75 7a 7a 2e 63 20 24 28  test\dbfuzz.c $(
a8b0: 53 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b 20  SQLITE3C) /link 
a8c0: 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54 4c  $(LDFLAGS) $(LTL
a8d0: 49 4e 4b 4f 50 54 53 29 0a 0a 66 75 7a 7a 63 68  INKOPTS)..fuzzch
a8e0: 65 63 6b 2e 65 78 65 3a 09 24 28 46 55 5a 5a 43  eck.exe:.$(FUZZC
a8f0: 48 45 43 4b 5f 53 52 43 29 20 24 28 53 51 4c 49  HECK_SRC) $(SQLI
a900: 54 45 33 43 29 20 24 28 53 51 4c 49 54 45 33 48  TE3C) $(SQLITE3H
a910: 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e  )..$(LTLINK) $(N
a920: 4f 5f 57 41 52 4e 29 20 24 28 46 55 5a 5a 43 48  O_WARN) $(FUZZCH
a930: 45 43 4b 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ECK_COMPILE_OPTS
a940: 29 20 24 28 46 55 5a 5a 43 48 45 43 4b 5f 53 52  ) $(FUZZCHECK_SR
a950: 43 29 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f  C) $(SQLITE3C) /
a960: 6c 69 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20  link $(LDFLAGS) 
a970: 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 6f  $(LTLINKOPTS)..o
a980: 73 73 73 68 65 6c 6c 2e 65 78 65 3a 09 24 28 4f  ssshell.exe:.$(O
a990: 53 53 53 48 45 4c 4c 5f 53 52 43 29 20 24 28 53  SSSHELL_SRC) $(S
a9a0: 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49 54  QLITE3C) $(SQLIT
a9b0: 45 33 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20  E3H)..$(LTLINK) 
a9c0: 24 28 4e 4f 5f 57 41 52 4e 29 20 24 28 46 55 5a  $(NO_WARN) $(FUZ
a9d0: 5a 43 48 45 43 4b 5f 43 4f 4d 50 49 4c 45 5f 4f  ZCHECK_COMPILE_O
a9e0: 50 54 53 29 20 24 28 4f 53 53 53 48 45 4c 4c 5f  PTS) $(OSSSHELL_
a9f0: 53 52 43 29 20 24 28 53 51 4c 49 54 45 33 43 29  SRC) $(SQLITE3C)
aa00: 20 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41 47 53   /link $(LDFLAGS
aa10: 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a  ) $(LTLINKOPTS).
aa20: 0a 6d 70 74 65 73 74 65 72 2e 65 78 65 3a 09 24  .mptester.exe:.$
aa30: 28 54 4f 50 29 5c 6d 70 74 65 73 74 5c 6d 70 74  (TOP)\mptest\mpt
aa40: 65 73 74 2e 63 20 24 28 53 51 4c 49 54 45 33 43  est.c $(SQLITE3C
aa50: 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24  ) $(SQLITE3H)..$
aa60: 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41  (LTLINK) $(NO_WA
aa70: 52 4e 29 20 24 28 4d 50 54 45 53 54 45 52 5f 43  RN) $(MPTESTER_C
aa80: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 54  OMPILE_OPTS) $(T
aa90: 4f 50 29 5c 6d 70 74 65 73 74 5c 6d 70 74 65 73  OP)\mptest\mptes
aaa0: 74 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  t.c $(SQLITE3C) 
aab0: 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29  /link $(LDFLAGS)
aac0: 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a   $(LTLINKOPTS)..
aad0: 4d 50 54 45 53 54 31 20 3d 20 6d 70 74 65 73 74  MPTEST1 = mptest
aae0: 65 72 20 6d 70 74 65 73 74 2e 64 62 20 24 28 54  er mptest.db $(T
aaf0: 4f 50 29 5c 6d 70 74 65 73 74 5c 63 72 61 73 68  OP)\mptest\crash
ab00: 30 31 2e 74 65 73 74 20 2d 2d 72 65 70 65 61 74  01.test --repeat
ab10: 20 32 30 0a 4d 50 54 45 53 54 32 20 3d 20 6d 70   20.MPTEST2 = mp
ab20: 74 65 73 74 65 72 20 6d 70 74 65 73 74 2e 64 62  tester mptest.db
ab30: 20 24 28 54 4f 50 29 5c 6d 70 74 65 73 74 5c 6d   $(TOP)\mptest\m
ab40: 75 6c 74 69 77 72 69 74 65 30 31 2e 74 65 73 74  ultiwrite01.test
ab50: 20 2d 2d 72 65 70 65 61 74 20 32 30 0a 0a 6d 70   --repeat 20..mp
ab60: 74 65 73 74 3a 09 6d 70 74 65 73 74 65 72 2e 65  test:.mptester.e
ab70: 78 65 0a 09 64 65 6c 20 2f 51 20 6d 70 74 65 73  xe..del /Q mptes
ab80: 74 2e 64 62 20 32 3e 4e 55 4c 0a 09 24 28 4d 50  t.db 2>NUL..$(MP
ab90: 54 45 53 54 31 29 20 2d 2d 6a 6f 75 72 6e 61 6c  TEST1) --journal
aba0: 6d 6f 64 65 20 44 45 4c 45 54 45 0a 09 24 28 4d  mode DELETE..$(M
abb0: 50 54 45 53 54 32 29 20 2d 2d 6a 6f 75 72 6e 61  PTEST2) --journa
abc0: 6c 6d 6f 64 65 20 57 41 4c 0a 09 24 28 4d 50 54  lmode WAL..$(MPT
abd0: 45 53 54 31 29 20 2d 2d 6a 6f 75 72 6e 61 6c 6d  EST1) --journalm
abe0: 6f 64 65 20 57 41 4c 0a 09 24 28 4d 50 54 45 53  ode WAL..$(MPTES
abf0: 54 32 29 20 2d 2d 6a 6f 75 72 6e 61 6c 6d 6f 64  T2) --journalmod
ac00: 65 20 50 45 52 53 49 53 54 0a 09 24 28 4d 50 54  e PERSIST..$(MPT
ac10: 45 53 54 31 29 20 2d 2d 6a 6f 75 72 6e 61 6c 6d  EST1) --journalm
ac20: 6f 64 65 20 50 45 52 53 49 53 54 0a 09 24 28 4d  ode PERSIST..$(M
ac30: 50 54 45 53 54 32 29 20 2d 2d 6a 6f 75 72 6e 61  PTEST2) --journa
ac40: 6c 6d 6f 64 65 20 54 52 55 4e 43 41 54 45 0a 09  lmode TRUNCATE..
ac50: 24 28 4d 50 54 45 53 54 31 29 20 2d 2d 6a 6f 75  $(MPTEST1) --jou
ac60: 72 6e 61 6c 6d 6f 64 65 20 54 52 55 4e 43 41 54  rnalmode TRUNCAT
ac70: 45 0a 09 24 28 4d 50 54 45 53 54 32 29 20 2d 2d  E..$(MPTEST2) --
ac80: 6a 6f 75 72 6e 61 6c 6d 6f 64 65 20 44 45 4c 45  journalmode DELE
ac90: 54 45 0a 0a 23 20 54 68 69 73 20 74 61 72 67 65  TE..# This targe
aca0: 74 20 63 72 65 61 74 65 73 20 61 20 64 69 72 65  t creates a dire
acb0: 63 74 6f 72 79 20 6e 61 6d 65 64 20 22 74 73 72  ctory named "tsr
acc0: 63 22 20 61 6e 64 20 66 69 6c 6c 73 20 69 74 20  c" and fills it 
acd0: 77 69 74 68 0a 23 20 63 6f 70 69 65 73 20 6f 66  with.# copies of
ace0: 20 61 6c 6c 20 6f 66 20 74 68 65 20 43 20 73 6f   all of the C so
acf0: 75 72 63 65 20 63 6f 64 65 20 61 6e 64 20 68 65  urce code and he
ad00: 61 64 65 72 20 66 69 6c 65 73 20 6e 65 65 64 65  ader files neede
ad10: 64 20 74 6f 0a 23 20 62 75 69 6c 64 20 6f 6e 20  d to.# build on 
ad20: 74 68 65 20 74 61 72 67 65 74 20 73 79 73 74 65  the target syste
ad30: 6d 2e 20 20 53 6f 6d 65 20 6f 66 20 74 68 65 20  m.  Some of the 
ad40: 43 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 6e  C source code an
ad50: 64 20 68 65 61 64 65 72 0a 23 20 66 69 6c 65 73  d header.# files
ad60: 20 61 72 65 20 61 75 74 6f 6d 61 74 69 63 61 6c   are automatical
ad70: 6c 79 20 67 65 6e 65 72 61 74 65 64 2e 20 20 54  ly generated.  T
ad80: 68 69 73 20 74 61 72 67 65 74 20 74 61 6b 65 73  his target takes
ad90: 20 63 61 72 65 20 6f 66 0a 23 20 61 6c 6c 20 74   care of.# all t
ada0: 68 61 74 20 61 75 74 6f 6d 61 74 69 63 20 67 65  hat automatic ge
adb0: 6e 65 72 61 74 69 6f 6e 2e 0a 23 0a 2e 74 61 72  neration..#..tar
adc0: 67 65 74 5f 73 6f 75 72 63 65 3a 09 24 28 53 52  get_source:.$(SR
add0: 43 29 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 76  C) $(TOP)\tool\v
ade0: 64 62 65 2d 63 6f 6d 70 72 65 73 73 2e 74 63 6c  dbe-compress.tcl
adf0: 20 66 74 73 35 2e 63 20 24 28 53 51 4c 49 54 45   fts5.c $(SQLITE
ae00: 5f 54 43 4c 5f 44 45 50 29 0a 09 2d 72 6d 64 69  _TCL_DEP)..-rmdi
ae10: 72 20 2f 51 2f 53 20 74 73 72 63 20 32 3e 4e 55  r /Q/S tsrc 2>NU
ae20: 4c 0a 09 2d 6d 6b 64 69 72 20 74 73 72 63 0a 09  L..-mkdir tsrc..
ae30: 66 6f 72 20 25 69 20 69 6e 20 28 24 28 53 52 43  for %i in ($(SRC
ae40: 30 30 29 29 20 64 6f 20 63 6f 70 79 20 2f 59 20  00)) do copy /Y 
ae50: 25 69 20 74 73 72 63 0a 09 66 6f 72 20 25 69 20  %i tsrc..for %i 
ae60: 69 6e 20 28 24 28 53 52 43 30 31 29 29 20 64 6f  in ($(SRC01)) do
ae70: 20 63 6f 70 79 20 2f 59 20 25 69 20 74 73 72 63   copy /Y %i tsrc
ae80: 0a 09 66 6f 72 20 25 69 20 69 6e 20 28 24 28 53  ..for %i in ($(S
ae90: 52 43 30 33 29 29 20 64 6f 20 63 6f 70 79 20 2f  RC03)) do copy /
aea0: 59 20 25 69 20 74 73 72 63 0a 09 66 6f 72 20 25  Y %i tsrc..for %
aeb0: 69 20 69 6e 20 28 24 28 53 52 43 30 34 29 29 20  i in ($(SRC04)) 
aec0: 64 6f 20 63 6f 70 79 20 2f 59 20 25 69 20 74 73  do copy /Y %i ts
aed0: 72 63 0a 09 66 6f 72 20 25 69 20 69 6e 20 28 24  rc..for %i in ($
aee0: 28 53 52 43 30 35 29 29 20 64 6f 20 63 6f 70 79  (SRC05)) do copy
aef0: 20 2f 59 20 25 69 20 74 73 72 63 0a 09 66 6f 72   /Y %i tsrc..for
af00: 20 25 69 20 69 6e 20 28 24 28 53 52 43 30 36 29   %i in ($(SRC06)
af10: 29 20 64 6f 20 63 6f 70 79 20 2f 59 20 25 69 20  ) do copy /Y %i 
af20: 74 73 72 63 0a 09 66 6f 72 20 25 69 20 69 6e 20  tsrc..for %i in 
af30: 28 24 28 53 52 43 30 37 29 29 20 64 6f 20 63 6f  ($(SRC07)) do co
af40: 70 79 20 2f 59 20 25 69 20 74 73 72 63 0a 09 66  py /Y %i tsrc..f
af50: 6f 72 20 25 69 20 69 6e 20 28 24 28 53 52 43 30  or %i in ($(SRC0
af60: 38 29 29 20 64 6f 20 63 6f 70 79 20 2f 59 20 25  8)) do copy /Y %
af70: 69 20 74 73 72 63 0a 09 66 6f 72 20 25 69 20 69  i tsrc..for %i i
af80: 6e 20 28 24 28 53 52 43 30 39 29 29 20 64 6f 20  n ($(SRC09)) do 
af90: 63 6f 70 79 20 2f 59 20 25 69 20 74 73 72 63 0a  copy /Y %i tsrc.
afa0: 09 66 6f 72 20 25 69 20 69 6e 20 28 24 28 53 52  .for %i in ($(SR
afb0: 43 31 30 29 29 20 64 6f 20 63 6f 70 79 20 2f 59  C10)) do copy /Y
afc0: 20 25 69 20 74 73 72 63 0a 09 66 6f 72 20 25 69   %i tsrc..for %i
afd0: 20 69 6e 20 28 24 28 53 52 43 31 31 29 29 20 64   in ($(SRC11)) d
afe0: 6f 20 63 6f 70 79 20 2f 59 20 25 69 20 74 73 72  o copy /Y %i tsr
aff0: 63 0a 09 66 6f 72 20 25 69 20 69 6e 20 28 24 28  c..for %i in ($(
b000: 53 52 43 31 32 29 29 20 64 6f 20 63 6f 70 79 20  SRC12)) do copy 
b010: 2f 59 20 25 69 20 74 73 72 63 0a 09 63 6f 70 79  /Y %i tsrc..copy
b020: 20 2f 59 20 66 74 73 35 2e 63 20 74 73 72 63 0a   /Y fts5.c tsrc.
b030: 09 63 6f 70 79 20 2f 59 20 66 74 73 35 2e 68 20  .copy /Y fts5.h 
b040: 74 73 72 63 0a 09 64 65 6c 20 2f 51 20 74 73 72  tsrc..del /Q tsr
b050: 63 5c 73 71 6c 69 74 65 2e 68 2e 69 6e 20 74 73  c\sqlite.h.in ts
b060: 72 63 5c 70 61 72 73 65 2e 79 20 32 3e 4e 55 4c  rc\parse.y 2>NUL
b070: 0a 09 24 28 54 43 4c 53 48 5f 43 4d 44 29 20 24  ..$(TCLSH_CMD) $
b080: 28 54 4f 50 29 5c 74 6f 6f 6c 5c 76 64 62 65 2d  (TOP)\tool\vdbe-
b090: 63 6f 6d 70 72 65 73 73 2e 74 63 6c 20 24 28 4f  compress.tcl $(O
b0a0: 50 54 53 29 20 3c 20 74 73 72 63 5c 76 64 62 65  PTS) < tsrc\vdbe
b0b0: 2e 63 20 3e 20 76 64 62 65 2e 6e 65 77 0a 09 6d  .c > vdbe.new..m
b0c0: 6f 76 65 20 76 64 62 65 2e 6e 65 77 20 74 73 72  ove vdbe.new tsr
b0d0: 63 5c 76 64 62 65 2e 63 0a 09 65 63 68 6f 20 3e  c\vdbe.c..echo >
b0e0: 20 2e 74 61 72 67 65 74 5f 73 6f 75 72 63 65 0a   .target_source.
b0f0: 0a 73 71 6c 69 74 65 33 2e 63 3a 09 2e 74 61 72  .sqlite3.c:..tar
b100: 67 65 74 5f 73 6f 75 72 63 65 20 73 71 6c 69 74  get_source sqlit
b110: 65 33 65 78 74 2e 68 20 24 28 4d 4b 53 51 4c 49  e3ext.h $(MKSQLI
b120: 54 45 33 43 5f 54 4f 4f 4c 29 0a 09 24 28 54 43  TE3C_TOOL)..$(TC
b130: 4c 53 48 5f 43 4d 44 29 20 24 28 4d 4b 53 51 4c  LSH_CMD) $(MKSQL
b140: 49 54 45 33 43 5f 54 4f 4f 4c 29 20 24 28 4d 4b  ITE3C_TOOL) $(MK
b150: 53 51 4c 49 54 45 33 43 5f 41 52 47 53 29 0a 09  SQLITE3C_ARGS)..
b160: 63 6f 70 79 20 74 73 72 63 5c 73 68 65 6c 6c 2e  copy tsrc\shell.
b170: 63 20 2e 0a 09 63 6f 70 79 20 24 28 54 4f 50 29  c ...copy $(TOP)
b180: 5c 65 78 74 5c 73 65 73 73 69 6f 6e 5c 73 71 6c  \ext\session\sql
b190: 69 74 65 33 73 65 73 73 69 6f 6e 2e 68 20 2e 0a  ite3session.h ..
b1a0: 0a 73 71 6c 69 74 65 33 2d 61 6c 6c 2e 63 3a 09  .sqlite3-all.c:.
b1b0: 73 71 6c 69 74 65 33 2e 63 20 24 28 54 4f 50 29  sqlite3.c $(TOP)
b1c0: 5c 74 6f 6f 6c 5c 73 70 6c 69 74 2d 73 71 6c 69  \tool\split-sqli
b1d0: 74 65 33 63 2e 74 63 6c 0a 09 24 28 54 43 4c 53  te3c.tcl..$(TCLS
b1e0: 48 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74 6f  H_CMD) $(TOP)\to
b1f0: 6f 6c 5c 73 70 6c 69 74 2d 73 71 6c 69 74 65 33  ol\split-sqlite3
b200: 63 2e 74 63 6c 0a 23 20 3c 3c 2f 6d 61 72 6b 3e  c.tcl.# <</mark>
b210: 3e 0a 0a 23 20 52 75 6c 65 20 74 6f 20 62 75 69  >..# Rule to bui
b220: 6c 64 20 74 68 65 20 61 6d 61 6c 67 61 6d 61 74  ld the amalgamat
b230: 69 6f 6e 0a 23 0a 73 71 6c 69 74 65 33 2e 6c 6f  ion.#.sqlite3.lo
b240: 3a 09 24 28 53 51 4c 49 54 45 33 43 29 0a 09 24  :.$(SQLITE3C)..$
b250: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
b260: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
b270: 20 2d 63 20 24 28 53 51 4c 49 54 45 33 43 29 0a   -c $(SQLITE3C).
b280: 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a 23 20 52 75  .# <<mark>>.# Ru
b290: 6c 65 73 20 74 6f 20 62 75 69 6c 64 20 74 68 65  les to build the
b2a0: 20 4c 45 4d 4f 4e 20 63 6f 6d 70 69 6c 65 72 20   LEMON compiler 
b2b0: 67 65 6e 65 72 61 74 6f 72 0a 23 0a 6c 65 6d 70  generator.#.lemp
b2c0: 61 72 2e 63 3a 09 24 28 54 4f 50 29 5c 74 6f 6f  ar.c:.$(TOP)\too
b2d0: 6c 5c 6c 65 6d 70 61 72 2e 63 0a 09 63 6f 70 79  l\lempar.c..copy
b2e0: 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6c 65 6d   $(TOP)\tool\lem
b2f0: 70 61 72 2e 63 20 2e 0a 0a 6c 65 6d 6f 6e 2e 65  par.c ...lemon.e
b300: 78 65 3a 09 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c  xe:.$(TOP)\tool\
b310: 6c 65 6d 6f 6e 2e 63 20 6c 65 6d 70 61 72 2e 63  lemon.c lempar.c
b320: 0a 09 24 28 42 43 43 29 20 24 28 4e 4f 5f 57 41  ..$(BCC) $(NO_WA
b330: 52 4e 29 20 2d 44 61 63 63 65 73 73 3d 5f 61 63  RN) -Daccess=_ac
b340: 63 65 73 73 20 5c 0a 09 09 2d 46 65 24 40 20 24  cess \...-Fe$@ $
b350: 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6c 65 6d 6f 6e  (TOP)\tool\lemon
b360: 2e 63 20 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41  .c /link $(LDFLA
b370: 47 53 29 20 24 28 4e 4c 54 4c 49 4e 4b 4f 50 54  GS) $(NLTLINKOPT
b380: 53 29 20 24 28 4e 4c 54 4c 49 42 50 41 54 48 53  S) $(NLTLIBPATHS
b390: 29 0a 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a 23 20  )..# <<mark>>.# 
b3a0: 52 75 6c 65 73 20 74 6f 20 62 75 69 6c 64 20 74  Rules to build t
b3b0: 68 65 20 73 6f 75 72 63 65 2d 69 64 20 67 65 6e  he source-id gen
b3c0: 65 72 61 74 6f 72 20 74 6f 6f 6c 0a 23 0a 6d 6b  erator tool.#.mk
b3d0: 73 6f 75 72 63 65 69 64 2e 65 78 65 3a 09 24 28  sourceid.exe:.$(
b3e0: 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 73 6f 75 72  TOP)\tool\mksour
b3f0: 63 65 69 64 2e 63 0a 09 24 28 42 43 43 29 20 24  ceid.c..$(BCC) $
b400: 28 4e 4f 5f 57 41 52 4e 29 20 2d 46 65 24 40 20  (NO_WARN) -Fe$@ 
b410: 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 73 6f  $(TOP)\tool\mkso
b420: 75 72 63 65 69 64 2e 63 20 2f 6c 69 6e 6b 20 24  urceid.c /link $
b430: 28 4c 44 46 4c 41 47 53 29 20 24 28 4e 4c 54 4c  (LDFLAGS) $(NLTL
b440: 49 4e 4b 4f 50 54 53 29 20 24 28 4e 4c 54 4c 49  INKOPTS) $(NLTLI
b450: 42 50 41 54 48 53 29 0a 0a 23 20 52 75 6c 65 73  BPATHS)..# Rules
b460: 20 74 6f 20 62 75 69 6c 64 20 69 6e 64 69 76 69   to build indivi
b470: 64 75 61 6c 20 2a 2e 6c 6f 20 66 69 6c 65 73 20  dual *.lo files 
b480: 66 72 6f 6d 20 67 65 6e 65 72 61 74 65 64 20 2a  from generated *
b490: 2e 63 20 66 69 6c 65 73 2e 20 54 68 69 73 0a 23  .c files. This.#
b4a0: 20 61 70 70 6c 69 65 73 20 74 6f 3a 0a 23 0a 23   applies to:.#.#
b4b0: 20 20 20 20 20 70 61 72 73 65 2e 6c 6f 0a 23 20       parse.lo.# 
b4c0: 20 20 20 20 6f 70 63 6f 64 65 73 2e 6c 6f 0a 23      opcodes.lo.#
b4d0: 0a 70 61 72 73 65 2e 6c 6f 3a 09 70 61 72 73 65  .parse.lo:.parse
b4e0: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
b4f0: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
b500: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
b510: 70 61 72 73 65 2e 63 0a 0a 6f 70 63 6f 64 65 73  parse.c..opcodes
b520: 2e 6c 6f 3a 09 6f 70 63 6f 64 65 73 2e 63 0a 09  .lo:.opcodes.c..
b530: 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43  $(LTCOMPILE) $(C
b540: 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ORE_COMPILE_OPTS
b550: 29 20 2d 63 20 6f 70 63 6f 64 65 73 2e 63 0a 23  ) -c opcodes.c.#
b560: 20 3c 3c 2f 6d 61 72 6b 3e 3e 0a 0a 23 20 52 75   <</mark>>..# Ru
b570: 6c 65 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20  le to build the 
b580: 57 69 6e 33 32 20 72 65 73 6f 75 72 63 65 73 20  Win32 resources 
b590: 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 23 0a 21  object file..#.!
b5a0: 49 46 20 24 28 55 53 45 5f 52 43 29 21 3d 30 0a  IF $(USE_RC)!=0.
b5b0: 23 20 3c 3c 62 6c 6f 63 6b 31 3e 3e 0a 24 28 4c  # <<block1>>.$(L
b5c0: 49 42 52 45 53 4f 42 4a 53 29 3a 09 24 28 54 4f  IBRESOBJS):.$(TO
b5d0: 50 29 5c 73 72 63 5c 73 71 6c 69 74 65 33 2e 72  P)\src\sqlite3.r
b5e0: 63 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09 65  c $(SQLITE3H)..e
b5f0: 63 68 6f 20 23 69 66 6e 64 65 66 20 53 51 4c 49  cho #ifndef SQLI
b600: 54 45 5f 52 45 53 4f 55 52 43 45 5f 56 45 52 53  TE_RESOURCE_VERS
b610: 49 4f 4e 20 3e 20 73 71 6c 69 74 65 33 72 63 2e  ION > sqlite3rc.
b620: 68 0a 09 66 6f 72 20 2f 46 20 25 25 56 20 69 6e  h..for /F %%V in
b630: 20 28 27 74 79 70 65 20 22 24 28 54 4f 50 29 5c   ('type "$(TOP)\
b640: 56 45 52 53 49 4f 4e 22 27 29 20 64 6f 20 28 20  VERSION"') do ( 
b650: 5c 0a 09 09 65 63 68 6f 20 23 64 65 66 69 6e 65  \...echo #define
b660: 20 53 51 4c 49 54 45 5f 52 45 53 4f 55 52 43 45   SQLITE_RESOURCE
b670: 5f 56 45 52 53 49 4f 4e 20 25 25 56 20 5c 0a 09  _VERSION %%V \..
b680: 09 09 7c 20 24 28 54 43 4c 53 48 5f 43 4d 44 29  ..| $(TCLSH_CMD)
b690: 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 72 65 70   $(TOP)\tool\rep
b6a0: 6c 61 63 65 2e 74 63 6c 20 65 78 61 63 74 20 2e  lace.tcl exact .
b6b0: 20 5e 2c 20 3e 3e 20 73 71 6c 69 74 65 33 72 63   ^, >> sqlite3rc
b6c0: 2e 68 20 5c 0a 09 29 0a 09 65 63 68 6f 20 23 65  .h \..)..echo #e
b6d0: 6e 64 69 66 20 3e 3e 20 73 71 6c 69 74 65 33 72  ndif >> sqlite3r
b6e0: 63 2e 68 0a 09 24 28 4c 54 52 43 4f 4d 50 49 4c  c.h..$(LTRCOMPIL
b6f0: 45 29 20 2d 66 6f 20 24 28 4c 49 42 52 45 53 4f  E) -fo $(LIBRESO
b700: 42 4a 53 29 20 24 28 54 4f 50 29 5c 73 72 63 5c  BJS) $(TOP)\src\
b710: 73 71 6c 69 74 65 33 2e 72 63 0a 23 20 3c 3c 2f  sqlite3.rc.# <</
b720: 62 6c 6f 63 6b 31 3e 3e 0a 21 45 4e 44 49 46 0a  block1>>.!ENDIF.
b730: 0a 23 20 3c 3c 6d 61 72 6b 3e 3e 0a 23 20 52 75  .# <<mark>>.# Ru
b740: 6c 65 73 20 74 6f 20 62 75 69 6c 64 20 69 6e 64  les to build ind
b750: 69 76 69 64 75 61 6c 20 2a 2e 6c 6f 20 66 69 6c  ividual *.lo fil
b760: 65 73 20 66 72 6f 6d 20 66 69 6c 65 73 20 69 6e  es from files in
b770: 20 74 68 65 20 73 72 63 20 64 69 72 65 63 74 6f   the src directo
b780: 72 79 2e 0a 23 0a 61 6c 74 65 72 2e 6c 6f 3a 09  ry..#.alter.lo:.
b790: 24 28 54 4f 50 29 5c 73 72 63 5c 61 6c 74 65 72  $(TOP)\src\alter
b7a0: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
b7b0: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
b7c0: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
b7d0: 24 28 54 4f 50 29 5c 73 72 63 5c 61 6c 74 65 72  $(TOP)\src\alter
b7e0: 2e 63 0a 0a 61 6e 61 6c 79 7a 65 2e 6c 6f 3a 09  .c..analyze.lo:.
b7f0: 24 28 54 4f 50 29 5c 73 72 63 5c 61 6e 61 6c 79  $(TOP)\src\analy
b800: 7a 65 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c  ze.c $(HDR)..$(L
b810: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
b820: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d  _COMPILE_OPTS) -
b830: 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 61 6e 61  c $(TOP)\src\ana
b840: 6c 79 7a 65 2e 63 0a 0a 61 74 74 61 63 68 2e 6c  lyze.c..attach.l
b850: 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 61 74  o:.$(TOP)\src\at
b860: 74 61 63 68 2e 63 20 24 28 48 44 52 29 0a 09 24  tach.c $(HDR)..$
b870: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
b880: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
b890: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 61   -c $(TOP)\src\a
b8a0: 74 74 61 63 68 2e 63 0a 0a 61 75 74 68 2e 6c 6f  ttach.c..auth.lo
b8b0: 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 61 75 74  :.$(TOP)\src\aut
b8c0: 68 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  h.c $(HDR)..$(LT
b8d0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
b8e0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
b8f0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 61 75 74 68   $(TOP)\src\auth
b900: 2e 63 0a 0a 62 61 63 6b 75 70 2e 6c 6f 3a 09 24  .c..backup.lo:.$
b910: 28 54 4f 50 29 5c 73 72 63 5c 62 61 63 6b 75 70  (TOP)\src\backup
b920: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
b930: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
b940: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
b950: 24 28 54 4f 50 29 5c 73 72 63 5c 62 61 63 6b 75  $(TOP)\src\backu
b960: 70 2e 63 0a 0a 62 69 74 76 65 63 2e 6c 6f 3a 09  p.c..bitvec.lo:.
b970: 24 28 54 4f 50 29 5c 73 72 63 5c 62 69 74 76 65  $(TOP)\src\bitve
b980: 63 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  c.c $(HDR)..$(LT
b990: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
b9a0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
b9b0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 62 69 74 76   $(TOP)\src\bitv
b9c0: 65 63 2e 63 0a 0a 62 74 6d 75 74 65 78 2e 6c 6f  ec.c..btmutex.lo
b9d0: 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 62 74 6d  :.$(TOP)\src\btm
b9e0: 75 74 65 78 2e 63 20 24 28 48 44 52 29 0a 09 24  utex.c $(HDR)..$
b9f0: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
ba00: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
ba10: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 62   -c $(TOP)\src\b
ba20: 74 6d 75 74 65 78 2e 63 0a 0a 62 74 72 65 65 2e  tmutex.c..btree.
ba30: 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 62  lo:.$(TOP)\src\b
ba40: 74 72 65 65 2e 63 20 24 28 48 44 52 29 20 24 28  tree.c $(HDR) $(
ba50: 54 4f 50 29 5c 73 72 63 5c 70 61 67 65 72 2e 68  TOP)\src\pager.h
ba60: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
ba70: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
ba80: 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72  TS) -c $(TOP)\sr
ba90: 63 5c 62 74 72 65 65 2e 63 0a 0a 62 75 69 6c 64  c\btree.c..build
baa0: 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c  .lo:.$(TOP)\src\
bab0: 62 75 69 6c 64 2e 63 20 24 28 48 44 52 29 0a 09  build.c $(HDR)..
bac0: 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43  $(LTCOMPILE) $(C
bad0: 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ORE_COMPILE_OPTS
bae0: 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c  ) -c $(TOP)\src\
baf0: 62 75 69 6c 64 2e 63 0a 0a 63 61 6c 6c 62 61 63  build.c..callbac
bb00: 6b 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63  k.lo:.$(TOP)\src
bb10: 5c 63 61 6c 6c 62 61 63 6b 2e 63 20 24 28 48 44  \callback.c $(HD
bb20: 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29  R)..$(LTCOMPILE)
bb30: 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f   $(CORE_COMPILE_
bb40: 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c  OPTS) -c $(TOP)\
bb50: 73 72 63 5c 63 61 6c 6c 62 61 63 6b 2e 63 0a 0a  src\callback.c..
bb60: 63 6f 6d 70 6c 65 74 65 2e 6c 6f 3a 09 24 28 54  complete.lo:.$(T
bb70: 4f 50 29 5c 73 72 63 5c 63 6f 6d 70 6c 65 74 65  OP)\src\complete
bb80: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
bb90: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
bba0: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
bbb0: 24 28 54 4f 50 29 5c 73 72 63 5c 63 6f 6d 70 6c  $(TOP)\src\compl
bbc0: 65 74 65 2e 63 0a 0a 63 74 69 6d 65 2e 6c 6f 3a  ete.c..ctime.lo:
bbd0: 09 24 28 54 4f 50 29 5c 73 72 63 5c 63 74 69 6d  .$(TOP)\src\ctim
bbe0: 65 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  e.c $(HDR)..$(LT
bbf0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
bc00: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
bc10: 20 24 28 54 4f 50 29 5c 73 72 63 5c 63 74 69 6d   $(TOP)\src\ctim
bc20: 65 2e 63 0a 0a 64 61 74 65 2e 6c 6f 3a 09 24 28  e.c..date.lo:.$(
bc30: 54 4f 50 29 5c 73 72 63 5c 64 61 74 65 2e 63 20  TOP)\src\date.c 
bc40: 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  $(HDR)..$(LTCOMP
bc50: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
bc60: 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54  ILE_OPTS) -c $(T
bc70: 4f 50 29 5c 73 72 63 5c 64 61 74 65 2e 63 0a 0a  OP)\src\date.c..
bc80: 64 62 70 61 67 65 2e 6c 6f 3a 09 24 28 54 4f 50  dbpage.lo:.$(TOP
bc90: 29 5c 73 72 63 5c 64 62 70 61 67 65 2e 63 20 24  )\src\dbpage.c $
bca0: 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  (HDR)..$(LTCOMPI
bcb0: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
bcc0: 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f  LE_OPTS) -c $(TO
bcd0: 50 29 5c 73 72 63 5c 64 62 70 61 67 65 2e 63 0a  P)\src\dbpage.c.
bce0: 0a 64 62 73 74 61 74 2e 6c 6f 3a 09 24 28 54 4f  .dbstat.lo:.$(TO
bcf0: 50 29 5c 73 72 63 5c 64 62 73 74 61 74 2e 63 20  P)\src\dbstat.c 
bd00: 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  $(HDR)..$(LTCOMP
bd10: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
bd20: 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54  ILE_OPTS) -c $(T
bd30: 4f 50 29 5c 73 72 63 5c 64 62 73 74 61 74 2e 63  OP)\src\dbstat.c
bd40: 0a 0a 64 65 6c 65 74 65 2e 6c 6f 3a 09 24 28 54  ..delete.lo:.$(T
bd50: 4f 50 29 5c 73 72 63 5c 64 65 6c 65 74 65 2e 63  OP)\src\delete.c
bd60: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
bd70: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
bd80: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
bd90: 54 4f 50 29 5c 73 72 63 5c 64 65 6c 65 74 65 2e  TOP)\src\delete.
bda0: 63 0a 0a 65 78 70 72 2e 6c 6f 3a 09 24 28 54 4f  c..expr.lo:.$(TO
bdb0: 50 29 5c 73 72 63 5c 65 78 70 72 2e 63 20 24 28  P)\src\expr.c $(
bdc0: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
bdd0: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
bde0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
bdf0: 29 5c 73 72 63 5c 65 78 70 72 2e 63 0a 0a 66 61  )\src\expr.c..fa
be00: 75 6c 74 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73  ult.lo:.$(TOP)\s
be10: 72 63 5c 66 61 75 6c 74 2e 63 20 24 28 48 44 52  rc\fault.c $(HDR
be20: 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  )..$(LTCOMPILE) 
be30: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
be40: 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73  PTS) -c $(TOP)\s
be50: 72 63 5c 66 61 75 6c 74 2e 63 0a 0a 66 6b 65 79  rc\fault.c..fkey
be60: 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c  .lo:.$(TOP)\src\
be70: 66 6b 65 79 2e 63 20 24 28 48 44 52 29 0a 09 24  fkey.c $(HDR)..$
be80: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
be90: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
bea0: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 66   -c $(TOP)\src\f
beb0: 6b 65 79 2e 63 0a 0a 66 75 6e 63 2e 6c 6f 3a 09  key.c..func.lo:.
bec0: 24 28 54 4f 50 29 5c 73 72 63 5c 66 75 6e 63 2e  $(TOP)\src\func.
bed0: 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f  c $(HDR)..$(LTCO
bee0: 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f  MPILE) $(CORE_CO
bef0: 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24  MPILE_OPTS) -c $
bf00: 28 54 4f 50 29 5c 73 72 63 5c 66 75 6e 63 2e 63  (TOP)\src\func.c
bf10: 0a 0a 67 6c 6f 62 61 6c 2e 6c 6f 3a 09 24 28 54  ..global.lo:.$(T
bf20: 4f 50 29 5c 73 72 63 5c 67 6c 6f 62 61 6c 2e 63  OP)\src\global.c
bf30: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
bf40: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
bf50: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
bf60: 54 4f 50 29 5c 73 72 63 5c 67 6c 6f 62 61 6c 2e  TOP)\src\global.
bf70: 63 0a 0a 68 61 73 68 2e 6c 6f 3a 09 24 28 54 4f  c..hash.lo:.$(TO
bf80: 50 29 5c 73 72 63 5c 68 61 73 68 2e 63 20 24 28  P)\src\hash.c $(
bf90: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
bfa0: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
bfb0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
bfc0: 29 5c 73 72 63 5c 68 61 73 68 2e 63 0a 0a 69 6e  )\src\hash.c..in
bfd0: 73 65 72 74 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c  sert.lo:.$(TOP)\
bfe0: 73 72 63 5c 69 6e 73 65 72 74 2e 63 20 24 28 48  src\insert.c $(H
bff0: 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45  DR)..$(LTCOMPILE
c000: 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45  ) $(CORE_COMPILE
c010: 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29  _OPTS) -c $(TOP)
c020: 5c 73 72 63 5c 69 6e 73 65 72 74 2e 63 0a 0a 6c  \src\insert.c..l
c030: 65 67 61 63 79 2e 6c 6f 3a 09 24 28 54 4f 50 29  egacy.lo:.$(TOP)
c040: 5c 73 72 63 5c 6c 65 67 61 63 79 2e 63 20 24 28  \src\legacy.c $(
c050: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
c060: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
c070: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
c080: 29 5c 73 72 63 5c 6c 65 67 61 63 79 2e 63 0a 0a  )\src\legacy.c..
c090: 6c 6f 61 64 65 78 74 2e 6c 6f 3a 09 24 28 54 4f  loadext.lo:.$(TO
c0a0: 50 29 5c 73 72 63 5c 6c 6f 61 64 65 78 74 2e 63  P)\src\loadext.c
c0b0: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
c0c0: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
c0d0: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
c0e0: 54 4f 50 29 5c 73 72 63 5c 6c 6f 61 64 65 78 74  TOP)\src\loadext
c0f0: 2e 63 0a 0a 6d 61 69 6e 2e 6c 6f 3a 09 24 28 54  .c..main.lo:.$(T
c100: 4f 50 29 5c 73 72 63 5c 6d 61 69 6e 2e 63 20 24  OP)\src\main.c $
c110: 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  (HDR)..$(LTCOMPI
c120: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
c130: 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f  LE_OPTS) -c $(TO
c140: 50 29 5c 73 72 63 5c 6d 61 69 6e 2e 63 0a 0a 6d  P)\src\main.c..m
c150: 61 6c 6c 6f 63 2e 6c 6f 3a 09 24 28 54 4f 50 29  alloc.lo:.$(TOP)
c160: 5c 73 72 63 5c 6d 61 6c 6c 6f 63 2e 63 20 24 28  \src\malloc.c $(
c170: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
c180: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
c190: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
c1a0: 29 5c 73 72 63 5c 6d 61 6c 6c 6f 63 2e 63 0a 0a  )\src\malloc.c..
c1b0: 6d 65 6d 30 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c  mem0.lo:.$(TOP)\
c1c0: 73 72 63 5c 6d 65 6d 30 2e 63 20 24 28 48 44 52  src\mem0.c $(HDR
c1d0: 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  )..$(LTCOMPILE) 
c1e0: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
c1f0: 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73  PTS) -c $(TOP)\s
c200: 72 63 5c 6d 65 6d 30 2e 63 0a 0a 6d 65 6d 31 2e  rc\mem0.c..mem1.
c210: 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 6d  lo:.$(TOP)\src\m
c220: 65 6d 31 2e 63 20 24 28 48 44 52 29 0a 09 24 28  em1.c $(HDR)..$(
c230: 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52  LTCOMPILE) $(COR
c240: 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20  E_COMPILE_OPTS) 
c250: 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d 65  -c $(TOP)\src\me
c260: 6d 31 2e 63 0a 0a 6d 65 6d 32 2e 6c 6f 3a 09 24  m1.c..mem2.lo:.$
c270: 28 54 4f 50 29 5c 73 72 63 5c 6d 65 6d 32 2e 63  (TOP)\src\mem2.c
c280: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
c290: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
c2a0: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
c2b0: 54 4f 50 29 5c 73 72 63 5c 6d 65 6d 32 2e 63 0a  TOP)\src\mem2.c.
c2c0: 0a 6d 65 6d 33 2e 6c 6f 3a 09 24 28 54 4f 50 29  .mem3.lo:.$(TOP)
c2d0: 5c 73 72 63 5c 6d 65 6d 33 2e 63 20 24 28 48 44  \src\mem3.c $(HD
c2e0: 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29  R)..$(LTCOMPILE)
c2f0: 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f   $(CORE_COMPILE_
c300: 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c  OPTS) -c $(TOP)\
c310: 73 72 63 5c 6d 65 6d 33 2e 63 0a 0a 6d 65 6d 35  src\mem3.c..mem5
c320: 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c  .lo:.$(TOP)\src\
c330: 6d 65 6d 35 2e 63 20 24 28 48 44 52 29 0a 09 24  mem5.c $(HDR)..$
c340: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
c350: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
c360: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d   -c $(TOP)\src\m
c370: 65 6d 35 2e 63 0a 0a 6d 65 6d 6a 6f 75 72 6e 61  em5.c..memjourna
c380: 6c 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63  l.lo:.$(TOP)\src
c390: 5c 6d 65 6d 6a 6f 75 72 6e 61 6c 2e 63 20 24 28  \memjournal.c $(
c3a0: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
c3b0: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
c3c0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
c3d0: 29 5c 73 72 63 5c 6d 65 6d 6a 6f 75 72 6e 61 6c  )\src\memjournal
c3e0: 2e 63 0a 0a 6d 75 74 65 78 2e 6c 6f 3a 09 24 28  .c..mutex.lo:.$(
c3f0: 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65 78 2e 63  TOP)\src\mutex.c
c400: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
c410: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
c420: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
c430: 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65 78 2e 63  TOP)\src\mutex.c
c440: 0a 0a 6d 75 74 65 78 5f 6e 6f 6f 70 2e 6c 6f 3a  ..mutex_noop.lo:
c450: 09 24 28 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65  .$(TOP)\src\mute
c460: 78 5f 6e 6f 6f 70 2e 63 20 24 28 48 44 52 29 0a  x_noop.c $(HDR).
c470: 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28  .$(LTCOMPILE) $(
c480: 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  CORE_COMPILE_OPT
c490: 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63  S) -c $(TOP)\src
c4a0: 5c 6d 75 74 65 78 5f 6e 6f 6f 70 2e 63 0a 0a 6d  \mutex_noop.c..m
c4b0: 75 74 65 78 5f 75 6e 69 78 2e 6c 6f 3a 09 24 28  utex_unix.lo:.$(
c4c0: 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65 78 5f 75  TOP)\src\mutex_u
c4d0: 6e 69 78 2e 63 20 24 28 48 44 52 29 0a 09 24 28  nix.c $(HDR)..$(
c4e0: 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52  LTCOMPILE) $(COR
c4f0: 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20  E_COMPILE_OPTS) 
c500: 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 6d 75  -c $(TOP)\src\mu
c510: 74 65 78 5f 75 6e 69 78 2e 63 0a 0a 6d 75 74 65  tex_unix.c..mute
c520: 78 5f 77 33 32 2e 6c 6f 3a 09 24 28 54 4f 50 29  x_w32.lo:.$(TOP)
c530: 5c 73 72 63 5c 6d 75 74 65 78 5f 77 33 32 2e 63  \src\mutex_w32.c
c540: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
c550: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
c560: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
c570: 54 4f 50 29 5c 73 72 63 5c 6d 75 74 65 78 5f 77  TOP)\src\mutex_w
c580: 33 32 2e 63 0a 0a 6e 6f 74 69 66 79 2e 6c 6f 3a  32.c..notify.lo:
c590: 09 24 28 54 4f 50 29 5c 73 72 63 5c 6e 6f 74 69  .$(TOP)\src\noti
c5a0: 66 79 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c  fy.c $(HDR)..$(L
c5b0: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
c5c0: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d  _COMPILE_OPTS) -
c5d0: 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 6e 6f 74  c $(TOP)\src\not
c5e0: 69 66 79 2e 63 0a 0a 70 61 67 65 72 2e 6c 6f 3a  ify.c..pager.lo:
c5f0: 09 24 28 54 4f 50 29 5c 73 72 63 5c 70 61 67 65  .$(TOP)\src\page
c600: 72 2e 63 20 24 28 48 44 52 29 20 24 28 54 4f 50  r.c $(HDR) $(TOP
c610: 29 5c 73 72 63 5c 70 61 67 65 72 2e 68 0a 09 24  )\src\pager.h..$
c620: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
c630: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
c640: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 70   -c $(TOP)\src\p
c650: 61 67 65 72 2e 63 0a 0a 70 63 61 63 68 65 2e 6c  ager.c..pcache.l
c660: 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 70 63  o:.$(TOP)\src\pc
c670: 61 63 68 65 2e 63 20 24 28 48 44 52 29 20 24 28  ache.c $(HDR) $(
c680: 54 4f 50 29 5c 73 72 63 5c 70 63 61 63 68 65 2e  TOP)\src\pcache.
c690: 68 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  h..$(LTCOMPILE) 
c6a0: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
c6b0: 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73  PTS) -c $(TOP)\s
c6c0: 72 63 5c 70 63 61 63 68 65 2e 63 0a 0a 70 63 61  rc\pcache.c..pca
c6d0: 63 68 65 31 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c  che1.lo:.$(TOP)\
c6e0: 73 72 63 5c 70 63 61 63 68 65 31 2e 63 20 24 28  src\pcache1.c $(
c6f0: 48 44 52 29 20 24 28 54 4f 50 29 5c 73 72 63 5c  HDR) $(TOP)\src\
c700: 70 63 61 63 68 65 2e 68 0a 09 24 28 4c 54 43 4f  pcache.h..$(LTCO
c710: 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f  MPILE) $(CORE_CO
c720: 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24  MPILE_OPTS) -c $
c730: 28 54 4f 50 29 5c 73 72 63 5c 70 63 61 63 68 65  (TOP)\src\pcache
c740: 31 2e 63 0a 0a 6f 73 2e 6c 6f 3a 09 24 28 54 4f  1.c..os.lo:.$(TO
c750: 50 29 5c 73 72 63 5c 6f 73 2e 63 20 24 28 48 44  P)\src\os.c $(HD
c760: 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29  R)..$(LTCOMPILE)
c770: 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f   $(CORE_COMPILE_
c780: 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c  OPTS) -c $(TOP)\
c790: 73 72 63 5c 6f 73 2e 63 0a 0a 6f 73 5f 75 6e 69  src\os.c..os_uni
c7a0: 78 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63  x.lo:.$(TOP)\src
c7b0: 5c 6f 73 5f 75 6e 69 78 2e 63 20 24 28 48 44 52  \os_unix.c $(HDR
c7c0: 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  )..$(LTCOMPILE) 
c7d0: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
c7e0: 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73  PTS) -c $(TOP)\s
c7f0: 72 63 5c 6f 73 5f 75 6e 69 78 2e 63 0a 0a 6f 73  rc\os_unix.c..os
c800: 5f 77 69 6e 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c  _win.lo:.$(TOP)\
c810: 73 72 63 5c 6f 73 5f 77 69 6e 2e 63 20 24 28 48  src\os_win.c $(H
c820: 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45  DR)..$(LTCOMPILE
c830: 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45  ) $(CORE_COMPILE
c840: 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29  _OPTS) -c $(TOP)
c850: 5c 73 72 63 5c 6f 73 5f 77 69 6e 2e 63 0a 0a 70  \src\os_win.c..p
c860: 72 61 67 6d 61 2e 6c 6f 3a 09 24 28 54 4f 50 29  ragma.lo:.$(TOP)
c870: 5c 73 72 63 5c 70 72 61 67 6d 61 2e 63 20 24 28  \src\pragma.c $(
c880: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
c890: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
c8a0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
c8b0: 29 5c 73 72 63 5c 70 72 61 67 6d 61 2e 63 0a 0a  )\src\pragma.c..
c8c0: 70 72 65 70 61 72 65 2e 6c 6f 3a 09 24 28 54 4f  prepare.lo:.$(TO
c8d0: 50 29 5c 73 72 63 5c 70 72 65 70 61 72 65 2e 63  P)\src\prepare.c
c8e0: 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d   $(HDR)..$(LTCOM
c8f0: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
c900: 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28  PILE_OPTS) -c $(
c910: 54 4f 50 29 5c 73 72 63 5c 70 72 65 70 61 72 65  TOP)\src\prepare
c920: 2e 63 0a 0a 70 72 69 6e 74 66 2e 6c 6f 3a 09 24  .c..printf.lo:.$
c930: 28 54 4f 50 29 5c 73 72 63 5c 70 72 69 6e 74 66  (TOP)\src\printf
c940: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
c950: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
c960: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
c970: 24 28 54 4f 50 29 5c 73 72 63 5c 70 72 69 6e 74  $(TOP)\src\print
c980: 66 2e 63 0a 0a 72 61 6e 64 6f 6d 2e 6c 6f 3a 09  f.c..random.lo:.
c990: 24 28 54 4f 50 29 5c 73 72 63 5c 72 61 6e 64 6f  $(TOP)\src\rando
c9a0: 6d 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  m.c $(HDR)..$(LT
c9b0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
c9c0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
c9d0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 72 61 6e 64   $(TOP)\src\rand
c9e0: 6f 6d 2e 63 0a 0a 72 65 73 6f 6c 76 65 2e 6c 6f  om.c..resolve.lo
c9f0: 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 72 65 73  :.$(TOP)\src\res
ca00: 6f 6c 76 65 2e 63 20 24 28 48 44 52 29 0a 09 24  olve.c $(HDR)..$
ca10: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
ca20: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
ca30: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 72   -c $(TOP)\src\r
ca40: 65 73 6f 6c 76 65 2e 63 0a 0a 72 6f 77 73 65 74  esolve.c..rowset
ca50: 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c  .lo:.$(TOP)\src\
ca60: 72 6f 77 73 65 74 2e 63 20 24 28 48 44 52 29 0a  rowset.c $(HDR).
ca70: 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28  .$(LTCOMPILE) $(
ca80: 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  CORE_COMPILE_OPT
ca90: 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63  S) -c $(TOP)\src
caa0: 5c 72 6f 77 73 65 74 2e 63 0a 0a 73 65 6c 65 63  \rowset.c..selec
cab0: 74 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63  t.lo:.$(TOP)\src
cac0: 5c 73 65 6c 65 63 74 2e 63 20 24 28 48 44 52 29  \select.c $(HDR)
cad0: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
cae0: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
caf0: 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72  TS) -c $(TOP)\sr
cb00: 63 5c 73 65 6c 65 63 74 2e 63 0a 0a 73 74 61 74  c\select.c..stat
cb10: 75 73 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  us.lo:.$(TOP)\sr
cb20: 63 5c 73 74 61 74 75 73 2e 63 20 24 28 48 44 52  c\status.c $(HDR
cb30: 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  )..$(LTCOMPILE) 
cb40: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
cb50: 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73  PTS) -c $(TOP)\s
cb60: 72 63 5c 73 74 61 74 75 73 2e 63 0a 0a 74 61 62  rc\status.c..tab
cb70: 6c 65 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  le.lo:.$(TOP)\sr
cb80: 63 5c 74 61 62 6c 65 2e 63 20 24 28 48 44 52 29  c\table.c $(HDR)
cb90: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
cba0: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
cbb0: 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72  TS) -c $(TOP)\sr
cbc0: 63 5c 74 61 62 6c 65 2e 63 0a 0a 74 68 72 65 61  c\table.c..threa
cbd0: 64 73 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  ds.lo:.$(TOP)\sr
cbe0: 63 5c 74 68 72 65 61 64 73 2e 63 20 24 28 48 44  c\threads.c $(HD
cbf0: 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29  R)..$(LTCOMPILE)
cc00: 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f   $(CORE_COMPILE_
cc10: 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c  OPTS) -c $(TOP)\
cc20: 73 72 63 5c 74 68 72 65 61 64 73 2e 63 0a 0a 74  src\threads.c..t
cc30: 6f 6b 65 6e 69 7a 65 2e 6c 6f 3a 09 24 28 54 4f  okenize.lo:.$(TO
cc40: 50 29 5c 73 72 63 5c 74 6f 6b 65 6e 69 7a 65 2e  P)\src\tokenize.
cc50: 63 20 6b 65 79 77 6f 72 64 68 61 73 68 2e 68 20  c keywordhash.h 
cc60: 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  $(HDR)..$(LTCOMP
cc70: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
cc80: 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54  ILE_OPTS) -c $(T
cc90: 4f 50 29 5c 73 72 63 5c 74 6f 6b 65 6e 69 7a 65  OP)\src\tokenize
cca0: 2e 63 0a 0a 74 72 65 65 76 69 65 77 2e 6c 6f 3a  .c..treeview.lo:
ccb0: 09 24 28 54 4f 50 29 5c 73 72 63 5c 74 72 65 65  .$(TOP)\src\tree
ccc0: 76 69 65 77 2e 63 20 24 28 48 44 52 29 0a 09 24  view.c $(HDR)..$
ccd0: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
cce0: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
ccf0: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 74   -c $(TOP)\src\t
cd00: 72 65 65 76 69 65 77 2e 63 0a 0a 74 72 69 67 67  reeview.c..trigg
cd10: 65 72 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  er.lo:.$(TOP)\sr
cd20: 63 5c 74 72 69 67 67 65 72 2e 63 20 24 28 48 44  c\trigger.c $(HD
cd30: 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29  R)..$(LTCOMPILE)
cd40: 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f   $(CORE_COMPILE_
cd50: 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c  OPTS) -c $(TOP)\
cd60: 73 72 63 5c 74 72 69 67 67 65 72 2e 63 0a 0a 75  src\trigger.c..u
cd70: 70 64 61 74 65 2e 6c 6f 3a 09 24 28 54 4f 50 29  pdate.lo:.$(TOP)
cd80: 5c 73 72 63 5c 75 70 64 61 74 65 2e 63 20 24 28  \src\update.c $(
cd90: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
cda0: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
cdb0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
cdc0: 29 5c 73 72 63 5c 75 70 64 61 74 65 2e 63 0a 0a  )\src\update.c..
cdd0: 75 74 66 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73  utf.lo:.$(TOP)\s
cde0: 72 63 5c 75 74 66 2e 63 20 24 28 48 44 52 29 0a  rc\utf.c $(HDR).
cdf0: 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28  .$(LTCOMPILE) $(
ce00: 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  CORE_COMPILE_OPT
ce10: 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63  S) -c $(TOP)\src
ce20: 5c 75 74 66 2e 63 0a 0a 75 74 69 6c 2e 6c 6f 3a  \utf.c..util.lo:
ce30: 09 24 28 54 4f 50 29 5c 73 72 63 5c 75 74 69 6c  .$(TOP)\src\util
ce40: 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43  .c $(HDR)..$(LTC
ce50: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
ce60: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20  OMPILE_OPTS) -c 
ce70: 24 28 54 4f 50 29 5c 73 72 63 5c 75 74 69 6c 2e  $(TOP)\src\util.
ce80: 63 0a 0a 76 61 63 75 75 6d 2e 6c 6f 3a 09 24 28  c..vacuum.lo:.$(
ce90: 54 4f 50 29 5c 73 72 63 5c 76 61 63 75 75 6d 2e  TOP)\src\vacuum.
cea0: 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f  c $(HDR)..$(LTCO
ceb0: 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f  MPILE) $(CORE_CO
cec0: 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24  MPILE_OPTS) -c $
ced0: 28 54 4f 50 29 5c 73 72 63 5c 76 61 63 75 75 6d  (TOP)\src\vacuum
cee0: 2e 63 0a 0a 76 64 62 65 2e 6c 6f 3a 09 24 28 54  .c..vdbe.lo:.$(T
cef0: 4f 50 29 5c 73 72 63 5c 76 64 62 65 2e 63 20 24  OP)\src\vdbe.c $
cf00: 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  (HDR)..$(LTCOMPI
cf10: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
cf20: 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f  LE_OPTS) -c $(TO
cf30: 50 29 5c 73 72 63 5c 76 64 62 65 2e 63 0a 0a 76  P)\src\vdbe.c..v
cf40: 64 62 65 61 70 69 2e 6c 6f 3a 09 24 28 54 4f 50  dbeapi.lo:.$(TOP
cf50: 29 5c 73 72 63 5c 76 64 62 65 61 70 69 2e 63 20  )\src\vdbeapi.c 
cf60: 24 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  $(HDR)..$(LTCOMP
cf70: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
cf80: 49 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54  ILE_OPTS) -c $(T
cf90: 4f 50 29 5c 73 72 63 5c 76 64 62 65 61 70 69 2e  OP)\src\vdbeapi.
cfa0: 63 0a 0a 76 64 62 65 61 75 78 2e 6c 6f 3a 09 24  c..vdbeaux.lo:.$
cfb0: 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65 61 75  (TOP)\src\vdbeau
cfc0: 78 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  x.c $(HDR)..$(LT
cfd0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
cfe0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
cff0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65   $(TOP)\src\vdbe
d000: 61 75 78 2e 63 0a 0a 76 64 62 65 62 6c 6f 62 2e  aux.c..vdbeblob.
d010: 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 76  lo:.$(TOP)\src\v
d020: 64 62 65 62 6c 6f 62 2e 63 20 24 28 48 44 52 29  dbeblob.c $(HDR)
d030: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
d040: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
d050: 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72  TS) -c $(TOP)\sr
d060: 63 5c 76 64 62 65 62 6c 6f 62 2e 63 0a 0a 76 64  c\vdbeblob.c..vd
d070: 62 65 6d 65 6d 2e 6c 6f 3a 09 24 28 54 4f 50 29  bemem.lo:.$(TOP)
d080: 5c 73 72 63 5c 76 64 62 65 6d 65 6d 2e 63 20 24  \src\vdbemem.c $
d090: 28 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  (HDR)..$(LTCOMPI
d0a0: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
d0b0: 4c 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f  LE_OPTS) -c $(TO
d0c0: 50 29 5c 73 72 63 5c 76 64 62 65 6d 65 6d 2e 63  P)\src\vdbemem.c
d0d0: 0a 0a 76 64 62 65 73 6f 72 74 2e 6c 6f 3a 09 24  ..vdbesort.lo:.$
d0e0: 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65 73 6f  (TOP)\src\vdbeso
d0f0: 72 74 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c  rt.c $(HDR)..$(L
d100: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
d110: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d  _COMPILE_OPTS) -
d120: 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 76 64 62  c $(TOP)\src\vdb
d130: 65 73 6f 72 74 2e 63 0a 0a 76 64 62 65 74 72 61  esort.c..vdbetra
d140: 63 65 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  ce.lo:.$(TOP)\sr
d150: 63 5c 76 64 62 65 74 72 61 63 65 2e 63 20 24 28  c\vdbetrace.c $(
d160: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
d170: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
d180: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
d190: 29 5c 73 72 63 5c 76 64 62 65 74 72 61 63 65 2e  )\src\vdbetrace.
d1a0: 63 0a 0a 76 74 61 62 2e 6c 6f 3a 09 24 28 54 4f  c..vtab.lo:.$(TO
d1b0: 50 29 5c 73 72 63 5c 76 74 61 62 2e 63 20 24 28  P)\src\vtab.c $(
d1c0: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
d1d0: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
d1e0: 45 5f 4f 50 54 53 29 20 2d 63 20 24 28 54 4f 50  E_OPTS) -c $(TOP
d1f0: 29 5c 73 72 63 5c 76 74 61 62 2e 63 0a 0a 77 61  )\src\vtab.c..wa
d200: 6c 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63  l.lo:.$(TOP)\src
d210: 5c 77 61 6c 2e 63 20 24 28 48 44 52 29 0a 09 24  \wal.c $(HDR)..$
d220: 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f  (LTCOMPILE) $(CO
d230: 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29  RE_COMPILE_OPTS)
d240: 20 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 77   -c $(TOP)\src\w
d250: 61 6c 2e 63 0a 0a 77 61 6c 6b 65 72 2e 6c 6f 3a  al.c..walker.lo:
d260: 09 24 28 54 4f 50 29 5c 73 72 63 5c 77 61 6c 6b  .$(TOP)\src\walk
d270: 65 72 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c  er.c $(HDR)..$(L
d280: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
d290: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d  _COMPILE_OPTS) -
d2a0: 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 77 61 6c  c $(TOP)\src\wal
d2b0: 6b 65 72 2e 63 0a 0a 77 68 65 72 65 2e 6c 6f 3a  ker.c..where.lo:
d2c0: 09 24 28 54 4f 50 29 5c 73 72 63 5c 77 68 65 72  .$(TOP)\src\wher
d2d0: 65 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  e.c $(HDR)..$(LT
d2e0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
d2f0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
d300: 20 24 28 54 4f 50 29 5c 73 72 63 5c 77 68 65 72   $(TOP)\src\wher
d310: 65 2e 63 0a 0a 77 68 65 72 65 63 6f 64 65 2e 6c  e.c..wherecode.l
d320: 6f 3a 09 24 28 54 4f 50 29 5c 73 72 63 5c 77 68  o:.$(TOP)\src\wh
d330: 65 72 65 63 6f 64 65 2e 63 20 24 28 48 44 52 29  erecode.c $(HDR)
d340: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
d350: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
d360: 54 53 29 20 2d 63 20 24 28 54 4f 50 29 5c 73 72  TS) -c $(TOP)\sr
d370: 63 5c 77 68 65 72 65 63 6f 64 65 2e 63 0a 0a 77  c\wherecode.c..w
d380: 68 65 72 65 65 78 70 72 2e 6c 6f 3a 09 24 28 54  hereexpr.lo:.$(T
d390: 4f 50 29 5c 73 72 63 5c 77 68 65 72 65 65 78 70  OP)\src\whereexp
d3a0: 72 2e 63 20 24 28 48 44 52 29 0a 09 24 28 4c 54  r.c $(HDR)..$(LT
d3b0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
d3c0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 2d 63  COMPILE_OPTS) -c
d3d0: 20 24 28 54 4f 50 29 5c 73 72 63 5c 77 68 65 72   $(TOP)\src\wher
d3e0: 65 65 78 70 72 2e 63 0a 0a 74 63 6c 73 71 6c 69  eexpr.c..tclsqli
d3f0: 74 65 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 73 72  te.lo:.$(TOP)\sr
d400: 63 5c 74 63 6c 73 71 6c 69 74 65 2e 63 20 24 28  c\tclsqlite.c $(
d410: 48 44 52 29 20 24 28 53 51 4c 49 54 45 5f 54 43  HDR) $(SQLITE_TC
d420: 4c 5f 44 45 50 29 0a 09 24 28 4c 54 43 4f 4d 50  L_DEP)..$(LTCOMP
d430: 49 4c 45 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20  ILE) $(NO_WARN) 
d440: 2d 44 55 53 45 5f 54 43 4c 5f 53 54 55 42 53 3d  -DUSE_TCL_STUBS=
d450: 31 20 2d 44 42 55 49 4c 44 5f 73 71 6c 69 74 65  1 -DBUILD_sqlite
d460: 20 2d 49 24 28 54 43 4c 49 4e 43 44 49 52 29 20   -I$(TCLINCDIR) 
d470: 2d 63 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 63  -c $(TOP)\src\tc
d480: 6c 73 71 6c 69 74 65 2e 63 0a 0a 74 63 6c 73 71  lsqlite.c..tclsq
d490: 6c 69 74 65 2d 73 68 65 6c 6c 2e 6c 6f 3a 09 24  lite-shell.lo:.$
d4a0: 28 54 4f 50 29 5c 73 72 63 5c 74 63 6c 73 71 6c  (TOP)\src\tclsql
d4b0: 69 74 65 2e 63 20 24 28 48 44 52 29 20 24 28 53  ite.c $(HDR) $(S
d4c0: 51 4c 49 54 45 5f 54 43 4c 5f 44 45 50 29 0a 09  QLITE_TCL_DEP)..
d4d0: 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 4e  $(LTCOMPILE) $(N
d4e0: 4f 5f 57 41 52 4e 29 20 2d 44 54 43 4c 53 48 20  O_WARN) -DTCLSH 
d4f0: 2d 44 42 55 49 4c 44 5f 73 71 6c 69 74 65 20 2d  -DBUILD_sqlite -
d500: 49 24 28 54 43 4c 49 4e 43 44 49 52 29 20 2d 63  I$(TCLINCDIR) -c
d510: 20 24 28 54 4f 50 29 5c 73 72 63 5c 74 63 6c 73   $(TOP)\src\tcls
d520: 71 6c 69 74 65 2e 63 0a 0a 74 63 6c 73 71 6c 69  qlite.c..tclsqli
d530: 74 65 33 2e 65 78 65 3a 09 74 63 6c 73 71 6c 69  te3.exe:.tclsqli
d540: 74 65 2d 73 68 65 6c 6c 2e 6c 6f 20 24 28 53 51  te-shell.lo $(SQ
d550: 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49 54 45  LITE3C) $(SQLITE
d560: 33 48 29 20 24 28 4c 49 42 52 45 53 4f 42 4a 53  3H) $(LIBRESOBJS
d570: 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 53  )..$(LTLINK) $(S
d580: 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b 20 24  QLITE3C) /link $
d590: 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54 4c 49  (LDFLAGS) $(LTLI
d5a0: 4e 4b 4f 50 54 53 29 20 24 28 4c 54 4c 49 42 50  NKOPTS) $(LTLIBP
d5b0: 41 54 48 53 29 20 2f 4f 55 54 3a 24 40 20 74 63  ATHS) /OUT:$@ tc
d5c0: 6c 73 71 6c 69 74 65 2d 73 68 65 6c 6c 2e 6c 6f  lsqlite-shell.lo
d5d0: 20 24 28 4c 49 42 52 45 53 4f 42 4a 53 29 20 24   $(LIBRESOBJS) $
d5e0: 28 4c 54 4c 49 42 53 29 20 24 28 54 4c 49 42 53  (LTLIBS) $(TLIBS
d5f0: 29 0a 0a 23 20 52 75 6c 65 73 20 74 6f 20 62 75  )..# Rules to bu
d600: 69 6c 64 20 6f 70 63 6f 64 65 73 2e 63 20 61 6e  ild opcodes.c an
d610: 64 20 6f 70 63 6f 64 65 73 2e 68 0a 23 0a 6f 70  d opcodes.h.#.op
d620: 63 6f 64 65 73 2e 63 3a 09 6f 70 63 6f 64 65 73  codes.c:.opcodes
d630: 2e 68 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d  .h $(TOP)\tool\m
d640: 6b 6f 70 63 6f 64 65 63 2e 74 63 6c 0a 09 24 28  kopcodec.tcl..$(
d650: 54 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50  TCLSH_CMD) $(TOP
d660: 29 5c 74 6f 6f 6c 5c 6d 6b 6f 70 63 6f 64 65 63  )\tool\mkopcodec
d670: 2e 74 63 6c 20 6f 70 63 6f 64 65 73 2e 68 20 3e  .tcl opcodes.h >
d680: 20 6f 70 63 6f 64 65 73 2e 63 0a 0a 6f 70 63 6f   opcodes.c..opco
d690: 64 65 73 2e 68 3a 09 70 61 72 73 65 2e 68 20 24  des.h:.parse.h $
d6a0: 28 54 4f 50 29 5c 73 72 63 5c 76 64 62 65 2e 63  (TOP)\src\vdbe.c
d6b0: 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 6f   $(TOP)\tool\mko
d6c0: 70 63 6f 64 65 68 2e 74 63 6c 0a 09 74 79 70 65  pcodeh.tcl..type
d6d0: 20 70 61 72 73 65 2e 68 20 24 28 54 4f 50 29 5c   parse.h $(TOP)\
d6e0: 73 72 63 5c 76 64 62 65 2e 63 20 7c 20 24 28 54  src\vdbe.c | $(T
d6f0: 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50 29  CLSH_CMD) $(TOP)
d700: 5c 74 6f 6f 6c 5c 6d 6b 6f 70 63 6f 64 65 68 2e  \tool\mkopcodeh.
d710: 74 63 6c 20 3e 20 6f 70 63 6f 64 65 73 2e 68 0a  tcl > opcodes.h.
d720: 0a 23 20 52 75 6c 65 73 20 74 6f 20 62 75 69 6c  .# Rules to buil
d730: 64 20 70 61 72 73 65 2e 63 20 61 6e 64 20 70 61  d parse.c and pa
d740: 72 73 65 2e 68 20 2d 20 74 68 65 20 6f 75 74 70  rse.h - the outp
d750: 75 74 73 20 6f 66 20 6c 65 6d 6f 6e 2e 0a 23 0a  uts of lemon..#.
d760: 70 61 72 73 65 2e 68 3a 09 70 61 72 73 65 2e 63  parse.h:.parse.c
d770: 0a 0a 70 61 72 73 65 2e 63 3a 09 24 28 54 4f 50  ..parse.c:.$(TOP
d780: 29 5c 73 72 63 5c 70 61 72 73 65 2e 79 20 6c 65  )\src\parse.y le
d790: 6d 6f 6e 2e 65 78 65 20 24 28 54 4f 50 29 5c 74  mon.exe $(TOP)\t
d7a0: 6f 6f 6c 5c 61 64 64 6f 70 63 6f 64 65 73 2e 74  ool\addopcodes.t
d7b0: 63 6c 0a 09 64 65 6c 20 2f 51 20 70 61 72 73 65  cl..del /Q parse
d7c0: 2e 79 20 70 61 72 73 65 2e 68 20 70 61 72 73 65  .y parse.h parse
d7d0: 2e 68 2e 74 65 6d 70 20 32 3e 4e 55 4c 0a 09 63  .h.temp 2>NUL..c
d7e0: 6f 70 79 20 24 28 54 4f 50 29 5c 73 72 63 5c 70  opy $(TOP)\src\p
d7f0: 61 72 73 65 2e 79 20 2e 0a 09 2e 5c 6c 65 6d 6f  arse.y ....\lemo
d800: 6e 2e 65 78 65 20 24 28 52 45 51 5f 46 45 41 54  n.exe $(REQ_FEAT
d810: 55 52 45 5f 46 4c 41 47 53 29 20 24 28 4f 50 54  URE_FLAGS) $(OPT
d820: 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20  _FEATURE_FLAGS) 
d830: 24 28 45 58 54 5f 46 45 41 54 55 52 45 5f 46 4c  $(EXT_FEATURE_FL
d840: 41 47 53 29 20 24 28 4f 50 54 53 29 20 70 61 72  AGS) $(OPTS) par
d850: 73 65 2e 79 0a 09 6d 6f 76 65 20 70 61 72 73 65  se.y..move parse
d860: 2e 68 20 70 61 72 73 65 2e 68 2e 74 65 6d 70 0a  .h parse.h.temp.
d870: 09 24 28 54 43 4c 53 48 5f 43 4d 44 29 20 24 28  .$(TCLSH_CMD) $(
d880: 54 4f 50 29 5c 74 6f 6f 6c 5c 61 64 64 6f 70 63  TOP)\tool\addopc
d890: 6f 64 65 73 2e 74 63 6c 20 70 61 72 73 65 2e 68  odes.tcl parse.h
d8a0: 2e 74 65 6d 70 20 3e 20 70 61 72 73 65 2e 68 0a  .temp > parse.h.
d8b0: 0a 24 28 53 51 4c 49 54 45 33 48 29 3a 09 24 28  .$(SQLITE3H):.$(
d8c0: 54 4f 50 29 5c 73 72 63 5c 73 71 6c 69 74 65 2e  TOP)\src\sqlite.
d8d0: 68 2e 69 6e 20 24 28 54 4f 50 29 5c 6d 61 6e 69  h.in $(TOP)\mani
d8e0: 66 65 73 74 20 6d 6b 73 6f 75 72 63 65 69 64 2e  fest mksourceid.
d8f0: 65 78 65 20 24 28 54 4f 50 29 5c 56 45 52 53 49  exe $(TOP)\VERSI
d900: 4f 4e 0a 09 24 28 54 43 4c 53 48 5f 43 4d 44 29  ON..$(TCLSH_CMD)
d910: 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 73   $(TOP)\tool\mks
d920: 71 6c 69 74 65 33 68 2e 74 63 6c 20 24 28 54 4f  qlite3h.tcl $(TO
d930: 50 3a 5c 3d 2f 29 20 3e 20 24 28 53 51 4c 49 54  P:\=/) > $(SQLIT
d940: 45 33 48 29 20 24 28 4d 4b 53 51 4c 49 54 45 33  E3H) $(MKSQLITE3
d950: 48 5f 41 52 47 53 29 0a 0a 73 71 6c 69 74 65 33  H_ARGS)..sqlite3
d960: 65 78 74 2e 68 3a 09 2e 74 61 72 67 65 74 5f 73  ext.h:..target_s
d970: 6f 75 72 63 65 0a 21 49 46 20 24 28 55 53 45 5f  ource.!IF $(USE_
d980: 53 54 44 43 41 4c 4c 29 21 3d 30 20 7c 7c 20 24  STDCALL)!=0 || $
d990: 28 46 4f 52 5f 57 49 4e 31 30 29 21 3d 30 0a 09  (FOR_WIN10)!=0..
d9a0: 74 79 70 65 20 74 73 72 63 5c 73 71 6c 69 74 65  type tsrc\sqlite
d9b0: 33 65 78 74 2e 68 20 7c 20 24 28 54 43 4c 53 48  3ext.h | $(TCLSH
d9c0: 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74 6f 6f  _CMD) $(TOP)\too
d9d0: 6c 5c 72 65 70 6c 61 63 65 2e 74 63 6c 20 72 65  l\replace.tcl re
d9e0: 67 73 75 62 20 22 5c 28 5c 2a 5c 29 22 20 22 28  gsub "\(\*\)" "(
d9f0: 53 51 4c 49 54 45 5f 43 41 4c 4c 42 41 43 4b 20  SQLITE_CALLBACK 
da00: 2a 29 22 20 5c 0a 09 09 7c 20 24 28 54 43 4c 53  *)" \...| $(TCLS
da10: 48 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74 6f  H_CMD) $(TOP)\to
da20: 6f 6c 5c 72 65 70 6c 61 63 65 2e 74 63 6c 20 72  ol\replace.tcl r
da30: 65 67 73 75 62 20 22 5c 28 5c 2a 22 20 22 28 53  egsub "\(\*" "(S
da40: 51 4c 49 54 45 5f 41 50 49 43 41 4c 4c 20 2a 22  QLITE_APICALL *"
da50: 20 3e 20 73 71 6c 69 74 65 33 65 78 74 2e 68 0a   > sqlite3ext.h.
da60: 09 63 6f 70 79 20 2f 59 20 73 71 6c 69 74 65 33  .copy /Y sqlite3
da70: 65 78 74 2e 68 20 74 73 72 63 5c 73 71 6c 69 74  ext.h tsrc\sqlit
da80: 65 33 65 78 74 2e 68 0a 21 45 4c 53 45 0a 09 63  e3ext.h.!ELSE..c
da90: 6f 70 79 20 2f 59 20 74 73 72 63 5c 73 71 6c 69  opy /Y tsrc\sqli
daa0: 74 65 33 65 78 74 2e 68 20 73 71 6c 69 74 65 33  te3ext.h sqlite3
dab0: 65 78 74 2e 68 0a 21 45 4e 44 49 46 0a 0a 6d 6b  ext.h.!ENDIF..mk
dac0: 6b 65 79 77 6f 72 64 68 61 73 68 2e 65 78 65 3a  keywordhash.exe:
dad0: 09 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 6b  .$(TOP)\tool\mkk
dae0: 65 79 77 6f 72 64 68 61 73 68 2e 63 0a 09 24 28  eywordhash.c..$(
daf0: 42 43 43 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20  BCC) $(NO_WARN) 
db00: 2d 46 65 24 40 20 24 28 52 45 51 5f 46 45 41 54  -Fe$@ $(REQ_FEAT
db10: 55 52 45 5f 46 4c 41 47 53 29 20 24 28 4f 50 54  URE_FLAGS) $(OPT
db20: 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20  _FEATURE_FLAGS) 
db30: 24 28 45 58 54 5f 46 45 41 54 55 52 45 5f 46 4c  $(EXT_FEATURE_FL
db40: 41 47 53 29 20 24 28 4f 50 54 53 29 20 5c 0a 09  AGS) $(OPTS) \..
db50: 09 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 6b  .$(TOP)\tool\mkk
db60: 65 79 77 6f 72 64 68 61 73 68 2e 63 20 2f 6c 69  eywordhash.c /li
db70: 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
db80: 4e 4c 54 4c 49 4e 4b 4f 50 54 53 29 20 24 28 4e  NLTLINKOPTS) $(N
db90: 4c 54 4c 49 42 50 41 54 48 53 29 0a 0a 6b 65 79  LTLIBPATHS)..key
dba0: 77 6f 72 64 68 61 73 68 2e 68 3a 09 24 28 54 4f  wordhash.h:.$(TO
dbb0: 50 29 5c 74 6f 6f 6c 5c 6d 6b 6b 65 79 77 6f 72  P)\tool\mkkeywor
dbc0: 64 68 61 73 68 2e 63 20 6d 6b 6b 65 79 77 6f 72  dhash.c mkkeywor
dbd0: 64 68 61 73 68 2e 65 78 65 0a 09 2e 5c 6d 6b 6b  dhash.exe...\mkk
dbe0: 65 79 77 6f 72 64 68 61 73 68 2e 65 78 65 20 3e  eywordhash.exe >
dbf0: 20 6b 65 79 77 6f 72 64 68 61 73 68 2e 68 0a 0a   keywordhash.h..
dc00: 23 20 53 6f 75 72 63 65 20 66 69 6c 65 73 20 74  # Source files t
dc10: 68 61 74 20 67 6f 20 69 6e 74 6f 20 6d 61 6b 69  hat go into maki
dc20: 6e 67 20 73 68 65 6c 6c 2e 63 0a 53 48 45 4c 4c  ng shell.c.SHELL
dc30: 5f 53 52 43 20 3d 20 5c 0a 09 24 28 54 4f 50 29  _SRC = \..$(TOP)
dc40: 5c 73 72 63 5c 73 68 65 6c 6c 2e 63 2e 69 6e 20  \src\shell.c.in 
dc50: 5c 0a 09 24 28 54 4f 50 29 5c 65 78 74 5c 6d 69  \..$(TOP)\ext\mi
dc60: 73 63 5c 73 68 61 74 68 72 65 65 2e 63 20 5c 0a  sc\shathree.c \.
dc70: 09 24 28 54 4f 50 29 5c 65 78 74 5c 6d 69 73 63  .$(TOP)\ext\misc
dc80: 5c 66 69 6c 65 69 6f 2e 63 20 5c 0a 09 24 28 54  \fileio.c \..$(T
dc90: 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c 63 6f 6d  OP)\ext\misc\com
dca0: 70 6c 65 74 69 6f 6e 2e 63 0a 0a 73 68 65 6c 6c  pletion.c..shell
dcb0: 2e 63 3a 09 24 28 53 48 45 4c 4c 5f 53 52 43 29  .c:.$(SHELL_SRC)
dcc0: 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 73   $(TOP)\tool\mks
dcd0: 68 65 6c 6c 63 2e 74 63 6c 0a 09 24 28 54 43 4c  hellc.tcl..$(TCL
dce0: 53 48 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74  SH_CMD) $(TOP)\t
dcf0: 6f 6f 6c 5c 6d 6b 73 68 65 6c 6c 63 2e 74 63 6c  ool\mkshellc.tcl
dd00: 20 3e 20 73 68 65 6c 6c 2e 63 0a 0a 0a 23 20 52   > shell.c...# R
dd10: 75 6c 65 73 20 74 6f 20 62 75 69 6c 64 20 74 68  ules to build th
dd20: 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 62 6a 65  e extension obje
dd30: 63 74 73 2e 0a 23 0a 69 63 75 2e 6c 6f 3a 09 24  cts..#.icu.lo:.$
dd40: 28 54 4f 50 29 5c 65 78 74 5c 69 63 75 5c 69 63  (TOP)\ext\icu\ic
dd50: 75 2e 63 20 24 28 48 44 52 29 20 24 28 45 58 54  u.c $(HDR) $(EXT
dd60: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
dd70: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
dd80: 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57 41 52  E_OPTS) $(NO_WAR
dd90: 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f 52 45  N) -DSQLITE_CORE
dda0: 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74 5c 69   -c $(TOP)\ext\i
ddb0: 63 75 5c 69 63 75 2e 63 0a 0a 66 74 73 32 2e 6c  cu\icu.c..fts2.l
ddc0: 6f 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  o:.$(TOP)\ext\ft
ddd0: 73 32 5c 66 74 73 32 2e 63 20 24 28 48 44 52 29  s2\fts2.c $(HDR)
dde0: 20 24 28 45 58 54 48 44 52 29 0a 09 24 28 4c 54   $(EXTHDR)..$(LT
ddf0: 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f  COMPILE) $(CORE_
de00: 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28  COMPILE_OPTS) $(
de10: 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49 54  NO_WARN) -DSQLIT
de20: 45 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f 50 29  E_CORE -c $(TOP)
de30: 5c 65 78 74 5c 66 74 73 32 5c 66 74 73 32 2e 63  \ext\fts2\fts2.c
de40: 0a 0a 66 74 73 32 5f 68 61 73 68 2e 6c 6f 3a 09  ..fts2_hash.lo:.
de50: 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 32 5c  $(TOP)\ext\fts2\
de60: 66 74 73 32 5f 68 61 73 68 2e 63 20 24 28 48 44  fts2_hash.c $(HD
de70: 52 29 20 24 28 45 58 54 48 44 52 29 0a 09 24 28  R) $(EXTHDR)..$(
de80: 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52  LTCOMPILE) $(COR
de90: 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20  E_COMPILE_OPTS) 
dea0: 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c  $(NO_WARN) -DSQL
deb0: 49 54 45 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f  ITE_CORE -c $(TO
dec0: 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73 32  P)\ext\fts2\fts2
ded0: 5f 68 61 73 68 2e 63 0a 0a 66 74 73 32 5f 69 63  _hash.c..fts2_ic
dee0: 75 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78 74  u.lo:.$(TOP)\ext
def0: 5c 66 74 73 32 5c 66 74 73 32 5f 69 63 75 2e 63  \fts2\fts2_icu.c
df00: 20 24 28 48 44 52 29 20 24 28 45 58 54 48 44 52   $(HDR) $(EXTHDR
df10: 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20  )..$(LTCOMPILE) 
df20: 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f  $(CORE_COMPILE_O
df30: 50 54 53 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20  PTS) $(NO_WARN) 
df40: 2d 44 53 51 4c 49 54 45 5f 43 4f 52 45 20 2d 63  -DSQLITE_CORE -c
df50: 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 32   $(TOP)\ext\fts2
df60: 5c 66 74 73 32 5f 69 63 75 2e 63 0a 0a 66 74 73  \fts2_icu.c..fts
df70: 32 5f 70 6f 72 74 65 72 2e 6c 6f 3a 09 24 28 54  2_porter.lo:.$(T
df80: 4f 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73  OP)\ext\fts2\fts
df90: 32 5f 70 6f 72 74 65 72 2e 63 20 24 28 48 44 52  2_porter.c $(HDR
dfa0: 29 20 24 28 45 58 54 48 44 52 29 0a 09 24 28 4c  ) $(EXTHDR)..$(L
dfb0: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
dfc0: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24  _COMPILE_OPTS) $
dfd0: 28 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49  (NO_WARN) -DSQLI
dfe0: 54 45 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f 50  TE_CORE -c $(TOP
dff0: 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73 32 5f  )\ext\fts2\fts2_
e000: 70 6f 72 74 65 72 2e 63 0a 0a 66 74 73 32 5f 74  porter.c..fts2_t
e010: 6f 6b 65 6e 69 7a 65 72 2e 6c 6f 3a 09 24 28 54  okenizer.lo:.$(T
e020: 4f 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74 73  OP)\ext\fts2\fts
e030: 32 5f 74 6f 6b 65 6e 69 7a 65 72 2e 63 20 24 28  2_tokenizer.c $(
e040: 48 44 52 29 20 24 28 45 58 54 48 44 52 29 0a 09  HDR) $(EXTHDR)..
e050: 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43  $(LTCOMPILE) $(C
e060: 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53  ORE_COMPILE_OPTS
e070: 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 44 53  ) $(NO_WARN) -DS
e080: 51 4c 49 54 45 5f 43 4f 52 45 20 2d 63 20 24 28  QLITE_CORE -c $(
e090: 54 4f 50 29 5c 65 78 74 5c 66 74 73 32 5c 66 74  TOP)\ext\fts2\ft
e0a0: 73 32 5f 74 6f 6b 65 6e 69 7a 65 72 2e 63 0a 0a  s2_tokenizer.c..
e0b0: 66 74 73 32 5f 74 6f 6b 65 6e 69 7a 65 72 31 2e  fts2_tokenizer1.
e0c0: 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c 66  lo:.$(TOP)\ext\f
e0d0: 74 73 32 5c 66 74 73 32 5f 74 6f 6b 65 6e 69 7a  ts2\fts2_tokeniz
e0e0: 65 72 31 2e 63 20 24 28 48 44 52 29 20 24 28 45  er1.c $(HDR) $(E
e0f0: 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  XTHDR)..$(LTCOMP
e100: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
e110: 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57  ILE_OPTS) $(NO_W
e120: 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f  ARN) -DSQLITE_CO
e130: 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74  RE -c $(TOP)\ext
e140: 5c 66 74 73 32 5c 66 74 73 32 5f 74 6f 6b 65 6e  \fts2\fts2_token
e150: 69 7a 65 72 31 2e 63 0a 0a 66 74 73 33 2e 6c 6f  izer1.c..fts3.lo
e160: 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73  :.$(TOP)\ext\fts
e170: 33 5c 66 74 73 33 2e 63 20 24 28 48 44 52 29 20  3\fts3.c $(HDR) 
e180: 24 28 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43  $(EXTHDR)..$(LTC
e190: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
e1a0: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e  OMPILE_OPTS) $(N
e1b0: 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45  O_WARN) -DSQLITE
e1c0: 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f 50 29 5c  _CORE -c $(TOP)\
e1d0: 65 78 74 5c 66 74 73 33 5c 66 74 73 33 2e 63 0a  ext\fts3\fts3.c.
e1e0: 0a 66 74 73 33 5f 61 75 78 2e 6c 6f 3a 09 24 28  .fts3_aux.lo:.$(
e1f0: 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74  TOP)\ext\fts3\ft
e200: 73 33 5f 61 75 78 2e 63 20 24 28 48 44 52 29 20  s3_aux.c $(HDR) 
e210: 24 28 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43  $(EXTHDR)..$(LTC
e220: 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43  OMPILE) $(CORE_C
e230: 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e  OMPILE_OPTS) $(N
e240: 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45  O_WARN) -DSQLITE
e250: 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f 50 29 5c  _CORE -c $(TOP)\
e260: 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 61 75  ext\fts3\fts3_au
e270: 78 2e 63 0a 0a 66 74 73 33 5f 65 78 70 72 2e 6c  x.c..fts3_expr.l
e280: 6f 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c 66 74  o:.$(TOP)\ext\ft
e290: 73 33 5c 66 74 73 33 5f 65 78 70 72 2e 63 20 24  s3\fts3_expr.c $
e2a0: 28 48 44 52 29 20 24 28 45 58 54 48 44 52 29 0a  (HDR) $(EXTHDR).
e2b0: 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28  .$(LTCOMPILE) $(
e2c0: 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  CORE_COMPILE_OPT
e2d0: 53 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 44  S) $(NO_WARN) -D
e2e0: 53 51 4c 49 54 45 5f 43 4f 52 45 20 2d 63 20 24  SQLITE_CORE -c $
e2f0: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66  (TOP)\ext\fts3\f
e300: 74 73 33 5f 65 78 70 72 2e 63 0a 0a 66 74 73 33  ts3_expr.c..fts3
e310: 5f 68 61 73 68 2e 6c 6f 3a 09 24 28 54 4f 50 29  _hash.lo:.$(TOP)
e320: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 68  \ext\fts3\fts3_h
e330: 61 73 68 2e 63 20 24 28 48 44 52 29 20 24 28 45  ash.c $(HDR) $(E
e340: 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  XTHDR)..$(LTCOMP
e350: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
e360: 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57  ILE_OPTS) $(NO_W
e370: 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f  ARN) -DSQLITE_CO
e380: 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74  RE -c $(TOP)\ext
e390: 5c 66 74 73 33 5c 66 74 73 33 5f 68 61 73 68 2e  \fts3\fts3_hash.
e3a0: 63 0a 0a 66 74 73 33 5f 69 63 75 2e 6c 6f 3a 09  c..fts3_icu.lo:.
e3b0: 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c  $(TOP)\ext\fts3\
e3c0: 66 74 73 33 5f 69 63 75 2e 63 20 24 28 48 44 52  fts3_icu.c $(HDR
e3d0: 29 20 24 28 45 58 54 48 44 52 29 0a 09 24 28 4c  ) $(EXTHDR)..$(L
e3e0: 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52 45  TCOMPILE) $(CORE
e3f0: 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24  _COMPILE_OPTS) $
e400: 28 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49  (NO_WARN) -DSQLI
e410: 54 45 5f 43 4f 52 45 20 2d 63 20 24 28 54 4f 50  TE_CORE -c $(TOP
e420: 29 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f  )\ext\fts3\fts3_
e430: 69 63 75 2e 63 0a 0a 66 74 73 33 5f 73 6e 69 70  icu.c..fts3_snip
e440: 70 65 74 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65  pet.lo:.$(TOP)\e
e450: 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 73 6e 69  xt\fts3\fts3_sni
e460: 70 70 65 74 2e 63 20 24 28 48 44 52 29 20 24 28  ppet.c $(HDR) $(
e470: 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d  EXTHDR)..$(LTCOM
e480: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
e490: 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f  PILE_OPTS) $(NO_
e4a0: 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43  WARN) -DSQLITE_C
e4b0: 4f 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78  ORE -c $(TOP)\ex
e4c0: 74 5c 66 74 73 33 5c 66 74 73 33 5f 73 6e 69 70  t\fts3\fts3_snip
e4d0: 70 65 74 2e 63 0a 0a 66 74 73 33 5f 70 6f 72 74  pet.c..fts3_port
e4e0: 65 72 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78  er.lo:.$(TOP)\ex
e4f0: 74 5c 66 74 73 33 5c 66 74 73 33 5f 70 6f 72 74  t\fts3\fts3_port
e500: 65 72 2e 63 20 24 28 48 44 52 29 20 24 28 45 58  er.c $(HDR) $(EX
e510: 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  THDR)..$(LTCOMPI
e520: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
e530: 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57 41  LE_OPTS) $(NO_WA
e540: 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f 52  RN) -DSQLITE_COR
e550: 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74 5c  E -c $(TOP)\ext\
e560: 66 74 73 33 5c 66 74 73 33 5f 70 6f 72 74 65 72  fts3\fts3_porter
e570: 2e 63 0a 0a 66 74 73 33 5f 74 6f 6b 65 6e 69 7a  .c..fts3_tokeniz
e580: 65 72 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78  er.lo:.$(TOP)\ex
e590: 74 5c 66 74 73 33 5c 66 74 73 33 5f 74 6f 6b 65  t\fts3\fts3_toke
e5a0: 6e 69 7a 65 72 2e 63 20 24 28 48 44 52 29 20 24  nizer.c $(HDR) $
e5b0: 28 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f  (EXTHDR)..$(LTCO
e5c0: 4d 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f  MPILE) $(CORE_CO
e5d0: 4d 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f  MPILE_OPTS) $(NO
e5e0: 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f  _WARN) -DSQLITE_
e5f0: 43 4f 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65  CORE -c $(TOP)\e
e600: 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 74 6f 6b  xt\fts3\fts3_tok
e610: 65 6e 69 7a 65 72 2e 63 0a 0a 66 74 73 33 5f 74  enizer.c..fts3_t
e620: 6f 6b 65 6e 69 7a 65 72 31 2e 6c 6f 3a 09 24 28  okenizer1.lo:.$(
e630: 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66 74  TOP)\ext\fts3\ft
e640: 73 33 5f 74 6f 6b 65 6e 69 7a 65 72 31 2e 63 20  s3_tokenizer1.c 
e650: 24 28 48 44 52 29 20 24 28 45 58 54 48 44 52 29  $(HDR) $(EXTHDR)
e660: 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24  ..$(LTCOMPILE) $
e670: 28 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50  (CORE_COMPILE_OP
e680: 54 53 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d  TS) $(NO_WARN) -
e690: 44 53 51 4c 49 54 45 5f 43 4f 52 45 20 2d 63 20  DSQLITE_CORE -c 
e6a0: 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c  $(TOP)\ext\fts3\
e6b0: 66 74 73 33 5f 74 6f 6b 65 6e 69 7a 65 72 31 2e  fts3_tokenizer1.
e6c0: 63 0a 0a 66 74 73 33 5f 74 6f 6b 65 6e 69 7a 65  c..fts3_tokenize
e6d0: 5f 76 74 61 62 2e 6c 6f 3a 09 24 28 54 4f 50 29  _vtab.lo:.$(TOP)
e6e0: 5c 65 78 74 5c 66 74 73 33 5c 66 74 73 33 5f 74  \ext\fts3\fts3_t
e6f0: 6f 6b 65 6e 69 7a 65 5f 76 74 61 62 2e 63 20 24  okenize_vtab.c $
e700: 28 48 44 52 29 20 24 28 45 58 54 48 44 52 29 0a  (HDR) $(EXTHDR).
e710: 09 24 28 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28  .$(LTCOMPILE) $(
e720: 43 4f 52 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54  CORE_COMPILE_OPT
e730: 53 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 44  S) $(NO_WARN) -D
e740: 53 51 4c 49 54 45 5f 43 4f 52 45 20 2d 63 20 24  SQLITE_CORE -c $
e750: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 66  (TOP)\ext\fts3\f
e760: 74 73 33 5f 74 6f 6b 65 6e 69 7a 65 5f 76 74 61  ts3_tokenize_vta
e770: 62 2e 63 0a 0a 66 74 73 33 5f 75 6e 69 63 6f 64  b.c..fts3_unicod
e780: 65 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78 74  e.lo:.$(TOP)\ext
e790: 5c 66 74 73 33 5c 66 74 73 33 5f 75 6e 69 63 6f  \fts3\fts3_unico
e7a0: 64 65 2e 63 20 24 28 48 44 52 29 20 24 28 45 58  de.c $(HDR) $(EX
e7b0: 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  THDR)..$(LTCOMPI
e7c0: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
e7d0: 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57 41  LE_OPTS) $(NO_WA
e7e0: 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f 52  RN) -DSQLITE_COR
e7f0: 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74 5c  E -c $(TOP)\ext\
e800: 66 74 73 33 5c 66 74 73 33 5f 75 6e 69 63 6f 64  fts3\fts3_unicod
e810: 65 2e 63 0a 0a 66 74 73 33 5f 75 6e 69 63 6f 64  e.c..fts3_unicod
e820: 65 32 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78  e2.lo:.$(TOP)\ex
e830: 74 5c 66 74 73 33 5c 66 74 73 33 5f 75 6e 69 63  t\fts3\fts3_unic
e840: 6f 64 65 32 2e 63 20 24 28 48 44 52 29 20 24 28  ode2.c $(HDR) $(
e850: 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d  EXTHDR)..$(LTCOM
e860: 50 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d  PILE) $(CORE_COM
e870: 50 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f  PILE_OPTS) $(NO_
e880: 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43  WARN) -DSQLITE_C
e890: 4f 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78  ORE -c $(TOP)\ex
e8a0: 74 5c 66 74 73 33 5c 66 74 73 33 5f 75 6e 69 63  t\fts3\fts3_unic
e8b0: 6f 64 65 32 2e 63 0a 0a 66 74 73 33 5f 77 72 69  ode2.c..fts3_wri
e8c0: 74 65 2e 6c 6f 3a 09 24 28 54 4f 50 29 5c 65 78  te.lo:.$(TOP)\ex
e8d0: 74 5c 66 74 73 33 5c 66 74 73 33 5f 77 72 69 74  t\fts3\fts3_writ
e8e0: 65 2e 63 20 24 28 48 44 52 29 20 24 28 45 58 54  e.c $(HDR) $(EXT
e8f0: 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49 4c  HDR)..$(LTCOMPIL
e900: 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49 4c  E) $(CORE_COMPIL
e910: 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57 41 52  E_OPTS) $(NO_WAR
e920: 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f 52 45  N) -DSQLITE_CORE
e930: 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74 5c 66   -c $(TOP)\ext\f
e940: 74 73 33 5c 66 74 73 33 5f 77 72 69 74 65 2e 63  ts3\fts3_write.c
e950: 0a 0a 72 74 72 65 65 2e 6c 6f 3a 09 24 28 54 4f  ..rtree.lo:.$(TO
e960: 50 29 5c 65 78 74 5c 72 74 72 65 65 5c 72 74 72  P)\ext\rtree\rtr
e970: 65 65 2e 63 20 24 28 48 44 52 29 20 24 28 45 58  ee.c $(HDR) $(EX
e980: 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50 49  THDR)..$(LTCOMPI
e990: 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50 49  LE) $(CORE_COMPI
e9a0: 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57 41  LE_OPTS) $(NO_WA
e9b0: 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f 52  RN) -DSQLITE_COR
e9c0: 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74 5c  E -c $(TOP)\ext\
e9d0: 72 74 72 65 65 5c 72 74 72 65 65 2e 63 0a 0a 73  rtree\rtree.c..s
e9e0: 71 6c 69 74 65 33 73 65 73 73 69 6f 6e 2e 6c 6f  qlite3session.lo
e9f0: 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c 73 65 73  :.$(TOP)\ext\ses
ea00: 73 69 6f 6e 5c 73 71 6c 69 74 65 33 73 65 73 73  sion\sqlite3sess
ea10: 69 6f 6e 2e 63 20 24 28 48 44 52 29 20 24 28 45  ion.c $(HDR) $(E
ea20: 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  XTHDR)..$(LTCOMP
ea30: 49 4c 45 29 20 24 28 43 4f 52 45 5f 43 4f 4d 50  ILE) $(CORE_COMP
ea40: 49 4c 45 5f 4f 50 54 53 29 20 24 28 4e 4f 5f 57  ILE_OPTS) $(NO_W
ea50: 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f  ARN) -DSQLITE_CO
ea60: 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74  RE -c $(TOP)\ext
ea70: 5c 73 65 73 73 69 6f 6e 5c 73 71 6c 69 74 65 33  \session\sqlite3
ea80: 73 65 73 73 69 6f 6e 2e 63 0a 0a 23 20 46 54 53  session.c..# FTS
ea90: 35 20 74 68 69 6e 67 73 0a 23 0a 46 54 53 35 5f  5 things.#.FTS5_
eaa0: 53 52 43 20 3d 20 5c 0a 20 20 20 24 28 54 4f 50  SRC = \.   $(TOP
eab0: 29 5c 65 78 74 5c 66 74 73 35 5c 66 74 73 35 2e  )\ext\fts5\fts5.
eac0: 68 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 65 78  h \.   $(TOP)\ex
ead0: 74 5c 66 74 73 35 5c 66 74 73 35 49 6e 74 2e 68  t\fts5\fts5Int.h
eae0: 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 65 78 74   \.   $(TOP)\ext
eaf0: 5c 66 74 73 35 5c 66 74 73 35 5f 61 75 78 2e 63  \fts5\fts5_aux.c
eb00: 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 65 78 74   \.   $(TOP)\ext
eb10: 5c 66 74 73 35 5c 66 74 73 35 5f 62 75 66 66 65  \fts5\fts5_buffe
eb20: 72 2e 63 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c  r.c \.   $(TOP)\
eb30: 65 78 74 5c 66 74 73 35 5c 66 74 73 35 5f 6d 61  ext\fts5\fts5_ma
eb40: 69 6e 2e 63 20 5c 0a 20 20 20 24 28 54 4f 50 29  in.c \.   $(TOP)
eb50: 5c 65 78 74 5c 66 74 73 35 5c 66 74 73 35 5f 63  \ext\fts5\fts5_c
eb60: 6f 6e 66 69 67 2e 63 20 5c 0a 20 20 20 24 28 54  onfig.c \.   $(T
eb70: 4f 50 29 5c 65 78 74 5c 66 74 73 35 5c 66 74 73  OP)\ext\fts5\fts
eb80: 35 5f 65 78 70 72 2e 63 20 5c 0a 20 20 20 24 28  5_expr.c \.   $(
eb90: 54 4f 50 29 5c 65 78 74 5c 66 74 73 35 5c 66 74  TOP)\ext\fts5\ft
eba0: 73 35 5f 68 61 73 68 2e 63 20 5c 0a 20 20 20 24  s5_hash.c \.   $
ebb0: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 35 5c 66  (TOP)\ext\fts5\f
ebc0: 74 73 35 5f 69 6e 64 65 78 2e 63 20 5c 0a 20 20  ts5_index.c \.  
ebd0: 20 66 74 73 35 70 61 72 73 65 2e 63 20 66 74 73   fts5parse.c fts
ebe0: 35 70 61 72 73 65 2e 68 20 5c 0a 20 20 20 24 28  5parse.h \.   $(
ebf0: 54 4f 50 29 5c 65 78 74 5c 66 74 73 35 5c 66 74  TOP)\ext\fts5\ft
ec00: 73 35 5f 73 74 6f 72 61 67 65 2e 63 20 5c 0a 20  s5_storage.c \. 
ec10: 20 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73    $(TOP)\ext\fts
ec20: 35 5c 66 74 73 35 5f 74 6f 6b 65 6e 69 7a 65 2e  5\fts5_tokenize.
ec30: 63 20 5c 0a 20 20 20 24 28 54 4f 50 29 5c 65 78  c \.   $(TOP)\ex
ec40: 74 5c 66 74 73 35 5c 66 74 73 35 5f 75 6e 69 63  t\fts5\fts5_unic
ec50: 6f 64 65 32 2e 63 20 5c 0a 20 20 20 24 28 54 4f  ode2.c \.   $(TO
ec60: 50 29 5c 65 78 74 5c 66 74 73 35 5c 66 74 73 35  P)\ext\fts5\fts5
ec70: 5f 76 61 72 69 6e 74 2e 63 20 5c 0a 20 20 20 24  _varint.c \.   $
ec80: 28 54 4f 50 29 5c 65 78 74 5c 66 74 73 35 5c 66  (TOP)\ext\fts5\f
ec90: 74 73 35 5f 76 6f 63 61 62 2e 63 0a 0a 66 74 73  ts5_vocab.c..fts
eca0: 35 70 61 72 73 65 2e 63 3a 09 24 28 54 4f 50 29  5parse.c:.$(TOP)
ecb0: 5c 65 78 74 5c 66 74 73 35 5c 66 74 73 35 70 61  \ext\fts5\fts5pa
ecc0: 72 73 65 2e 79 20 6c 65 6d 6f 6e 2e 65 78 65 0a  rse.y lemon.exe.
ecd0: 09 63 6f 70 79 20 24 28 54 4f 50 29 5c 65 78 74  .copy $(TOP)\ext
ece0: 5c 66 74 73 35 5c 66 74 73 35 70 61 72 73 65 2e  \fts5\fts5parse.
ecf0: 79 20 2e 0a 09 64 65 6c 20 2f 51 20 66 74 73 35  y ...del /Q fts5
ed00: 70 61 72 73 65 2e 68 20 32 3e 4e 55 4c 0a 09 2e  parse.h 2>NUL...
ed10: 5c 6c 65 6d 6f 6e 2e 65 78 65 20 24 28 52 45 51  \lemon.exe $(REQ
ed20: 5f 46 45 41 54 55 52 45 5f 46 4c 41 47 53 29 20  _FEATURE_FLAGS) 
ed30: 24 28 4f 50 54 5f 46 45 41 54 55 52 45 5f 46 4c  $(OPT_FEATURE_FL
ed40: 41 47 53 29 20 24 28 45 58 54 5f 46 45 41 54 55  AGS) $(EXT_FEATU
ed50: 52 45 5f 46 4c 41 47 53 29 20 24 28 4f 50 54 53  RE_FLAGS) $(OPTS
ed60: 29 20 66 74 73 35 70 61 72 73 65 2e 79 0a 0a 66  ) fts5parse.y..f
ed70: 74 73 35 70 61 72 73 65 2e 68 3a 09 66 74 73 35  ts5parse.h:.fts5
ed80: 70 61 72 73 65 2e 63 0a 0a 66 74 73 35 2e 63 3a  parse.c..fts5.c:
ed90: 09 24 28 46 54 53 35 5f 53 52 43 29 0a 09 24 28  .$(FTS5_SRC)..$(
eda0: 54 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50  TCLSH_CMD) $(TOP
edb0: 29 5c 65 78 74 5c 66 74 73 35 5c 74 6f 6f 6c 5c  )\ext\fts5\tool\
edc0: 6d 6b 66 74 73 35 63 2e 74 63 6c 0a 09 63 6f 70  mkfts5c.tcl..cop
edd0: 79 20 24 28 54 4f 50 29 5c 65 78 74 5c 66 74 73  y $(TOP)\ext\fts
ede0: 35 5c 66 74 73 35 2e 68 20 2e 0a 0a 66 74 73 35  5\fts5.h ...fts5
edf0: 2e 6c 6f 3a 09 66 74 73 35 2e 63 20 24 28 48 44  .lo:.fts5.c $(HD
ee00: 52 29 20 24 28 45 58 54 48 44 52 29 0a 09 24 28  R) $(EXTHDR)..$(
ee10: 4c 54 43 4f 4d 50 49 4c 45 29 20 24 28 43 4f 52  LTCOMPILE) $(COR
ee20: 45 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20  E_COMPILE_OPTS) 
ee30: 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c  $(NO_WARN) -DSQL
ee40: 49 54 45 5f 43 4f 52 45 20 2d 63 20 66 74 73 35  ITE_CORE -c fts5
ee50: 2e 63 0a 0a 66 74 73 35 5f 65 78 74 2e 6c 6f 3a  .c..fts5_ext.lo:
ee60: 09 66 74 73 35 2e 63 20 24 28 48 44 52 29 20 24  .fts5.c $(HDR) $
ee70: 28 45 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f  (EXTHDR)..$(LTCO
ee80: 4d 50 49 4c 45 29 20 24 28 4e 4f 5f 57 41 52 4e  MPILE) $(NO_WARN
ee90: 29 20 2d 63 20 66 74 73 35 2e 63 0a 0a 66 74 73  ) -c fts5.c..fts
eea0: 35 2e 64 6c 6c 3a 09 66 74 73 35 5f 65 78 74 2e  5.dll:.fts5_ext.
eeb0: 6c 6f 0a 09 24 28 4c 44 29 20 24 28 4c 44 46 4c  lo..$(LD) $(LDFL
eec0: 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54  AGS) $(LTLINKOPT
eed0: 53 29 20 24 28 4c 54 4c 49 42 50 41 54 48 53 29  S) $(LTLIBPATHS)
eee0: 20 2f 44 4c 4c 20 2f 4f 55 54 3a 24 40 20 66 74   /DLL /OUT:$@ ft
eef0: 73 35 5f 65 78 74 2e 6c 6f 0a 0a 73 71 6c 69 74  s5_ext.lo..sqlit
ef00: 65 33 72 62 75 2e 6c 6f 3a 09 24 28 54 4f 50 29  e3rbu.lo:.$(TOP)
ef10: 5c 65 78 74 5c 72 62 75 5c 73 71 6c 69 74 65 33  \ext\rbu\sqlite3
ef20: 72 62 75 2e 63 20 24 28 48 44 52 29 20 24 28 45  rbu.c $(HDR) $(E
ef30: 58 54 48 44 52 29 0a 09 24 28 4c 54 43 4f 4d 50  XTHDR)..$(LTCOMP
ef40: 49 4c 45 29 20 2d 44 53 51 4c 49 54 45 5f 43 4f  ILE) -DSQLITE_CO
ef50: 52 45 20 2d 63 20 24 28 54 4f 50 29 5c 65 78 74  RE -c $(TOP)\ext
ef60: 5c 72 62 75 5c 73 71 6c 69 74 65 33 72 62 75 2e  \rbu\sqlite3rbu.
ef70: 63 0a 0a 23 20 52 75 6c 65 73 20 74 6f 20 62 75  c..# Rules to bu
ef80: 69 6c 64 20 74 68 65 20 27 74 65 73 74 66 69 78  ild the 'testfix
ef90: 74 75 72 65 27 20 61 70 70 6c 69 63 61 74 69 6f  ture' applicatio
efa0: 6e 2e 0a 23 0a 23 20 49 66 20 75 73 69 6e 67 20  n..#.# If using 
efb0: 74 68 65 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e  the amalgamation
efc0: 2c 20 75 73 65 20 73 71 6c 69 74 65 33 2e 63 20  , use sqlite3.c 
efd0: 64 69 72 65 63 74 6c 79 20 74 6f 20 62 75 69 6c  directly to buil
efe0: 64 20 74 68 65 20 74 65 73 74 0a 23 20 66 69 78  d the test.# fix
eff0: 74 75 72 65 2e 20 20 4f 74 68 65 72 77 69 73 65  ture.  Otherwise
f000: 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 6c 69   link against li
f010: 62 73 71 6c 69 74 65 33 2e 6c 69 62 2e 20 20 28  bsqlite3.lib.  (
f020: 54 68 69 73 20 64 69 73 74 69 6e 63 74 69 6f 6e  This distinction
f030: 20 69 73 0a 23 20 6e 65 63 65 73 73 61 72 79 20   is.# necessary 
f040: 62 65 63 61 75 73 65 20 74 68 65 20 74 65 73 74  because the test
f050: 20 66 69 78 74 75 72 65 20 72 65 71 75 69 72 65   fixture require
f060: 73 20 6e 6f 6e 2d 41 50 49 20 73 79 6d 62 6f 6c  s non-API symbol
f070: 73 20 77 68 69 63 68 20 61 72 65 0a 23 20 68 69  s which are.# hi
f080: 64 64 65 6e 20 77 68 65 6e 20 74 68 65 20 6c 69  dden when the li
f090: 62 72 61 72 79 20 69 73 20 62 75 69 6c 74 20 76  brary is built v
f0a0: 69 61 20 74 68 65 20 61 6d 61 6c 67 61 6d 61 74  ia the amalgamat
f0b0: 69 6f 6e 29 2e 0a 23 0a 54 45 53 54 46 49 58 54  ion)..#.TESTFIXT
f0c0: 55 52 45 5f 46 4c 41 47 53 20 3d 20 2d 44 54 43  URE_FLAGS = -DTC
f0d0: 4c 53 48 5f 49 4e 49 54 5f 50 52 4f 43 3d 73 71  LSH_INIT_PROC=sq
f0e0: 6c 69 74 65 33 54 65 73 74 49 6e 69 74 20 2d 44  lite3TestInit -D
f0f0: 53 51 4c 49 54 45 5f 54 45 53 54 3d 31 20 2d 44  SQLITE_TEST=1 -D
f100: 53 51 4c 49 54 45 5f 43 52 41 53 48 5f 54 45 53  SQLITE_CRASH_TES
f110: 54 3d 31 0a 54 45 53 54 46 49 58 54 55 52 45 5f  T=1.TESTFIXTURE_
f120: 46 4c 41 47 53 20 3d 20 24 28 54 45 53 54 46 49  FLAGS = $(TESTFI
f130: 58 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44 53  XTURE_FLAGS) -DS
f140: 51 4c 49 54 45 5f 53 45 52 56 45 52 3d 31 20 2d  QLITE_SERVER=1 -
f150: 44 53 51 4c 49 54 45 5f 50 52 49 56 41 54 45 3d  DSQLITE_PRIVATE=
f160: 22 22 0a 54 45 53 54 46 49 58 54 55 52 45 5f 46  "".TESTFIXTURE_F
f170: 4c 41 47 53 20 3d 20 24 28 54 45 53 54 46 49 58  LAGS = $(TESTFIX
f180: 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51  TURE_FLAGS) -DSQ
f190: 4c 49 54 45 5f 43 4f 52 45 20 24 28 4e 4f 5f 57  LITE_CORE $(NO_W
f1a0: 41 52 4e 29 0a 54 45 53 54 46 49 58 54 55 52 45  ARN).TESTFIXTURE
f1b0: 5f 46 4c 41 47 53 20 3d 20 24 28 54 45 53 54 46  _FLAGS = $(TESTF
f1c0: 49 58 54 55 52 45 5f 46 4c 41 47 53 29 20 2d 44  IXTURE_FLAGS) -D
f1d0: 53 51 4c 49 54 45 5f 53 45 52 49 45 53 5f 43 4f  SQLITE_SERIES_CO
f1e0: 4e 53 54 52 41 49 4e 54 5f 56 45 52 49 46 59 3d  NSTRAINT_VERIFY=
f1f0: 31 0a 54 45 53 54 46 49 58 54 55 52 45 5f 46 4c  1.TESTFIXTURE_FL
f200: 41 47 53 20 3d 20 24 28 54 45 53 54 46 49 58 54  AGS = $(TESTFIXT
f210: 55 52 45 5f 46 4c 41 47 53 29 20 2d 44 53 51 4c  URE_FLAGS) -DSQL
f220: 49 54 45 5f 44 45 46 41 55 4c 54 5f 50 41 47 45  ITE_DEFAULT_PAGE
f230: 5f 53 49 5a 45 3d 31 30 32 34 0a 54 45 53 54 46  _SIZE=1024.TESTF
f240: 49 58 54 55 52 45 5f 46 4c 41 47 53 20 3d 20 24  IXTURE_FLAGS = $
f250: 28 54 45 53 54 46 49 58 54 55 52 45 5f 46 4c 41  (TESTFIXTURE_FLA
f260: 47 53 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  GS) -DSQLITE_ENA
f270: 42 4c 45 5f 53 54 4d 54 56 54 41 42 0a 54 45 53  BLE_STMTVTAB.TES
f280: 54 46 49 58 54 55 52 45 5f 46 4c 41 47 53 20 3d  TFIXTURE_FLAGS =
f290: 20 24 28 54 45 53 54 46 49 58 54 55 52 45 5f 46   $(TESTFIXTURE_F
f2a0: 4c 41 47 53 29 20 2d 44 53 51 4c 49 54 45 5f 45  LAGS) -DSQLITE_E
f2b0: 4e 41 42 4c 45 5f 44 42 50 41 47 45 5f 56 54 41  NABLE_DBPAGE_VTA
f2c0: 42 0a 54 45 53 54 46 49 58 54 55 52 45 5f 46 4c  B.TESTFIXTURE_FL
f2d0: 41 47 53 20 3d 20 24 28 54 45 53 54 46 49 58 54  AGS = $(TESTFIXT
f2e0: 55 52 45 5f 46 4c 41 47 53 29 20 24 28 54 45 53  URE_FLAGS) $(TES
f2f0: 54 5f 43 43 4f 4e 56 5f 4f 50 54 53 29 0a 0a 54  T_CCONV_OPTS)..T
f300: 45 53 54 46 49 58 54 55 52 45 5f 53 52 43 30 20  ESTFIXTURE_SRC0 
f310: 3d 20 24 28 54 45 53 54 45 58 54 29 20 24 28 54  = $(TESTEXT) $(T
f320: 45 53 54 53 52 43 32 29 0a 54 45 53 54 46 49 58  ESTSRC2).TESTFIX
f330: 54 55 52 45 5f 53 52 43 31 20 3d 20 24 28 54 45  TURE_SRC1 = $(TE
f340: 53 54 45 58 54 29 20 24 28 53 51 4c 49 54 45 33  STEXT) $(SQLITE3
f350: 43 29 0a 21 49 46 20 24 28 55 53 45 5f 41 4d 41  C).!IF $(USE_AMA
f360: 4c 47 41 4d 41 54 49 4f 4e 29 3d 3d 30 0a 54 45  LGAMATION)==0.TE
f370: 53 54 46 49 58 54 55 52 45 5f 53 52 43 20 3d 20  STFIXTURE_SRC = 
f380: 24 28 54 45 53 54 53 52 43 29 20 24 28 54 4f 50  $(TESTSRC) $(TOP
f390: 29 5c 73 72 63 5c 74 63 6c 73 71 6c 69 74 65 2e  )\src\tclsqlite.
f3a0: 63 20 24 28 54 45 53 54 46 49 58 54 55 52 45 5f  c $(TESTFIXTURE_
f3b0: 53 52 43 30 29 0a 21 45 4c 53 45 0a 54 45 53 54  SRC0).!ELSE.TEST
f3c0: 46 49 58 54 55 52 45 5f 53 52 43 20 3d 20 24 28  FIXTURE_SRC = $(
f3d0: 54 45 53 54 53 52 43 29 20 24 28 54 4f 50 29 5c  TESTSRC) $(TOP)\
f3e0: 73 72 63 5c 74 63 6c 73 71 6c 69 74 65 2e 63 20  src\tclsqlite.c 
f3f0: 24 28 54 45 53 54 46 49 58 54 55 52 45 5f 53 52  $(TESTFIXTURE_SR
f400: 43 31 29 0a 21 45 4e 44 49 46 0a 0a 21 49 46 20  C1).!ENDIF..!IF 
f410: 24 28 55 53 45 5f 53 54 44 43 41 4c 4c 29 21 3d  $(USE_STDCALL)!=
f420: 30 20 7c 7c 20 24 28 46 4f 52 5f 57 49 4e 31 30  0 || $(FOR_WIN10
f430: 29 21 3d 30 0a 73 71 6c 69 74 65 5f 74 63 6c 44  )!=0.sqlite_tclD
f440: 65 63 6c 73 2e 68 3a 0a 09 65 63 68 6f 20 23 69  ecls.h:..echo #i
f450: 66 6e 64 65 66 20 53 51 4c 49 54 45 5f 54 43 4c  fndef SQLITE_TCL
f460: 41 50 49 20 3e 20 24 28 53 51 4c 49 54 45 54 43  API > $(SQLITETC
f470: 4c 44 45 43 4c 53 48 29 0a 09 65 63 68 6f 20 23  LDECLSH)..echo #
f480: 20 20 64 65 66 69 6e 65 20 53 51 4c 49 54 45 5f    define SQLITE_
f490: 54 43 4c 41 50 49 20 3e 3e 20 24 28 53 51 4c 49  TCLAPI >> $(SQLI
f4a0: 54 45 54 43 4c 44 45 43 4c 53 48 29 0a 09 65 63  TETCLDECLSH)..ec
f4b0: 68 6f 20 23 65 6e 64 69 66 20 3e 3e 20 24 28 53  ho #endif >> $(S
f4c0: 51 4c 49 54 45 54 43 4c 44 45 43 4c 53 48 29 0a  QLITETCLDECLSH).
f4d0: 09 74 79 70 65 20 22 24 28 54 43 4c 49 4e 43 44  .type "$(TCLINCD
f4e0: 49 52 29 5c 74 63 6c 44 65 63 6c 73 2e 68 22 20  IR)\tclDecls.h" 
f4f0: 5c 0a 09 09 7c 20 24 28 54 43 4c 53 48 5f 43 4d  \...| $(TCLSH_CM
f500: 44 29 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 72  D) $(TOP)\tool\r
f510: 65 70 6c 61 63 65 2e 74 63 6c 20 72 65 67 73 75  eplace.tcl regsu
f520: 62 20 22 5e 28 45 58 54 45 52 4e 28 3f 3a 20 43  b "^(EXTERN(?: C
f530: 4f 4e 53 54 5c 64 2b 3f 29 3f 5c 73 2b 3f 5b 5e  ONST\d+?)?\s+?[^
f540: 5c 28 5d 2a 3f 5c 73 2b 3f 29 54 63 6c 5f 22 20  \(]*?\s+?)Tcl_" 
f550: 22 5c 31 20 53 51 4c 49 54 45 5f 54 43 4c 41 50  "\1 SQLITE_TCLAP
f560: 49 20 54 63 6c 5f 22 20 5c 0a 09 09 7c 20 24 28  I Tcl_" \...| $(
f570: 54 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50  TCLSH_CMD) $(TOP
f580: 29 5c 74 6f 6f 6c 5c 72 65 70 6c 61 63 65 2e 74  )\tool\replace.t
f590: 63 6c 20 72 65 67 73 75 62 20 22 5e 28 45 58 54  cl regsub "^(EXT
f5a0: 45 52 4e 5c 73 2b 3f 28 3f 3a 76 6f 69 64 7c 56  ERN\s+?(?:void|V
f5b0: 4f 49 44 29 5c 73 2b 3f 29 54 63 6c 46 72 65 65  OID)\s+?)TclFree
f5c0: 4f 62 6a 22 20 22 5c 31 20 53 51 4c 49 54 45 5f  Obj" "\1 SQLITE_
f5d0: 54 43 4c 41 50 49 20 54 63 6c 46 72 65 65 4f 62  TCLAPI TclFreeOb
f5e0: 6a 22 20 5c 0a 09 09 7c 20 24 28 54 43 4c 53 48  j" \...| $(TCLSH
f5f0: 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74 6f 6f  _CMD) $(TOP)\too
f600: 6c 5c 72 65 70 6c 61 63 65 2e 74 63 6c 20 72 65  l\replace.tcl re
f610: 67 73 75 62 20 22 5c 28 5c 2a 74 63 6c 5f 22 20  gsub "\(\*tcl_" 
f620: 22 28 53 51 4c 49 54 45 5f 54 43 4c 41 50 49 20  "(SQLITE_TCLAPI 
f630: 2a 74 63 6c 5f 22 20 5c 0a 09 09 7c 20 24 28 54  *tcl_" \...| $(T
f640: 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50 29  CLSH_CMD) $(TOP)
f650: 5c 74 6f 6f 6c 5c 72 65 70 6c 61 63 65 2e 74 63  \tool\replace.tc
f660: 6c 20 72 65 67 73 75 62 20 22 5c 28 5c 2a 74 63  l regsub "\(\*tc
f670: 6c 46 72 65 65 4f 62 6a 22 20 22 28 53 51 4c 49  lFreeObj" "(SQLI
f680: 54 45 5f 54 43 4c 41 50 49 20 2a 74 63 6c 46 72  TE_TCLAPI *tclFr
f690: 65 65 4f 62 6a 22 20 5c 0a 09 09 7c 20 24 28 54  eeObj" \...| $(T
f6a0: 43 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50 29  CLSH_CMD) $(TOP)
f6b0: 5c 74 6f 6f 6c 5c 72 65 70 6c 61 63 65 2e 74 63  \tool\replace.tc
f6c0: 6c 20 72 65 67 73 75 62 20 22 5c 28 5c 2a 22 20  l regsub "\(\*" 
f6d0: 22 28 53 51 4c 49 54 45 5f 54 43 4c 41 50 49 20  "(SQLITE_TCLAPI 
f6e0: 2a 22 20 3e 3e 20 24 28 53 51 4c 49 54 45 54 43  *" >> $(SQLITETC
f6f0: 4c 44 45 43 4c 53 48 29 0a 0a 73 71 6c 69 74 65  LDECLSH)..sqlite
f700: 5f 74 63 6c 2e 68 3a 0a 09 74 79 70 65 20 22 24  _tcl.h:..type "$
f710: 28 54 43 4c 49 4e 43 44 49 52 29 5c 74 63 6c 2e  (TCLINCDIR)\tcl.
f720: 68 22 20 7c 20 24 28 54 43 4c 53 48 5f 43 4d 44  h" | $(TCLSH_CMD
f730: 29 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 72 65  ) $(TOP)\tool\re
f740: 70 6c 61 63 65 2e 74 63 6c 20 65 78 61 63 74 20  place.tcl exact 
f750: 74 63 6c 44 65 63 6c 73 2e 68 20 73 71 6c 69 74  tclDecls.h sqlit
f760: 65 5f 74 63 6c 44 65 63 6c 73 2e 68 20 5c 0a 09  e_tclDecls.h \..
f770: 09 7c 20 24 28 54 43 4c 53 48 5f 43 4d 44 29 20  .| $(TCLSH_CMD) 
f780: 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 72 65 70 6c  $(TOP)\tool\repl
f790: 61 63 65 2e 74 63 6c 20 72 65 67 73 75 62 20 22  ace.tcl regsub "
f7a0: 74 79 70 65 64 65 66 20 28 2e 2a 3f 29 5c 28 54  typedef (.*?)\(T
f7b0: 63 6c 5f 22 20 22 74 79 70 65 64 65 66 20 5c 31  cl_" "typedef \1
f7c0: 20 28 53 51 4c 49 54 45 5f 54 43 4c 41 50 49 20   (SQLITE_TCLAPI 
f7d0: 54 63 6c 5f 22 20 5c 0a 09 09 7c 20 24 28 54 43  Tcl_" \...| $(TC
f7e0: 4c 53 48 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c  LSH_CMD) $(TOP)\
f7f0: 74 6f 6f 6c 5c 72 65 70 6c 61 63 65 2e 74 63 6c  tool\replace.tcl
f800: 20 65 78 61 63 74 20 22 76 6f 69 64 20 28 2a 66   exact "void (*f
f810: 72 65 65 50 72 6f 63 29 22 20 22 76 6f 69 64 20  reeProc)" "void 
f820: 28 53 51 4c 49 54 45 5f 54 43 4c 41 50 49 20 2a  (SQLITE_TCLAPI *
f830: 66 72 65 65 50 72 6f 63 29 22 20 5c 0a 09 09 7c  freeProc)" \...|
f840: 20 24 28 54 43 4c 53 48 5f 43 4d 44 29 20 24 28   $(TCLSH_CMD) $(
f850: 54 4f 50 29 5c 74 6f 6f 6c 5c 72 65 70 6c 61 63  TOP)\tool\replac
f860: 65 2e 74 63 6c 20 65 78 61 63 74 20 22 54 63 6c  e.tcl exact "Tcl
f870: 5f 48 61 73 68 45 6e 74 72 79 20 2a 28 2a 66 69  _HashEntry *(*fi
f880: 6e 64 50 72 6f 63 29 22 20 22 54 63 6c 5f 48 61  ndProc)" "Tcl_Ha
f890: 73 68 45 6e 74 72 79 20 2a 28 53 51 4c 49 54 45  shEntry *(SQLITE
f8a0: 5f 54 43 4c 41 50 49 20 2a 66 69 6e 64 50 72 6f  _TCLAPI *findPro
f8b0: 63 29 22 20 5c 0a 09 09 7c 20 24 28 54 43 4c 53  c)" \...| $(TCLS
f8c0: 48 5f 43 4d 44 29 20 24 28 54 4f 50 29 5c 74 6f  H_CMD) $(TOP)\to
f8d0: 6f 6c 5c 72 65 70 6c 61 63 65 2e 74 63 6c 20 65  ol\replace.tcl e
f8e0: 78 61 63 74 20 22 54 63 6c 5f 48 61 73 68 45 6e  xact "Tcl_HashEn
f8f0: 74 72 79 20 2a 28 2a 63 72 65 61 74 65 50 72 6f  try *(*createPro
f900: 63 29 22 20 22 54 63 6c 5f 48 61 73 68 45 6e 74  c)" "Tcl_HashEnt
f910: 72 79 20 2a 28 53 51 4c 49 54 45 5f 54 43 4c 41  ry *(SQLITE_TCLA
f920: 50 49 20 2a 63 72 65 61 74 65 50 72 6f 63 29 22  PI *createProc)"
f930: 20 3e 3e 20 24 28 53 51 4c 49 54 45 54 43 4c 48   >> $(SQLITETCLH
f940: 29 0a 21 45 4e 44 49 46 0a 0a 74 65 73 74 66 69  ).!ENDIF..testfi
f950: 78 74 75 72 65 2e 65 78 65 3a 09 24 28 54 45 53  xture.exe:.$(TES
f960: 54 46 49 58 54 55 52 45 5f 53 52 43 29 20 24 28  TFIXTURE_SRC) $(
f970: 53 51 4c 49 54 45 33 48 29 20 24 28 4c 49 42 52  SQLITE3H) $(LIBR
f980: 45 53 4f 42 4a 53 29 20 24 28 48 44 52 29 20 24  ESOBJS) $(HDR) $
f990: 28 53 51 4c 49 54 45 5f 54 43 4c 5f 44 45 50 29  (SQLITE_TCL_DEP)
f9a0: 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 2d 44 53 51  ..$(LTLINK) -DSQ
f9b0: 4c 49 54 45 5f 4e 4f 5f 53 59 4e 43 3d 31 20 24  LITE_NO_SYNC=1 $
f9c0: 28 54 45 53 54 46 49 58 54 55 52 45 5f 46 4c 41  (TESTFIXTURE_FLA
f9d0: 47 53 29 20 5c 0a 09 09 2d 44 42 55 49 4c 44 5f  GS) \...-DBUILD_
f9e0: 73 71 6c 69 74 65 20 2d 49 24 28 54 43 4c 49 4e  sqlite -I$(TCLIN
f9f0: 43 44 49 52 29 20 5c 0a 09 09 24 28 54 45 53 54  CDIR) \...$(TEST
fa00: 46 49 58 54 55 52 45 5f 53 52 43 29 20 5c 0a 09  FIXTURE_SRC) \..
fa10: 09 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41 47 53  ./link $(LDFLAGS
fa20: 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53 29 20  ) $(LTLINKOPTS) 
fa30: 24 28 4c 54 4c 49 42 50 41 54 48 53 29 20 24 28  $(LTLIBPATHS) $(
fa40: 4c 49 42 52 45 53 4f 42 4a 53 29 20 24 28 4c 54  LIBRESOBJS) $(LT
fa50: 4c 49 42 53 29 20 24 28 54 4c 49 42 53 29 0a 0a  LIBS) $(TLIBS)..
fa60: 65 78 74 65 6e 73 69 6f 6e 74 65 73 74 3a 09 74  extensiontest:.t
fa70: 65 73 74 66 69 78 74 75 72 65 2e 65 78 65 20 74  estfixture.exe t
fa80: 65 73 74 6c 6f 61 64 65 78 74 2e 64 6c 6c 0a 09  estloadext.dll..
fa90: 40 73 65 74 20 50 41 54 48 3d 24 28 4c 49 42 54  @set PATH=$(LIBT
faa0: 43 4c 50 41 54 48 29 3b 24 28 50 41 54 48 29 0a  CLPATH);$(PATH).
fab0: 09 2e 5c 74 65 73 74 66 69 78 74 75 72 65 2e 65  ..\testfixture.e
fac0: 78 65 20 24 28 54 4f 50 29 5c 74 65 73 74 5c 6c  xe $(TOP)\test\l
fad0: 6f 61 64 65 78 74 2e 74 65 73 74 20 24 28 54 45  oadext.test $(TE
fae0: 53 54 4f 50 54 53 29 0a 0a 66 75 6c 6c 74 65 73  STOPTS)..fulltes
faf0: 74 3a 09 24 28 54 45 53 54 50 52 4f 47 53 29 20  t:.$(TESTPROGS) 
fb00: 66 75 7a 7a 74 65 73 74 0a 09 40 73 65 74 20 50  fuzztest..@set P
fb10: 41 54 48 3d 24 28 4c 49 42 54 43 4c 50 41 54 48  ATH=$(LIBTCLPATH
fb20: 29 3b 24 28 50 41 54 48 29 0a 09 2e 5c 74 65 73  );$(PATH)...\tes
fb30: 74 66 69 78 74 75 72 65 2e 65 78 65 20 24 28 54  tfixture.exe $(T
fb40: 4f 50 29 5c 74 65 73 74 5c 61 6c 6c 2e 74 65 73  OP)\test\all.tes
fb50: 74 20 24 28 54 45 53 54 4f 50 54 53 29 0a 0a 73  t $(TESTOPTS)..s
fb60: 6f 61 6b 74 65 73 74 3a 09 24 28 54 45 53 54 50  oaktest:.$(TESTP
fb70: 52 4f 47 53 29 0a 09 40 73 65 74 20 50 41 54 48  ROGS)..@set PATH
fb80: 3d 24 28 4c 49 42 54 43 4c 50 41 54 48 29 3b 24  =$(LIBTCLPATH);$
fb90: 28 50 41 54 48 29 0a 09 2e 5c 74 65 73 74 66 69  (PATH)...\testfi
fba0: 78 74 75 72 65 2e 65 78 65 20 24 28 54 4f 50 29  xture.exe $(TOP)
fbb0: 5c 74 65 73 74 5c 61 6c 6c 2e 74 65 73 74 20 2d  \test\all.test -
fbc0: 73 6f 61 6b 3d 31 20 24 28 54 45 53 54 4f 50 54  soak=1 $(TESTOPT
fbd0: 53 29 0a 0a 66 75 6c 6c 74 65 73 74 6f 6e 6c 79  S)..fulltestonly
fbe0: 3a 09 24 28 54 45 53 54 50 52 4f 47 53 29 20 66  :.$(TESTPROGS) f
fbf0: 75 7a 7a 74 65 73 74 0a 09 40 73 65 74 20 50 41  uzztest..@set PA
fc00: 54 48 3d 24 28 4c 49 42 54 43 4c 50 41 54 48 29  TH=$(LIBTCLPATH)
fc10: 3b 24 28 50 41 54 48 29 0a 09 2e 5c 74 65 73 74  ;$(PATH)...\test
fc20: 66 69 78 74 75 72 65 2e 65 78 65 20 24 28 54 4f  fixture.exe $(TO
fc30: 50 29 5c 74 65 73 74 5c 66 75 6c 6c 2e 74 65 73  P)\test\full.tes
fc40: 74 0a 0a 71 75 65 72 79 70 6c 61 6e 74 65 73 74  t..queryplantest
fc50: 3a 09 74 65 73 74 66 69 78 74 75 72 65 2e 65 78  :.testfixture.ex
fc60: 65 20 73 68 65 6c 6c 0a 09 40 73 65 74 20 50 41  e shell..@set PA
fc70: 54 48 3d 24 28 4c 49 42 54 43 4c 50 41 54 48 29  TH=$(LIBTCLPATH)
fc80: 3b 24 28 50 41 54 48 29 0a 09 2e 5c 74 65 73 74  ;$(PATH)...\test
fc90: 66 69 78 74 75 72 65 2e 65 78 65 20 24 28 54 4f  fixture.exe $(TO
fca0: 50 29 5c 74 65 73 74 5c 70 65 72 6d 75 74 61 74  P)\test\permutat
fcb0: 69 6f 6e 73 2e 74 65 73 74 20 71 75 65 72 79 70  ions.test queryp
fcc0: 6c 61 6e 6e 65 72 20 24 28 54 45 53 54 4f 50 54  lanner $(TESTOPT
fcd0: 53 29 0a 0a 66 75 7a 7a 74 65 73 74 3a 09 66 75  S)..fuzztest:.fu
fce0: 7a 7a 63 68 65 63 6b 2e 65 78 65 0a 09 2e 5c 66  zzcheck.exe...\f
fcf0: 75 7a 7a 63 68 65 63 6b 2e 65 78 65 20 24 28 46  uzzcheck.exe $(F
fd00: 55 5a 5a 44 41 54 41 29 0a 0a 66 61 73 74 66 75  UZZDATA)..fastfu
fd10: 7a 7a 74 65 73 74 3a 09 66 75 7a 7a 63 68 65 63  zztest:.fuzzchec
fd20: 6b 2e 65 78 65 0a 09 2e 5c 66 75 7a 7a 63 68 65  k.exe...\fuzzche
fd30: 63 6b 2e 65 78 65 20 2d 2d 6c 69 6d 69 74 2d 6d  ck.exe --limit-m
fd40: 65 6d 20 31 30 30 4d 20 24 28 46 55 5a 5a 44 41  em 100M $(FUZZDA
fd50: 54 41 29 0a 0a 23 20 4d 69 6e 69 6d 61 6c 20 74  TA)..# Minimal t
fd60: 65 73 74 69 6e 67 20 74 68 61 74 20 72 75 6e 73  esting that runs
fd70: 20 69 6e 20 6c 65 73 73 20 74 68 61 6e 20 33 20   in less than 3 
fd80: 6d 69 6e 75 74 65 73 20 28 6f 6e 20 61 20 66 61  minutes (on a fa
fd90: 73 74 20 6d 61 63 68 69 6e 65 29 0a 23 0a 71 75  st machine).#.qu
fda0: 69 63 6b 74 65 73 74 3a 09 74 65 73 74 66 69 78  icktest:.testfix
fdb0: 74 75 72 65 2e 65 78 65 20 73 6f 75 72 63 65 74  ture.exe sourcet
fdc0: 65 73 74 0a 09 40 73 65 74 20 50 41 54 48 3d 24  est..@set PATH=$
fdd0: 28 4c 49 42 54 43 4c 50 41 54 48 29 3b 24 28 50  (LIBTCLPATH);$(P
fde0: 41 54 48 29 0a 09 2e 5c 74 65 73 74 66 69 78 74  ATH)...\testfixt
fdf0: 75 72 65 2e 65 78 65 20 24 28 54 4f 50 29 5c 74  ure.exe $(TOP)\t
fe00: 65 73 74 5c 65 78 74 72 61 71 75 69 63 6b 2e 74  est\extraquick.t
fe10: 65 73 74 20 24 28 54 45 53 54 4f 50 54 53 29 0a  est $(TESTOPTS).
fe20: 0a 23 20 54 68 69 73 20 69 73 20 74 68 65 20 63  .# This is the c
fe30: 6f 6d 6d 6f 6e 20 63 61 73 65 2e 20 20 52 75 6e  ommon case.  Run
fe40: 20 6d 61 6e 79 20 74 65 73 74 73 20 74 68 61 74   many tests that
fe50: 20 64 6f 20 6e 6f 74 20 74 61 6b 65 20 74 6f 6f   do not take too
fe60: 20 6c 6f 6e 67 2c 0a 23 20 69 6e 63 6c 75 64 69   long,.# includi
fe70: 6e 67 20 66 75 7a 7a 63 68 65 63 6b 2c 20 73 71  ng fuzzcheck, sq
fe80: 6c 69 74 65 33 5f 61 6e 61 6c 79 7a 65 72 2c 20  lite3_analyzer, 
fe90: 61 6e 64 20 73 71 6c 64 69 66 66 20 74 65 73 74  and sqldiff test
fea0: 73 2e 0a 23 0a 74 65 73 74 3a 09 24 28 54 45 53  s..#.test:.$(TES
feb0: 54 50 52 4f 47 53 29 20 73 6f 75 72 63 65 74 65  TPROGS) sourcete
fec0: 73 74 20 66 61 73 74 66 75 7a 7a 74 65 73 74 0a  st fastfuzztest.
fed0: 09 40 73 65 74 20 50 41 54 48 3d 24 28 4c 49 42  .@set PATH=$(LIB
fee0: 54 43 4c 50 41 54 48 29 3b 24 28 50 41 54 48 29  TCLPATH);$(PATH)
fef0: 0a 09 2e 5c 74 65 73 74 66 69 78 74 75 72 65 2e  ...\testfixture.
ff00: 65 78 65 20 24 28 54 4f 50 29 5c 74 65 73 74 5c  exe $(TOP)\test\
ff10: 76 65 72 79 71 75 69 63 6b 2e 74 65 73 74 20 24  veryquick.test $
ff20: 28 54 45 53 54 4f 50 54 53 29 0a 0a 73 6d 6f 6b  (TESTOPTS)..smok
ff30: 65 74 65 73 74 3a 09 24 28 54 45 53 54 50 52 4f  etest:.$(TESTPRO
ff40: 47 53 29 0a 09 40 73 65 74 20 50 41 54 48 3d 24  GS)..@set PATH=$
ff50: 28 4c 49 42 54 43 4c 50 41 54 48 29 3b 24 28 50  (LIBTCLPATH);$(P
ff60: 41 54 48 29 0a 09 2e 5c 74 65 73 74 66 69 78 74  ATH)...\testfixt
ff70: 75 72 65 2e 65 78 65 20 24 28 54 4f 50 29 5c 74  ure.exe $(TOP)\t
ff80: 65 73 74 5c 6d 61 69 6e 2e 74 65 73 74 20 24 28  est\main.test $(
ff90: 54 45 53 54 4f 50 54 53 29 0a 0a 73 71 6c 69 74  TESTOPTS)..sqlit
ffa0: 65 33 5f 61 6e 61 6c 79 7a 65 72 2e 63 3a 09 24  e3_analyzer.c:.$
ffb0: 28 53 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c  (SQLITE3C) $(SQL
ffc0: 49 54 45 33 48 29 20 24 28 54 4f 50 29 5c 73 72  ITE3H) $(TOP)\sr
ffd0: 63 5c 74 63 6c 73 71 6c 69 74 65 2e 63 20 24 28  c\tclsqlite.c $(
ffe0: 54 4f 50 29 5c 74 6f 6f 6c 5c 73 70 61 63 65 61  TOP)\tool\spacea
fff0: 6e 61 6c 2e 74 63 6c 20 24 28 54 4f 50 29 5c 74  nal.tcl $(TOP)\t
10000 6f 6f 6c 5c 6d 6b 63 63 6f 64 65 2e 74 63 6c 20  ool\mkccode.tcl 
10010 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 73 71 6c 69  $(TOP)\tool\sqli
10020 74 65 33 5f 61 6e 61 6c 79 7a 65 72 2e 63 2e 69  te3_analyzer.c.i
10030 6e 20 24 28 53 51 4c 49 54 45 5f 54 43 4c 5f 44  n $(SQLITE_TCL_D
10040 45 50 29 0a 09 24 28 54 43 4c 53 48 5f 43 4d 44  EP)..$(TCLSH_CMD
10050 29 20 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b  ) $(TOP)\tool\mk
10060 63 63 6f 64 65 2e 74 63 6c 20 24 28 54 4f 50 29  ccode.tcl $(TOP)
10070 5c 74 6f 6f 6c 5c 73 71 6c 69 74 65 33 5f 61 6e  \tool\sqlite3_an
10080 61 6c 79 7a 65 72 2e 63 2e 69 6e 20 3e 20 24 40  alyzer.c.in > $@
10090 0a 0a 73 71 6c 69 74 65 33 5f 61 6e 61 6c 79 7a  ..sqlite3_analyz
100a0 65 72 2e 65 78 65 3a 09 73 71 6c 69 74 65 33 5f  er.exe:.sqlite3_
100b0 61 6e 61 6c 79 7a 65 72 2e 63 20 24 28 4c 49 42  analyzer.c $(LIB
100c0 52 45 53 4f 42 4a 53 29 0a 09 24 28 4c 54 4c 49  RESOBJS)..$(LTLI
100d0 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d  NK) $(NO_WARN) -
100e0 44 42 55 49 4c 44 5f 73 71 6c 69 74 65 20 2d 49  DBUILD_sqlite -I
100f0 24 28 54 43 4c 49 4e 43 44 49 52 29 20 73 71 6c  $(TCLINCDIR) sql
10100 69 74 65 33 5f 61 6e 61 6c 79 7a 65 72 2e 63 20  ite3_analyzer.c 
10110 5c 0a 09 09 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c  \.../link $(LDFL
10120 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54  AGS) $(LTLINKOPT
10130 53 29 20 24 28 4c 54 4c 49 42 50 41 54 48 53 29  S) $(LTLIBPATHS)
10140 20 24 28 4c 49 42 52 45 53 4f 42 4a 53 29 20 24   $(LIBRESOBJS) $
10150 28 4c 54 4c 49 42 53 29 20 24 28 54 4c 49 42 53  (LTLIBS) $(TLIBS
10160 29 0a 0a 43 48 45 43 4b 45 52 5f 44 45 50 53 20  )..CHECKER_DEPS 
10170 3d 5c 0a 20 20 24 28 54 4f 50 29 2f 74 6f 6f 6c  =\.  $(TOP)/tool
10180 2f 6d 6b 63 63 6f 64 65 2e 74 63 6c 20 5c 0a 20  /mkccode.tcl \. 
10190 20 73 71 6c 69 74 65 33 2e 63 20 5c 0a 20 20 24   sqlite3.c \.  $
101a0 28 54 4f 50 29 2f 73 72 63 2f 74 63 6c 73 71 6c  (TOP)/src/tclsql
101b0 69 74 65 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29  ite.c \.  $(TOP)
101c0 2f 65 78 74 2f 72 65 70 61 69 72 2f 73 71 6c 69  /ext/repair/sqli
101d0 74 65 33 5f 63 68 65 63 6b 65 72 2e 74 63 6c 20  te3_checker.tcl 
101e0 5c 0a 20 20 24 28 54 4f 50 29 2f 65 78 74 2f 72  \.  $(TOP)/ext/r
101f0 65 70 61 69 72 2f 63 68 65 63 6b 69 6e 64 65 78  epair/checkindex
10200 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 2f 65 78  .c \.  $(TOP)/ex
10210 74 2f 6d 69 73 63 2f 62 74 72 65 65 69 6e 66 6f  t/misc/btreeinfo
10220 2e 63 20 5c 0a 20 20 24 28 54 4f 50 29 2f 65 78  .c \.  $(TOP)/ex
10230 74 2f 72 65 70 61 69 72 2f 73 71 6c 69 74 65 33  t/repair/sqlite3
10240 5f 63 68 65 63 6b 65 72 2e 63 2e 69 6e 0a 0a 73  _checker.c.in..s
10250 71 6c 69 74 65 33 5f 63 68 65 63 6b 65 72 2e 63  qlite3_checker.c
10260 3a 09 24 28 43 48 45 43 4b 45 52 5f 44 45 50 53  :.$(CHECKER_DEPS
10270 29 0a 09 24 28 54 43 4c 53 48 5f 43 4d 44 29 20  )..$(TCLSH_CMD) 
10280 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6d 6b 63 63  $(TOP)\tool\mkcc
10290 6f 64 65 2e 74 63 6c 20 24 28 54 4f 50 29 5c 6d  ode.tcl $(TOP)\m
102a0 69 73 63 5c 72 65 70 61 69 72 5c 73 71 6c 69 74  isc\repair\sqlit
102b0 65 33 5f 63 68 65 63 6b 65 72 2e 63 2e 69 6e 20  e3_checker.c.in 
102c0 3e 20 24 40 0a 0a 73 71 6c 69 74 65 33 5f 63 68  > $@..sqlite3_ch
102d0 65 63 6b 65 72 2e 65 78 65 3a 09 73 71 6c 69 74  ecker.exe:.sqlit
102e0 65 33 5f 63 68 65 63 6b 65 72 2e 63 20 24 28 4c  e3_checker.c $(L
102f0 49 42 52 45 53 4f 42 4a 53 29 0a 09 24 28 4c 54  IBRESOBJS)..$(LT
10300 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e 29  LINK) $(NO_WARN)
10310 20 2d 44 42 55 49 4c 44 5f 73 71 6c 69 74 65 20   -DBUILD_sqlite 
10320 2d 49 24 28 54 43 4c 49 4e 43 44 49 52 29 20 73  -I$(TCLINCDIR) s
10330 71 6c 69 74 65 33 5f 63 68 65 63 6b 65 72 2e 63  qlite3_checker.c
10340 20 5c 0a 09 09 2f 6c 69 6e 6b 20 24 28 4c 44 46   \.../link $(LDF
10350 4c 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50  LAGS) $(LTLINKOP
10360 54 53 29 20 24 28 4c 54 4c 49 42 50 41 54 48 53  TS) $(LTLIBPATHS
10370 29 20 24 28 4c 49 42 52 45 53 4f 42 4a 53 29 20  ) $(LIBRESOBJS) 
10380 24 28 4c 54 4c 49 42 53 29 20 24 28 54 4c 49 42  $(LTLIBS) $(TLIB
10390 53 29 0a 0a 64 62 64 75 6d 70 2e 65 78 65 3a 09  S)..dbdump.exe:.
103a0 24 28 54 4f 50 29 5c 65 78 74 5c 6d 69 73 63 5c  $(TOP)\ext\misc\
103b0 64 62 64 75 6d 70 2e 63 20 24 28 53 51 4c 49 54  dbdump.c $(SQLIT
103c0 45 33 43 29 20 24 28 53 51 4c 49 54 45 33 48 29  E3C) $(SQLITE3H)
103d0 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f  ..$(LTLINK) $(NO
103e0 5f 57 41 52 4e 29 20 2d 44 44 42 44 55 4d 50 5f  _WARN) -DDBDUMP_
103f0 53 54 41 4e 44 41 4c 4f 4e 45 20 24 28 54 4f 50  STANDALONE $(TOP
10400 29 5c 65 78 74 5c 6d 69 73 63 5c 64 62 64 75 6d  )\ext\misc\dbdum
10410 70 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  p.c $(SQLITE3C) 
10420 5c 0a 09 09 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c  \.../link $(LDFL
10430 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54  AGS) $(LTLINKOPT
10440 53 29 20 24 28 4c 54 4c 49 42 50 41 54 48 53 29  S) $(LTLIBPATHS)
10450 20 24 28 4c 49 42 52 45 53 4f 42 4a 53 29 20 24   $(LIBRESOBJS) $
10460 28 4c 54 4c 49 42 53 29 0a 0a 74 65 73 74 6c 6f  (LTLIBS)..testlo
10470 61 64 65 78 74 2e 6c 6f 3a 09 24 28 54 4f 50 29  adext.lo:.$(TOP)
10480 5c 73 72 63 5c 74 65 73 74 5f 6c 6f 61 64 65 78  \src\test_loadex
10490 74 2e 63 0a 09 24 28 4c 54 43 4f 4d 50 49 4c 45  t.c..$(LTCOMPILE
104a0 29 20 24 28 4e 4f 5f 57 41 52 4e 29 20 2d 63 20  ) $(NO_WARN) -c 
104b0 24 28 54 4f 50 29 5c 73 72 63 5c 74 65 73 74 5f  $(TOP)\src\test_
104c0 6c 6f 61 64 65 78 74 2e 63 0a 0a 74 65 73 74 6c  loadext.c..testl
104d0 6f 61 64 65 78 74 2e 64 6c 6c 3a 09 74 65 73 74  oadext.dll:.test
104e0 6c 6f 61 64 65 78 74 2e 6c 6f 0a 09 24 28 4c 44  loadext.lo..$(LD
104f0 29 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c  ) $(LDFLAGS) $(L
10500 54 4c 49 4e 4b 4f 50 54 53 29 20 24 28 4c 54 4c  TLINKOPTS) $(LTL
10510 49 42 50 41 54 48 53 29 20 2f 44 4c 4c 20 2f 4f  IBPATHS) /DLL /O
10520 55 54 3a 24 40 20 74 65 73 74 6c 6f 61 64 65 78  UT:$@ testloadex
10530 74 2e 6c 6f 0a 0a 73 68 6f 77 64 62 2e 65 78 65  t.lo..showdb.exe
10540 3a 09 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 73 68  :.$(TOP)\tool\sh
10550 6f 77 64 62 2e 63 20 24 28 53 51 4c 49 54 45 33  owdb.c $(SQLITE3
10560 43 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09  C) $(SQLITE3H)..
10570 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57  $(LTLINK) $(NO_W
10580 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 54 48  ARN) -DSQLITE_TH
10590 52 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51 4c  READSAFE=0 -DSQL
105a0 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58  ITE_OMIT_LOAD_EX
105b0 54 45 4e 53 49 4f 4e 20 5c 0a 09 09 24 28 54 4f  TENSION \...$(TO
105c0 50 29 5c 74 6f 6f 6c 5c 73 68 6f 77 64 62 2e 63  P)\tool\showdb.c
105d0 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
105e0 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
105f0 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 73 68 6f  LTLINKOPTS)..sho
10600 77 73 74 61 74 34 2e 65 78 65 3a 09 24 28 54 4f  wstat4.exe:.$(TO
10610 50 29 5c 74 6f 6f 6c 5c 73 68 6f 77 73 74 61 74  P)\tool\showstat
10620 34 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  4.c $(SQLITE3C) 
10630 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24 28 4c  $(SQLITE3H)..$(L
10640 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e  TLINK) $(NO_WARN
10650 29 20 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41  ) -DSQLITE_THREA
10660 44 53 41 46 45 3d 30 20 2d 44 53 51 4c 49 54 45  DSAFE=0 -DSQLITE
10670 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e  _OMIT_LOAD_EXTEN
10680 53 49 4f 4e 20 5c 0a 09 09 24 28 54 4f 50 29 5c  SION \...$(TOP)\
10690 74 6f 6f 6c 5c 73 68 6f 77 73 74 61 74 34 2e 63  tool\showstat4.c
106a0 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
106b0 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
106c0 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 73 68 6f  LTLINKOPTS)..sho
106d0 77 6a 6f 75 72 6e 61 6c 2e 65 78 65 3a 09 24 28  wjournal.exe:.$(
106e0 54 4f 50 29 5c 74 6f 6f 6c 5c 73 68 6f 77 6a 6f  TOP)\tool\showjo
106f0 75 72 6e 61 6c 2e 63 20 24 28 53 51 4c 49 54 45  urnal.c $(SQLITE
10700 33 43 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a  3C) $(SQLITE3H).
10710 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f  .$(LTLINK) $(NO_
10720 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 54  WARN) -DSQLITE_T
10730 48 52 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51  HREADSAFE=0 -DSQ
10740 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45  LITE_OMIT_LOAD_E
10750 58 54 45 4e 53 49 4f 4e 20 5c 0a 09 09 24 28 54  XTENSION \...$(T
10760 4f 50 29 5c 74 6f 6f 6c 5c 73 68 6f 77 6a 6f 75  OP)\tool\showjou
10770 72 6e 61 6c 2e 63 20 24 28 53 51 4c 49 54 45 33  rnal.c $(SQLITE3
10780 43 29 20 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c 41  C) /link $(LDFLA
10790 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54 53  GS) $(LTLINKOPTS
107a0 29 0a 0a 73 68 6f 77 77 61 6c 2e 65 78 65 3a 09  )..showwal.exe:.
107b0 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 73 68 6f 77  $(TOP)\tool\show
107c0 77 61 6c 2e 63 20 24 28 53 51 4c 49 54 45 33 43  wal.c $(SQLITE3C
107d0 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24  ) $(SQLITE3H)..$
107e0 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41  (LTLINK) $(NO_WA
107f0 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 54 48 52  RN) -DSQLITE_THR
10800 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51 4c 49  EADSAFE=0 -DSQLI
10810 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54  TE_OMIT_LOAD_EXT
10820 45 4e 53 49 4f 4e 20 5c 0a 09 09 24 28 54 4f 50  ENSION \...$(TOP
10830 29 5c 74 6f 6f 6c 5c 73 68 6f 77 77 61 6c 2e 63  )\tool\showwal.c
10840 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
10850 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
10860 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 63 68 61  LTLINKOPTS)..cha
10870 6e 67 65 73 65 74 2e 65 78 65 3a 09 24 28 54 4f  ngeset.exe:.$(TO
10880 50 29 5c 65 78 74 5c 73 65 73 73 69 6f 6e 5c 63  P)\ext\session\c
10890 68 61 6e 67 65 73 65 74 2e 63 20 24 28 53 51 4c  hangeset.c $(SQL
108a0 49 54 45 33 43 29 20 24 28 53 51 4c 49 54 45 33  ITE3C) $(SQLITE3
108b0 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28  H)..$(LTLINK) $(
108c0 4e 4f 5f 57 41 52 4e 29 20 2d 44 53 51 4c 49 54  NO_WARN) -DSQLIT
108d0 45 5f 54 48 52 45 41 44 53 41 46 45 3d 30 20 2d  E_THREADSAFE=0 -
108e0 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41  DSQLITE_OMIT_LOA
108f0 44 5f 45 58 54 45 4e 53 49 4f 4e 20 5c 0a 09 09  D_EXTENSION \...
10900 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
10910 53 45 53 53 49 4f 4e 3d 31 20 2d 44 53 51 4c 49  SESSION=1 -DSQLI
10920 54 45 5f 45 4e 41 42 4c 45 5f 50 52 45 55 50 44  TE_ENABLE_PREUPD
10930 41 54 45 5f 48 4f 4f 4b 3d 31 20 5c 0a 09 09 24  ATE_HOOK=1 \...$
10940 28 54 4f 50 29 5c 65 78 74 5c 73 65 73 73 69 6f  (TOP)\ext\sessio
10950 6e 5c 63 68 61 6e 67 65 73 65 74 2e 63 20 24 28  n\changeset.c $(
10960 53 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b 20  SQLITE3C) /link 
10970 24 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54 4c  $(LDFLAGS) $(LTL
10980 49 4e 4b 4f 50 54 53 29 0a 0a 66 74 73 33 76 69  INKOPTS)..fts3vi
10990 65 77 2e 65 78 65 3a 09 24 28 54 4f 50 29 5c 65  ew.exe:.$(TOP)\e
109a0 78 74 5c 66 74 73 33 5c 74 6f 6f 6c 5c 66 74 73  xt\fts3\tool\fts
109b0 33 76 69 65 77 2e 63 20 24 28 53 51 4c 49 54 45  3view.c $(SQLITE
109c0 33 43 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a  3C) $(SQLITE3H).
109d0 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f  .$(LTLINK) $(NO_
109e0 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 54  WARN) -DSQLITE_T
109f0 48 52 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51  HREADSAFE=0 -DSQ
10a00 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45  LITE_OMIT_LOAD_E
10a10 58 54 45 4e 53 49 4f 4e 20 5c 0a 09 09 24 28 54  XTENSION \...$(T
10a20 4f 50 29 5c 65 78 74 5c 66 74 73 33 5c 74 6f 6f  OP)\ext\fts3\too
10a30 6c 5c 66 74 73 33 76 69 65 77 2e 63 20 24 28 53  l\fts3view.c $(S
10a40 51 4c 49 54 45 33 43 29 20 2f 6c 69 6e 6b 20 24  QLITE3C) /link $
10a50 28 4c 44 46 4c 41 47 53 29 20 24 28 4c 54 4c 49  (LDFLAGS) $(LTLI
10a60 4e 4b 4f 50 54 53 29 0a 0a 72 6f 6c 6c 62 61 63  NKOPTS)..rollbac
10a70 6b 2d 74 65 73 74 2e 65 78 65 3a 09 24 28 54 4f  k-test.exe:.$(TO
10a80 50 29 5c 74 6f 6f 6c 5c 72 6f 6c 6c 62 61 63 6b  P)\tool\rollback
10a90 2d 74 65 73 74 2e 63 20 24 28 53 51 4c 49 54 45  -test.c $(SQLITE
10aa0 33 43 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a  3C) $(SQLITE3H).
10ab0 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f  .$(LTLINK) $(NO_
10ac0 57 41 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 54  WARN) -DSQLITE_T
10ad0 48 52 45 41 44 53 41 46 45 3d 30 20 2d 44 53 51  HREADSAFE=0 -DSQ
10ae0 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45  LITE_OMIT_LOAD_E
10af0 58 54 45 4e 53 49 4f 4e 20 5c 0a 09 09 24 28 54  XTENSION \...$(T
10b00 4f 50 29 5c 74 6f 6f 6c 5c 72 6f 6c 6c 62 61 63  OP)\tool\rollbac
10b10 6b 2d 74 65 73 74 2e 63 20 24 28 53 51 4c 49 54  k-test.c $(SQLIT
10b20 45 33 43 29 20 2f 6c 69 6e 6b 20 24 28 4c 44 46  E3C) /link $(LDF
10b30 4c 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50  LAGS) $(LTLINKOP
10b40 54 53 29 0a 0a 4c 6f 67 45 73 74 2e 65 78 65 3a  TS)..LogEst.exe:
10b50 09 24 28 54 4f 50 29 5c 74 6f 6f 6c 5c 6c 6f 67  .$(TOP)\tool\log
10b60 65 73 74 2e 63 20 24 28 53 51 4c 49 54 45 33 48  est.c $(SQLITE3H
10b70 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20 24 28 4e  )..$(LTLINK) $(N
10b80 4f 5f 57 41 52 4e 29 20 24 28 54 4f 50 29 5c 74  O_WARN) $(TOP)\t
10b90 6f 6f 6c 5c 4c 6f 67 45 73 74 2e 63 20 2f 6c 69  ool\LogEst.c /li
10ba0 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
10bb0 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 77 6f 72  LTLINKOPTS)..wor
10bc0 64 63 6f 75 6e 74 2e 65 78 65 3a 09 24 28 54 4f  dcount.exe:.$(TO
10bd0 50 29 5c 74 65 73 74 5c 77 6f 72 64 63 6f 75 6e  P)\test\wordcoun
10be0 74 2e 63 20 24 28 53 51 4c 49 54 45 33 43 29 20  t.c $(SQLITE3C) 
10bf0 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24 28 4c  $(SQLITE3H)..$(L
10c00 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41 52 4e  TLINK) $(NO_WARN
10c10 29 20 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41  ) -DSQLITE_THREA
10c20 44 53 41 46 45 3d 30 20 2d 44 53 51 4c 49 54 45  DSAFE=0 -DSQLITE
10c30 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e  _OMIT_LOAD_EXTEN
10c40 53 49 4f 4e 20 5c 0a 09 09 24 28 54 4f 50 29 5c  SION \...$(TOP)\
10c50 74 65 73 74 5c 77 6f 72 64 63 6f 75 6e 74 2e 63  test\wordcount.c
10c60 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
10c70 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
10c80 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 73 70 65  LTLINKOPTS)..spe
10c90 65 64 74 65 73 74 31 2e 65 78 65 3a 09 24 28 54  edtest1.exe:.$(T
10ca0 4f 50 29 5c 74 65 73 74 5c 73 70 65 65 64 74 65  OP)\test\speedte
10cb0 73 74 31 2e 63 20 24 28 53 51 4c 49 54 45 33 43  st1.c $(SQLITE3C
10cc0 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24  ) $(SQLITE3H)..$
10cd0 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41  (LTLINK) $(NO_WA
10ce0 52 4e 29 20 24 28 53 54 5f 43 4f 4d 50 49 4c 45  RN) $(ST_COMPILE
10cf0 5f 4f 50 54 53 29 20 2d 44 53 51 4c 49 54 45 5f  _OPTS) -DSQLITE_
10d00 4f 4d 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e 53  OMIT_LOAD_EXTENS
10d10 49 4f 4e 20 5c 0a 09 09 24 28 54 4f 50 29 5c 74  ION \...$(TOP)\t
10d20 65 73 74 5c 73 70 65 65 64 74 65 73 74 31 2e 63  est\speedtest1.c
10d30 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
10d40 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
10d50 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 6b 76 74  LTLINKOPTS)..kvt
10d60 65 73 74 2e 65 78 65 3a 09 24 28 54 4f 50 29 5c  est.exe:.$(TOP)\
10d70 74 65 73 74 5c 6b 76 74 65 73 74 2e 63 20 24 28  test\kvtest.c $(
10d80 53 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49  SQLITE3C) $(SQLI
10d90 54 45 33 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29  TE3H)..$(LTLINK)
10da0 20 24 28 4e 4f 5f 57 41 52 4e 29 20 24 28 4b 56   $(NO_WARN) $(KV
10db0 5f 43 4f 4d 50 49 4c 45 5f 4f 50 54 53 29 20 5c  _COMPILE_OPTS) \
10dc0 0a 09 09 24 28 54 4f 50 29 5c 74 65 73 74 5c 6b  ...$(TOP)\test\k
10dd0 76 74 65 73 74 2e 63 20 24 28 53 51 4c 49 54 45  vtest.c $(SQLITE
10de0 33 43 29 20 2f 6c 69 6e 6b 20 24 28 4c 44 46 4c  3C) /link $(LDFL
10df0 41 47 53 29 20 24 28 4c 54 4c 49 4e 4b 4f 50 54  AGS) $(LTLINKOPT
10e00 53 29 0a 0a 64 62 73 65 6c 66 74 65 73 74 2e 65  S)..dbselftest.e
10e10 78 65 3a 09 24 28 54 4f 50 29 5c 74 65 73 74 5c  xe:.$(TOP)\test\
10e20 64 62 73 65 6c 66 74 65 73 74 2e 63 20 24 28 53  dbselftest.c $(S
10e30 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49 54  QLITE3C) $(SQLIT
10e40 45 33 48 29 0a 09 24 28 4c 54 4c 49 4e 4b 29 20  E3H)..$(LTLINK) 
10e50 24 28 4e 4f 5f 57 41 52 4e 29 20 24 28 44 42 53  $(NO_WARN) $(DBS
10e60 45 4c 46 54 45 53 54 5f 43 4f 4d 50 49 4c 45 5f  ELFTEST_COMPILE_
10e70 4f 50 54 53 29 20 24 28 54 4f 50 29 5c 74 65 73  OPTS) $(TOP)\tes
10e80 74 5c 64 62 73 65 6c 66 74 65 73 74 2e 63 20 24  t\dbselftest.c $
10e90 28 53 51 4c 49 54 45 33 43 29 0a 0a 72 62 75 2e  (SQLITE3C)..rbu.
10ea0 65 78 65 3a 09 24 28 54 4f 50 29 5c 65 78 74 5c  exe:.$(TOP)\ext\
10eb0 72 62 75 5c 72 62 75 2e 63 20 24 28 54 4f 50 29  rbu\rbu.c $(TOP)
10ec0 5c 65 78 74 5c 72 62 75 5c 73 71 6c 69 74 65 33  \ext\rbu\sqlite3
10ed0 72 62 75 2e 63 20 24 28 53 51 4c 49 54 45 33 43  rbu.c $(SQLITE3C
10ee0 29 20 24 28 53 51 4c 49 54 45 33 48 29 0a 09 24  ) $(SQLITE3H)..$
10ef0 28 4c 54 4c 49 4e 4b 29 20 24 28 4e 4f 5f 57 41  (LTLINK) $(NO_WA
10f00 52 4e 29 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  RN) -DSQLITE_ENA
10f10 42 4c 45 5f 52 42 55 20 5c 0a 09 09 24 28 54 4f  BLE_RBU \...$(TO
10f20 50 29 5c 65 78 74 5c 72 62 75 5c 72 62 75 2e 63  P)\ext\rbu\rbu.c
10f30 20 24 28 53 51 4c 49 54 45 33 43 29 20 2f 6c 69   $(SQLITE3C) /li
10f40 6e 6b 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28  nk $(LDFLAGS) $(
10f50 4c 54 4c 49 4e 4b 4f 50 54 53 29 0a 0a 4c 53 4d  LTLINKOPTS)..LSM
10f60 44 49 52 3d 24 28 54 4f 50 29 5c 65 78 74 5c 6c  DIR=$(TOP)\ext\l
10f70 73 6d 31 0a 21 49 4e 43 4c 55 44 45 20 24 28 4c  sm1.!INCLUDE $(L
10f80 53 4d 44 49 52 29 5c 4d 61 6b 65 66 69 6c 65 2e  SMDIR)\Makefile.
10f90 6d 73 63 0a 0a 6d 6f 72 65 63 6c 65 61 6e 3a 09  msc..moreclean:.
10fa0 63 6c 65 61 6e 0a 09 64 65 6c 20 2f 51 20 24 28  clean..del /Q $(
10fb0 53 51 4c 49 54 45 33 43 29 20 24 28 53 51 4c 49  SQLITE3C) $(SQLI
10fc0 54 45 33 48 29 20 32 3e 4e 55 4c 0a 23 20 3c 3c  TE3H) 2>NUL.# <<
10fd0 2f 6d 61 72 6b 3e 3e 0a 0a 63 6c 65 61 6e 3a 0a  /mark>>..clean:.
10fe0 09 64 65 6c 20 2f 51 20 2a 2e 65 78 70 20 2a 2e  .del /Q *.exp *.
10ff0 6c 6f 20 2a 2e 69 6c 6b 20 2a 2e 6c 69 62 20 2a  lo *.ilk *.lib *
11000 2e 6f 62 6a 20 2a 2e 6e 63 62 20 2a 2e 70 64 62  .obj *.ncb *.pdb
11010 20 2a 2e 73 64 66 20 2a 2e 73 75 6f 20 32 3e 4e   *.sdf *.suo 2>N
11020 55 4c 0a 09 64 65 6c 20 2f 51 20 2a 2e 62 73 63  UL..del /Q *.bsc
11030 20 2a 2e 64 65 66 20 2a 2e 63 6f 64 20 2a 2e 64   *.def *.cod *.d
11040 61 20 2a 2e 62 62 20 2a 2e 62 62 67 20 2a 2e 76  a *.bb *.bbg *.v
11050 63 20 67 6d 6f 6e 2e 6f 75 74 20 32 3e 4e 55 4c  c gmon.out 2>NUL
11060 0a 09 64 65 6c 20 2f 51 20 24 28 53 51 4c 49 54  ..del /Q $(SQLIT
11070 45 33 45 58 45 29 20 24 28 53 51 4c 49 54 45 33  E3EXE) $(SQLITE3
11080 44 4c 4c 29 20 52 65 70 6c 61 63 65 2e 65 78 65  DLL) Replace.exe
11090 20 32 3e 4e 55 4c 0a 23 20 3c 3c 6d 61 72 6b 3e   2>NUL.# <<mark>
110a0 3e 0a 09 64 65 6c 20 2f 51 20 73 71 6c 69 74 65  >..del /Q sqlite
110b0 33 2e 63 20 73 71 6c 69 74 65 33 2e 68 20 32 3e  3.c sqlite3.h 2>
110c0 4e 55 4c 0a 09 64 65 6c 20 2f 51 20 6f 70 63 6f  NUL..del /Q opco
110d0 64 65 73 2e 63 20 6f 70 63 6f 64 65 73 2e 68 20  des.c opcodes.h 
110e0 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51 20 6c 65  2>NUL..del /Q le
110f0 6d 6f 6e 2e 2a 20 6c 65 6d 70 61 72 2e 63 20 70  mon.* lempar.c p
11100 61 72 73 65 2e 2a 20 32 3e 4e 55 4c 0a 09 64 65  arse.* 2>NUL..de
11110 6c 20 2f 51 20 6d 6b 73 6f 75 72 63 65 69 64 2e  l /Q mksourceid.
11120 2a 20 6d 6b 6b 65 79 77 6f 72 64 68 61 73 68 2e  * mkkeywordhash.
11130 2a 20 6b 65 79 77 6f 72 64 68 61 73 68 2e 68 20  * keywordhash.h 
11140 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51 20 6e 6f  2>NUL..del /Q no
11150 74 61 73 68 61 72 65 64 6c 69 62 2e 2a 20 32 3e  tasharedlib.* 2>
11160 4e 55 4c 0a 09 2d 72 6d 64 69 72 20 2f 51 2f 53  NUL..-rmdir /Q/S
11170 20 2e 64 65 70 73 20 32 3e 4e 55 4c 0a 09 2d 72   .deps 2>NUL..-r
11180 6d 64 69 72 20 2f 51 2f 53 20 2e 6c 69 62 73 20  mdir /Q/S .libs 
11190 32 3e 4e 55 4c 0a 09 2d 72 6d 64 69 72 20 2f 51  2>NUL..-rmdir /Q
111a0 2f 53 20 74 73 72 63 20 32 3e 4e 55 4c 0a 09 64  /S tsrc 2>NUL..d
111b0 65 6c 20 2f 51 20 2e 74 61 72 67 65 74 5f 73 6f  el /Q .target_so
111c0 75 72 63 65 20 32 3e 4e 55 4c 0a 09 64 65 6c 20  urce 2>NUL..del 
111d0 2f 51 20 74 63 6c 73 71 6c 69 74 65 33 2e 65 78  /Q tclsqlite3.ex
111e0 65 20 24 28 53 51 4c 49 54 45 54 43 4c 48 29 20  e $(SQLITETCLH) 
111f0 24 28 53 51 4c 49 54 45 54 43 4c 44 45 43 4c 53  $(SQLITETCLDECLS
11200 48 29 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51  H) 2>NUL..del /Q
11210 20 6c 73 6d 2e 64 6c 6c 20 6c 73 6d 74 65 73 74   lsm.dll lsmtest
11220 2e 65 78 65 20 32 3e 4e 55 4c 0a 09 64 65 6c 20  .exe 2>NUL..del 
11230 2f 51 20 74 65 73 74 6c 6f 61 64 65 78 74 2e 64  /Q testloadext.d
11240 6c 6c 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51  ll 2>NUL..del /Q
11250 20 74 65 73 74 66 69 78 74 75 72 65 2e 65 78 65   testfixture.exe
11260 20 74 65 73 74 2e 64 62 20 32 3e 4e 55 4c 0a 09   test.db 2>NUL..
11270 64 65 6c 20 2f 51 20 4c 6f 67 45 73 74 2e 65 78  del /Q LogEst.ex
11280 65 20 66 74 73 33 76 69 65 77 2e 65 78 65 20 72  e fts3view.exe r
11290 6f 6c 6c 62 61 63 6b 2d 74 65 73 74 2e 65 78 65  ollback-test.exe
112a0 20 73 68 6f 77 64 62 2e 65 78 65 20 64 62 64 75   showdb.exe dbdu
112b0 6d 70 2e 65 78 65 20 32 3e 4e 55 4c 0a 09 64 65  mp.exe 2>NUL..de
112c0 6c 20 2f 51 20 63 68 61 6e 67 65 73 65 74 2e 65  l /Q changeset.e
112d0 78 65 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51  xe 2>NUL..del /Q
112e0 20 73 68 6f 77 6a 6f 75 72 6e 61 6c 2e 65 78 65   showjournal.exe
112f0 20 73 68 6f 77 73 74 61 74 34 2e 65 78 65 20 73   showstat4.exe s
11300 68 6f 77 77 61 6c 2e 65 78 65 20 73 70 65 65 64  howwal.exe speed
11310 74 65 73 74 31 2e 65 78 65 20 32 3e 4e 55 4c 0a  test1.exe 2>NUL.
11320 09 64 65 6c 20 2f 51 20 6d 70 74 65 73 74 65 72  .del /Q mptester
11330 2e 65 78 65 20 77 6f 72 64 63 6f 75 6e 74 2e 65  .exe wordcount.e
11340 78 65 20 72 62 75 2e 65 78 65 20 73 72 63 63 6b  xe rbu.exe srcck
11350 31 2e 65 78 65 20 32 3e 4e 55 4c 0a 09 64 65 6c  1.exe 2>NUL..del
11360 20 2f 51 20 73 71 6c 69 74 65 33 2e 63 20 73 71   /Q sqlite3.c sq
11370 6c 69 74 65 33 2d 2a 2e 63 20 32 3e 4e 55 4c 0a  lite3-*.c 2>NUL.
11380 09 64 65 6c 20 2f 51 20 73 71 6c 69 74 65 33 72  .del /Q sqlite3r
11390 63 2e 68 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f  c.h 2>NUL..del /
113a0 51 20 73 68 65 6c 6c 2e 63 20 73 71 6c 69 74 65  Q shell.c sqlite
113b0 33 65 78 74 2e 68 20 73 71 6c 69 74 65 33 73 65  3ext.h sqlite3se
113c0 73 73 69 6f 6e 2e 68 20 32 3e 4e 55 4c 0a 09 64  ssion.h 2>NUL..d
113d0 65 6c 20 2f 51 20 73 71 6c 69 74 65 33 5f 61 6e  el /Q sqlite3_an
113e0 61 6c 79 7a 65 72 2e 65 78 65 20 73 71 6c 69 74  alyzer.exe sqlit
113f0 65 33 5f 61 6e 61 6c 79 7a 65 72 2e 63 20 32 3e  e3_analyzer.c 2>
11400 4e 55 4c 0a 09 64 65 6c 20 2f 51 20 73 71 6c 69  NUL..del /Q sqli
11410 74 65 2d 2a 2d 6f 75 74 70 75 74 2e 76 73 69 78  te-*-output.vsix
11420 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f 51 20 66   2>NUL..del /Q f
11430 75 7a 7a 65 72 73 68 65 6c 6c 2e 65 78 65 20 66  uzzershell.exe f
11440 75 7a 7a 63 68 65 63 6b 2e 65 78 65 20 73 71 6c  uzzcheck.exe sql
11450 64 69 66 66 2e 65 78 65 20 64 62 68 61 73 68 2e  diff.exe dbhash.
11460 65 78 65 20 32 3e 4e 55 4c 0a 09 64 65 6c 20 2f  exe 2>NUL..del /
11470 51 20 66 74 73 35 2e 2a 20 66 74 73 35 70 61 72  Q fts5.* fts5par
11480 73 65 2e 2a 20 32 3e 4e 55 4c 0a 23 20 3c 3c 2f  se.* 2>NUL.# <</
11490 6d 61 72 6b 3e 3e 0a                             mark>>.