/ Hex Artifact Content
Login

Artifact c3746248b5ad8f99a29020f83501bb25e024156ecc37e05c71c76da4fc8601c6:


0000: 0a 23 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e  .# This file con
0010: 74 61 69 6e 73 20 43 6f 6e 66 69 67 75 72 61 74  tains Configurat
0020: 69 6f 6e 20 64 61 74 61 20 75 73 65 64 20 62 79  ion data used by
0030: 20 22 77 61 70 70 74 65 73 74 2e 74 63 6c 22 20   "wapptest.tcl" 
0040: 61 6e 64 0a 23 20 22 72 65 6c 65 61 73 65 74 65  and.# "releasete
0050: 73 74 2e 74 63 6c 22 2e 0a 23 0a 0a 23 20 4f 6d  st.tcl"..#..# Om
0060: 69 74 20 63 6f 6d 6d 65 6e 74 73 20 28 74 65 78  it comments (tex
0070: 74 20 62 65 74 77 65 65 6e 20 23 20 61 6e 64 20  t between # and 
0080: 5c 6e 29 20 69 6e 20 61 20 6c 6f 6e 67 20 6d 75  \n) in a long mu
0090: 6c 74 69 2d 6c 69 6e 65 20 73 74 72 69 6e 67 2e  lti-line string.
00a0: 0a 23 0a 70 72 6f 63 20 73 74 72 69 70 5f 63 6f  .#.proc strip_co
00b0: 6d 6d 65 6e 74 73 20 7b 69 6e 7d 20 7b 0a 20 20  mments {in} {.  
00c0: 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 23 5b 5e  regsub -all {#[^
00d0: 5c 6e 5d 2a 5c 6e 7d 20 24 69 6e 20 7b 7d 20 6f  \n]*\n} $in {} o
00e0: 75 74 0a 20 20 72 65 74 75 72 6e 20 24 6f 75 74  ut.  return $out
00f0: 0a 7d 0a 0a 61 72 72 61 79 20 73 65 74 20 3a 3a  .}..array set ::
0100: 43 6f 6e 66 69 67 73 20 5b 73 74 72 69 70 5f 63  Configs [strip_c
0110: 6f 6d 6d 65 6e 74 73 20 7b 0a 20 20 22 44 65 66  omments {.  "Def
0120: 61 75 6c 74 22 20 7b 0a 20 20 20 20 2d 4f 32 0a  ault" {.    -O2.
0130: 20 20 20 20 2d 2d 64 69 73 61 62 6c 65 2d 61 6d      --disable-am
0140: 61 6c 67 61 6d 61 74 69 6f 6e 20 2d 2d 64 69 73  algamation --dis
0150: 61 62 6c 65 2d 73 68 61 72 65 64 0a 20 20 20 20  able-shared.    
0160: 2d 2d 65 6e 61 62 6c 65 2d 73 65 73 73 69 6f 6e  --enable-session
0170: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e  .    -DSQLITE_EN
0180: 41 42 4c 45 5f 44 45 53 45 52 49 41 4c 49 5a 45  ABLE_DESERIALIZE
0190: 0a 20 20 7d 0a 20 20 22 53 61 6e 69 74 69 7a 65  .  }.  "Sanitize
01a0: 22 20 7b 0a 20 20 20 20 43 43 3d 63 6c 61 6e 67  " {.    CC=clang
01b0: 20 2d 66 73 61 6e 69 74 69 7a 65 3d 75 6e 64 65   -fsanitize=unde
01c0: 66 69 6e 65 64 0a 20 20 20 20 2d 44 53 51 4c 49  fined.    -DSQLI
01d0: 54 45 5f 45 4e 41 42 4c 45 5f 53 54 41 54 34 0a  TE_ENABLE_STAT4.
01e0: 20 20 20 20 2d 2d 65 6e 61 62 6c 65 2d 73 65 73      --enable-ses
01f0: 73 69 6f 6e 0a 20 20 7d 0a 20 20 22 53 74 64 63  sion.  }.  "Stdc
0200: 61 6c 6c 22 20 7b 0a 20 20 20 20 2d 44 55 53 45  all" {.    -DUSE
0210: 5f 53 54 44 43 41 4c 4c 3d 31 0a 20 20 20 20 2d  _STDCALL=1.    -
0220: 4f 32 0a 20 20 7d 0a 20 20 22 48 61 76 65 2d 4e  O2.  }.  "Have-N
0230: 6f 74 22 20 7b 0a 20 20 20 20 23 20 54 68 65 20  ot" {.    # The 
0240: 22 48 61 76 65 2d 4e 6f 74 22 20 63 6f 6e 66 69  "Have-Not" confi
0250: 67 75 72 61 74 69 6f 6e 20 73 65 74 73 20 61 6c  guration sets al
0260: 6c 20 70 6f 73 73 69 62 6c 65 20 2d 55 48 41 56  l possible -UHAV
0270: 45 5f 66 65 61 74 75 72 65 20 6f 70 74 69 6f 6e  E_feature option
0280: 73 0a 20 20 20 20 23 20 69 6e 20 6f 72 64 65 72  s.    # in order
0290: 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 20   to verify that 
02a0: 74 68 65 20 63 6f 64 65 20 77 6f 72 6b 73 20 65  the code works e
02b0: 76 65 6e 20 6f 6e 20 70 6c 61 74 66 6f 72 6d 73  ven on platforms
02c0: 20 74 68 61 74 20 6c 61 63 6b 0a 20 20 20 20 23   that lack.    #
02d0: 20 74 68 65 73 65 20 73 75 70 70 6f 72 74 20 73   these support s
02e0: 65 72 76 69 63 65 73 2e 0a 20 20 20 20 2d 44 48  ervices..    -DH
02f0: 41 56 45 5f 46 44 41 54 41 53 59 4e 43 3d 30 0a  AVE_FDATASYNC=0.
0300: 20 20 20 20 2d 44 48 41 56 45 5f 47 4d 54 49 4d      -DHAVE_GMTIM
0310: 45 5f 52 3d 30 0a 20 20 20 20 2d 44 48 41 56 45  E_R=0.    -DHAVE
0320: 5f 49 53 4e 41 4e 3d 30 0a 20 20 20 20 2d 44 48  _ISNAN=0.    -DH
0330: 41 56 45 5f 4c 4f 43 41 4c 54 49 4d 45 5f 52 3d  AVE_LOCALTIME_R=
0340: 30 0a 20 20 20 20 2d 44 48 41 56 45 5f 4c 4f 43  0.    -DHAVE_LOC
0350: 41 4c 54 49 4d 45 5f 53 3d 30 0a 20 20 20 20 2d  ALTIME_S=0.    -
0360: 44 48 41 56 45 5f 4d 41 4c 4c 4f 43 5f 55 53 41  DHAVE_MALLOC_USA
0370: 42 4c 45 5f 53 49 5a 45 3d 30 0a 20 20 20 20 2d  BLE_SIZE=0.    -
0380: 44 48 41 56 45 5f 53 54 52 43 48 52 4e 55 4c 3d  DHAVE_STRCHRNUL=
0390: 30 0a 20 20 20 20 2d 44 48 41 56 45 5f 55 53 4c  0.    -DHAVE_USL
03a0: 45 45 50 3d 30 0a 20 20 20 20 2d 44 48 41 56 45  EEP=0.    -DHAVE
03b0: 5f 55 54 49 4d 45 3d 30 0a 20 20 7d 0a 20 20 22  _UTIME=0.  }.  "
03c0: 55 6e 6c 6f 63 6b 2d 4e 6f 74 69 66 79 22 20 7b  Unlock-Notify" {
03d0: 0a 20 20 20 20 2d 4f 32 0a 20 20 20 20 2d 44 53  .    -O2.    -DS
03e0: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 55 4e 4c  QLITE_ENABLE_UNL
03f0: 4f 43 4b 5f 4e 4f 54 49 46 59 0a 20 20 20 20 2d  OCK_NOTIFY.    -
0400: 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41  DSQLITE_THREADSA
0410: 46 45 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  FE.    -DSQLITE_
0420: 54 43 4c 5f 44 45 46 41 55 4c 54 5f 46 55 4c 4c  TCL_DEFAULT_FULL
0430: 4d 55 54 45 58 3d 31 0a 20 20 7d 0a 20 20 22 55  MUTEX=1.  }.  "U
0440: 73 65 72 2d 41 75 74 68 22 20 7b 0a 20 20 20 20  ser-Auth" {.    
0450: 2d 4f 32 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  -O2.    -DSQLITE
0460: 5f 55 53 45 52 5f 41 55 54 48 45 4e 54 49 43 41  _USER_AUTHENTICA
0470: 54 49 4f 4e 3d 31 0a 20 20 7d 0a 20 20 22 53 65  TION=1.  }.  "Se
0480: 63 75 72 65 2d 44 65 6c 65 74 65 22 20 7b 0a 20  cure-Delete" {. 
0490: 20 20 20 2d 4f 32 0a 20 20 20 20 2d 44 53 51 4c     -O2.    -DSQL
04a0: 49 54 45 5f 53 45 43 55 52 45 5f 44 45 4c 45 54  ITE_SECURE_DELET
04b0: 45 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  E=1.    -DSQLITE
04c0: 5f 53 4f 55 4e 44 45 58 3d 31 0a 20 20 7d 0a 20  _SOUNDEX=1.  }. 
04d0: 20 22 55 70 64 61 74 65 2d 44 65 6c 65 74 65 2d   "Update-Delete-
04e0: 4c 69 6d 69 74 22 20 7b 0a 20 20 20 20 2d 4f 32  Limit" {.    -O2
04f0: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 44 45  .    -DSQLITE_DE
0500: 46 41 55 4c 54 5f 46 49 4c 45 5f 46 4f 52 4d 41  FAULT_FILE_FORMA
0510: 54 3d 34 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  T=4.    -DSQLITE
0520: 5f 45 4e 41 42 4c 45 5f 55 50 44 41 54 45 5f 44  _ENABLE_UPDATE_D
0530: 45 4c 45 54 45 5f 4c 49 4d 49 54 3d 31 0a 20 20  ELETE_LIMIT=1.  
0540: 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c    -DSQLITE_ENABL
0550: 45 5f 53 54 4d 54 5f 53 43 41 4e 53 54 41 54 55  E_STMT_SCANSTATU
0560: 53 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 4c  S.    -DSQLITE_L
0570: 49 4b 45 5f 44 4f 45 53 4e 54 5f 4d 41 54 43 48  IKE_DOESNT_MATCH
0580: 5f 42 4c 4f 42 53 0a 20 20 20 20 2d 44 53 51 4c  _BLOBS.    -DSQL
0590: 49 54 45 5f 45 4e 41 42 4c 45 5f 43 55 52 53 4f  ITE_ENABLE_CURSO
05a0: 52 5f 48 49 4e 54 53 0a 20 20 20 20 2d 2d 65 6e  R_HINTS.    --en
05b0: 61 62 6c 65 2d 6a 73 6f 6e 31 0a 20 20 7d 0a 20  able-json1.  }. 
05c0: 20 22 43 68 65 63 6b 2d 53 79 6d 62 6f 6c 73 22   "Check-Symbols"
05d0: 20 7b 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f   {.    -DSQLITE_
05e0: 4d 45 4d 44 45 42 55 47 3d 31 0a 20 20 20 20 2d  MEMDEBUG=1.    -
05f0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
0600: 54 53 33 5f 50 41 52 45 4e 54 48 45 53 49 53 3d  TS3_PARENTHESIS=
0610: 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  1.    -DSQLITE_E
0620: 4e 41 42 4c 45 5f 46 54 53 33 3d 31 0a 20 20 20  NABLE_FTS3=1.   
0630: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
0640: 5f 52 54 52 45 45 3d 31 0a 20 20 20 20 2d 44 53  _RTREE=1.    -DS
0650: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4d 45 4d  QLITE_ENABLE_MEM
0660: 53 59 53 35 3d 31 0a 20 20 20 20 2d 44 53 51 4c  SYS5=1.    -DSQL
0670: 49 54 45 5f 45 4e 41 42 4c 45 5f 4d 45 4d 53 59  ITE_ENABLE_MEMSY
0680: 53 33 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54  S3=1.    -DSQLIT
0690: 45 5f 45 4e 41 42 4c 45 5f 43 4f 4c 55 4d 4e 5f  E_ENABLE_COLUMN_
06a0: 4d 45 54 41 44 41 54 41 3d 31 0a 20 20 20 20 2d  METADATA=1.    -
06b0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 55  DSQLITE_ENABLE_U
06c0: 50 44 41 54 45 5f 44 45 4c 45 54 45 5f 4c 49 4d  PDATE_DELETE_LIM
06d0: 49 54 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54  IT=1.    -DSQLIT
06e0: 45 5f 53 45 43 55 52 45 5f 44 45 4c 45 54 45 3d  E_SECURE_DELETE=
06f0: 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 53  1.    -DSQLITE_S
0700: 4f 55 4e 44 45 58 3d 31 0a 20 20 20 20 2d 44 53  OUNDEX=1.    -DS
0710: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 41 54 4f  QLITE_ENABLE_ATO
0720: 4d 49 43 5f 57 52 49 54 45 3d 31 0a 20 20 20 20  MIC_WRITE=1.    
0730: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
0740: 4d 45 4d 4f 52 59 5f 4d 41 4e 41 47 45 4d 45 4e  MEMORY_MANAGEMEN
0750: 54 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  T=1.    -DSQLITE
0760: 5f 45 4e 41 42 4c 45 5f 4f 56 45 52 53 49 5a 45  _ENABLE_OVERSIZE
0770: 5f 43 45 4c 4c 5f 43 48 45 43 4b 3d 31 0a 20 20  _CELL_CHECK=1.  
0780: 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c    -DSQLITE_ENABL
0790: 45 5f 53 54 41 54 34 0a 20 20 20 20 2d 44 53 51  E_STAT4.    -DSQ
07a0: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 53 54 4d 54  LITE_ENABLE_STMT
07b0: 5f 53 43 41 4e 53 54 41 54 55 53 0a 20 20 20 20  _SCANSTATUS.    
07c0: 2d 2d 65 6e 61 62 6c 65 2d 6a 73 6f 6e 31 20 2d  --enable-json1 -
07d0: 2d 65 6e 61 62 6c 65 2d 66 74 73 35 20 2d 2d 65  -enable-fts5 --e
07e0: 6e 61 62 6c 65 2d 73 65 73 73 69 6f 6e 0a 20 20  nable-session.  
07f0: 7d 0a 20 20 22 44 65 62 75 67 2d 4f 6e 65 22 20  }.  "Debug-One" 
0800: 7b 0a 20 20 20 20 2d 2d 64 69 73 61 62 6c 65 2d  {.    --disable-
0810: 73 68 61 72 65 64 0a 20 20 20 20 2d 4f 32 20 2d  shared.    -O2 -
0820: 66 75 6e 73 69 67 6e 65 64 2d 63 68 61 72 0a 20  funsigned-char. 
0830: 20 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 42 55     -DSQLITE_DEBU
0840: 47 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  G=1.    -DSQLITE
0850: 5f 4d 45 4d 44 45 42 55 47 3d 31 0a 20 20 20 20  _MEMDEBUG=1.    
0860: 2d 44 53 51 4c 49 54 45 5f 4d 55 54 45 58 5f 4e  -DSQLITE_MUTEX_N
0870: 4f 4f 50 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  OOP=1.    -DSQLI
0880: 54 45 5f 54 43 4c 5f 44 45 46 41 55 4c 54 5f 46  TE_TCL_DEFAULT_F
0890: 55 4c 4c 4d 55 54 45 58 3d 31 0a 20 20 20 20 2d  ULLMUTEX=1.    -
08a0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
08b0: 54 53 33 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  TS3=1.    -DSQLI
08c0: 54 45 5f 45 4e 41 42 4c 45 5f 52 54 52 45 45 3d  TE_ENABLE_RTREE=
08d0: 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  1.    -DSQLITE_E
08e0: 4e 41 42 4c 45 5f 4d 45 4d 53 59 53 35 3d 31 0a  NABLE_MEMSYS5=1.
08f0: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41      -DSQLITE_ENA
0900: 42 4c 45 5f 43 4f 4c 55 4d 4e 5f 4d 45 54 41 44  BLE_COLUMN_METAD
0910: 41 54 41 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  ATA=1.    -DSQLI
0920: 54 45 5f 45 4e 41 42 4c 45 5f 53 54 41 54 34 0a  TE_ENABLE_STAT4.
0930: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41      -DSQLITE_ENA
0940: 42 4c 45 5f 48 49 44 44 45 4e 5f 43 4f 4c 55 4d  BLE_HIDDEN_COLUM
0950: 4e 53 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  NS.    -DSQLITE_
0960: 4d 41 58 5f 41 54 54 41 43 48 45 44 3d 31 32 35  MAX_ATTACHED=125
0970: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 4d 55  .    -DSQLITE_MU
0980: 54 41 54 49 4f 4e 5f 54 45 53 54 0a 20 20 20 20  TATION_TEST.    
0990: 2d 2d 65 6e 61 62 6c 65 2d 66 74 73 35 20 2d 2d  --enable-fts5 --
09a0: 65 6e 61 62 6c 65 2d 6a 73 6f 6e 31 0a 20 20 7d  enable-json1.  }
09b0: 0a 20 20 22 46 61 73 74 2d 4f 6e 65 22 20 7b 0a  .  "Fast-One" {.
09c0: 20 20 20 20 2d 4f 36 0a 20 20 20 20 2d 44 53 51      -O6.    -DSQ
09d0: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 34  LITE_ENABLE_FTS4
09e0: 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  =1.    -DSQLITE_
09f0: 45 4e 41 42 4c 45 5f 52 54 52 45 45 3d 31 0a 20  ENABLE_RTREE=1. 
0a00: 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42     -DSQLITE_ENAB
0a10: 4c 45 5f 53 54 41 54 34 0a 20 20 20 20 2d 44 53  LE_STAT4.    -DS
0a20: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 52 42 55  QLITE_ENABLE_RBU
0a30: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 4d 41  .    -DSQLITE_MA
0a40: 58 5f 41 54 54 41 43 48 45 44 3d 31 32 35 0a 20  X_ATTACHED=125. 
0a50: 20 20 20 2d 44 4c 4f 4e 47 44 4f 55 42 4c 45 5f     -DLONGDOUBLE_
0a60: 54 59 50 45 3d 64 6f 75 62 6c 65 0a 20 20 20 20  TYPE=double.    
0a70: 2d 2d 65 6e 61 62 6c 65 2d 73 65 73 73 69 6f 6e  --enable-session
0a80: 0a 20 20 7d 0a 20 20 22 44 65 76 69 63 65 2d 4f  .  }.  "Device-O
0a90: 6e 65 22 20 7b 0a 20 20 20 20 2d 4f 32 0a 20 20  ne" {.    -O2.  
0aa0: 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 42 55 47    -DSQLITE_DEBUG
0ab0: 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  =1.    -DSQLITE_
0ac0: 44 45 46 41 55 4c 54 5f 41 55 54 4f 56 41 43 55  DEFAULT_AUTOVACU
0ad0: 55 4d 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54  UM=1.    -DSQLIT
0ae0: 45 5f 44 45 46 41 55 4c 54 5f 43 41 43 48 45 5f  E_DEFAULT_CACHE_
0af0: 53 49 5a 45 3d 36 34 0a 20 20 20 20 2d 44 53 51  SIZE=64.    -DSQ
0b00: 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f 50 41 47  LITE_DEFAULT_PAG
0b10: 45 5f 53 49 5a 45 3d 31 30 32 34 0a 20 20 20 20  E_SIZE=1024.    
0b20: 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54  -DSQLITE_DEFAULT
0b30: 5f 54 45 4d 50 5f 43 41 43 48 45 5f 53 49 5a 45  _TEMP_CACHE_SIZE
0b40: 3d 33 32 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  =32.    -DSQLITE
0b50: 5f 44 49 53 41 42 4c 45 5f 4c 46 53 3d 31 0a 20  _DISABLE_LFS=1. 
0b60: 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42     -DSQLITE_ENAB
0b70: 4c 45 5f 41 54 4f 4d 49 43 5f 57 52 49 54 45 3d  LE_ATOMIC_WRITE=
0b80: 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  1.    -DSQLITE_E
0b90: 4e 41 42 4c 45 5f 49 4f 54 52 41 43 45 3d 31 0a  NABLE_IOTRACE=1.
0ba0: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41      -DSQLITE_ENA
0bb0: 42 4c 45 5f 4d 45 4d 4f 52 59 5f 4d 41 4e 41 47  BLE_MEMORY_MANAG
0bc0: 45 4d 45 4e 54 3d 31 0a 20 20 20 20 2d 44 53 51  EMENT=1.    -DSQ
0bd0: 4c 49 54 45 5f 4d 41 58 5f 50 41 47 45 5f 53 49  LITE_MAX_PAGE_SI
0be0: 5a 45 3d 34 30 39 36 0a 20 20 20 20 2d 44 53 51  ZE=4096.    -DSQ
0bf0: 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f 45  LITE_OMIT_LOAD_E
0c00: 58 54 45 4e 53 49 4f 4e 3d 31 0a 20 20 20 20 2d  XTENSION=1.    -
0c10: 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 50 52 4f  DSQLITE_OMIT_PRO
0c20: 47 52 45 53 53 5f 43 41 4c 4c 42 41 43 4b 3d 31  GRESS_CALLBACK=1
0c30: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 4f 4d  .    -DSQLITE_OM
0c40: 49 54 5f 56 49 52 54 55 41 4c 54 41 42 4c 45 3d  IT_VIRTUALTABLE=
0c50: 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  1.    -DSQLITE_E
0c60: 4e 41 42 4c 45 5f 48 49 44 44 45 4e 5f 43 4f 4c  NABLE_HIDDEN_COL
0c70: 55 4d 4e 53 0a 20 20 20 20 2d 44 53 51 4c 49 54  UMNS.    -DSQLIT
0c80: 45 5f 54 45 4d 50 5f 53 54 4f 52 45 3d 33 0a 20  E_TEMP_STORE=3. 
0c90: 20 20 20 2d 2d 65 6e 61 62 6c 65 2d 6a 73 6f 6e     --enable-json
0ca0: 31 0a 20 20 7d 0a 20 20 22 44 65 76 69 63 65 2d  1.  }.  "Device-
0cb0: 54 77 6f 22 20 7b 0a 20 20 20 20 2d 44 53 51 4c  Two" {.    -DSQL
0cc0: 49 54 45 5f 34 5f 42 59 54 45 5f 41 4c 49 47 4e  ITE_4_BYTE_ALIGN
0cd0: 45 44 5f 4d 41 4c 4c 4f 43 3d 31 0a 20 20 20 20  ED_MALLOC=1.    
0ce0: 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54  -DSQLITE_DEFAULT
0cf0: 5f 41 55 54 4f 56 41 43 55 55 4d 3d 31 0a 20 20  _AUTOVACUUM=1.  
0d00: 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55    -DSQLITE_DEFAU
0d10: 4c 54 5f 43 41 43 48 45 5f 53 49 5a 45 3d 31 30  LT_CACHE_SIZE=10
0d20: 30 30 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  00.    -DSQLITE_
0d30: 44 45 46 41 55 4c 54 5f 4c 4f 43 4b 49 4e 47 5f  DEFAULT_LOCKING_
0d40: 4d 4f 44 45 3d 30 0a 20 20 20 20 2d 44 53 51 4c  MODE=0.    -DSQL
0d50: 49 54 45 5f 44 45 46 41 55 4c 54 5f 50 41 47 45  ITE_DEFAULT_PAGE
0d60: 5f 53 49 5a 45 3d 31 30 32 34 0a 20 20 20 20 2d  _SIZE=1024.    -
0d70: 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f  DSQLITE_DEFAULT_
0d80: 54 45 4d 50 5f 43 41 43 48 45 5f 53 49 5a 45 3d  TEMP_CACHE_SIZE=
0d90: 31 30 30 30 0a 20 20 20 20 2d 44 53 51 4c 49 54  1000.    -DSQLIT
0da0: 45 5f 44 49 53 41 42 4c 45 5f 4c 46 53 3d 31 0a  E_DISABLE_LFS=1.
0db0: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41      -DSQLITE_ENA
0dc0: 42 4c 45 5f 46 54 53 33 3d 31 0a 20 20 20 20 2d  BLE_FTS3=1.    -
0dd0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4d  DSQLITE_ENABLE_M
0de0: 45 4d 4f 52 59 5f 4d 41 4e 41 47 45 4d 45 4e 54  EMORY_MANAGEMENT
0df0: 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  =1.    -DSQLITE_
0e00: 45 4e 41 42 4c 45 5f 52 54 52 45 45 3d 31 0a 20  ENABLE_RTREE=1. 
0e10: 20 20 20 2d 44 53 51 4c 49 54 45 5f 4d 41 58 5f     -DSQLITE_MAX_
0e20: 43 4f 4d 50 4f 55 4e 44 5f 53 45 4c 45 43 54 3d  COMPOUND_SELECT=
0e30: 35 30 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  50.    -DSQLITE_
0e40: 4d 41 58 5f 50 41 47 45 5f 53 49 5a 45 3d 33 32  MAX_PAGE_SIZE=32
0e50: 37 36 38 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  768.    -DSQLITE
0e60: 5f 4f 4d 49 54 5f 54 52 41 43 45 3d 31 0a 20 20  _OMIT_TRACE=1.  
0e70: 20 20 2d 44 53 51 4c 49 54 45 5f 54 45 4d 50 5f    -DSQLITE_TEMP_
0e80: 53 54 4f 52 45 3d 33 0a 20 20 20 20 2d 44 53 51  STORE=3.    -DSQ
0e90: 4c 49 54 45 5f 54 48 52 45 41 44 53 41 46 45 3d  LITE_THREADSAFE=
0ea0: 32 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  2.    -DSQLITE_E
0eb0: 4e 41 42 4c 45 5f 44 45 53 45 52 49 41 4c 49 5a  NABLE_DESERIALIZ
0ec0: 45 3d 31 0a 20 20 20 20 2d 2d 65 6e 61 62 6c 65  E=1.    --enable
0ed0: 2d 6a 73 6f 6e 31 20 2d 2d 65 6e 61 62 6c 65 2d  -json1 --enable-
0ee0: 66 74 73 35 20 2d 2d 65 6e 61 62 6c 65 2d 73 65  fts5 --enable-se
0ef0: 73 73 69 6f 6e 0a 20 20 7d 0a 20 20 22 4c 6f 63  ssion.  }.  "Loc
0f00: 6b 69 6e 67 2d 53 74 79 6c 65 22 20 7b 0a 20 20  king-Style" {.  
0f10: 20 20 2d 4f 32 0a 20 20 20 20 2d 44 53 51 4c 49    -O2.    -DSQLI
0f20: 54 45 5f 45 4e 41 42 4c 45 5f 4c 4f 43 4b 49 4e  TE_ENABLE_LOCKIN
0f30: 47 5f 53 54 59 4c 45 3d 31 0a 20 20 7d 0a 20 20  G_STYLE=1.  }.  
0f40: 22 41 70 70 6c 65 22 20 7b 0a 20 20 20 20 2d 4f  "Apple" {.    -O
0f50: 73 0a 20 20 20 20 2d 44 48 41 56 45 5f 47 4d 54  s.    -DHAVE_GMT
0f60: 49 4d 45 5f 52 3d 31 0a 20 20 20 20 2d 44 48 41  IME_R=1.    -DHA
0f70: 56 45 5f 49 53 4e 41 4e 3d 31 0a 20 20 20 20 2d  VE_ISNAN=1.    -
0f80: 44 48 41 56 45 5f 4c 4f 43 41 4c 54 49 4d 45 5f  DHAVE_LOCALTIME_
0f90: 52 3d 31 0a 20 20 20 20 2d 44 48 41 56 45 5f 50  R=1.    -DHAVE_P
0fa0: 52 45 41 44 3d 31 0a 20 20 20 20 2d 44 48 41 56  READ=1.    -DHAV
0fb0: 45 5f 50 57 52 49 54 45 3d 31 0a 20 20 20 20 2d  E_PWRITE=1.    -
0fc0: 44 48 41 56 45 5f 55 53 4c 45 45 50 3d 31 0a 20  DHAVE_USLEEP=1. 
0fd0: 20 20 20 2d 44 48 41 56 45 5f 55 53 4c 45 45 50     -DHAVE_USLEEP
0fe0: 3d 31 0a 20 20 20 20 2d 44 48 41 56 45 5f 55 54  =1.    -DHAVE_UT
0ff0: 49 4d 45 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  IME=1.    -DSQLI
1000: 54 45 5f 44 45 46 41 55 4c 54 5f 43 41 43 48 45  TE_DEFAULT_CACHE
1010: 5f 53 49 5a 45 3d 31 30 30 30 0a 20 20 20 20 2d  _SIZE=1000.    -
1020: 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f  DSQLITE_DEFAULT_
1030: 43 4b 50 54 46 55 4c 4c 46 53 59 4e 43 3d 31 0a  CKPTFULLFSYNC=1.
1040: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46      -DSQLITE_DEF
1050: 41 55 4c 54 5f 4d 45 4d 53 54 41 54 55 53 3d 31  AULT_MEMSTATUS=1
1060: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 44 45  .    -DSQLITE_DE
1070: 46 41 55 4c 54 5f 50 41 47 45 5f 53 49 5a 45 3d  FAULT_PAGE_SIZE=
1080: 31 30 32 34 0a 20 20 20 20 2d 44 53 51 4c 49 54  1024.    -DSQLIT
1090: 45 5f 44 49 53 41 42 4c 45 5f 50 41 47 45 43 41  E_DISABLE_PAGECA
10a0: 43 48 45 5f 4f 56 45 52 46 4c 4f 57 5f 53 54 41  CHE_OVERFLOW_STA
10b0: 54 53 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54  TS=1.    -DSQLIT
10c0: 45 5f 45 4e 41 42 4c 45 5f 41 50 49 5f 41 52 4d  E_ENABLE_API_ARM
10d0: 4f 52 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54  OR=1.    -DSQLIT
10e0: 45 5f 45 4e 41 42 4c 45 5f 41 55 54 4f 5f 50 52  E_ENABLE_AUTO_PR
10f0: 4f 46 49 4c 45 3d 31 0a 20 20 20 20 2d 44 53 51  OFILE=1.    -DSQ
1100: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 4c 4f 43  LITE_ENABLE_FLOC
1110: 4b 54 49 4d 45 4f 55 54 3d 31 0a 20 20 20 20 2d  KTIMEOUT=1.    -
1120: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
1130: 54 53 33 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  TS3=1.    -DSQLI
1140: 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 33 5f 50  TE_ENABLE_FTS3_P
1150: 41 52 45 4e 54 48 45 53 49 53 3d 31 0a 20 20 20  ARENTHESIS=1.   
1160: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
1170: 5f 46 54 53 33 5f 54 4f 4b 45 4e 49 5a 45 52 3d  _FTS3_TOKENIZER=
1180: 31 0a 20 20 20 20 69 66 3a 6f 73 3d 3d 22 44 61  1.    if:os=="Da
1190: 72 77 69 6e 22 20 2d 44 53 51 4c 49 54 45 5f 45  rwin" -DSQLITE_E
11a0: 4e 41 42 4c 45 5f 4c 4f 43 4b 49 4e 47 5f 53 54  NABLE_LOCKING_ST
11b0: 59 4c 45 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  YLE=1.    -DSQLI
11c0: 54 45 5f 45 4e 41 42 4c 45 5f 50 45 52 53 49 53  TE_ENABLE_PERSIS
11d0: 54 5f 57 41 4c 3d 31 0a 20 20 20 20 2d 44 53 51  T_WAL=1.    -DSQ
11e0: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 50 55 52 47  LITE_ENABLE_PURG
11f0: 45 41 42 4c 45 5f 50 43 41 43 48 45 3d 31 0a 20  EABLE_PCACHE=1. 
1200: 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42     -DSQLITE_ENAB
1210: 4c 45 5f 52 54 52 45 45 3d 31 0a 20 20 20 20 2d  LE_RTREE=1.    -
1220: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 53  DSQLITE_ENABLE_S
1230: 4e 41 50 53 48 4f 54 3d 31 0a 20 20 20 20 23 20  NAPSHOT=1.    # 
1240: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
1250: 53 51 4c 4c 4f 47 3d 31 0a 20 20 20 20 2d 44 53  SQLLOG=1.    -DS
1260: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 55 50 44  QLITE_ENABLE_UPD
1270: 41 54 45 5f 44 45 4c 45 54 45 5f 4c 49 4d 49 54  ATE_DELETE_LIMIT
1280: 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f  =1.    -DSQLITE_
1290: 4d 41 58 5f 4c 45 4e 47 54 48 3d 32 31 34 37 34  MAX_LENGTH=21474
12a0: 38 33 36 34 35 0a 20 20 20 20 2d 44 53 51 4c 49  83645.    -DSQLI
12b0: 54 45 5f 4d 41 58 5f 56 41 52 49 41 42 4c 45 5f  TE_MAX_VARIABLE_
12c0: 4e 55 4d 42 45 52 3d 35 30 30 30 30 30 0a 20 20  NUMBER=500000.  
12d0: 20 20 23 20 2d 44 53 51 4c 49 54 45 5f 4d 45 4d    # -DSQLITE_MEM
12e0: 44 45 42 55 47 3d 31 0a 20 20 20 20 2d 44 53 51  DEBUG=1.    -DSQ
12f0: 4c 49 54 45 5f 4e 4f 5f 53 59 4e 43 3d 31 0a 20  LITE_NO_SYNC=1. 
1300: 20 20 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54     -DSQLITE_OMIT
1310: 5f 41 55 54 4f 52 45 53 45 54 3d 31 0a 20 20 20  _AUTORESET=1.   
1320: 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c   -DSQLITE_OMIT_L
1330: 4f 41 44 5f 45 58 54 45 4e 53 49 4f 4e 3d 31 0a  OAD_EXTENSION=1.
1340: 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 50 52 45      -DSQLITE_PRE
1350: 46 45 52 5f 50 52 4f 58 59 5f 4c 4f 43 4b 49 4e  FER_PROXY_LOCKIN
1360: 47 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  G=1.    -DSQLITE
1370: 5f 53 45 52 49 45 53 5f 43 4f 4e 53 54 52 41 49  _SERIES_CONSTRAI
1380: 4e 54 5f 56 45 52 49 46 59 3d 31 0a 20 20 20 20  NT_VERIFY=1.    
1390: 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53  -DSQLITE_THREADS
13a0: 41 46 45 3d 32 0a 20 20 20 20 2d 44 53 51 4c 49  AFE=2.    -DSQLI
13b0: 54 45 5f 55 53 45 5f 55 52 49 3d 31 0a 20 20 20  TE_USE_URI=1.   
13c0: 20 2d 44 53 51 4c 49 54 45 5f 57 52 49 54 45 5f   -DSQLITE_WRITE_
13d0: 57 41 4c 46 52 41 4d 45 5f 50 52 45 42 55 46 46  WALFRAME_PREBUFF
13e0: 45 52 45 44 3d 31 0a 20 20 20 20 2d 44 55 53 45  ERED=1.    -DUSE
13f0: 5f 47 55 41 52 44 45 44 5f 46 44 3d 31 0a 20 20  _GUARDED_FD=1.  
1400: 20 20 2d 44 55 53 45 5f 50 52 45 41 44 3d 31 0a    -DUSE_PREAD=1.
1410: 20 20 20 20 2d 2d 65 6e 61 62 6c 65 2d 6a 73 6f      --enable-jso
1420: 6e 31 20 2d 2d 65 6e 61 62 6c 65 2d 66 74 73 35  n1 --enable-fts5
1430: 0a 20 20 7d 0a 20 20 22 45 78 74 72 61 2d 52 6f  .  }.  "Extra-Ro
1440: 62 75 73 74 6e 65 73 73 22 20 7b 0a 20 20 20 20  bustness" {.    
1450: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
1460: 4f 56 45 52 53 49 5a 45 5f 43 45 4c 4c 5f 43 48  OVERSIZE_CELL_CH
1470: 45 43 4b 3d 31 0a 20 20 20 20 2d 44 53 51 4c 49  ECK=1.    -DSQLI
1480: 54 45 5f 4d 41 58 5f 41 54 54 41 43 48 45 44 3d  TE_MAX_ATTACHED=
1490: 36 32 0a 20 20 7d 0a 20 20 22 44 65 76 6b 69 74  62.  }.  "Devkit
14a0: 22 20 7b 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  " {.    -DSQLITE
14b0: 5f 44 45 46 41 55 4c 54 5f 46 49 4c 45 5f 46 4f  _DEFAULT_FILE_FO
14c0: 52 4d 41 54 3d 34 0a 20 20 20 20 2d 44 53 51 4c  RMAT=4.    -DSQL
14d0: 49 54 45 5f 4d 41 58 5f 41 54 54 41 43 48 45 44  ITE_MAX_ATTACHED
14e0: 3d 33 30 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  =30.    -DSQLITE
14f0: 5f 45 4e 41 42 4c 45 5f 43 4f 4c 55 4d 4e 5f 4d  _ENABLE_COLUMN_M
1500: 45 54 41 44 41 54 41 0a 20 20 20 20 2d 44 53 51  ETADATA.    -DSQ
1510: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 34  LITE_ENABLE_FTS4
1520: 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e  .    -DSQLITE_EN
1530: 41 42 4c 45 5f 46 54 53 35 0a 20 20 20 20 2d 44  ABLE_FTS5.    -D
1540: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54  SQLITE_ENABLE_FT
1550: 53 34 5f 50 41 52 45 4e 54 48 45 53 49 53 0a 20  S4_PARENTHESIS. 
1560: 20 20 20 2d 44 53 51 4c 49 54 45 5f 44 49 53 41     -DSQLITE_DISA
1570: 42 4c 45 5f 46 54 53 34 5f 44 45 46 45 52 52 45  BLE_FTS4_DEFERRE
1580: 44 0a 20 20 20 20 2d 44 53 51 4c 49 54 45 5f 45  D.    -DSQLITE_E
1590: 4e 41 42 4c 45 5f 52 54 52 45 45 0a 20 20 20 20  NABLE_RTREE.    
15a0: 2d 2d 65 6e 61 62 6c 65 2d 6a 73 6f 6e 31 20 2d  --enable-json1 -
15b0: 2d 65 6e 61 62 6c 65 2d 66 74 73 35 0a 20 20 7d  -enable-fts5.  }
15c0: 0a 20 20 22 4e 6f 2d 6c 6f 6f 6b 61 73 69 64 65  .  "No-lookaside
15d0: 22 20 7b 0a 20 20 20 20 2d 44 53 51 4c 49 54 45  " {.    -DSQLITE
15e0: 5f 54 45 53 54 5f 52 45 41 4c 4c 4f 43 5f 53 54  _TEST_REALLOC_ST
15f0: 52 45 53 53 3d 31 0a 20 20 20 20 2d 44 53 51 4c  RESS=1.    -DSQL
1600: 49 54 45 5f 4f 4d 49 54 5f 4c 4f 4f 4b 41 53 49  ITE_OMIT_LOOKASI
1610: 44 45 3d 31 0a 20 20 20 20 2d 44 48 41 56 45 5f  DE=1.    -DHAVE_
1620: 55 53 4c 45 45 50 3d 31 0a 20 20 7d 0a 20 20 22  USLEEP=1.  }.  "
1630: 56 61 6c 67 72 69 6e 64 22 20 7b 0a 20 20 20 20  Valgrind" {.    
1640: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
1650: 53 54 41 54 34 0a 20 20 20 20 2d 44 53 51 4c 49  STAT4.    -DSQLI
1660: 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 34 0a 20  TE_ENABLE_FTS4. 
1670: 20 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42     -DSQLITE_ENAB
1680: 4c 45 5f 52 54 52 45 45 0a 20 20 20 20 2d 44 53  LE_RTREE.    -DS
1690: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 48 49 44  QLITE_ENABLE_HID
16a0: 44 45 4e 5f 43 4f 4c 55 4d 4e 53 0a 20 20 20 20  DEN_COLUMNS.    
16b0: 2d 2d 65 6e 61 62 6c 65 2d 6a 73 6f 6e 31 0a 20  --enable-json1. 
16c0: 20 7d 0a 0a 20 20 23 20 54 68 65 20 6e 65 78 74   }..  # The next
16d0: 20 67 72 6f 75 70 20 6f 66 20 63 6f 6e 66 69 67   group of config
16e0: 75 72 61 74 69 6f 6e 73 20 61 72 65 20 75 73 65  urations are use
16f0: 64 20 6f 6e 6c 79 20 62 79 20 74 68 65 0a 20 20  d only by the.  
1700: 23 20 46 61 69 6c 75 72 65 2d 44 65 74 65 63 74  # Failure-Detect
1710: 69 6f 6e 20 70 6c 61 74 66 6f 72 6d 2e 20 20 54  ion platform.  T
1720: 68 65 79 20 61 72 65 20 61 6c 6c 20 74 68 65 20  hey are all the 
1730: 73 61 6d 65 2c 20 62 75 74 20 77 65 20 6e 65 65  same, but we nee
1740: 64 0a 20 20 23 20 64 69 66 66 65 72 65 6e 74 20  d.  # different 
1750: 6e 61 6d 65 73 20 66 6f 72 20 74 68 65 6d 20 61  names for them a
1760: 6c 6c 20 73 6f 20 74 68 61 74 20 74 68 65 79 20  ll so that they 
1770: 72 65 73 75 6c 74 73 20 61 70 70 65 61 72 20 69  results appear i
1780: 6e 20 73 65 70 61 72 61 74 65 0a 20 20 23 20 73  n separate.  # s
1790: 75 62 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 20  ubdirectories.. 
17a0: 20 23 0a 20 20 46 61 69 6c 30 20 7b 2d 4f 30 7d   #.  Fail0 {-O0}
17b0: 0a 20 20 46 61 69 6c 32 20 7b 2d 4f 30 7d 0a 20  .  Fail2 {-O0}. 
17c0: 20 46 61 69 6c 33 20 7b 2d 4f 30 7d 0a 20 20 46   Fail3 {-O0}.  F
17d0: 61 69 6c 34 20 7b 2d 4f 30 7d 0a 20 20 46 75 7a  ail4 {-O0}.  Fuz
17e0: 7a 46 61 69 6c 31 20 7b 2d 4f 30 7d 0a 20 20 46  zFail1 {-O0}.  F
17f0: 75 7a 7a 46 61 69 6c 32 20 7b 2d 4f 30 7d 0a 7d  uzzFail2 {-O0}.}
1800: 5d 0a 0a 61 72 72 61 79 20 73 65 74 20 3a 3a 50  ]..array set ::P
1810: 6c 61 74 66 6f 72 6d 73 20 5b 73 74 72 69 70 5f  latforms [strip_
1820: 63 6f 6d 6d 65 6e 74 73 20 7b 0a 20 20 4c 69 6e  comments {.  Lin
1830: 75 78 2d 78 38 36 5f 36 34 20 7b 0a 20 20 20 20  ux-x86_64 {.    
1840: 22 43 68 65 63 6b 2d 53 79 6d 62 6f 6c 73 22 20  "Check-Symbols" 
1850: 20 20 20 20 20 20 20 20 20 20 63 68 65 63 6b 73            checks
1860: 79 6d 62 6f 6c 73 0a 20 20 20 20 22 46 61 73 74  ymbols.    "Fast
1870: 2d 4f 6e 65 22 20 20 20 20 20 20 20 20 20 20 20  -One"           
1880: 20 20 20 20 20 22 66 75 7a 7a 74 65 73 74 20 74       "fuzztest t
1890: 65 73 74 22 0a 20 20 20 20 22 44 65 62 75 67 2d  est".    "Debug-
18a0: 4f 6e 65 22 20 20 20 20 20 20 20 20 20 20 20 20  One"            
18b0: 20 20 20 22 6d 70 74 65 73 74 20 74 65 73 74 22     "mptest test"
18c0: 0a 20 20 20 20 22 48 61 76 65 2d 4e 6f 74 22 20  .    "Have-Not" 
18d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
18e0: 65 73 74 0a 20 20 20 20 22 53 65 63 75 72 65 2d  est.    "Secure-
18f0: 44 65 6c 65 74 65 22 20 20 20 20 20 20 20 20 20  Delete"         
1900: 20 20 74 65 73 74 0a 20 20 20 20 22 55 6e 6c 6f    test.    "Unlo
1910: 63 6b 2d 4e 6f 74 69 66 79 22 20 20 20 20 20 20  ck-Notify"      
1920: 20 20 20 20 20 22 51 55 49 43 4b 54 45 53 54 5f       "QUICKTEST_
1930: 49 4e 43 4c 55 44 45 3d 6e 6f 74 69 66 79 32 2e  INCLUDE=notify2.
1940: 74 65 73 74 20 74 65 73 74 22 0a 20 20 20 20 22  test test".    "
1950: 55 73 65 72 2d 41 75 74 68 22 20 20 20 20 20 20  User-Auth"      
1960: 20 20 20 20 20 20 20 20 20 74 63 6c 74 65 73 74           tcltest
1970: 0a 20 20 20 20 22 55 70 64 61 74 65 2d 44 65 6c  .    "Update-Del
1980: 65 74 65 2d 4c 69 6d 69 74 22 20 20 20 20 20 74  ete-Limit"     t
1990: 65 73 74 0a 20 20 20 20 22 45 78 74 72 61 2d 52  est.    "Extra-R
19a0: 6f 62 75 73 74 6e 65 73 73 22 20 20 20 20 20 20  obustness"      
19b0: 20 20 74 65 73 74 0a 20 20 20 20 22 44 65 76 69    test.    "Devi
19c0: 63 65 2d 54 77 6f 22 20 20 20 20 20 20 20 20 20  ce-Two"         
19d0: 20 20 20 20 20 74 65 73 74 0a 20 20 20 20 22 4e       test.    "N
19e0: 6f 2d 6c 6f 6f 6b 61 73 69 64 65 22 20 20 20 20  o-lookaside"    
19f0: 20 20 20 20 20 20 20 20 74 65 73 74 0a 20 20 20          test.   
1a00: 20 22 44 65 76 6b 69 74 22 20 20 20 20 20 20 20   "Devkit"       
1a10: 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 0a             test.
1a20: 20 20 20 20 22 41 70 70 6c 65 22 20 20 20 20 20      "Apple"     
1a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65                te
1a40: 73 74 0a 20 20 20 20 22 53 61 6e 69 74 69 7a 65  st.    "Sanitize
1a50: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  "               
1a60: 20 7b 51 55 49 43 4b 54 45 53 54 5f 4f 4d 49 54   {QUICKTEST_OMIT
1a70: 3d 66 75 6e 63 34 2e 74 65 73 74 2c 6e 61 6e 2e  =func4.test,nan.
1a80: 74 65 73 74 20 74 65 73 74 7d 0a 20 20 20 20 22  test test}.    "
1a90: 44 65 76 69 63 65 2d 4f 6e 65 22 20 20 20 20 20  Device-One"     
1aa0: 20 20 20 20 20 20 20 20 20 66 75 6c 6c 74 65 73           fulltes
1ab0: 74 0a 20 20 20 20 22 44 65 66 61 75 6c 74 22 20  t.    "Default" 
1ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad0: 22 74 68 72 65 61 64 74 65 73 74 20 66 75 6c 6c  "threadtest full
1ae0: 74 65 73 74 22 0a 20 20 20 20 22 56 61 6c 67 72  test".    "Valgr
1af0: 69 6e 64 22 20 20 20 20 20 20 20 20 20 20 20 20  ind"            
1b00: 20 20 20 20 76 61 6c 67 72 69 6e 64 74 65 73 74      valgrindtest
1b10: 0a 20 20 7d 0a 20 20 4c 69 6e 75 78 2d 69 36 38  .  }.  Linux-i68
1b20: 36 20 7b 0a 20 20 20 20 22 44 65 76 6b 69 74 22  6 {.    "Devkit"
1b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b40: 20 20 74 65 73 74 0a 20 20 20 20 22 48 61 76 65    test.    "Have
1b50: 2d 4e 6f 74 22 20 20 20 20 20 20 20 20 20 20 20  -Not"           
1b60: 20 20 20 20 20 74 65 73 74 0a 20 20 20 20 22 55       test.    "U
1b70: 6e 6c 6f 63 6b 2d 4e 6f 74 69 66 79 22 20 20 20  nlock-Notify"   
1b80: 20 20 20 20 20 20 20 20 22 51 55 49 43 4b 54 45          "QUICKTE
1b90: 53 54 5f 49 4e 43 4c 55 44 45 3d 6e 6f 74 69 66  ST_INCLUDE=notif
1ba0: 79 32 2e 74 65 73 74 20 74 65 73 74 22 0a 20 20  y2.test test".  
1bb0: 20 20 22 44 65 76 69 63 65 2d 4f 6e 65 22 20 20    "Device-One"  
1bc0: 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74              test
1bd0: 0a 20 20 20 20 22 44 65 76 69 63 65 2d 54 77 6f  .    "Device-Two
1be0: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74  "              t
1bf0: 65 73 74 0a 20 20 20 20 22 44 65 66 61 75 6c 74  est.    "Default
1c00: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  "               
1c10: 20 20 22 74 68 72 65 61 64 74 65 73 74 20 66 75    "threadtest fu
1c20: 6c 6c 74 65 73 74 22 0a 20 20 7d 0a 20 20 44 61  lltest".  }.  Da
1c30: 72 77 69 6e 2d 69 33 38 36 20 7b 0a 20 20 20 20  rwin-i386 {.    
1c40: 22 4c 6f 63 6b 69 6e 67 2d 53 74 79 6c 65 22 20  "Locking-Style" 
1c50: 20 20 20 20 20 20 20 20 20 20 22 6d 70 74 65 73            "mptes
1c60: 74 20 74 65 73 74 22 0a 20 20 20 20 22 48 61 76  t test".    "Hav
1c70: 65 2d 4e 6f 74 22 20 20 20 20 20 20 20 20 20 20  e-Not"          
1c80: 20 20 20 20 20 20 74 65 73 74 0a 20 20 20 20 22        test.    "
1c90: 41 70 70 6c 65 22 20 20 20 20 20 20 20 20 20 20  Apple"          
1ca0: 20 20 20 20 20 20 20 20 20 22 74 68 72 65 61 64           "thread
1cb0: 74 65 73 74 20 66 75 6c 6c 74 65 73 74 22 0a 20  test fulltest". 
1cc0: 20 7d 0a 20 20 44 61 72 77 69 6e 2d 78 38 36 5f   }.  Darwin-x86_
1cd0: 36 34 20 7b 0a 20 20 20 20 22 4c 6f 63 6b 69 6e  64 {.    "Lockin
1ce0: 67 2d 53 74 79 6c 65 22 20 20 20 20 20 20 20 20  g-Style"        
1cf0: 20 20 20 22 6d 70 74 65 73 74 20 74 65 73 74 22     "mptest test"
1d00: 0a 20 20 20 20 22 48 61 76 65 2d 4e 6f 74 22 20  .    "Have-Not" 
1d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
1d20: 65 73 74 0a 20 20 20 20 22 41 70 70 6c 65 22 20  est.    "Apple" 
1d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d40: 20 20 22 74 68 72 65 61 64 74 65 73 74 20 66 75    "threadtest fu
1d50: 6c 6c 74 65 73 74 22 0a 20 20 7d 0a 20 20 22 57  lltest".  }.  "W
1d60: 69 6e 64 6f 77 73 20 4e 54 2d 69 6e 74 65 6c 22  indows NT-intel"
1d70: 20 7b 0a 20 20 20 20 22 53 74 64 63 61 6c 6c 22   {.    "Stdcall"
1d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d90: 20 74 65 73 74 0a 20 20 20 20 22 48 61 76 65 2d   test.    "Have-
1da0: 4e 6f 74 22 20 20 20 20 20 20 20 20 20 20 20 20  Not"            
1db0: 20 20 20 20 74 65 73 74 0a 20 20 20 20 22 44 65      test.    "De
1dc0: 66 61 75 6c 74 22 20 20 20 20 20 20 20 20 20 20  fault"          
1dd0: 20 20 20 20 20 20 20 22 6d 70 74 65 73 74 20 66         "mptest f
1de0: 75 6c 6c 74 65 73 74 6f 6e 6c 79 22 0a 20 20 7d  ulltestonly".  }
1df0: 0a 20 20 22 57 69 6e 64 6f 77 73 20 4e 54 2d 61  .  "Windows NT-a
1e00: 6d 64 36 34 22 20 7b 0a 20 20 20 20 22 53 74 64  md64" {.    "Std
1e10: 63 61 6c 6c 22 20 20 20 20 20 20 20 20 20 20 20  call"           
1e20: 20 20 20 20 20 20 74 65 73 74 0a 20 20 20 20 22        test.    "
1e30: 48 61 76 65 2d 4e 6f 74 22 20 20 20 20 20 20 20  Have-Not"       
1e40: 20 20 20 20 20 20 20 20 20 74 65 73 74 0a 20 20           test.  
1e50: 20 20 22 44 65 66 61 75 6c 74 22 20 20 20 20 20    "Default"     
1e60: 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 70 74              "mpt
1e70: 65 73 74 20 66 75 6c 6c 74 65 73 74 6f 6e 6c 79  est fulltestonly
1e80: 22 0a 20 20 7d 0a 0a 20 20 23 20 54 68 65 20 46  ".  }..  # The F
1e90: 61 69 6c 75 72 65 2d 44 65 74 65 63 74 69 6f 6e  ailure-Detection
1ea0: 20 70 6c 61 74 66 6f 72 6d 20 72 75 6e 73 20 76   platform runs v
1eb0: 61 72 69 6f 75 73 20 74 65 73 74 73 20 74 68 61  arious tests tha
1ec0: 74 20 64 65 6c 69 62 65 72 61 74 65 6c 79 0a 20  t deliberately. 
1ed0: 20 23 20 66 61 69 6c 2e 20 20 54 68 69 73 20 69   # fail.  This i
1ee0: 73 20 75 73 65 64 20 61 73 20 61 20 74 65 73 74  s used as a test
1ef0: 20 6f 66 20 74 68 69 73 20 73 63 72 69 70 74 20   of this script 
1f00: 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 20 74  to verify that t
1f10: 68 69 73 20 73 63 72 69 70 74 0a 20 20 23 20 63  his script.  # c
1f20: 6f 72 72 65 63 74 6c 79 20 69 64 65 6e 74 69 66  orrectly identif
1f30: 69 65 73 20 66 61 69 6c 75 72 65 73 2e 0a 20 20  ies failures..  
1f40: 23 0a 20 20 46 61 69 6c 75 72 65 2d 44 65 74 65  #.  Failure-Dete
1f50: 63 74 69 6f 6e 20 7b 0a 20 20 20 20 46 61 69 6c  ction {.    Fail
1f60: 30 20 20 20 20 20 22 54 45 53 54 5f 46 41 49 4c  0     "TEST_FAIL
1f70: 55 52 45 3d 30 20 74 65 73 74 22 0a 20 20 20 20  URE=0 test".    
1f80: 53 61 6e 69 74 69 7a 65 20 20 22 54 45 53 54 5f  Sanitize  "TEST_
1f90: 46 41 49 4c 55 52 45 3d 31 20 74 65 73 74 22 0a  FAILURE=1 test".
1fa0: 20 20 20 20 46 61 69 6c 32 20 20 20 20 20 22 54      Fail2     "T
1fb0: 45 53 54 5f 46 41 49 4c 55 52 45 3d 32 20 76 61  EST_FAILURE=2 va
1fc0: 6c 67 72 69 6e 64 74 65 73 74 22 0a 20 20 20 20  lgrindtest".    
1fd0: 46 61 69 6c 33 20 20 20 20 20 22 54 45 53 54 5f  Fail3     "TEST_
1fe0: 46 41 49 4c 55 52 45 3d 33 20 76 61 6c 67 72 69  FAILURE=3 valgri
1ff0: 6e 64 74 65 73 74 22 0a 20 20 20 20 46 61 69 6c  ndtest".    Fail
2000: 34 20 20 20 20 20 22 54 45 53 54 5f 46 41 49 4c  4     "TEST_FAIL
2010: 55 52 45 3d 34 20 74 65 73 74 22 0a 20 20 20 20  URE=4 test".    
2020: 46 75 7a 7a 46 61 69 6c 31 20 22 54 45 53 54 5f  FuzzFail1 "TEST_
2030: 46 41 49 4c 55 52 45 3d 35 20 74 65 73 74 22 0a  FAILURE=5 test".
2040: 20 20 20 20 46 75 7a 7a 46 61 69 6c 32 20 22 54      FuzzFail2 "T
2050: 45 53 54 5f 46 41 49 4c 55 52 45 3d 35 20 76 61  EST_FAILURE=5 va
2060: 6c 67 72 69 6e 64 74 65 73 74 22 0a 20 20 7d 0a  lgrindtest".  }.
2070: 7d 5d 0a 0a 70 72 6f 63 20 6d 61 6b 65 5f 74 65  }]..proc make_te
2080: 73 74 5f 73 75 69 74 65 20 7b 6d 73 76 63 20 77  st_suite {msvc w
2090: 69 74 68 74 63 6c 20 6e 61 6d 65 20 74 65 73 74  ithtcl name test
20a0: 74 61 72 67 65 74 20 63 6f 6e 66 69 67 7d 20 7b  target config} {
20b0: 0a 0a 20 20 23 20 54 63 6c 20 76 61 72 69 61 62  ..  # Tcl variab
20c0: 6c 65 20 24 6f 70 74 73 20 69 73 20 75 73 65 64  le $opts is used
20d0: 20 74 6f 20 62 75 69 6c 64 20 75 70 20 74 68 65   to build up the
20e0: 20 76 61 6c 75 65 20 75 73 65 64 20 74 6f 20 73   value used to s
20f0: 65 74 20 74 68 65 0a 20 20 23 20 4f 50 54 53 20  et the.  # OPTS 
2100: 4d 61 6b 65 66 69 6c 65 20 76 61 72 69 61 62 6c  Makefile variabl
2110: 65 2e 20 56 61 72 69 61 62 6c 65 20 24 63 66 6c  e. Variable $cfl
2120: 61 67 73 20 68 6f 6c 64 73 20 74 68 65 20 76 61  ags holds the va
2130: 6c 75 65 20 66 6f 72 0a 20 20 23 20 43 46 4c 41  lue for.  # CFLA
2140: 47 53 2e 20 54 68 65 20 6d 61 6b 65 66 69 6c 65  GS. The makefile
2150: 20 77 69 6c 6c 20 70 61 73 73 20 4f 50 54 53 20   will pass OPTS 
2160: 74 6f 20 62 6f 74 68 20 67 63 63 20 61 6e 64 20  to both gcc and 
2170: 6c 65 6d 6f 6e 2c 20 62 75 74 0a 20 20 23 20 43  lemon, but.  # C
2180: 46 4c 41 47 53 20 69 73 20 6f 6e 6c 79 20 70 61  FLAGS is only pa
2190: 73 73 65 64 20 74 6f 20 67 63 63 2e 0a 20 20 23  ssed to gcc..  #
21a0: 0a 20 20 73 65 74 20 6d 61 6b 65 4f 70 74 73 20  .  set makeOpts 
21b0: 22 22 0a 20 20 73 65 74 20 63 66 6c 61 67 73 20  "".  set cflags 
21c0: 5b 65 78 70 72 20 7b 24 6d 73 76 63 20 3f 20 22  [expr {$msvc ? "
21d0: 2d 5a 69 22 20 3a 20 22 2d 67 22 7d 5d 0a 20 20  -Zi" : "-g"}].  
21e0: 73 65 74 20 6f 70 74 73 20 22 22 0a 20 20 73 65  set opts "".  se
21f0: 74 20 74 69 74 6c 65 20 24 7b 6e 61 6d 65 7d 28  t title ${name}(
2200: 24 74 65 73 74 74 61 72 67 65 74 29 0a 20 20 73  $testtarget).  s
2210: 65 74 20 63 6f 6e 66 69 67 4f 70 74 73 20 24 77  et configOpts $w
2220: 69 74 68 74 63 6c 0a 20 20 73 65 74 20 73 6b 69  ithtcl.  set ski
2230: 70 20 30 0a 0a 20 20 72 65 67 73 75 62 20 2d 61  p 0..  regsub -a
2240: 6c 6c 20 7b 23 5b 5e 5c 6e 5d 2a 5c 6e 7d 20 24  ll {#[^\n]*\n} $
2250: 63 6f 6e 66 69 67 20 5c 6e 20 63 6f 6e 66 69 67  config \n config
2260: 0a 20 20 66 6f 72 65 61 63 68 20 61 72 67 20 24  .  foreach arg $
2270: 63 6f 6e 66 69 67 20 7b 0a 20 20 20 20 69 66 20  config {.    if 
2280: 7b 24 73 6b 69 70 7d 20 7b 0a 20 20 20 20 20 20  {$skip} {.      
2290: 73 65 74 20 73 6b 69 70 20 30 0a 20 20 20 20 20  set skip 0.     
22a0: 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 7d 0a   continue.    }.
22b0: 20 20 20 20 69 66 20 7b 5b 72 65 67 65 78 70 20      if {[regexp 
22c0: 7b 5e 2d 5b 55 44 5d 7d 20 24 61 72 67 5d 7d 20  {^-[UD]} $arg]} 
22d0: 7b 0a 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20  {.      lappend 
22e0: 6f 70 74 73 20 24 61 72 67 0a 20 20 20 20 7d 20  opts $arg.    } 
22f0: 65 6c 73 65 69 66 20 7b 5b 72 65 67 65 78 70 20  elseif {[regexp 
2300: 7b 5e 5b 41 2d 5a 5d 2b 3d 7d 20 24 61 72 67 5d  {^[A-Z]+=} $arg]
2310: 7d 20 7b 0a 20 20 20 20 20 20 6c 61 70 70 65 6e  } {.      lappen
2320: 64 20 74 65 73 74 74 61 72 67 65 74 20 24 61 72  d testtarget $ar
2330: 67 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b  g.    } elseif {
2340: 5b 72 65 67 65 78 70 20 7b 5e 69 66 3a 28 5b 61  [regexp {^if:([a
2350: 2d 7a 5d 2b 29 28 2e 2a 29 7d 20 24 61 72 67 20  -z]+)(.*)} $arg 
2360: 61 6c 6c 20 6b 65 79 20 74 61 69 6c 5d 7d 20 7b  all key tail]} {
2370: 0a 20 20 20 20 20 20 23 20 41 72 67 75 6d 65 6e  .      # Argumen
2380: 74 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 27  ts of the form '
2390: 69 66 3a 6f 73 3d 3d 22 4c 69 6e 75 78 22 27 20  if:os=="Linux"' 
23a0: 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 20 73  will cause the s
23b0: 75 62 73 65 71 75 65 6e 74 0a 20 20 20 20 20 20  ubsequent.      
23c0: 23 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 62 65  # argument to be
23d0: 20 73 6b 69 70 70 65 64 20 69 66 20 74 68 65 20   skipped if the 
23e0: 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f 73  $tcl_platform(os
23f0: 29 20 69 73 20 6e 6f 74 20 22 4c 69 6e 75 78 22  ) is not "Linux"
2400: 2c 20 66 6f 72 0a 20 20 20 20 20 20 23 20 65 78  , for.      # ex
2410: 61 6d 70 6c 65 2e 2e 2e 0a 20 20 20 20 20 20 73  ample....      s
2420: 65 74 20 73 6b 69 70 20 5b 65 78 70 72 20 21 28  et skip [expr !(
2430: 5c 24 3a 3a 74 63 6c 5f 70 6c 61 74 66 6f 72 6d  \$::tcl_platform
2440: 28 24 6b 65 79 29 24 74 61 69 6c 29 5d 0a 20 20  ($key)$tail)].  
2450: 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 72 65 67    } elseif {[reg
2460: 65 78 70 20 7b 5e 2d 2d 28 65 6e 61 62 6c 65 7c  exp {^--(enable|
2470: 64 69 73 61 62 6c 65 29 2d 7d 20 24 61 72 67 5d  disable)-} $arg]
2480: 7d 20 7b 0a 20 20 20 20 20 20 69 66 20 7b 24 6d  } {.      if {$m
2490: 73 76 63 7d 20 7b 0a 20 20 20 20 20 20 20 20 69  svc} {.        i
24a0: 66 20 7b 24 61 72 67 20 65 71 20 22 2d 2d 64 69  f {$arg eq "--di
24b0: 73 61 62 6c 65 2d 61 6d 61 6c 67 61 6d 61 74 69  sable-amalgamati
24c0: 6f 6e 22 7d 20 7b 0a 20 20 20 20 20 20 20 20 20  on"} {.         
24d0: 20 6c 61 70 70 65 6e 64 20 6d 61 6b 65 4f 70 74   lappend makeOpt
24e0: 73 20 55 53 45 5f 41 4d 41 4c 47 41 4d 41 54 49  s USE_AMALGAMATI
24f0: 4f 4e 3d 30 0a 20 20 20 20 20 20 20 20 20 20 63  ON=0.          c
2500: 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20  ontinue.        
2510: 7d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 61  }.        if {$a
2520: 72 67 20 65 71 20 22 2d 2d 64 69 73 61 62 6c 65  rg eq "--disable
2530: 2d 73 68 61 72 65 64 22 7d 20 7b 0a 20 20 20 20  -shared"} {.    
2540: 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 6d 61        lappend ma
2550: 6b 65 4f 70 74 73 20 55 53 45 5f 43 52 54 5f 44  keOpts USE_CRT_D
2560: 4c 4c 3d 30 20 44 59 4e 41 4d 49 43 5f 53 48 45  LL=0 DYNAMIC_SHE
2570: 4c 4c 3d 30 0a 20 20 20 20 20 20 20 20 20 20 63  LL=0.          c
2580: 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20  ontinue.        
2590: 7d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 61  }.        if {$a
25a0: 72 67 20 65 71 20 22 2d 2d 65 6e 61 62 6c 65 2d  rg eq "--enable-
25b0: 66 74 73 35 22 7d 20 7b 0a 20 20 20 20 20 20 20  fts5"} {.       
25c0: 20 20 20 6c 61 70 70 65 6e 64 20 6f 70 74 73 20     lappend opts 
25d0: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
25e0: 46 54 53 35 0a 20 20 20 20 20 20 20 20 20 20 63  FTS5.          c
25f0: 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20  ontinue.        
2600: 7d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 61  }.        if {$a
2610: 72 67 20 65 71 20 22 2d 2d 65 6e 61 62 6c 65 2d  rg eq "--enable-
2620: 6a 73 6f 6e 31 22 7d 20 7b 0a 20 20 20 20 20 20  json1"} {.      
2630: 20 20 20 20 6c 61 70 70 65 6e 64 20 6f 70 74 73      lappend opts
2640: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
2650: 5f 4a 53 4f 4e 31 0a 20 20 20 20 20 20 20 20 20  _JSON1.         
2660: 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20   continue.      
2670: 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 7b    }.        if {
2680: 24 61 72 67 20 65 71 20 22 2d 2d 65 6e 61 62 6c  $arg eq "--enabl
2690: 65 2d 73 68 61 72 65 64 22 7d 20 7b 0a 20 20 20  e-shared"} {.   
26a0: 20 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 6d         lappend m
26b0: 61 6b 65 4f 70 74 73 20 55 53 45 5f 43 52 54 5f  akeOpts USE_CRT_
26c0: 44 4c 4c 3d 31 20 44 59 4e 41 4d 49 43 5f 53 48  DLL=1 DYNAMIC_SH
26d0: 45 4c 4c 3d 31 0a 20 20 20 20 20 20 20 20 20 20  ELL=1.          
26e0: 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20  continue.       
26f0: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20   }.      }.     
2700: 20 6c 61 70 70 65 6e 64 20 63 6f 6e 66 69 67 4f   lappend configO
2710: 70 74 73 20 24 61 72 67 0a 20 20 20 20 7d 20 65  pts $arg.    } e
2720: 6c 73 65 20 7b 0a 20 20 20 20 20 20 69 66 20 7b  lse {.      if {
2730: 24 6d 73 76 63 7d 20 7b 0a 20 20 20 20 20 20 20  $msvc} {.       
2740: 20 69 66 20 7b 24 61 72 67 20 65 71 20 22 2d 67   if {$arg eq "-g
2750: 22 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 6c  "} {.          l
2760: 61 70 70 65 6e 64 20 63 66 6c 61 67 73 20 2d 5a  append cflags -Z
2770: 69 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74  i.          cont
2780: 69 6e 75 65 0a 20 20 20 20 20 20 20 20 7d 0a 20  inue.        }. 
2790: 20 20 20 20 20 20 20 69 66 20 7b 5b 72 65 67 65         if {[rege
27a0: 78 70 20 2d 2d 20 7b 5e 2d 4f 28 5c 64 2b 29 24  xp -- {^-O(\d+)$
27b0: 7d 20 24 61 72 67 20 61 6c 6c 20 6c 65 76 65 6c  } $arg all level
27c0: 5d 7d 20 74 68 65 6e 20 7b 0a 20 20 20 20 20 20  ]} then {.      
27d0: 20 20 20 20 6c 61 70 70 65 6e 64 20 6d 61 6b 65      lappend make
27e0: 4f 70 74 73 20 4f 50 54 49 4d 49 5a 41 54 49 4f  Opts OPTIMIZATIO
27f0: 4e 53 3d 24 6c 65 76 65 6c 0a 20 20 20 20 20 20  NS=$level.      
2800: 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20      continue.   
2810: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20       }.      }. 
2820: 20 20 20 20 20 6c 61 70 70 65 6e 64 20 63 66 6c       lappend cfl
2830: 61 67 73 20 24 61 72 67 0a 20 20 20 20 7d 0a 20  ags $arg.    }. 
2840: 20 7d 0a 0a 20 20 23 20 44 69 73 61 62 6c 65 20   }..  # Disable 
2850: 73 79 6e 63 20 74 6f 20 6d 61 6b 65 20 74 65 73  sync to make tes
2860: 74 69 6e 67 20 66 61 73 74 65 72 2e 0a 20 20 23  ting faster..  #
2870: 0a 20 20 6c 61 70 70 65 6e 64 20 6f 70 74 73 20  .  lappend opts 
2880: 2d 44 53 51 4c 49 54 45 5f 4e 4f 5f 53 59 4e 43  -DSQLITE_NO_SYNC
2890: 3d 31 0a 0a 20 20 23 20 53 6f 6d 65 20 63 6f 6e  =1..  # Some con
28a0: 66 69 67 75 72 61 74 69 6f 6e 73 20 61 6c 72 65  figurations alre
28b0: 61 64 79 20 73 65 74 20 48 41 56 45 5f 55 53 4c  ady set HAVE_USL
28c0: 45 45 50 3b 20 69 6e 20 74 68 61 74 20 63 61 73  EEP; in that cas
28d0: 65 2c 20 73 6b 69 70 20 69 74 2e 0a 20 20 23 0a  e, skip it..  #.
28e0: 20 20 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 2d    if {[lsearch -
28f0: 72 65 67 65 78 70 20 24 6f 70 74 73 20 7b 5e 2d  regexp $opts {^-
2900: 44 48 41 56 45 5f 55 53 4c 45 45 50 28 3f 3a 3d  DHAVE_USLEEP(?:=
2910: 7c 24 29 7d 5d 3d 3d 2d 31 7d 20 7b 0a 20 20 20  |$)}]==-1} {.   
2920: 20 6c 61 70 70 65 6e 64 20 6f 70 74 73 20 2d 44   lappend opts -D
2930: 48 41 56 45 5f 55 53 4c 45 45 50 3d 31 0a 20 20  HAVE_USLEEP=1.  
2940: 7d 0a 0a 20 20 23 20 41 64 64 20 74 68 65 20 64  }..  # Add the d
2950: 65 66 69 6e 65 20 66 6f 72 20 74 68 69 73 20 70  efine for this p
2960: 6c 61 74 66 6f 72 6d 2e 0a 20 20 23 0a 20 20 69  latform..  #.  i
2970: 66 20 7b 24 3a 3a 74 63 6c 5f 70 6c 61 74 66 6f  f {$::tcl_platfo
2980: 72 6d 28 70 6c 61 74 66 6f 72 6d 29 3d 3d 22 77  rm(platform)=="w
2990: 69 6e 64 6f 77 73 22 7d 20 7b 0a 20 20 20 20 6c  indows"} {.    l
29a0: 61 70 70 65 6e 64 20 6f 70 74 73 20 2d 44 53 51  append opts -DSQ
29b0: 4c 49 54 45 5f 4f 53 5f 57 49 4e 3d 31 0a 20 20  LITE_OS_WIN=1.  
29c0: 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 6c 61 70  } else {.    lap
29d0: 70 65 6e 64 20 6f 70 74 73 20 2d 44 53 51 4c 49  pend opts -DSQLI
29e0: 54 45 5f 4f 53 5f 55 4e 49 58 3d 31 0a 20 20 7d  TE_OS_UNIX=1.  }
29f0: 0a 0a 20 20 23 20 53 65 74 20 74 68 65 20 73 75  ..  # Set the su
2a00: 62 2d 64 69 72 65 63 74 6f 72 79 20 74 6f 20 75  b-directory to u
2a10: 73 65 2e 0a 20 20 23 0a 20 20 73 65 74 20 64 69  se..  #.  set di
2a20: 72 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65  r [string tolowe
2a30: 72 20 5b 73 74 72 69 6e 67 20 6d 61 70 20 7b 2d  r [string map {-
2a40: 20 5f 20 22 20 22 20 5f 20 22 28 22 20 5f 20 22   _ " " _ "(" _ "
2a50: 29 22 20 5f 7d 20 24 6e 61 6d 65 5d 5d 0a 0a 20  )" _} $name]].. 
2a60: 20 23 20 4a 6f 69 6e 20 6f 70 74 69 6f 6e 20 6c   # Join option l
2a70: 69 73 74 73 20 69 6e 74 6f 20 73 74 72 69 6e 67  ists into string
2a80: 73 2c 20 75 73 69 6e 67 20 73 70 61 63 65 20 61  s, using space a
2a90: 73 20 64 65 6c 69 6d 69 74 65 72 2e 0a 20 20 23  s delimiter..  #
2aa0: 0a 20 20 73 65 74 20 6d 61 6b 65 4f 70 74 73 20  .  set makeOpts 
2ab0: 5b 6a 6f 69 6e 20 24 6d 61 6b 65 4f 70 74 73 20  [join $makeOpts 
2ac0: 22 20 22 5d 0a 20 20 73 65 74 20 63 66 6c 61 67  " "].  set cflag
2ad0: 73 20 20 20 5b 6a 6f 69 6e 20 24 63 66 6c 61 67  s   [join $cflag
2ae0: 73 20 22 20 22 5d 0a 20 20 73 65 74 20 6f 70 74  s " "].  set opt
2af0: 73 20 20 20 20 20 5b 6a 6f 69 6e 20 24 6f 70 74  s     [join $opt
2b00: 73 20 22 20 22 5d 0a 0a 20 20 72 65 74 75 72 6e  s " "]..  return
2b10: 20 5b 6c 69 73 74 20 24 74 69 74 6c 65 20 24 64   [list $title $d
2b20: 69 72 20 24 63 6f 6e 66 69 67 4f 70 74 73 20 24  ir $configOpts $
2b30: 74 65 73 74 74 61 72 67 65 74 20 24 6d 61 6b 65  testtarget $make
2b40: 4f 70 74 73 20 24 63 66 6c 61 67 73 20 24 6f 70  Opts $cflags $op
2b50: 74 73 5d 0a 7d 0a 0a 23 20 43 6f 6e 66 69 67 75  ts].}..# Configu
2b60: 72 61 74 69 6f 6e 20 76 65 72 69 66 69 63 61 74  ration verificat
2b70: 69 6f 6e 3a 20 43 68 65 63 6b 20 74 68 61 74 20  ion: Check that 
2b80: 65 61 63 68 20 65 6e 74 72 79 20 69 6e 20 74 68  each entry in th
2b90: 65 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67  e list of config
2ba0: 73 0a 23 20 73 70 65 63 69 66 69 65 64 20 66 6f  s.# specified fo
2bb0: 72 20 65 61 63 68 20 70 6c 61 74 66 6f 72 6d 73  r each platforms
2bc0: 20 65 78 69 73 74 73 2e 0a 23 0a 66 6f 72 65 61   exists..#.forea
2bd0: 63 68 20 7b 6b 65 79 20 76 61 6c 75 65 7d 20 5b  ch {key value} [
2be0: 61 72 72 61 79 20 67 65 74 20 3a 3a 50 6c 61 74  array get ::Plat
2bf0: 66 6f 72 6d 73 5d 20 7b 0a 20 20 66 6f 72 65 61  forms] {.  forea
2c00: 63 68 20 7b 76 20 74 7d 20 24 76 61 6c 75 65 20  ch {v t} $value 
2c10: 7b 0a 20 20 20 20 69 66 20 7b 30 3d 3d 5b 69 6e  {.    if {0==[in
2c20: 66 6f 20 65 78 69 73 74 73 20 3a 3a 43 6f 6e 66  fo exists ::Conf
2c30: 69 67 73 28 24 76 29 5d 7d 20 7b 0a 20 20 20 20  igs($v)]} {.    
2c40: 20 20 70 75 74 73 20 73 74 64 65 72 72 20 22 4e    puts stderr "N
2c50: 6f 20 73 75 63 68 20 63 6f 6e 66 69 67 75 72 61  o such configura
2c60: 74 69 6f 6e 3a 20 5c 22 24 76 5c 22 22 0a 20 20  tion: \"$v\"".  
2c70: 20 20 20 20 65 78 69 74 20 2d 31 0a 20 20 20 20      exit -1.    
2c80: 7d 0a 20 20 7d 0a 7d 0a 0a                       }.  }.}..