Fossil

Hex Artifact Content
Login

Artifact 150256d170b44e538861539826b56b9504d30334:


0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 74 63 6c 73 68  #!/usr/bin/tclsh
0010: 0a 23 0a 23 20 52 75 6e 20 74 68 69 73 20 54 43  .#.# Run this TC
0020: 4c 20 73 63 72 69 70 74 20 74 6f 20 67 65 6e 65  L script to gene
0030: 72 61 74 65 20 74 68 65 20 76 61 72 69 6f 75 73  rate the various
0040: 20 6d 61 6b 65 66 69 6c 65 73 20 66 6f 72 20 61   makefiles for a
0050: 20 76 61 72 69 65 74 79 0a 23 20 6f 66 20 70 6c   variety.# of pl
0060: 61 74 66 6f 72 6d 73 2e 20 20 46 69 6c 65 73 20  atforms.  Files 
0070: 67 65 6e 65 72 61 74 65 64 20 69 6e 63 6c 75 64  generated includ
0080: 65 3a 0a 23 0a 23 20 20 20 20 20 73 72 63 2f 6d  e:.#.#     src/m
0090: 61 69 6e 2e 6d 6b 20 20 20 20 20 20 20 20 20 20  ain.mk          
00a0: 20 23 20 6d 61 6b 65 66 69 6c 65 20 66 6f 72 20   # makefile for 
00b0: 61 6c 6c 20 75 6e 69 78 20 73 79 73 74 65 6d 73  all unix systems
00c0: 0a 23 20 20 20 20 20 77 69 6e 2f 4d 61 6b 65 66  .#     win/Makef
00d0: 69 6c 65 2e 6d 69 6e 67 77 20 20 20 20 23 20 6d  ile.mingw    # m
00e0: 61 6b 65 66 69 6c 65 20 66 6f 72 20 6d 69 6e 67  akefile for ming
00f0: 77 20 6f 6e 20 77 69 6e 64 6f 77 73 0a 23 20 20  w on windows.#  
0100: 20 20 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e     win/Makefile.
0110: 2a 20 20 20 20 20 20 20 20 23 20 6d 61 6b 65 66  *        # makef
0120: 69 6c 65 73 20 66 6f 72 20 6f 74 68 65 72 20 77  iles for other w
0130: 69 6e 64 6f 77 73 20 63 6f 6d 70 69 6c 65 72 73  indows compilers
0140: 0a 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63  .#.# Run this sc
0150: 72 69 70 74 20 77 68 69 6c 65 20 69 6e 20 74 68  ript while in th
0160: 65 20 22 73 72 63 22 20 73 75 62 64 69 72 65 63  e "src" subdirec
0170: 74 6f 72 79 2e 20 20 4c 69 6b 65 20 74 68 69 73  tory.  Like this
0180: 3a 0a 23 0a 23 20 20 20 20 20 20 74 63 6c 73 68  :.#.#      tclsh
0190: 20 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 0a 23 0a   makemake.tcl.#.
01a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 0a 23  #############..#
01f0: 20 42 61 73 65 6e 61 6d 65 73 20 6f 66 20 61 6c   Basenames of al
0200: 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 74  l source files t
0210: 68 61 74 20 67 65 74 20 70 72 65 70 72 6f 63 65  hat get preproce
0220: 73 73 65 64 20 75 73 69 6e 67 0a 23 20 22 74 72  ssed using.# "tr
0230: 61 6e 73 6c 61 74 65 22 20 61 6e 64 20 22 6d 61  anslate" and "ma
0240: 6b 65 68 65 61 64 65 72 73 22 2e 20 20 54 6f 20  keheaders".  To 
0250: 61 64 64 20 6e 65 77 20 73 6f 75 72 63 65 20 66  add new source f
0260: 69 6c 65 73 20 74 6f 20 74 68 65 0a 23 20 70 72  iles to the.# pr
0270: 6f 6a 65 63 74 2c 20 73 69 6d 70 6c 79 20 61 64  oject, simply ad
0280: 64 20 74 68 65 20 62 61 73 65 6e 61 6d 65 20 74  d the basename t
0290: 6f 20 74 68 69 73 20 6c 69 73 74 20 61 6e 64 20  o this list and 
02a0: 72 65 72 75 6e 20 74 68 69 73 20 73 63 72 69 70  rerun this scrip
02b0: 74 2e 0a 23 0a 73 65 74 20 73 72 63 20 7b 0a 20  t..#.set src {. 
02c0: 20 61 64 64 0a 20 20 61 6c 6c 72 65 70 6f 0a 20   add.  allrepo. 
02d0: 20 61 74 74 61 63 68 0a 20 20 62 61 67 0a 20 20   attach.  bag.  
02e0: 62 69 73 65 63 74 0a 20 20 62 6c 6f 62 0a 20 20  bisect.  blob.  
02f0: 62 72 61 6e 63 68 0a 20 20 62 72 6f 77 73 65 0a  branch.  browse.
0300: 20 20 63 61 63 68 65 0a 20 20 63 61 70 74 63 68    cache.  captch
0310: 61 0a 20 20 63 67 69 0a 20 20 63 68 65 63 6b 69  a.  cgi.  checki
0320: 6e 0a 20 20 63 68 65 63 6b 6f 75 74 0a 20 20 63  n.  checkout.  c
0330: 6c 65 61 72 73 69 67 6e 0a 20 20 63 6c 6f 6e 65  learsign.  clone
0340: 0a 20 20 63 6f 6d 66 6f 72 6d 61 74 0a 20 20 63  .  comformat.  c
0350: 6f 6e 66 69 67 75 72 65 0a 20 20 63 6f 6e 74 65  onfigure.  conte
0360: 6e 74 0a 20 20 64 62 0a 20 20 64 65 6c 74 61 0a  nt.  db.  delta.
0370: 20 20 64 65 6c 74 61 63 6d 64 0a 20 20 64 65 73    deltacmd.  des
0380: 63 65 6e 64 61 6e 74 73 0a 20 20 64 69 66 66 0a  cendants.  diff.
0390: 20 20 64 69 66 66 63 6d 64 0a 20 20 64 6f 63 0a    diffcmd.  doc.
03a0: 20 20 65 6e 63 6f 64 65 0a 20 20 65 76 65 6e 74    encode.  event
03b0: 0a 20 20 65 78 70 6f 72 74 0a 20 20 66 69 6c 65  .  export.  file
03c0: 0a 20 20 66 69 6e 66 6f 0a 20 20 66 75 73 65 66  .  finfo.  fusef
03d0: 73 0a 20 20 67 6c 6f 62 0a 20 20 67 72 61 70 68  s.  glob.  graph
03e0: 0a 20 20 67 7a 69 70 0a 20 20 68 74 74 70 0a 20  .  gzip.  http. 
03f0: 20 68 74 74 70 5f 73 6f 63 6b 65 74 0a 20 20 68   http_socket.  h
0400: 74 74 70 5f 74 72 61 6e 73 70 6f 72 74 0a 20 20  ttp_transport.  
0410: 69 6d 70 6f 72 74 0a 20 20 69 6e 66 6f 0a 20 20  import.  info.  
0420: 6a 73 6f 6e 0a 20 20 6a 73 6f 6e 5f 61 72 74 69  json.  json_arti
0430: 66 61 63 74 0a 20 20 6a 73 6f 6e 5f 62 72 61 6e  fact.  json_bran
0440: 63 68 0a 20 20 6a 73 6f 6e 5f 63 6f 6e 66 69 67  ch.  json_config
0450: 0a 20 20 6a 73 6f 6e 5f 64 69 66 66 0a 20 20 6a  .  json_diff.  j
0460: 73 6f 6e 5f 64 69 72 0a 20 20 6a 73 6f 6e 5f 66  son_dir.  json_f
0470: 69 6e 66 6f 0a 20 20 6a 73 6f 6e 5f 6c 6f 67 69  info.  json_logi
0480: 6e 0a 20 20 6a 73 6f 6e 5f 71 75 65 72 79 0a 20  n.  json_query. 
0490: 20 6a 73 6f 6e 5f 72 65 70 6f 72 74 0a 20 20 6a   json_report.  j
04a0: 73 6f 6e 5f 73 74 61 74 75 73 0a 20 20 6a 73 6f  son_status.  jso
04b0: 6e 5f 74 61 67 0a 20 20 6a 73 6f 6e 5f 74 69 6d  n_tag.  json_tim
04c0: 65 6c 69 6e 65 0a 20 20 6a 73 6f 6e 5f 75 73 65  eline.  json_use
04d0: 72 0a 20 20 6a 73 6f 6e 5f 77 69 6b 69 0a 20 20  r.  json_wiki.  
04e0: 6c 65 61 66 0a 20 20 6c 6f 61 64 63 74 72 6c 0a  leaf.  loadctrl.
04f0: 20 20 6c 6f 67 69 6e 0a 20 20 6c 6f 6f 6b 73 6c    login.  looksl
0500: 69 6b 65 0a 20 20 6d 61 69 6e 0a 20 20 6d 61 6e  ike.  main.  man
0510: 69 66 65 73 74 0a 20 20 6d 61 72 6b 64 6f 77 6e  ifest.  markdown
0520: 0a 20 20 6d 61 72 6b 64 6f 77 6e 5f 68 74 6d 6c  .  markdown_html
0530: 0a 20 20 6d 64 35 0a 20 20 6d 65 72 67 65 0a 20  .  md5.  merge. 
0540: 20 6d 65 72 67 65 33 0a 20 20 6d 6f 64 65 72 61   merge3.  modera
0550: 74 65 0a 20 20 6e 61 6d 65 0a 20 20 70 61 74 68  te.  name.  path
0560: 0a 20 20 70 69 76 6f 74 0a 20 20 70 6f 70 65 6e  .  pivot.  popen
0570: 0a 20 20 70 71 75 65 75 65 0a 20 20 70 72 69 6e  .  pqueue.  prin
0580: 74 66 0a 20 20 72 65 62 75 69 6c 64 0a 20 20 72  tf.  rebuild.  r
0590: 65 67 65 78 70 0a 20 20 72 65 70 6f 72 74 0a 20  egexp.  report. 
05a0: 20 72 73 73 0a 20 20 73 63 68 65 6d 61 0a 20 20   rss.  schema.  
05b0: 73 65 61 72 63 68 0a 20 20 73 65 74 75 70 0a 20  search.  setup. 
05c0: 20 73 68 61 31 0a 20 20 73 68 75 6e 0a 20 20 73   sha1.  shun.  s
05d0: 6b 69 6e 73 0a 20 20 73 71 6c 63 6d 64 0a 20 20  kins.  sqlcmd.  
05e0: 73 74 61 73 68 0a 20 20 73 74 61 74 0a 20 20 73  stash.  stat.  s
05f0: 74 79 6c 65 0a 20 20 73 79 6e 63 0a 20 20 74 61  tyle.  sync.  ta
0600: 67 0a 20 20 74 61 72 0a 20 20 74 68 5f 6d 61 69  g.  tar.  th_mai
0610: 6e 0a 20 20 74 69 6d 65 6c 69 6e 65 0a 20 20 74  n.  timeline.  t
0620: 6b 74 0a 20 20 74 6b 74 73 65 74 75 70 0a 20 20  kt.  tktsetup.  
0630: 75 6e 64 6f 0a 20 20 75 6e 69 63 6f 64 65 0a 20  undo.  unicode. 
0640: 20 75 70 64 61 74 65 0a 20 20 75 72 6c 0a 20 20   update.  url.  
0650: 75 73 65 72 0a 20 20 75 74 66 38 0a 20 20 75 74  user.  utf8.  ut
0660: 69 6c 0a 20 20 76 65 72 69 66 79 0a 20 20 76 66  il.  verify.  vf
0670: 69 6c 65 0a 20 20 77 69 6b 69 0a 20 20 77 69 6b  ile.  wiki.  wik
0680: 69 66 6f 72 6d 61 74 0a 20 20 77 69 6e 66 69 6c  iformat.  winfil
0690: 65 0a 20 20 77 69 6e 68 74 74 70 0a 20 20 77 79  e.  winhttp.  wy
06a0: 73 69 77 79 67 0a 20 20 78 66 65 72 0a 20 20 78  siwyg.  xfer.  x
06b0: 66 65 72 73 65 74 75 70 0a 20 20 7a 69 70 0a 20  fersetup.  zip. 
06c0: 20 68 74 74 70 5f 73 73 6c 0a 7d 0a 0a 23 20 4f   http_ssl.}..# O
06d0: 70 74 69 6f 6e 73 20 75 73 65 64 20 74 6f 20 63  ptions used to c
06e0: 6f 6d 70 69 6c 65 20 74 68 65 20 69 6e 63 6c 75  ompile the inclu
06f0: 64 65 64 20 53 51 4c 69 74 65 20 6c 69 62 72 61  ded SQLite libra
0700: 72 79 2e 0a 23 0a 73 65 74 20 53 51 4c 49 54 45  ry..#.set SQLITE
0710: 5f 4f 50 54 49 4f 4e 53 20 7b 0a 20 20 2d 44 53  _OPTIONS {.  -DS
0720: 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f  QLITE_OMIT_LOAD_
0730: 45 58 54 45 4e 53 49 4f 4e 3d 31 0a 20 20 2d 44  EXTENSION=1.  -D
0740: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4c 4f  SQLITE_ENABLE_LO
0750: 43 4b 49 4e 47 5f 53 54 59 4c 45 3d 30 0a 20 20  CKING_STYLE=0.  
0760: 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53  -DSQLITE_THREADS
0770: 41 46 45 3d 30 0a 20 20 2d 44 53 51 4c 49 54 45  AFE=0.  -DSQLITE
0780: 5f 44 45 46 41 55 4c 54 5f 46 49 4c 45 5f 46 4f  _DEFAULT_FILE_FO
0790: 52 4d 41 54 3d 34 0a 20 20 2d 44 53 51 4c 49 54  RMAT=4.  -DSQLIT
07a0: 45 5f 4f 4d 49 54 5f 44 45 50 52 45 43 41 54 45  E_OMIT_DEPRECATE
07b0: 44 0a 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  D.  -DSQLITE_ENA
07c0: 42 4c 45 5f 45 58 50 4c 41 49 4e 5f 43 4f 4d 4d  BLE_EXPLAIN_COMM
07d0: 45 4e 54 53 0a 7d 0a 23 6c 61 70 70 65 6e 64 20  ENTS.}.#lappend 
07e0: 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 2d  SQLITE_OPTIONS -
07f0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
0800: 54 53 33 3d 31 0a 23 6c 61 70 70 65 6e 64 20 53  TS3=1.#lappend S
0810: 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44  QLITE_OPTIONS -D
0820: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 53 54  SQLITE_ENABLE_ST
0830: 41 54 34 0a 23 6c 61 70 70 65 6e 64 20 53 51 4c  AT4.#lappend SQL
0840: 49 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 53 51  ITE_OPTIONS -DSQ
0850: 4c 49 54 45 5f 57 49 4e 33 32 5f 4e 4f 5f 41 4e  LITE_WIN32_NO_AN
0860: 53 49 0a 23 6c 61 70 70 65 6e 64 20 53 51 4c 49  SI.#lappend SQLI
0870: 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 53 51 4c  TE_OPTIONS -DSQL
0880: 49 54 45 5f 57 49 4e 4e 54 5f 4d 41 58 5f 50 41  ITE_WINNT_MAX_PA
0890: 54 48 5f 43 48 41 52 53 3d 34 30 39 36 0a 0a 23  TH_CHARS=4096..#
08a0: 20 4f 70 74 69 6f 6e 73 20 75 73 65 64 20 74 6f   Options used to
08b0: 20 63 6f 6d 70 69 6c 65 20 74 68 65 20 69 6e 63   compile the inc
08c0: 6c 75 64 65 64 20 53 51 4c 69 74 65 20 73 68 65  luded SQLite she
08d0: 6c 6c 2e 0a 23 0a 73 65 74 20 53 48 45 4c 4c 5f  ll..#.set SHELL_
08e0: 4f 50 54 49 4f 4e 53 20 7b 0a 20 20 2d 44 6d 61  OPTIONS {.  -Dma
08f0: 69 6e 3d 73 71 6c 69 74 65 33 5f 73 68 65 6c 6c  in=sqlite3_shell
0900: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54  .  -DSQLITE_OMIT
0910: 5f 4c 4f 41 44 5f 45 58 54 45 4e 53 49 4f 4e 3d  _LOAD_EXTENSION=
0920: 31 0a 20 20 2d 44 55 53 45 5f 53 59 53 54 45 4d  1.  -DUSE_SYSTEM
0930: 5f 53 51 4c 49 54 45 3d 24 28 55 53 45 5f 53 59  _SQLITE=$(USE_SY
0940: 53 54 45 4d 5f 53 51 4c 49 54 45 29 0a 20 20 2d  STEM_SQLITE).  -
0950: 44 53 51 4c 49 54 45 5f 53 48 45 4c 4c 5f 44 42  DSQLITE_SHELL_DB
0960: 4e 41 4d 45 5f 50 52 4f 43 3d 66 6f 73 73 69 6c  NAME_PROC=fossil
0970: 5f 6f 70 65 6e 0a 7d 0a 0a 23 20 4f 70 74 69 6f  _open.}..# Optio
0980: 6e 73 20 75 73 65 64 20 74 6f 20 63 6f 6d 70 69  ns used to compi
0990: 6c 65 20 74 68 65 20 69 6e 63 6c 75 64 65 64 20  le the included 
09a0: 53 51 4c 69 74 65 20 73 68 65 6c 6c 20 6f 6e 20  SQLite shell on 
09b0: 57 69 6e 64 6f 77 73 2e 0a 23 0a 73 65 74 20 53  Windows..#.set S
09c0: 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f  HELL_WIN32_OPTIO
09d0: 4e 53 20 24 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e  NS $SHELL_OPTION
09e0: 53 0a 6c 61 70 70 65 6e 64 20 53 48 45 4c 4c 5f  S.lappend SHELL_
09f0: 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 2d 44  WIN32_OPTIONS -D
0a00: 61 63 63 65 73 73 3d 66 69 6c 65 5f 61 63 63 65  access=file_acce
0a10: 73 73 0a 6c 61 70 70 65 6e 64 20 53 48 45 4c 4c  ss.lappend SHELL
0a20: 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 2d  _WIN32_OPTIONS -
0a30: 44 67 65 74 65 6e 76 3d 66 6f 73 73 69 6c 5f 67  Dgetenv=fossil_g
0a40: 65 74 65 6e 76 0a 6c 61 70 70 65 6e 64 20 53 48  etenv.lappend SH
0a50: 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e  ELL_WIN32_OPTION
0a60: 53 20 2d 44 66 6f 70 65 6e 3d 66 6f 73 73 69 6c  S -Dfopen=fossil
0a70: 5f 66 6f 70 65 6e 0a 0a 23 20 4e 61 6d 65 20 6f  _fopen..# Name o
0a80: 66 20 74 68 65 20 66 69 6e 61 6c 20 61 70 70 6c  f the final appl
0a90: 69 63 61 74 69 6f 6e 0a 23 0a 73 65 74 20 6e 61  ication.#.set na
0aa0: 6d 65 20 66 6f 73 73 69 6c 0a 0a 23 20 54 68 65  me fossil..# The
0ab0: 20 22 77 72 69 74 65 6c 6e 22 20 63 6f 6d 6d 61   "writeln" comma
0ac0: 6e 64 20 73 65 6e 64 73 20 6f 75 74 70 75 74 20  nd sends output 
0ad0: 74 6f 20 74 68 65 20 74 61 72 67 65 74 20 6d 61  to the target ma
0ae0: 6b 65 66 69 6c 65 2e 0a 23 0a 70 72 6f 63 20 77  kefile..#.proc w
0af0: 72 69 74 65 6c 6e 20 7b 61 72 67 73 7d 20 7b 0a  riteln {args} {.
0b00: 20 20 67 6c 6f 62 61 6c 20 6f 75 74 70 75 74 5f    global output_
0b10: 66 69 6c 65 0a 20 20 69 66 20 7b 5b 6c 69 6e 64  file.  if {[lind
0b20: 65 78 20 24 61 72 67 73 20 30 5d 3d 3d 22 2d 6e  ex $args 0]=="-n
0b30: 6f 6e 65 77 6c 69 6e 65 22 7d 20 7b 0a 20 20 20  onewline"} {.   
0b40: 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65   puts -nonewline
0b50: 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6c   $output_file [l
0b60: 69 6e 64 65 78 20 24 61 72 67 73 20 31 5d 0a 20  index $args 1]. 
0b70: 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 75   } else {.    pu
0b80: 74 73 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20  ts $output_file 
0b90: 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 30 5d  [lindex $args 0]
0ba0: 0a 20 20 7d 0a 7d 0a 0a 23 20 53 54 4f 50 20 48  .  }.}..# STOP H
0bb0: 45 52 45 2e 0a 23 20 55 6e 6c 65 73 73 20 74 68  ERE..# Unless th
0bc0: 65 20 62 75 69 6c 64 20 70 72 6f 63 65 64 75 72  e build procedur
0bd0: 65 73 20 63 68 61 6e 67 65 73 2c 20 79 6f 75 20  es changes, you 
0be0: 73 68 6f 75 6c 64 20 6e 6f 74 20 68 61 76 65 20  should not have 
0bf0: 74 6f 20 65 64 69 74 20 61 6e 79 74 68 69 6e 67  to edit anything
0c00: 0a 23 20 62 65 6c 6f 77 20 74 68 69 73 20 6c 69  .# below this li
0c10: 6e 65 2e 0a 0a 23 23 23 23 23 23 23 23 23 23 23  ne...###########
0c20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c60: 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23  ###.############
0c70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0c90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ca0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0cb0: 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  ##.#############
0cc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0cd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ce0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0cf0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0d00: 23 0a 23 20 53 74 61 72 74 20 62 79 20 67 65 6e  #.# Start by gen
0d10: 65 72 61 74 69 6e 67 20 74 68 65 20 22 6d 61 69  erating the "mai
0d20: 6e 2e 6d 6b 22 20 6d 61 6b 65 66 69 6c 65 20 75  n.mk" makefile u
0d30: 73 65 64 20 66 6f 72 20 61 6c 6c 20 75 6e 69 78  sed for all unix
0d40: 20 73 79 73 74 65 6d 73 2e 0a 23 0a 70 75 74 73   systems..#.puts
0d50: 20 22 62 75 69 6c 64 69 6e 67 20 6d 61 69 6e 2e   "building main.
0d60: 6d 6b 22 0a 73 65 74 20 6f 75 74 70 75 74 5f 66  mk".set output_f
0d70: 69 6c 65 20 5b 6f 70 65 6e 20 6d 61 69 6e 2e 6d  ile [open main.m
0d80: 6b 20 77 5d 0a 66 63 6f 6e 66 69 67 75 72 65 20  k w].fconfigure 
0d90: 24 6f 75 74 70 75 74 5f 66 69 6c 65 20 2d 74 72  $output_file -tr
0da0: 61 6e 73 6c 61 74 69 6f 6e 20 62 69 6e 61 72 79  anslation binary
0db0: 0a 0a 77 72 69 74 65 6c 6e 20 7b 23 0a 23 23 23  ..writeln {#.###
0dc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0dd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0de0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0df0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e00: 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 57 41  ###########.# WA
0e10: 52 4e 49 4e 47 3a 20 44 4f 20 4e 4f 54 20 45 44  RNING: DO NOT ED
0e20: 49 54 2c 20 41 55 54 4f 4d 41 54 49 43 41 4c 4c  IT, AUTOMATICALL
0e30: 59 20 47 45 4e 45 52 41 54 45 44 20 46 49 4c 45  Y GENERATED FILE
0e40: 20 28 53 45 45 20 22 73 72 63 2f 6d 61 6b 65 6d   (SEE "src/makem
0e50: 61 6b 65 2e 74 63 6c 22 29 0a 23 23 23 23 23 23  ake.tcl").######
0e60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ea0: 23 23 23 23 23 23 23 23 0a 23 0a 23 20 54 68 69  ########.#.# Thi
0eb0: 73 20 66 69 6c 65 20 69 73 20 61 75 74 6f 6d 61  s file is automa
0ec0: 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65  tically generate
0ed0: 64 2e 20 20 49 6e 73 74 65 61 64 20 6f 66 20 65  d.  Instead of e
0ee0: 64 69 74 69 6e 67 20 74 68 69 73 0a 23 20 66 69  diting this.# fi
0ef0: 6c 65 2c 20 65 64 69 74 20 22 6d 61 6b 65 6d 61  le, edit "makema
0f00: 6b 65 2e 74 63 6c 22 20 74 68 65 6e 20 72 75 6e  ke.tcl" then run
0f10: 20 22 74 63 6c 73 68 20 6d 61 6b 65 6d 61 6b 65   "tclsh makemake
0f20: 2e 74 63 6c 22 0a 23 20 74 6f 20 72 65 67 65 6e  .tcl".# to regen
0f30: 65 72 61 74 65 20 74 68 69 73 20 66 69 6c 65 2e  erate this file.
0f40: 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69  .#.# This file i
0f50: 73 20 69 6e 63 6c 75 64 65 64 20 62 79 20 70 72  s included by pr
0f60: 69 6d 61 72 79 20 4d 61 6b 65 66 69 6c 65 2e 0a  imary Makefile..
0f70: 23 0a 0a 58 54 43 43 20 3d 20 24 28 54 43 43 29  #..XTCC = $(TCC)
0f80: 20 24 28 43 46 4c 41 47 53 29 20 2d 49 2e 20 2d   $(CFLAGS) -I. -
0f90: 49 24 28 53 52 43 44 49 52 29 20 2d 49 24 28 4f  I$(SRCDIR) -I$(O
0fa0: 42 4a 44 49 52 29 0a 0a 7d 0a 77 72 69 74 65 6c  BJDIR)..}.writel
0fb0: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 53 52  n -nonewline "SR
0fc0: 43 20 3d 22 0a 66 6f 72 65 61 63 68 20 73 20 5b  C =".foreach s [
0fd0: 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20  lsort $src] {.  
0fe0: 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69  writeln -nonewli
0ff0: 6e 65 20 22 20 5c 5c 5c 6e 20 20 5c 24 28 53 52  ne " \\\n  \$(SR
1000: 43 44 49 52 29 2f 24 73 2e 63 22 0a 7d 0a 77 72  CDIR)/$s.c".}.wr
1010: 69 74 65 6c 6e 20 22 5c 6e 22 0a 77 72 69 74 65  iteln "\n".write
1020: 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 54  ln -nonewline "T
1030: 52 41 4e 53 5f 53 52 43 20 3d 22 0a 66 6f 72 65  RANS_SRC =".fore
1040: 61 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72  ach s [lsort $sr
1050: 63 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d  c] {.  writeln -
1060: 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 5c 5c 5c 6e  nonewline " \\\n
1070: 20 20 5c 24 28 4f 42 4a 44 49 52 29 2f 24 7b 73    \$(OBJDIR)/${s
1080: 7d 5f 2e 63 22 0a 7d 0a 77 72 69 74 65 6c 6e 20  }_.c".}.writeln 
1090: 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f  "\n".writeln -no
10a0: 6e 65 77 6c 69 6e 65 20 22 4f 42 4a 20 3d 22 0a  newline "OBJ =".
10b0: 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74  foreach s [lsort
10c0: 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74 65   $src] {.  write
10d0: 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 20  ln -nonewline " 
10e0: 5c 5c 5c 6e 20 5c 24 28 4f 42 4a 44 49 52 29 2f  \\\n \$(OBJDIR)/
10f0: 24 73 2e 6f 22 0a 7d 0a 77 72 69 74 65 6c 6e 20  $s.o".}.writeln 
1100: 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 22 41 50  "\n".writeln "AP
1110: 50 4e 41 4d 45 20 3d 20 24 6e 61 6d 65 5c 24 28  PNAME = $name\$(
1120: 45 29 22 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22  E)".writeln "\n"
1130: 0a 0a 77 72 69 74 65 6c 6e 20 5b 73 74 72 69 6e  ..writeln [strin
1140: 67 20 6d 61 70 20 5b 6c 69 73 74 20 5c 0a 20 20  g map [list \.  
1150: 20 20 3c 3c 3c 53 51 4c 49 54 45 5f 4f 50 54 49    <<<SQLITE_OPTI
1160: 4f 4e 53 3e 3e 3e 20 5b 6a 6f 69 6e 20 24 53 51  ONS>>> [join $SQ
1170: 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 22 20 5c  LITE_OPTIONS " \
1180: 5c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20  \\n             
1190: 20 20 20 20 22 5d 20 5c 0a 20 20 20 20 3c 3c 3c      "] \.    <<<
11a0: 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 3e 3e 3e  SHELL_OPTIONS>>>
11b0: 20 5b 6a 6f 69 6e 20 24 53 48 45 4c 4c 5f 4f 50   [join $SHELL_OP
11c0: 54 49 4f 4e 53 20 22 20 5c 5c 5c 6e 20 20 20 20  TIONS " \\\n    
11d0: 20 20 20 20 20 20 20 20 20 20 20 20 22 5d 5d 20              "]] 
11e0: 7b 0a 61 6c 6c 3a 09 24 28 4f 42 4a 44 49 52 29  {.all:.$(OBJDIR)
11f0: 20 24 28 41 50 50 4e 41 4d 45 29 0a 0a 69 6e 73   $(APPNAME)..ins
1200: 74 61 6c 6c 3a 09 24 28 41 50 50 4e 41 4d 45 29  tall:.$(APPNAME)
1210: 0a 09 6d 6b 64 69 72 20 2d 70 20 24 28 49 4e 53  ..mkdir -p $(INS
1220: 54 41 4c 4c 44 49 52 29 0a 09 6d 76 20 24 28 41  TALLDIR)..mv $(A
1230: 50 50 4e 41 4d 45 29 20 24 28 49 4e 53 54 41 4c  PPNAME) $(INSTAL
1240: 4c 44 49 52 29 0a 0a 24 28 4f 42 4a 44 49 52 29  LDIR)..$(OBJDIR)
1250: 3a 0a 09 2d 6d 6b 64 69 72 20 24 28 4f 42 4a 44  :..-mkdir $(OBJD
1260: 49 52 29 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 74  IR)..$(OBJDIR)/t
1270: 72 61 6e 73 6c 61 74 65 3a 09 24 28 53 52 43 44  ranslate:.$(SRCD
1280: 49 52 29 2f 74 72 61 6e 73 6c 61 74 65 2e 63 0a  IR)/translate.c.
1290: 09 24 28 42 43 43 29 20 2d 6f 20 24 28 4f 42 4a  .$(BCC) -o $(OBJ
12a0: 44 49 52 29 2f 74 72 61 6e 73 6c 61 74 65 20 24  DIR)/translate $
12b0: 28 53 52 43 44 49 52 29 2f 74 72 61 6e 73 6c 61  (SRCDIR)/transla
12c0: 74 65 2e 63 0a 0a 24 28 4f 42 4a 44 49 52 29 2f  te.c..$(OBJDIR)/
12d0: 6d 61 6b 65 68 65 61 64 65 72 73 3a 09 24 28 53  makeheaders:.$(S
12e0: 52 43 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65  RCDIR)/makeheade
12f0: 72 73 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f 20  rs.c..$(BCC) -o 
1300: 24 28 4f 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65  $(OBJDIR)/makehe
1310: 61 64 65 72 73 20 24 28 53 52 43 44 49 52 29 2f  aders $(SRCDIR)/
1320: 6d 61 6b 65 68 65 61 64 65 72 73 2e 63 0a 0a 24  makeheaders.c..$
1330: 28 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64 65 78  (OBJDIR)/mkindex
1340: 3a 09 24 28 53 52 43 44 49 52 29 2f 6d 6b 69 6e  :.$(SRCDIR)/mkin
1350: 64 65 78 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f  dex.c..$(BCC) -o
1360: 20 24 28 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64   $(OBJDIR)/mkind
1370: 65 78 20 24 28 53 52 43 44 49 52 29 2f 6d 6b 69  ex $(SRCDIR)/mki
1380: 6e 64 65 78 2e 63 0a 0a 24 28 4f 42 4a 44 49 52  ndex.c..$(OBJDIR
1390: 29 2f 6d 6b 76 65 72 73 69 6f 6e 3a 09 24 28 53  )/mkversion:.$(S
13a0: 52 43 44 49 52 29 2f 6d 6b 76 65 72 73 69 6f 6e  RCDIR)/mkversion
13b0: 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f 20 24 28  .c..$(BCC) -o $(
13c0: 4f 42 4a 44 49 52 29 2f 6d 6b 76 65 72 73 69 6f  OBJDIR)/mkversio
13d0: 6e 20 24 28 53 52 43 44 49 52 29 2f 6d 6b 76 65  n $(SRCDIR)/mkve
13e0: 72 73 69 6f 6e 2e 63 0a 0a 23 20 57 41 52 4e 49  rsion.c..# WARNI
13f0: 4e 47 2e 20 44 41 4e 47 45 52 2e 20 52 75 6e 6e  NG. DANGER. Runn
1400: 69 6e 67 20 74 68 65 20 74 65 73 74 20 73 75 69  ing the test sui
1410: 74 65 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20  te modifies the 
1420: 72 65 70 6f 73 69 74 6f 72 79 20 74 68 65 0a 23  repository the.#
1430: 20 62 75 69 6c 64 20 69 73 20 64 6f 6e 65 20 66   build is done f
1440: 72 6f 6d 2c 20 69 2e 65 2e 20 74 68 65 20 63 68  rom, i.e. the ch
1450: 65 63 6b 6f 75 74 20 62 65 6c 6f 6e 67 73 20 74  eckout belongs t
1460: 6f 2e 20 44 6f 20 6e 6f 74 20 73 79 6e 63 2f 70  o. Do not sync/p
1470: 75 73 68 0a 23 20 74 68 65 20 72 65 70 6f 73 69  ush.# the reposi
1480: 74 6f 72 79 20 61 66 74 65 72 20 72 75 6e 6e 69  tory after runni
1490: 6e 67 20 74 68 65 20 74 65 73 74 73 2e 0a 74 65  ng the tests..te
14a0: 73 74 3a 09 24 28 4f 42 4a 44 49 52 29 20 24 28  st:.$(OBJDIR) $(
14b0: 41 50 50 4e 41 4d 45 29 0a 09 24 28 54 43 4c 53  APPNAME)..$(TCLS
14c0: 48 29 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f  H) $(SRCDIR)/../
14d0: 74 65 73 74 2f 74 65 73 74 65 72 2e 74 63 6c 20  test/tester.tcl 
14e0: 24 28 41 50 50 4e 41 4d 45 29 0a 0a 24 28 4f 42  $(APPNAME)..$(OB
14f0: 4a 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e 68 3a  JDIR)/VERSION.h:
1500: 09 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61  .$(SRCDIR)/../ma
1510: 6e 69 66 65 73 74 2e 75 75 69 64 20 24 28 53 52  nifest.uuid $(SR
1520: 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73  CDIR)/../manifes
1530: 74 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 56  t $(SRCDIR)/../V
1540: 45 52 53 49 4f 4e 20 24 28 4f 42 4a 44 49 52 29  ERSION $(OBJDIR)
1550: 2f 6d 6b 76 65 72 73 69 6f 6e 0a 09 24 28 4f 42  /mkversion..$(OB
1560: 4a 44 49 52 29 2f 6d 6b 76 65 72 73 69 6f 6e 20  JDIR)/mkversion 
1570: 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e  $(SRCDIR)/../man
1580: 69 66 65 73 74 2e 75 75 69 64 20 5c 0a 09 09 24  ifest.uuid \...$
1590: 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69  (SRCDIR)/../mani
15a0: 66 65 73 74 20 5c 0a 09 09 24 28 53 52 43 44 49  fest \...$(SRCDI
15b0: 52 29 2f 2e 2e 2f 56 45 52 53 49 4f 4e 20 3e 24  R)/../VERSION >$
15c0: 28 4f 42 4a 44 49 52 29 2f 56 45 52 53 49 4f 4e  (OBJDIR)/VERSION
15d0: 2e 68 0a 0a 23 20 53 65 74 75 70 20 74 68 65 20  .h..# Setup the 
15e0: 6f 70 74 69 6f 6e 73 20 75 73 65 64 20 74 6f 20  options used to 
15f0: 63 6f 6d 70 69 6c 65 20 74 68 65 20 69 6e 63 6c  compile the incl
1600: 75 64 65 64 20 53 51 4c 69 74 65 20 6c 69 62 72  uded SQLite libr
1610: 61 72 79 2e 0a 53 51 4c 49 54 45 5f 4f 50 54 49  ary..SQLITE_OPTI
1620: 4f 4e 53 20 3d 20 3c 3c 3c 53 51 4c 49 54 45 5f  ONS = <<<SQLITE_
1630: 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a 23 20 53 65  OPTIONS>>>..# Se
1640: 74 75 70 20 74 68 65 20 6f 70 74 69 6f 6e 73 20  tup the options 
1650: 75 73 65 64 20 74 6f 20 63 6f 6d 70 69 6c 65 20  used to compile 
1660: 74 68 65 20 69 6e 63 6c 75 64 65 64 20 53 51 4c  the included SQL
1670: 69 74 65 20 73 68 65 6c 6c 2e 0a 53 48 45 4c 4c  ite shell..SHELL
1680: 5f 4f 50 54 49 4f 4e 53 20 3d 20 3c 3c 3c 53 48  _OPTIONS = <<<SH
1690: 45 4c 4c 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a  ELL_OPTIONS>>>..
16a0: 23 20 54 68 65 20 55 53 45 5f 53 59 53 54 45 4d  # The USE_SYSTEM
16b0: 5f 53 51 4c 49 54 45 20 76 61 72 69 61 62 6c 65  _SQLITE variable
16c0: 20 6d 61 79 20 62 65 20 75 6e 64 65 66 69 6e 65   may be undefine
16d0: 64 2c 20 73 65 74 20 74 6f 20 30 2c 20 6f 72 20  d, set to 0, or 
16e0: 73 65 74 0a 23 20 74 6f 20 31 2e 20 49 66 20 69  set.# to 1. If i
16f0: 74 20 69 73 20 73 65 74 20 74 6f 20 31 2c 20 74  t is set to 1, t
1700: 68 65 6e 20 74 68 65 72 65 20 69 73 20 6e 6f 20  hen there is no 
1710: 6e 65 65 64 20 74 6f 20 62 75 69 6c 64 20 6f 72  need to build or
1720: 20 6c 69 6e 6b 0a 23 20 74 68 65 20 73 71 6c 69   link.# the sqli
1730: 74 65 33 2e 6f 20 6f 62 6a 65 63 74 2e 20 49 6e  te3.o object. In
1740: 73 74 65 61 64 2c 20 74 68 65 20 73 79 73 74 65  stead, the syste
1750: 6d 20 73 71 6c 69 74 65 20 77 69 6c 6c 20 62 65  m sqlite will be
1760: 20 6c 69 6e 6b 65 64 0a 23 20 75 73 69 6e 67 20   linked.# using 
1770: 2d 6c 73 71 6c 69 74 65 33 2e 0a 53 51 4c 49 54  -lsqlite3..SQLIT
1780: 45 33 5f 4f 42 4a 2e 31 20 3d 20 0a 53 51 4c 49  E3_OBJ.1 = .SQLI
1790: 54 45 33 5f 4f 42 4a 2e 30 20 3d 20 24 28 4f 42  TE3_OBJ.0 = $(OB
17a0: 4a 44 49 52 29 2f 73 71 6c 69 74 65 33 2e 6f 0a  JDIR)/sqlite3.o.
17b0: 53 51 4c 49 54 45 33 5f 4f 42 4a 2e 20 20 3d 20  SQLITE3_OBJ.  = 
17c0: 24 28 53 51 4c 49 54 45 33 5f 4f 42 4a 2e 30 29  $(SQLITE3_OBJ.0)
17d0: 0a 0a 45 58 54 52 41 4f 42 4a 20 3d 20 5c 0a 20  ..EXTRAOBJ = \. 
17e0: 20 24 28 53 51 4c 49 54 45 33 5f 4f 42 4a 2e 24   $(SQLITE3_OBJ.$
17f0: 28 55 53 45 5f 53 59 53 54 45 4d 5f 53 51 4c 49  (USE_SYSTEM_SQLI
1800: 54 45 29 29 20 5c 0a 20 20 24 28 4f 42 4a 44 49  TE)) \.  $(OBJDI
1810: 52 29 2f 73 68 65 6c 6c 2e 6f 20 5c 0a 20 20 24  R)/shell.o \.  $
1820: 28 4f 42 4a 44 49 52 29 2f 74 68 2e 6f 20 5c 0a  (OBJDIR)/th.o \.
1830: 20 20 24 28 4f 42 4a 44 49 52 29 2f 74 68 5f 6c    $(OBJDIR)/th_l
1840: 61 6e 67 2e 6f 20 5c 0a 20 20 24 28 4f 42 4a 44  ang.o \.  $(OBJD
1850: 49 52 29 2f 74 68 5f 74 63 6c 2e 6f 20 5c 0a 20  IR)/th_tcl.o \. 
1860: 20 24 28 4f 42 4a 44 49 52 29 2f 63 73 6f 6e 5f   $(OBJDIR)/cson_
1870: 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 6f 0a 0a  amalgamation.o..
1880: 24 28 41 50 50 4e 41 4d 45 29 3a 09 24 28 4f 42  $(APPNAME):.$(OB
1890: 4a 44 49 52 29 2f 68 65 61 64 65 72 73 20 24 28  JDIR)/headers $(
18a0: 4f 42 4a 29 20 24 28 45 58 54 52 41 4f 42 4a 29  OBJ) $(EXTRAOBJ)
18b0: 0a 09 24 28 54 43 43 29 20 2d 6f 20 24 28 41 50  ..$(TCC) -o $(AP
18c0: 50 4e 41 4d 45 29 20 24 28 4f 42 4a 29 20 24 28  PNAME) $(OBJ) $(
18d0: 45 58 54 52 41 4f 42 4a 29 20 24 28 4c 49 42 29  EXTRAOBJ) $(LIB)
18e0: 0a 0a 23 20 54 68 69 73 20 72 75 6c 65 20 70 72  ..# This rule pr
18f0: 65 76 65 6e 74 73 20 6d 61 6b 65 20 66 72 6f 6d  events make from
1900: 20 75 73 69 6e 67 20 69 74 73 20 64 65 66 61 75   using its defau
1910: 6c 74 20 72 75 6c 65 73 20 74 6f 20 74 72 79 20  lt rules to try 
1920: 62 75 69 6c 64 0a 23 20 61 6e 20 65 78 65 63 75  build.# an execu
1930: 74 61 62 6c 65 20 6e 61 6d 65 64 20 22 6d 61 6e  table named "man
1940: 69 66 65 73 74 22 20 6f 75 74 20 6f 66 20 74 68  ifest" out of th
1950: 65 20 66 69 6c 65 20 6e 61 6d 65 64 20 22 6d 61  e file named "ma
1960: 6e 69 66 65 73 74 2e 63 22 0a 23 0a 24 28 53 52  nifest.c".#.$(SR
1970: 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73  CDIR)/../manifes
1980: 74 3a 09 0a 09 23 20 6e 6f 6f 70 0a 0a 63 6c 65  t:...# noop..cle
1990: 61 6e 3a 09 0a 09 72 6d 20 2d 72 66 20 24 28 4f  an:...rm -rf $(O
19a0: 42 4a 44 49 52 29 2f 2a 20 24 28 41 50 50 4e 41  BJDIR)/* $(APPNA
19b0: 4d 45 29 0a 0a 7d 5d 0a 0a 73 65 74 20 6d 68 61  ME)..}]..set mha
19c0: 72 67 73 20 7b 7d 0a 66 6f 72 65 61 63 68 20 73  rgs {}.foreach s
19d0: 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a   [lsort $src] {.
19e0: 20 20 61 70 70 65 6e 64 20 6d 68 61 72 67 73 20    append mhargs 
19f0: 22 20 5c 24 28 4f 42 4a 44 49 52 29 2f 24 7b 73  " \$(OBJDIR)/${s
1a00: 7d 5f 2e 63 3a 5c 24 28 4f 42 4a 44 49 52 29 2f  }_.c:\$(OBJDIR)/
1a10: 24 73 2e 68 22 0a 20 20 73 65 74 20 65 78 74 72  $s.h".  set extr
1a20: 61 5f 68 28 24 73 29 20 7b 7d 0a 7d 0a 61 70 70  a_h($s) {}.}.app
1a30: 65 6e 64 20 6d 68 61 72 67 73 20 22 20 5c 24 28  end mhargs " \$(
1a40: 53 52 43 44 49 52 29 2f 73 71 6c 69 74 65 33 2e  SRCDIR)/sqlite3.
1a50: 68 22 0a 61 70 70 65 6e 64 20 6d 68 61 72 67 73  h".append mhargs
1a60: 20 22 20 5c 24 28 53 52 43 44 49 52 29 2f 74 68   " \$(SRCDIR)/th
1a70: 2e 68 22 0a 23 61 70 70 65 6e 64 20 6d 68 61 72  .h".#append mhar
1a80: 67 73 20 22 20 5c 24 28 53 52 43 44 49 52 29 2f  gs " \$(SRCDIR)/
1a90: 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f  cson_amalgamatio
1aa0: 6e 2e 68 22 0a 61 70 70 65 6e 64 20 6d 68 61 72  n.h".append mhar
1ab0: 67 73 20 22 20 5c 24 28 4f 42 4a 44 49 52 29 2f  gs " \$(OBJDIR)/
1ac0: 56 45 52 53 49 4f 4e 2e 68 22 0a 77 72 69 74 65  VERSION.h".write
1ad0: 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f 70  ln "\$(OBJDIR)/p
1ae0: 61 67 65 5f 69 6e 64 65 78 2e 68 3a 20 5c 24 28  age_index.h: \$(
1af0: 54 52 41 4e 53 5f 53 52 43 29 20 5c 24 28 4f 42  TRANS_SRC) \$(OB
1b00: 4a 44 49 52 29 2f 6d 6b 69 6e 64 65 78 22 0a 77  JDIR)/mkindex".w
1b10: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 4f 42 4a  riteln "\t\$(OBJ
1b20: 44 49 52 29 2f 6d 6b 69 6e 64 65 78 20 5c 24 28  DIR)/mkindex \$(
1b30: 54 52 41 4e 53 5f 53 52 43 29 20 3e 24 40 22 0a  TRANS_SRC) >$@".
1b40: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
1b50: 49 52 29 2f 68 65 61 64 65 72 73 3a 5c 74 5c 24  IR)/headers:\t\$
1b60: 28 4f 42 4a 44 49 52 29 2f 70 61 67 65 5f 69 6e  (OBJDIR)/page_in
1b70: 64 65 78 2e 68 20 5c 24 28 4f 42 4a 44 49 52 29  dex.h \$(OBJDIR)
1b80: 2f 6d 61 6b 65 68 65 61 64 65 72 73 20 5c 24 28  /makeheaders \$(
1b90: 4f 42 4a 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e  OBJDIR)/VERSION.
1ba0: 68 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24  h".writeln "\t\$
1bb0: 28 4f 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65 61  (OBJDIR)/makehea
1bc0: 64 65 72 73 20 24 6d 68 61 72 67 73 22 0a 77 72  ders $mhargs".wr
1bd0: 69 74 65 6c 6e 20 22 5c 74 74 6f 75 63 68 20 5c  iteln "\ttouch \
1be0: 24 28 4f 42 4a 44 49 52 29 2f 68 65 61 64 65 72  $(OBJDIR)/header
1bf0: 73 22 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f  s".writeln "\$(O
1c00: 42 4a 44 49 52 29 2f 68 65 61 64 65 72 73 3a 20  BJDIR)/headers: 
1c10: 4d 61 6b 65 66 69 6c 65 22 0a 77 72 69 74 65 6c  Makefile".writel
1c20: 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73  n "\$(OBJDIR)/js
1c30: 6f 6e 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f  on.o \$(OBJDIR)/
1c40: 6a 73 6f 6e 5f 61 72 74 69 66 61 63 74 2e 6f 20  json_artifact.o 
1c50: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
1c60: 62 72 61 6e 63 68 2e 6f 20 5c 24 28 4f 42 4a 44  branch.o \$(OBJD
1c70: 49 52 29 2f 6a 73 6f 6e 5f 63 6f 6e 66 69 67 2e  IR)/json_config.
1c80: 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f  o \$(OBJDIR)/jso
1c90: 6e 5f 64 69 66 66 2e 6f 20 5c 24 28 4f 42 4a 44  n_diff.o \$(OBJD
1ca0: 49 52 29 2f 6a 73 6f 6e 5f 64 69 72 2e 6f 20 5c  IR)/json_dir.o \
1cb0: 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 66  $(OBJDIR)/json_f
1cc0: 69 6e 66 6f 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  info.o \$(OBJDIR
1cd0: 29 2f 6a 73 6f 6e 5f 6c 6f 67 69 6e 2e 6f 20 5c  )/json_login.o \
1ce0: 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 71  $(OBJDIR)/json_q
1cf0: 75 65 72 79 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  uery.o \$(OBJDIR
1d00: 29 2f 6a 73 6f 6e 5f 72 65 70 6f 72 74 2e 6f 20  )/json_report.o 
1d10: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
1d20: 73 74 61 74 75 73 2e 6f 20 5c 24 28 4f 42 4a 44  status.o \$(OBJD
1d30: 49 52 29 2f 6a 73 6f 6e 5f 74 61 67 2e 6f 20 5c  IR)/json_tag.o \
1d40: 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 74  $(OBJDIR)/json_t
1d50: 69 6d 65 6c 69 6e 65 2e 6f 20 5c 24 28 4f 42 4a  imeline.o \$(OBJ
1d60: 44 49 52 29 2f 6a 73 6f 6e 5f 75 73 65 72 2e 6f  DIR)/json_user.o
1d70: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e   \$(OBJDIR)/json
1d80: 5f 77 69 6b 69 2e 6f 20 3a 20 5c 24 28 53 52 43  _wiki.o : \$(SRC
1d90: 44 49 52 29 2f 6a 73 6f 6e 5f 64 65 74 61 69 6c  DIR)/json_detail
1da0: 2e 68 22 0a 77 72 69 74 65 6c 6e 20 22 4d 61 6b  .h".writeln "Mak
1db0: 65 66 69 6c 65 3a 22 0a 73 65 74 20 65 78 74 72  efile:".set extr
1dc0: 61 5f 68 28 6d 61 69 6e 29 20 5c 24 28 4f 42 4a  a_h(main) \$(OBJ
1dd0: 44 49 52 29 2f 70 61 67 65 5f 69 6e 64 65 78 2e  DIR)/page_index.
1de0: 68 0a 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73  h..foreach s [ls
1df0: 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72  ort $src] {.  wr
1e00: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
1e10: 29 2f 24 7b 73 7d 5f 2e 63 3a 5c 74 5c 24 28 53  )/${s}_.c:\t\$(S
1e20: 52 43 44 49 52 29 2f 24 73 2e 63 20 5c 24 28 4f  RCDIR)/$s.c \$(O
1e30: 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c 61 74 65  BJDIR)/translate
1e40: 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 74 5c  ".  writeln "\t\
1e50: 24 28 4f 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c  $(OBJDIR)/transl
1e60: 61 74 65 20 5c 24 28 53 52 43 44 49 52 29 2f 24  ate \$(SRCDIR)/$
1e70: 73 2e 63 20 3e 5c 24 28 4f 42 4a 44 49 52 29 2f  s.c >\$(OBJDIR)/
1e80: 24 7b 73 7d 5f 2e 63 5c 6e 22 0a 20 20 77 72 69  ${s}_.c\n".  wri
1e90: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
1ea0: 2f 24 73 2e 6f 3a 5c 74 5c 24 28 4f 42 4a 44 49  /$s.o:\t\$(OBJDI
1eb0: 52 29 2f 24 7b 73 7d 5f 2e 63 20 5c 24 28 4f 42  R)/${s}_.c \$(OB
1ec0: 4a 44 49 52 29 2f 24 73 2e 68 20 24 65 78 74 72  JDIR)/$s.h $extr
1ed0: 61 5f 68 28 24 73 29 20 5c 24 28 53 52 43 44 49  a_h($s) \$(SRCDI
1ee0: 52 29 2f 63 6f 6e 66 69 67 2e 68 22 0a 20 20 77  R)/config.h".  w
1ef0: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43  riteln "\t\$(XTC
1f00: 43 29 20 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29  C) -o \$(OBJDIR)
1f10: 2f 24 73 2e 6f 20 2d 63 20 5c 24 28 4f 42 4a 44  /$s.o -c \$(OBJD
1f20: 49 52 29 2f 24 7b 73 7d 5f 2e 63 5c 6e 22 0a 20  IR)/${s}_.c\n". 
1f30: 20 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a   writeln "\$(OBJ
1f40: 44 49 52 29 2f 24 73 2e 68 3a 5c 74 5c 24 28 4f  DIR)/$s.h:\t\$(O
1f50: 42 4a 44 49 52 29 2f 68 65 61 64 65 72 73 22 0a  BJDIR)/headers".
1f60: 7d 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f  }..writeln "\$(O
1f70: 42 4a 44 49 52 29 2f 73 71 6c 69 74 65 33 2e 6f  BJDIR)/sqlite3.o
1f80: 3a 5c 74 5c 24 28 53 52 43 44 49 52 29 2f 73 71  :\t\$(SRCDIR)/sq
1f90: 6c 69 74 65 33 2e 63 22 0a 77 72 69 74 65 6c 6e  lite3.c".writeln
1fa0: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 5c 24 28   "\t\$(XTCC) \$(
1fb0: 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 29 20  SQLITE_OPTIONS) 
1fc0: 5c 24 28 53 51 4c 49 54 45 5f 43 46 4c 41 47 53  \$(SQLITE_CFLAGS
1fd0: 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52 29 2f  ) -c \$(SRCDIR)/
1fe0: 73 71 6c 69 74 65 33 2e 63 20 2d 6f 20 5c 24 28  sqlite3.c -o \$(
1ff0: 4f 42 4a 44 49 52 29 2f 73 71 6c 69 74 65 33 2e  OBJDIR)/sqlite3.
2000: 6f 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c  o\n"..writeln "\
2010: 24 28 4f 42 4a 44 49 52 29 2f 73 68 65 6c 6c 2e  $(OBJDIR)/shell.
2020: 6f 3a 5c 74 5c 24 28 53 52 43 44 49 52 29 2f 73  o:\t\$(SRCDIR)/s
2030: 68 65 6c 6c 2e 63 20 5c 24 28 53 52 43 44 49 52  hell.c \$(SRCDIR
2040: 29 2f 73 71 6c 69 74 65 33 2e 68 22 0a 77 72 69  )/sqlite3.h".wri
2050: 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43 43 29  teln "\t\$(XTCC)
2060: 20 5c 24 28 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e   \$(SHELL_OPTION
2070: 53 29 20 5c 24 28 53 48 45 4c 4c 5f 43 46 4c 41  S) \$(SHELL_CFLA
2080: 47 53 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52  GS) -c \$(SRCDIR
2090: 29 2f 73 68 65 6c 6c 2e 63 20 2d 6f 20 5c 24 28  )/shell.c -o \$(
20a0: 4f 42 4a 44 49 52 29 2f 73 68 65 6c 6c 2e 6f 5c  OBJDIR)/shell.o\
20b0: 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28  n"..writeln "\$(
20c0: 4f 42 4a 44 49 52 29 2f 74 68 2e 6f 3a 5c 74 5c  OBJDIR)/th.o:\t\
20d0: 24 28 53 52 43 44 49 52 29 2f 74 68 2e 63 22 0a  $(SRCDIR)/th.c".
20e0: 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54  writeln "\t\$(XT
20f0: 43 43 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52  CC) -c \$(SRCDIR
2100: 29 2f 74 68 2e 63 20 2d 6f 20 5c 24 28 4f 42 4a  )/th.c -o \$(OBJ
2110: 44 49 52 29 2f 74 68 2e 6f 5c 6e 22 0a 0a 77 72  DIR)/th.o\n"..wr
2120: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
2130: 29 2f 74 68 5f 6c 61 6e 67 2e 6f 3a 5c 74 5c 24  )/th_lang.o:\t\$
2140: 28 53 52 43 44 49 52 29 2f 74 68 5f 6c 61 6e 67  (SRCDIR)/th_lang
2150: 2e 63 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c  .c".writeln "\t\
2160: 24 28 58 54 43 43 29 20 2d 63 20 5c 24 28 53 52  $(XTCC) -c \$(SR
2170: 43 44 49 52 29 2f 74 68 5f 6c 61 6e 67 2e 63 20  CDIR)/th_lang.c 
2180: 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 74 68  -o \$(OBJDIR)/th
2190: 5f 6c 61 6e 67 2e 6f 5c 6e 22 0a 0a 77 72 69 74  _lang.o\n"..writ
21a0: 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f  eln "\$(OBJDIR)/
21b0: 74 68 5f 74 63 6c 2e 6f 3a 5c 74 5c 24 28 53 52  th_tcl.o:\t\$(SR
21c0: 43 44 49 52 29 2f 74 68 5f 74 63 6c 2e 63 22 0a  CDIR)/th_tcl.c".
21d0: 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54  writeln "\t\$(XT
21e0: 43 43 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52  CC) -c \$(SRCDIR
21f0: 29 2f 74 68 5f 74 63 6c 2e 63 20 2d 6f 20 5c 24  )/th_tcl.c -o \$
2200: 28 4f 42 4a 44 49 52 29 2f 74 68 5f 74 63 6c 2e  (OBJDIR)/th_tcl.
2210: 6f 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 7b 0a  o\n"..writeln {.
2220: 24 28 4f 42 4a 44 49 52 29 2f 63 73 6f 6e 5f 61  $(OBJDIR)/cson_a
2230: 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 6f 3a 20 24  malgamation.o: $
2240: 28 53 52 43 44 49 52 29 2f 63 73 6f 6e 5f 61 6d  (SRCDIR)/cson_am
2250: 61 6c 67 61 6d 61 74 69 6f 6e 2e 63 0a 09 24 28  algamation.c..$(
2260: 58 54 43 43 29 20 2d 63 20 24 28 53 52 43 44 49  XTCC) -c $(SRCDI
2270: 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61  R)/cson_amalgama
2280: 74 69 6f 6e 2e 63 20 2d 6f 20 24 28 4f 42 4a 44  tion.c -o $(OBJD
2290: 49 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d  IR)/cson_amalgam
22a0: 61 74 69 6f 6e 2e 6f 0a 0a 23 0a 23 20 54 68 65  ation.o..#.# The
22b0: 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 68 65   list of all the
22c0: 20 74 61 72 67 65 74 73 20 74 68 61 74 20 64 6f   targets that do
22d0: 20 6e 6f 74 20 63 6f 72 72 65 73 70 6f 6e 64 20   not correspond 
22e0: 74 6f 20 72 65 61 6c 20 66 69 6c 65 73 2e 20 54  to real files. T
22f0: 68 69 73 20 73 74 6f 70 73 0a 23 20 27 6d 61 6b  his stops.# 'mak
2300: 65 27 20 66 72 6f 6d 20 67 65 74 74 69 6e 67 20  e' from getting 
2310: 63 6f 6e 66 75 73 65 64 20 77 68 65 6e 20 73 6f  confused when so
2320: 6d 65 6f 6e 65 20 6d 61 6b 65 73 20 61 6e 20 65  meone makes an e
2330: 72 72 6f 72 20 69 6e 20 61 20 72 75 6c 65 2e 0a  rror in a rule..
2340: 23 0a 0a 2e 50 48 4f 4e 59 3a 20 61 6c 6c 20 69  #...PHONY: all i
2350: 6e 73 74 61 6c 6c 20 74 65 73 74 20 63 6c 65 61  nstall test clea
2360: 6e 0a 7d 0a 0a 63 6c 6f 73 65 20 24 6f 75 74 70  n.}..close $outp
2370: 75 74 5f 66 69 6c 65 0a 23 0a 23 20 45 6e 64 20  ut_file.#.# End 
2380: 6f 66 20 74 68 65 20 6d 61 69 6e 2e 6d 6b 20 6f  of the main.mk o
2390: 75 74 70 75 74 0a 23 23 23 23 23 23 23 23 23 23  utput.##########
23a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
23b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
23c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
23d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
23e0: 23 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23  ####.###########
23f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2400: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2420: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2430: 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23  ###.############
2440: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2450: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2460: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2470: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2480: 23 23 0a 23 20 42 65 67 69 6e 20 77 69 6e 2f 4d  ##.# Begin win/M
2490: 61 6b 65 66 69 6c 65 2e 6d 69 6e 67 77 20 6f 75  akefile.mingw ou
24a0: 74 70 75 74 0a 23 0a 70 75 74 73 20 22 62 75 69  tput.#.puts "bui
24b0: 6c 64 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61 6b  lding ../win/Mak
24c0: 65 66 69 6c 65 2e 6d 69 6e 67 77 22 0a 73 65 74  efile.mingw".set
24d0: 20 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6f 70   output_file [op
24e0: 65 6e 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69  en ../win/Makefi
24f0: 6c 65 2e 6d 69 6e 67 77 20 77 5d 0a 66 63 6f 6e  le.mingw w].fcon
2500: 66 69 67 75 72 65 20 24 6f 75 74 70 75 74 5f 66  figure $output_f
2510: 69 6c 65 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e  ile -translation
2520: 20 62 69 6e 61 72 79 0a 0a 77 72 69 74 65 6c 6e   binary..writeln
2530: 20 7b 23 21 2f 75 73 72 2f 62 69 6e 2f 6d 61 6b   {#!/usr/bin/mak
2540: 65 0a 23 0a 23 23 23 23 23 23 23 23 23 23 23 23  e.#.############
2550: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2560: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2570: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2580: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2590: 23 23 0a 23 20 57 41 52 4e 49 4e 47 3a 20 44 4f  ##.# WARNING: DO
25a0: 20 4e 4f 54 20 45 44 49 54 2c 20 41 55 54 4f 4d   NOT EDIT, AUTOM
25b0: 41 54 49 43 41 4c 4c 59 20 47 45 4e 45 52 41 54  ATICALLY GENERAT
25c0: 45 44 20 46 49 4c 45 20 28 53 45 45 20 22 73 72  ED FILE (SEE "sr
25d0: 63 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 29  c/makemake.tcl")
25e0: 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  .###############
25f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2600: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2620: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
2630: 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73  #.# This file is
2640: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67   automatically g
2650: 65 6e 65 72 61 74 65 64 2e 20 20 49 6e 73 74 65  enerated.  Inste
2660: 61 64 20 6f 66 20 65 64 69 74 69 6e 67 20 74 68  ad of editing th
2670: 69 73 0a 23 20 66 69 6c 65 2c 20 65 64 69 74 20  is.# file, edit 
2680: 22 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74  "makemake.tcl" t
2690: 68 65 6e 20 72 75 6e 20 22 74 63 6c 73 68 20 6d  hen run "tclsh m
26a0: 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74  akemake.tcl".# t
26b0: 6f 20 72 65 67 65 6e 65 72 61 74 65 20 74 68 69  o regenerate thi
26c0: 73 20 66 69 6c 65 2e 0a 23 0a 23 20 54 68 69 73  s file..#.# This
26d0: 20 69 73 20 61 20 6d 61 6b 65 66 69 6c 65 20 66   is a makefile f
26e0: 6f 72 20 75 73 65 20 6f 6e 20 43 79 67 77 69 6e  or use on Cygwin
26f0: 2f 44 61 72 77 69 6e 2f 46 72 65 65 42 53 44 2f  /Darwin/FreeBSD/
2700: 4c 69 6e 75 78 2f 57 69 6e 64 6f 77 73 20 75 73  Linux/Windows us
2710: 69 6e 67 0a 23 20 4d 69 6e 47 57 20 6f 72 20 4d  ing.# MinGW or M
2720: 69 6e 47 57 2d 77 36 34 2e 0a 23 0a 0a 23 23 23  inGW-w64..#..###
2730: 23 20 53 65 6c 65 63 74 20 6f 6e 65 20 6f 66 20  # Select one of 
2740: 4d 69 6e 47 57 2c 20 4d 69 6e 47 57 2d 77 36 34  MinGW, MinGW-w64
2750: 20 28 33 32 2d 62 69 74 29 20 6f 72 20 4d 69 6e   (32-bit) or Min
2760: 47 57 2d 77 36 34 20 28 36 34 2d 62 69 74 29 20  GW-w64 (64-bit) 
2770: 63 6f 6d 70 69 6c 65 72 73 2e 0a 23 20 20 20 20  compilers..#    
2780: 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 69 73  By default, this
2790: 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72   is an empty str
27a0: 69 6e 67 20 28 69 2e 65 2e 20 75 73 65 20 74 68  ing (i.e. use th
27b0: 65 20 6e 61 74 69 76 65 20 63 6f 6d 70 69 6c 65  e native compile
27c0: 72 29 2e 0a 23 0a 50 52 45 46 49 58 20 3d 0a 23  r)..#.PREFIX =.#
27d0: 20 50 52 45 46 49 58 20 3d 20 6d 69 6e 67 77 33   PREFIX = mingw3
27e0: 32 2d 0a 23 20 50 52 45 46 49 58 20 3d 20 69 36  2-.# PREFIX = i6
27f0: 38 36 2d 70 63 2d 6d 69 6e 67 77 33 32 2d 0a 23  86-pc-mingw32-.#
2800: 20 50 52 45 46 49 58 20 3d 20 69 36 38 36 2d 77   PREFIX = i686-w
2810: 36 34 2d 6d 69 6e 67 77 33 32 2d 0a 23 20 50 52  64-mingw32-.# PR
2820: 45 46 49 58 20 3d 20 78 38 36 5f 36 34 2d 77 36  EFIX = x86_64-w6
2830: 34 2d 6d 69 6e 67 77 33 32 2d 0a 0a 23 23 23 23  4-mingw32-..####
2840: 20 54 68 65 20 74 6f 70 6c 65 76 65 6c 20 64 69   The toplevel di
2850: 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 73  rectory of the s
2860: 6f 75 72 63 65 20 74 72 65 65 2e 20 20 46 6f 73  ource tree.  Fos
2870: 73 69 6c 20 63 61 6e 20 62 65 20 62 75 69 6c 74  sil can be built
2880: 0a 23 20 20 20 20 69 6e 20 61 20 64 69 72 65 63  .#    in a direc
2890: 74 6f 72 79 20 74 68 61 74 20 69 73 20 73 65 70  tory that is sep
28a0: 61 72 61 74 65 20 66 72 6f 6d 20 74 68 65 20 73  arate from the s
28b0: 6f 75 72 63 65 20 74 72 65 65 2e 20 20 4a 75 73  ource tree.  Jus
28c0: 74 20 63 68 61 6e 67 65 0a 23 20 20 20 20 74 68  t change.#    th
28d0: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 70  e following to p
28e0: 6f 69 6e 74 20 66 72 6f 6d 20 74 68 65 20 62 75  oint from the bu
28f0: 69 6c 64 20 64 69 72 65 63 74 6f 72 79 20 74 6f  ild directory to
2900: 20 74 68 65 20 73 72 63 2f 20 66 6f 6c 64 65 72   the src/ folder
2910: 2e 0a 23 0a 53 52 43 44 49 52 20 3d 20 73 72 63  ..#.SRCDIR = src
2920: 0a 0a 23 23 23 23 20 54 68 65 20 64 69 72 65 63  ..#### The direc
2930: 74 6f 72 79 20 69 6e 74 6f 20 77 68 69 63 68 20  tory into which 
2940: 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 69 6c 65  object code file
2950: 73 20 73 68 6f 75 6c 64 20 62 65 20 77 72 69 74  s should be writ
2960: 74 65 6e 2e 0a 23 0a 4f 42 4a 44 49 52 20 3d 20  ten..#.OBJDIR = 
2970: 77 62 6c 64 0a 0a 23 23 23 23 20 43 20 43 6f 6d  wbld..#### C Com
2980: 70 69 6c 65 72 20 61 6e 64 20 6f 70 74 69 6f 6e  piler and option
2990: 73 20 66 6f 72 20 75 73 65 20 69 6e 20 62 75 69  s for use in bui
29a0: 6c 64 69 6e 67 20 65 78 65 63 75 74 61 62 6c 65  lding executable
29b0: 73 20 74 68 61 74 0a 23 20 20 20 20 77 69 6c 6c  s that.#    will
29c0: 20 72 75 6e 20 6f 6e 20 74 68 65 20 70 6c 61 74   run on the plat
29d0: 66 6f 72 6d 20 74 68 61 74 20 69 73 20 64 6f 69  form that is doi
29e0: 6e 67 20 74 68 65 20 62 75 69 6c 64 2e 20 20 54  ng the build.  T
29f0: 68 69 73 20 69 73 20 75 73 65 64 0a 23 20 20 20  his is used.#   
2a00: 20 74 6f 20 63 6f 6d 70 69 6c 65 20 63 6f 64 65   to compile code
2a10: 2d 67 65 6e 65 72 61 74 6f 72 20 70 72 6f 67 72  -generator progr
2a20: 61 6d 73 20 61 73 20 70 61 72 74 20 6f 66 20 74  ams as part of t
2a30: 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73  he build process
2a40: 2e 0a 23 20 20 20 20 53 65 65 20 54 43 43 20 62  ..#    See TCC b
2a50: 65 6c 6f 77 20 66 6f 72 20 74 68 65 20 43 20 63  elow for the C c
2a60: 6f 6d 70 69 6c 65 72 20 66 6f 72 20 62 75 69 6c  ompiler for buil
2a70: 64 69 6e 67 20 74 68 65 20 66 69 6e 69 73 68 65  ding the finishe
2a80: 64 20 62 69 6e 61 72 79 2e 0a 23 0a 42 43 43 20  d binary..#.BCC 
2a90: 3d 20 67 63 63 0a 0a 23 23 23 23 20 45 6e 61 62  = gcc..#### Enab
2aa0: 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 77 69 74  le compiling wit
2ab0: 68 20 64 65 62 75 67 20 73 79 6d 62 6f 6c 73 20  h debug symbols 
2ac0: 28 6d 75 63 68 20 6c 61 72 67 65 72 20 62 69 6e  (much larger bin
2ad0: 61 72 79 29 0a 23 0a 23 20 46 4f 53 53 49 4c 5f  ary).#.# FOSSIL_
2ae0: 45 4e 41 42 4c 45 5f 53 59 4d 42 4f 4c 53 20 3d  ENABLE_SYMBOLS =
2af0: 20 31 0a 0a 23 23 23 23 20 45 6e 61 62 6c 65 20   1..#### Enable 
2b00: 4a 53 4f 4e 20 28 68 74 74 70 3a 2f 2f 77 77 77  JSON (http://www
2b10: 2e 6a 73 6f 6e 2e 6f 72 67 29 20 73 75 70 70 6f  .json.org) suppo
2b20: 72 74 20 75 73 69 6e 67 20 22 63 73 6f 6e 22 0a  rt using "cson".
2b30: 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  #.# FOSSIL_ENABL
2b40: 45 5f 4a 53 4f 4e 20 3d 20 31 0a 0a 23 23 23 23  E_JSON = 1..####
2b50: 20 45 6e 61 62 6c 65 20 48 54 54 50 53 20 73 75   Enable HTTPS su
2b60: 70 70 6f 72 74 20 76 69 61 20 4f 70 65 6e 53 53  pport via OpenSS
2b70: 4c 20 28 6c 69 6e 6b 73 20 74 6f 20 6c 69 62 73  L (links to libs
2b80: 73 6c 20 61 6e 64 20 6c 69 62 63 72 79 70 74 6f  sl and libcrypto
2b90: 29 0a 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41  ).#.# FOSSIL_ENA
2ba0: 42 4c 45 5f 53 53 4c 20 3d 20 31 0a 0a 23 23 23  BLE_SSL = 1..###
2bb0: 23 20 45 6e 61 62 6c 65 20 68 6f 6f 6b 73 20 66  # Enable hooks f
2bc0: 6f 72 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20  or commands and 
2bd0: 77 65 62 20 70 61 67 65 73 20 76 69 61 20 54 48  web pages via TH
2be0: 31 0a 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41  1.#.# FOSSIL_ENA
2bf0: 42 4c 45 5f 54 48 31 5f 48 4f 4f 4b 53 20 3d 20  BLE_TH1_HOOKS = 
2c00: 31 0a 0a 23 23 23 23 20 45 6e 61 62 6c 65 20 73  1..#### Enable s
2c10: 63 72 69 70 74 69 6e 67 20 73 75 70 70 6f 72 74  cripting support
2c20: 20 76 69 61 20 54 63 6c 2f 54 6b 0a 23 0a 23 20   via Tcl/Tk.#.# 
2c30: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43  FOSSIL_ENABLE_TC
2c40: 4c 20 3d 20 31 0a 0a 23 23 23 23 20 4c 6f 61 64  L = 1..#### Load
2c50: 20 54 63 6c 20 75 73 69 6e 67 20 74 68 65 20 73   Tcl using the s
2c60: 74 75 62 73 20 6c 69 62 72 61 72 79 20 6d 65 63  tubs library mec
2c70: 68 61 6e 69 73 6d 0a 23 0a 23 20 46 4f 53 53 49  hanism.#.# FOSSI
2c80: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55  L_ENABLE_TCL_STU
2c90: 42 53 20 3d 20 31 0a 0a 23 23 23 23 20 4c 6f 61  BS = 1..#### Loa
2ca0: 64 20 54 63 6c 20 75 73 69 6e 67 20 74 68 65 20  d Tcl using the 
2cb0: 70 72 69 76 61 74 65 20 73 74 75 62 73 20 6d 65  private stubs me
2cc0: 63 68 61 6e 69 73 6d 0a 23 0a 23 20 46 4f 53 53  chanism.#.# FOSS
2cd0: 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 50 52  IL_ENABLE_TCL_PR
2ce0: 49 56 41 54 45 5f 53 54 55 42 53 20 3d 20 31 0a  IVATE_STUBS = 1.
2cf0: 0a 23 23 23 23 20 55 73 65 20 27 73 79 73 74 65  .#### Use 'syste
2d00: 6d 27 20 73 71 6c 69 74 65 0a 23 0a 23 20 55 53  m' sqlite.#.# US
2d10: 45 5f 53 59 53 54 45 4d 5f 53 51 4c 49 54 45 20  E_SYSTEM_SQLITE 
2d20: 3d 20 31 0a 0a 23 23 23 23 20 55 73 65 20 74 68  = 1..#### Use th
2d30: 65 20 54 63 6c 20 73 6f 75 72 63 65 20 64 69 72  e Tcl source dir
2d40: 65 63 74 6f 72 79 20 69 6e 73 74 65 61 64 20 6f  ectory instead o
2d50: 66 20 74 68 65 20 69 6e 73 74 61 6c 6c 20 64 69  f the install di
2d60: 72 65 63 74 6f 72 79 3f 0a 23 20 20 20 20 54 68  rectory?.#    Th
2d70: 69 73 20 69 73 20 75 73 65 66 75 6c 20 77 68 65  is is useful whe
2d80: 6e 20 54 63 6c 20 68 61 73 20 62 65 65 6e 20 63  n Tcl has been c
2d90: 6f 6d 70 69 6c 65 64 20 73 74 61 74 69 63 61 6c  ompiled statical
2da0: 6c 79 20 77 69 74 68 20 4d 69 6e 47 57 2e 0a 23  ly with MinGW..#
2db0: 0a 46 4f 53 53 49 4c 5f 54 43 4c 5f 53 4f 55 52  .FOSSIL_TCL_SOUR
2dc0: 43 45 20 3d 20 31 0a 0a 23 23 23 23 20 43 68 65  CE = 1..#### Che
2dd0: 63 6b 20 69 66 20 74 68 65 20 77 6f 72 6b 61 72  ck if the workar
2de0: 6f 75 6e 64 20 66 6f 72 20 74 68 65 20 4d 69 6e  ound for the Min
2df0: 47 57 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20  GW command line 
2e00: 68 61 6e 64 6c 69 6e 67 20 6e 65 65 64 73 20 74  handling needs t
2e10: 6f 0a 23 20 20 20 20 62 65 20 65 6e 61 62 6c 65  o.#    be enable
2e20: 64 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 23 0a  d by default..#.
2e30: 69 66 6e 64 65 66 20 4d 49 4e 47 57 5f 49 53 5f  ifndef MINGW_IS_
2e40: 33 32 42 49 54 5f 4f 4e 4c 59 0a 69 66 65 71 20  32BIT_ONLY.ifeq 
2e50: 28 2c 24 28 66 69 6e 64 73 74 72 69 6e 67 20 77  (,$(findstring w
2e60: 36 34 2d 6d 69 6e 67 77 33 32 2c 24 28 50 52 45  64-mingw32,$(PRE
2e70: 46 49 58 29 29 29 0a 4d 49 4e 47 57 5f 49 53 5f  FIX))).MINGW_IS_
2e80: 33 32 42 49 54 5f 4f 4e 4c 59 20 3d 20 31 0a 65  32BIT_ONLY = 1.e
2e90: 6e 64 69 66 0a 65 6e 64 69 66 0a 0a 23 23 23 23  ndif.endif..####
2ea0: 20 54 68 65 20 64 69 72 65 63 74 6f 72 69 65 73   The directories
2eb0: 20 77 68 65 72 65 20 74 68 65 20 7a 6c 69 62 20   where the zlib 
2ec0: 69 6e 63 6c 75 64 65 20 61 6e 64 20 6c 69 62 72  include and libr
2ed0: 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 6c 6f  ary files are lo
2ee0: 63 61 74 65 64 2e 0a 23 0a 5a 49 4e 43 44 49 52  cated..#.ZINCDIR
2ef0: 20 3d 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f   = $(SRCDIR)/../
2f00: 63 6f 6d 70 61 74 2f 7a 6c 69 62 0a 5a 4c 49 42  compat/zlib.ZLIB
2f10: 44 49 52 20 3d 20 24 28 53 52 43 44 49 52 29 2f  DIR = $(SRCDIR)/
2f20: 2e 2e 2f 63 6f 6d 70 61 74 2f 7a 6c 69 62 0a 0a  ../compat/zlib..
2f30: 23 23 23 23 20 54 68 65 20 64 69 72 65 63 74 6f  #### The directo
2f40: 72 69 65 73 20 77 68 65 72 65 20 74 68 65 20 4f  ries where the O
2f50: 70 65 6e 53 53 4c 20 69 6e 63 6c 75 64 65 20 61  penSSL include a
2f60: 6e 64 20 6c 69 62 72 61 72 79 20 66 69 6c 65 73  nd library files
2f70: 20 61 72 65 20 6c 6f 63 61 74 65 64 2e 0a 23 20   are located..# 
2f80: 20 20 20 54 68 65 20 72 65 63 6f 6d 6d 65 6e 64     The recommend
2f90: 65 64 20 75 73 61 67 65 20 68 65 72 65 20 69 73  ed usage here is
2fa0: 20 74 6f 20 75 73 65 20 74 68 65 20 53 79 73 69   to use the Sysi
2fb0: 6e 74 65 72 6e 61 6c 73 20 6a 75 6e 63 74 69 6f  nternals junctio
2fc0: 6e 20 74 6f 6f 6c 0a 23 20 20 20 20 74 6f 20 63  n tool.#    to c
2fd0: 72 65 61 74 65 20 61 20 68 61 72 64 20 6c 69 6e  reate a hard lin
2fe0: 6b 20 62 65 74 77 65 65 6e 20 61 6e 20 22 6f 70  k between an "op
2ff0: 65 6e 73 73 6c 2d 31 2e 78 22 20 73 75 62 2d 64  enssl-1.x" sub-d
3000: 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 0a  irectory of the.
3010: 23 20 20 20 20 46 6f 73 73 69 6c 20 73 6f 75 72  #    Fossil sour
3020: 63 65 20 63 6f 64 65 20 64 69 72 65 63 74 6f 72  ce code director
3030: 79 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74  y and the target
3040: 20 4f 70 65 6e 53 53 4c 20 73 6f 75 72 63 65 20   OpenSSL source 
3050: 64 69 72 65 63 74 6f 72 79 2e 0a 23 0a 4f 50 45  directory..#.OPE
3060: 4e 53 53 4c 49 4e 43 44 49 52 20 3d 20 24 28 53  NSSLINCDIR = $(S
3070: 52 43 44 49 52 29 2f 2e 2e 2f 63 6f 6d 70 61 74  RCDIR)/../compat
3080: 2f 6f 70 65 6e 73 73 6c 2d 31 2e 30 2e 31 68 2f  /openssl-1.0.1h/
3090: 69 6e 63 6c 75 64 65 0a 4f 50 45 4e 53 53 4c 4c  include.OPENSSLL
30a0: 49 42 44 49 52 20 3d 20 24 28 53 52 43 44 49 52  IBDIR = $(SRCDIR
30b0: 29 2f 2e 2e 2f 63 6f 6d 70 61 74 2f 6f 70 65 6e  )/../compat/open
30c0: 73 73 6c 2d 31 2e 30 2e 31 68 0a 0a 23 23 23 23  ssl-1.0.1h..####
30d0: 20 45 69 74 68 65 72 20 74 68 65 20 64 69 72 65   Either the dire
30e0: 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20  ctory where the 
30f0: 54 63 6c 20 6c 69 62 72 61 72 79 20 69 73 20 69  Tcl library is i
3100: 6e 73 74 61 6c 6c 65 64 20 6f 72 20 74 68 65 20  nstalled or the 
3110: 54 63 6c 0a 23 20 20 20 20 73 6f 75 72 63 65 20  Tcl.#    source 
3120: 63 6f 64 65 20 64 69 72 65 63 74 6f 72 79 20 72  code directory r
3130: 65 73 69 64 65 73 20 28 64 65 70 65 6e 64 69 6e  esides (dependin
3140: 67 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f  g on the value o
3150: 66 20 74 68 65 20 6d 61 63 72 6f 0a 23 20 20 20  f the macro.#   
3160: 20 46 4f 53 53 49 4c 5f 54 43 4c 5f 53 4f 55 52   FOSSIL_TCL_SOUR
3170: 43 45 29 2e 20 20 49 66 20 74 68 69 73 20 70 6f  CE).  If this po
3180: 69 6e 74 73 20 74 6f 20 74 68 65 20 54 63 6c 20  ints to the Tcl 
3190: 69 6e 73 74 61 6c 6c 20 64 69 72 65 63 74 6f 72  install director
31a0: 79 2c 0a 23 20 20 20 20 74 68 69 73 20 64 69 72  y,.#    this dir
31b0: 65 63 74 6f 72 79 20 6d 75 73 74 20 68 61 76 65  ectory must have
31c0: 20 22 69 6e 63 6c 75 64 65 22 20 61 6e 64 20 22   "include" and "
31d0: 6c 69 62 22 20 73 75 62 2d 64 69 72 65 63 74 6f  lib" sub-directo
31e0: 72 69 65 73 2e 20 20 49 66 0a 23 20 20 20 20 74  ries.  If.#    t
31f0: 68 69 73 20 70 6f 69 6e 74 73 20 74 6f 20 74 68  his points to th
3200: 65 20 54 63 6c 20 73 6f 75 72 63 65 20 63 6f 64  e Tcl source cod
3210: 65 20 64 69 72 65 63 74 6f 72 79 2c 20 74 68 69  e directory, thi
3220: 73 20 64 69 72 65 63 74 6f 72 79 20 6d 75 73 74  s directory must
3230: 0a 23 20 20 20 20 68 61 76 65 20 22 67 65 6e 65  .#    have "gene
3240: 72 69 63 22 20 61 6e 64 20 22 77 69 6e 22 20 73  ric" and "win" s
3250: 75 62 2d 64 69 72 65 63 74 6f 72 69 65 73 2e 20  ub-directories. 
3260: 20 54 68 65 20 72 65 63 6f 6d 6d 65 6e 64 65 64   The recommended
3270: 20 75 73 61 67 65 0a 23 20 20 20 20 68 65 72 65   usage.#    here
3280: 20 69 73 20 74 6f 20 75 73 65 20 74 68 65 20 53   is to use the S
3290: 79 73 69 6e 74 65 72 6e 61 6c 73 20 6a 75 6e 63  ysinternals junc
32a0: 74 69 6f 6e 20 74 6f 6f 6c 20 74 6f 20 63 72 65  tion tool to cre
32b0: 61 74 65 20 61 20 68 61 72 64 0a 23 20 20 20 20  ate a hard.#    
32c0: 6c 69 6e 6b 20 62 65 74 77 65 65 6e 20 61 20 22  link between a "
32d0: 74 63 6c 2d 38 2e 78 22 20 73 75 62 2d 64 69 72  tcl-8.x" sub-dir
32e0: 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 46 6f  ectory of the Fo
32f0: 73 73 69 6c 20 73 6f 75 72 63 65 20 63 6f 64 65  ssil source code
3300: 0a 23 20 20 20 20 64 69 72 65 63 74 6f 72 79 20  .#    directory 
3310: 61 6e 64 20 74 68 65 20 74 61 72 67 65 74 20 54  and the target T
3320: 63 6c 20 64 69 72 65 63 74 6f 72 79 2e 20 20 54  cl directory.  T
3330: 68 69 73 20 72 65 6d 6f 76 65 73 20 74 68 65 20  his removes the 
3340: 6e 65 65 64 20 74 6f 0a 23 20 20 20 20 68 61 72  need to.#    har
3350: 64 2d 63 6f 64 65 20 74 68 65 20 6e 65 63 65 73  d-code the neces
3360: 73 61 72 79 20 70 61 74 68 73 20 69 6e 20 74 68  sary paths in th
3370: 69 73 20 4d 61 6b 65 66 69 6c 65 2e 0a 23 0a 54  is Makefile..#.T
3380: 43 4c 44 49 52 20 3d 20 24 28 53 52 43 44 49 52  CLDIR = $(SRCDIR
3390: 29 2f 2e 2e 2f 63 6f 6d 70 61 74 2f 74 63 6c 2d  )/../compat/tcl-
33a0: 38 2e 36 0a 0a 23 23 23 23 20 54 68 65 20 54 63  8.6..#### The Tc
33b0: 6c 20 73 6f 75 72 63 65 20 63 6f 64 65 20 64 69  l source code di
33c0: 72 65 63 74 6f 72 79 2e 20 20 54 68 69 73 20 64  rectory.  This d
33d0: 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 73  efaults to the s
33e0: 61 6d 65 20 76 61 6c 75 65 20 61 73 0a 23 20 20  ame value as.#  
33f0: 20 20 54 43 4c 44 49 52 20 6d 61 63 72 6f 20 28    TCLDIR macro (
3400: 61 62 6f 76 65 29 2c 20 77 68 69 63 68 20 6d 61  above), which ma
3410: 79 20 6e 6f 74 20 62 65 20 63 6f 72 72 65 63 74  y not be correct
3420: 2e 20 20 54 68 69 73 20 76 61 6c 75 65 20 77 69  .  This value wi
3430: 6c 6c 0a 23 20 20 20 20 6f 6e 6c 79 20 62 65 20  ll.#    only be 
3440: 75 73 65 64 20 69 66 20 74 68 65 20 46 4f 53 53  used if the FOSS
3450: 49 4c 5f 54 43 4c 5f 53 4f 55 52 43 45 20 6d 61  IL_TCL_SOURCE ma
3460: 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 2e 0a  cro is defined..
3470: 23 0a 54 43 4c 53 52 43 44 49 52 20 3d 20 24 28  #.TCLSRCDIR = $(
3480: 54 43 4c 44 49 52 29 0a 0a 23 23 23 23 20 54 68  TCLDIR)..#### Th
3490: 65 20 54 63 6c 20 69 6e 63 6c 75 64 65 20 61 6e  e Tcl include an
34a0: 64 20 6c 69 62 72 61 72 79 20 64 69 72 65 63 74  d library direct
34b0: 6f 72 69 65 73 2e 20 20 54 68 65 73 65 20 76 61  ories.  These va
34c0: 6c 75 65 73 20 77 69 6c 6c 20 6f 6e 6c 79 20 62  lues will only b
34d0: 65 0a 23 20 20 20 20 75 73 65 64 20 69 66 20 74  e.#    used if t
34e0: 68 65 20 46 4f 53 53 49 4c 5f 54 43 4c 5f 53 4f  he FOSSIL_TCL_SO
34f0: 55 52 43 45 20 6d 61 63 72 6f 20 69 73 20 6e 6f  URCE macro is no
3500: 74 20 64 65 66 69 6e 65 64 2e 0a 23 0a 54 43 4c  t defined..#.TCL
3510: 49 4e 43 44 49 52 20 3d 20 24 28 54 43 4c 44 49  INCDIR = $(TCLDI
3520: 52 29 2f 69 6e 63 6c 75 64 65 0a 54 43 4c 4c 49  R)/include.TCLLI
3530: 42 44 49 52 20 3d 20 24 28 54 43 4c 44 49 52 29  BDIR = $(TCLDIR)
3540: 2f 6c 69 62 0a 0a 23 23 23 23 20 54 63 6c 3a 20  /lib..#### Tcl: 
3550: 57 68 69 63 68 20 54 63 6c 20 6c 69 62 72 61 72  Which Tcl librar
3560: 79 20 64 6f 20 77 65 20 77 61 6e 74 20 74 6f 20  y do we want to 
3570: 75 73 65 20 28 38 2e 34 2c 20 38 2e 35 2c 20 38  use (8.4, 8.5, 8
3580: 2e 36 2c 20 65 74 63 29 3f 0a 23 0a 69 66 64 65  .6, etc)?.#.ifde
3590: 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  f FOSSIL_ENABLE_
35a0: 54 43 4c 5f 53 54 55 42 53 0a 69 66 6e 64 65 66  TCL_STUBS.ifndef
35b0: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54   FOSSIL_ENABLE_T
35c0: 43 4c 5f 50 52 49 56 41 54 45 5f 53 54 55 42 53  CL_PRIVATE_STUBS
35d0: 0a 4c 49 42 54 43 4c 20 3d 20 2d 6c 74 63 6c 73  .LIBTCL = -ltcls
35e0: 74 75 62 38 36 0a 65 6e 64 69 66 0a 54 43 4c 54  tub86.endif.TCLT
35f0: 41 52 47 45 54 20 3d 20 6c 69 62 74 63 6c 73 74  ARGET = libtclst
3600: 75 62 38 36 2e 61 0a 65 6c 73 65 0a 4c 49 42 54  ub86.a.else.LIBT
3610: 43 4c 20 3d 20 2d 6c 74 63 6c 38 36 0a 54 43 4c  CL = -ltcl86.TCL
3620: 54 41 52 47 45 54 20 3d 20 62 69 6e 61 72 69 65  TARGET = binarie
3630: 73 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20 43 20  s.endif..#### C 
3640: 43 6f 6d 70 69 6c 65 20 61 6e 64 20 6f 70 74 69  Compile and opti
3650: 6f 6e 73 20 66 6f 72 20 75 73 65 20 69 6e 20 62  ons for use in b
3660: 75 69 6c 64 69 6e 67 20 65 78 65 63 75 74 61 62  uilding executab
3670: 6c 65 73 20 74 68 61 74 0a 23 20 20 20 20 77 69  les that.#    wi
3680: 6c 6c 20 72 75 6e 20 6f 6e 20 74 68 65 20 74 61  ll run on the ta
3690: 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 2e 20 20  rget platform.  
36a0: 54 68 69 73 20 69 73 20 75 73 75 61 6c 6c 79 20  This is usually 
36b0: 74 68 65 20 73 61 6d 65 0a 23 20 20 20 20 61 73  the same.#    as
36c0: 20 42 43 43 2c 20 75 6e 6c 65 73 73 20 79 6f 75   BCC, unless you
36d0: 20 61 72 65 20 63 72 6f 73 73 2d 63 6f 6d 70 69   are cross-compi
36e0: 6c 69 6e 67 2e 20 20 54 68 69 73 20 43 20 63 6f  ling.  This C co
36f0: 6d 70 69 6c 65 72 20 62 75 69 6c 64 73 0a 23 20  mpiler builds.# 
3700: 20 20 20 74 68 65 20 66 69 6e 69 73 68 65 64 20     the finished 
3710: 62 69 6e 61 72 79 20 66 6f 72 20 66 6f 73 73 69  binary for fossi
3720: 6c 2e 20 20 54 68 65 20 42 43 43 20 63 6f 6d 70  l.  The BCC comp
3730: 69 6c 65 72 20 61 62 6f 76 65 20 69 73 20 75 73  iler above is us
3740: 65 64 0a 23 20 20 20 20 66 6f 72 20 62 75 69 6c  ed.#    for buil
3750: 64 69 6e 67 20 69 6e 74 65 72 6d 65 64 69 61 74  ding intermediat
3760: 65 20 63 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72  e code-generator
3770: 20 74 6f 6f 6c 73 2e 0a 23 0a 54 43 43 20 3d 20   tools..#.TCC = 
3780: 24 28 50 52 45 46 49 58 29 67 63 63 20 2d 4f 73  $(PREFIX)gcc -Os
3790: 20 2d 57 61 6c 6c 20 2d 4c 24 28 5a 4c 49 42 44   -Wall -L$(ZLIBD
37a0: 49 52 29 20 2d 49 24 28 5a 49 4e 43 44 49 52 29  IR) -I$(ZINCDIR)
37b0: 0a 0a 23 23 23 23 20 41 64 64 20 74 68 65 20 6e  ..#### Add the n
37c0: 65 63 65 73 73 61 72 79 20 63 6f 6d 6d 61 6e 64  ecessary command
37d0: 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 20 74 6f   line options to
37e0: 20 62 75 69 6c 64 20 77 69 74 68 20 64 65 62 75   build with debu
37f0: 67 67 69 6e 67 0a 23 20 20 20 20 73 79 6d 62 6f  gging.#    symbo
3800: 6c 73 2c 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a  ls, if enabled..
3810: 23 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45  #.ifdef FOSSIL_E
3820: 4e 41 42 4c 45 5f 53 59 4d 42 4f 4c 53 0a 54 43  NABLE_SYMBOLS.TC
3830: 43 20 2b 3d 20 2d 67 0a 65 6e 64 69 66 0a 0a 23  C += -g.endif..#
3840: 23 23 23 20 43 6f 6d 70 69 6c 65 20 72 65 73 6f  ### Compile reso
3850: 75 72 63 65 73 20 66 6f 72 20 75 73 65 20 69 6e  urces for use in
3860: 20 62 75 69 6c 64 69 6e 67 20 65 78 65 63 75 74   building execut
3870: 61 62 6c 65 73 20 74 68 61 74 20 77 69 6c 6c 20  ables that will 
3880: 72 75 6e 0a 23 20 20 20 20 6f 6e 20 74 68 65 20  run.#    on the 
3890: 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 2e  target platform.
38a0: 0a 23 0a 52 43 43 20 3d 20 24 28 50 52 45 46 49  .#.RCC = $(PREFI
38b0: 58 29 77 69 6e 64 72 65 73 20 2d 49 24 28 53 52  X)windres -I$(SR
38c0: 43 44 49 52 29 20 2d 49 24 28 5a 49 4e 43 44 49  CDIR) -I$(ZINCDI
38d0: 52 29 0a 0a 23 20 57 69 74 68 20 48 54 54 50 53  R)..# With HTTPS
38e0: 20 73 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46   support.ifdef F
38f0: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c  OSSIL_ENABLE_SSL
3900: 0a 54 43 43 20 2b 3d 20 2d 4c 24 28 4f 50 45 4e  .TCC += -L$(OPEN
3910: 53 53 4c 4c 49 42 44 49 52 29 20 2d 49 24 28 4f  SSLLIBDIR) -I$(O
3920: 50 45 4e 53 53 4c 49 4e 43 44 49 52 29 0a 52 43  PENSSLINCDIR).RC
3930: 43 20 2b 3d 20 2d 49 24 28 4f 50 45 4e 53 53 4c  C += -I$(OPENSSL
3940: 49 4e 43 44 49 52 29 0a 65 6e 64 69 66 0a 0a 23  INCDIR).endif..#
3950: 20 57 69 74 68 20 54 63 6c 20 73 75 70 70 6f 72   With Tcl suppor
3960: 74 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45  t.ifdef FOSSIL_E
3970: 4e 41 42 4c 45 5f 54 43 4c 0a 69 66 64 65 66 20  NABLE_TCL.ifdef 
3980: 46 4f 53 53 49 4c 5f 54 43 4c 5f 53 4f 55 52 43  FOSSIL_TCL_SOURC
3990: 45 0a 54 43 43 20 2b 3d 20 2d 4c 24 28 54 43 4c  E.TCC += -L$(TCL
39a0: 53 52 43 44 49 52 29 2f 77 69 6e 20 2d 49 24 28  SRCDIR)/win -I$(
39b0: 54 43 4c 53 52 43 44 49 52 29 2f 67 65 6e 65 72  TCLSRCDIR)/gener
39c0: 69 63 20 2d 49 24 28 54 43 4c 53 52 43 44 49 52  ic -I$(TCLSRCDIR
39d0: 29 2f 77 69 6e 0a 52 43 43 20 2b 3d 20 2d 49 24  )/win.RCC += -I$
39e0: 28 54 43 4c 53 52 43 44 49 52 29 2f 67 65 6e 65  (TCLSRCDIR)/gene
39f0: 72 69 63 20 2d 49 24 28 54 43 4c 53 52 43 44 49  ric -I$(TCLSRCDI
3a00: 52 29 2f 77 69 6e 0a 65 6c 73 65 0a 54 43 43 20  R)/win.else.TCC 
3a10: 2b 3d 20 2d 4c 24 28 54 43 4c 4c 49 42 44 49 52  += -L$(TCLLIBDIR
3a20: 29 20 2d 49 24 28 54 43 4c 49 4e 43 44 49 52 29  ) -I$(TCLINCDIR)
3a30: 0a 52 43 43 20 2b 3d 20 2d 49 24 28 54 43 4c 49  .RCC += -I$(TCLI
3a40: 4e 43 44 49 52 29 0a 65 6e 64 69 66 0a 65 6e 64  NCDIR).endif.end
3a50: 69 66 0a 0a 23 20 57 69 74 68 20 4d 69 6e 47 57  if..# With MinGW
3a60: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 68 61   command line ha
3a70: 6e 64 6c 69 6e 67 20 77 6f 72 6b 61 72 6f 75 6e  ndling workaroun
3a80: 64 0a 69 66 64 65 66 20 4d 49 4e 47 57 5f 49 53  d.ifdef MINGW_IS
3a90: 5f 33 32 42 49 54 5f 4f 4e 4c 59 0a 54 43 43 20  _32BIT_ONLY.TCC 
3aa0: 2b 3d 20 2d 44 42 52 4f 4b 45 4e 5f 4d 49 4e 47  += -DBROKEN_MING
3ab0: 57 5f 43 4d 44 4c 49 4e 45 3d 31 0a 52 43 43 20  W_CMDLINE=1.RCC 
3ac0: 2b 3d 20 2d 44 42 52 4f 4b 45 4e 5f 4d 49 4e 47  += -DBROKEN_MING
3ad0: 57 5f 43 4d 44 4c 49 4e 45 3d 31 0a 65 6e 64 69  W_CMDLINE=1.endi
3ae0: 66 0a 0a 23 20 57 69 74 68 20 48 54 54 50 53 20  f..# With HTTPS 
3af0: 73 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f  support.ifdef FO
3b00: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 0a  SSIL_ENABLE_SSL.
3b10: 54 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f  TCC += -DFOSSIL_
3b20: 45 4e 41 42 4c 45 5f 53 53 4c 3d 31 0a 52 43 43  ENABLE_SSL=1.RCC
3b30: 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41   += -DFOSSIL_ENA
3b40: 42 4c 45 5f 53 53 4c 3d 31 0a 65 6e 64 69 66 0a  BLE_SSL=1.endif.
3b50: 0a 23 20 57 69 74 68 20 54 48 31 20 68 6f 6f 6b  .# With TH1 hook
3b60: 20 73 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46   support.ifdef F
3b70: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31  OSSIL_ENABLE_TH1
3b80: 5f 48 4f 4f 4b 53 0a 54 43 43 20 2b 3d 20 2d 44  _HOOKS.TCC += -D
3b90: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48  FOSSIL_ENABLE_TH
3ba0: 31 5f 48 4f 4f 4b 53 3d 31 0a 52 43 43 20 2b 3d  1_HOOKS=1.RCC +=
3bb0: 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45   -DFOSSIL_ENABLE
3bc0: 5f 54 48 31 5f 48 4f 4f 4b 53 3d 31 0a 65 6e 64  _TH1_HOOKS=1.end
3bd0: 69 66 0a 0a 23 20 57 69 74 68 20 54 63 6c 20 73  if..# With Tcl s
3be0: 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53  upport.ifdef FOS
3bf0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 0a 54  SIL_ENABLE_TCL.T
3c00: 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45  CC += -DFOSSIL_E
3c10: 4e 41 42 4c 45 5f 54 43 4c 3d 31 0a 52 43 43 20  NABLE_TCL=1.RCC 
3c20: 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42  += -DFOSSIL_ENAB
3c30: 4c 45 5f 54 43 4c 3d 31 0a 23 20 45 69 74 68 65  LE_TCL=1.# Eithe
3c40: 72 20 73 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e  r statically lin
3c50: 6b 65 64 20 6f 72 20 76 69 61 20 73 74 75 62 73  ked or via stubs
3c60: 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e  .ifdef FOSSIL_EN
3c70: 41 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53 0a 54  ABLE_TCL_STUBS.T
3c80: 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45  CC += -DFOSSIL_E
3c90: 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53 3d  NABLE_TCL_STUBS=
3ca0: 31 20 2d 44 55 53 45 5f 54 43 4c 5f 53 54 55 42  1 -DUSE_TCL_STUB
3cb0: 53 0a 52 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49  S.RCC += -DFOSSI
3cc0: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55  L_ENABLE_TCL_STU
3cd0: 42 53 3d 31 20 2d 44 55 53 45 5f 54 43 4c 5f 53  BS=1 -DUSE_TCL_S
3ce0: 54 55 42 53 0a 69 66 64 65 66 20 46 4f 53 53 49  TUBS.ifdef FOSSI
3cf0: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 50 52 49  L_ENABLE_TCL_PRI
3d00: 56 41 54 45 5f 53 54 55 42 53 0a 54 43 43 20 2b  VATE_STUBS.TCC +
3d10: 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  = -DFOSSIL_ENABL
3d20: 45 5f 54 43 4c 5f 50 52 49 56 41 54 45 5f 53 54  E_TCL_PRIVATE_ST
3d30: 55 42 53 3d 31 0a 52 43 43 20 2b 3d 20 2d 44 46  UBS=1.RCC += -DF
3d40: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c  OSSIL_ENABLE_TCL
3d50: 5f 50 52 49 56 41 54 45 5f 53 54 55 42 53 3d 31  _PRIVATE_STUBS=1
3d60: 0a 65 6e 64 69 66 0a 65 6c 73 65 0a 54 43 43 20  .endif.else.TCC 
3d70: 2b 3d 20 2d 44 53 54 41 54 49 43 5f 42 55 49 4c  += -DSTATIC_BUIL
3d80: 44 0a 52 43 43 20 2b 3d 20 2d 44 53 54 41 54 49  D.RCC += -DSTATI
3d90: 43 5f 42 55 49 4c 44 0a 65 6e 64 69 66 0a 65 6e  C_BUILD.endif.en
3da0: 64 69 66 0a 0a 23 20 57 69 74 68 20 4a 53 4f 4e  dif..# With JSON
3db0: 20 73 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46   support.ifdef F
3dc0: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4a 53 4f  OSSIL_ENABLE_JSO
3dd0: 4e 0a 54 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49  N.TCC += -DFOSSI
3de0: 4c 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a  L_ENABLE_JSON=1.
3df0: 52 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f  RCC += -DFOSSIL_
3e00: 45 4e 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a 65 6e  ENABLE_JSON=1.en
3e10: 64 69 66 0a 0a 23 23 23 23 20 57 65 20 61 64 64  dif..#### We add
3e20: 20 74 68 65 20 2d 73 74 61 74 69 63 20 6f 70 74   the -static opt
3e30: 69 6f 6e 20 68 65 72 65 20 73 6f 20 74 68 61 74  ion here so that
3e40: 20 77 65 20 63 61 6e 20 62 75 69 6c 64 20 61 20   we can build a 
3e50: 73 74 61 74 69 63 0a 23 20 20 20 20 65 78 65 63  static.#    exec
3e60: 75 74 61 62 6c 65 20 74 68 61 74 20 77 69 6c 6c  utable that will
3e70: 20 72 75 6e 20 69 6e 20 61 20 63 68 72 6f 6f 74   run in a chroot
3e80: 20 6a 61 69 6c 2e 0a 23 0a 4c 49 42 20 3d 20 2d   jail..#.LIB = -
3e90: 73 74 61 74 69 63 0a 0a 23 20 4d 69 6e 47 57 3a  static..# MinGW:
3ea0: 20 49 66 20 61 76 61 69 6c 61 62 6c 65 2c 20 75   If available, u
3eb0: 73 65 20 74 68 65 20 55 6e 69 63 6f 64 65 20 63  se the Unicode c
3ec0: 61 70 61 62 6c 65 20 72 75 6e 74 69 6d 65 20 73  apable runtime s
3ed0: 74 61 72 74 75 70 20 63 6f 64 65 2e 0a 69 66 6e  tartup code..ifn
3ee0: 64 65 66 20 4d 49 4e 47 57 5f 49 53 5f 33 32 42  def MINGW_IS_32B
3ef0: 49 54 5f 4f 4e 4c 59 0a 4c 49 42 20 2b 3d 20 2d  IT_ONLY.LIB += -
3f00: 6d 75 6e 69 63 6f 64 65 0a 65 6e 64 69 66 0a 0a  municode.endif..
3f10: 69 66 64 65 66 20 55 53 45 5f 53 59 53 54 45 4d  ifdef USE_SYSTEM
3f20: 5f 53 51 4c 49 54 45 0a 4c 49 42 20 2b 3d 20 2d  _SQLITE.LIB += -
3f30: 6c 73 71 6c 69 74 65 33 0a 65 6e 64 69 66 0a 0a  lsqlite3.endif..
3f40: 23 20 4f 70 65 6e 53 53 4c 3a 20 41 64 64 20 74  # OpenSSL: Add t
3f50: 68 65 20 6e 65 63 65 73 73 61 72 79 20 6c 69 62  he necessary lib
3f60: 72 61 72 69 65 73 20 72 65 71 75 69 72 65 64 2c  raries required,
3f70: 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a 69 66 64   if enabled..ifd
3f80: 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45  ef FOSSIL_ENABLE
3f90: 5f 53 53 4c 0a 4c 49 42 20 2b 3d 20 2d 6c 73 73  _SSL.LIB += -lss
3fa0: 6c 20 2d 6c 63 72 79 70 74 6f 20 2d 6c 67 64 69  l -lcrypto -lgdi
3fb0: 33 32 0a 65 6e 64 69 66 0a 0a 23 20 54 63 6c 3a  32.endif..# Tcl:
3fc0: 20 41 64 64 20 74 68 65 20 6e 65 63 65 73 73 61   Add the necessa
3fd0: 72 79 20 6c 69 62 72 61 72 69 65 73 20 72 65 71  ry libraries req
3fe0: 75 69 72 65 64 2c 20 69 66 20 65 6e 61 62 6c 65  uired, if enable
3ff0: 64 2e 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f  d..ifdef FOSSIL_
4000: 45 4e 41 42 4c 45 5f 54 43 4c 0a 4c 49 42 20 2b  ENABLE_TCL.LIB +
4010: 3d 20 24 28 4c 49 42 54 43 4c 29 0a 65 6e 64 69  = $(LIBTCL).endi
4020: 66 0a 0a 23 23 23 23 20 45 78 74 72 61 20 61 72  f..#### Extra ar
4030: 67 75 6d 65 6e 74 73 20 66 6f 72 20 6c 69 6e 6b  guments for link
4040: 69 6e 67 20 74 68 65 20 66 69 6e 69 73 68 65 64  ing the finished
4050: 20 62 69 6e 61 72 79 2e 20 20 46 6f 73 73 69 6c   binary.  Fossil
4060: 20 6e 65 65 64 73 0a 23 20 20 20 20 74 6f 20 6c   needs.#    to l
4070: 69 6e 6b 20 61 67 61 69 6e 73 74 20 74 68 65 20  ink against the 
4080: 5a 2d 4c 69 62 20 63 6f 6d 70 72 65 73 73 69 6f  Z-Lib compressio
4090: 6e 20 6c 69 62 72 61 72 79 2e 20 20 54 68 65 72  n library.  Ther
40a0: 65 20 61 72 65 20 6e 6f 0a 23 20 20 20 20 6f 74  e are no.#    ot
40b0: 68 65 72 20 6d 61 6e 64 61 74 6f 72 79 20 64 65  her mandatory de
40c0: 70 65 6e 64 65 6e 63 69 65 73 2e 0a 23 0a 4c 49  pendencies..#.LI
40d0: 42 20 2b 3d 20 2d 6c 6d 69 6e 67 77 65 78 20 2d  B += -lmingwex -
40e0: 6c 7a 0a 0a 23 23 23 23 20 54 68 65 73 65 20 6c  lz..#### These l
40f0: 69 62 72 61 72 69 65 73 20 4d 55 53 54 20 61 70  ibraries MUST ap
4100: 70 65 61 72 20 69 6e 20 74 68 65 20 73 61 6d 65  pear in the same
4110: 20 6f 72 64 65 72 20 61 73 20 74 68 65 79 20 64   order as they d
4120: 6f 20 66 6f 72 20 54 63 6c 0a 23 20 20 20 20 6f  o for Tcl.#    o
4130: 72 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 69  r linking with i
4140: 74 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20  t will not work 
4150: 28 65 78 61 63 74 20 72 65 61 73 6f 6e 20 75 6e  (exact reason un
4160: 6b 6e 6f 77 6e 29 2e 0a 23 0a 69 66 64 65 66 20  known)..#.ifdef 
4170: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43  FOSSIL_ENABLE_TC
4180: 4c 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45  L.ifdef FOSSIL_E
4190: 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53 0a  NABLE_TCL_STUBS.
41a0: 4c 49 42 20 2b 3d 20 2d 6c 6b 65 72 6e 65 6c 33  LIB += -lkernel3
41b0: 32 20 2d 6c 77 73 32 5f 33 32 0a 65 6c 73 65 0a  2 -lws2_32.else.
41c0: 4c 49 42 20 2b 3d 20 2d 6c 6e 65 74 61 70 69 33  LIB += -lnetapi3
41d0: 32 20 2d 6c 6b 65 72 6e 65 6c 33 32 20 2d 6c 75  2 -lkernel32 -lu
41e0: 73 65 72 33 32 20 2d 6c 61 64 76 61 70 69 33 32  ser32 -ladvapi32
41f0: 20 2d 6c 77 73 32 5f 33 32 0a 65 6e 64 69 66 0a   -lws2_32.endif.
4200: 65 6c 73 65 0a 4c 49 42 20 2b 3d 20 2d 6c 6b 65  else.LIB += -lke
4210: 72 6e 65 6c 33 32 20 2d 6c 77 73 32 5f 33 32 0a  rnel32 -lws2_32.
4220: 65 6e 64 69 66 0a 0a 23 23 23 23 20 54 63 6c 20  endif..#### Tcl 
4230: 73 68 65 6c 6c 20 66 6f 72 20 75 73 65 20 69 6e  shell for use in
4240: 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 66 6f 73   running the fos
4250: 73 69 6c 20 74 65 73 74 20 73 75 69 74 65 2e 20  sil test suite. 
4260: 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 0a 23 20   This is only.# 
4270: 20 20 20 75 73 65 64 20 66 6f 72 20 74 65 73 74     used for test
4280: 69 6e 67 2e 0a 23 0a 54 43 4c 53 48 20 3d 20 74  ing..#.TCLSH = t
4290: 63 6c 73 68 0a 0a 23 23 23 23 20 4e 75 6c 6c 73  clsh..#### Nulls
42a0: 6f 66 74 20 69 6e 73 74 61 6c 6c 65 72 20 4d 61  oft installer Ma
42b0: 6b 65 4e 53 49 53 20 6c 6f 63 61 74 69 6f 6e 0a  keNSIS location.
42c0: 23 0a 4d 41 4b 45 4e 53 49 53 20 3d 20 22 24 28  #.MAKENSIS = "$(
42d0: 50 52 4f 47 52 41 4d 46 49 4c 45 53 29 5c 4e 53  PROGRAMFILES)\NS
42e0: 49 53 5c 4d 61 6b 65 4e 53 49 53 2e 65 78 65 22  IS\MakeNSIS.exe"
42f0: 0a 0a 23 23 23 23 20 49 6e 6e 6f 20 53 65 74 75  ..#### Inno Setu
4300: 70 20 65 78 65 63 75 74 61 62 6c 65 20 6c 6f 63  p executable loc
4310: 61 74 69 6f 6e 0a 23 0a 49 4e 4e 4f 53 45 54 55  ation.#.INNOSETU
4320: 50 20 3d 20 22 24 28 50 52 4f 47 52 41 4d 46 49  P = "$(PROGRAMFI
4330: 4c 45 53 29 5c 49 6e 6e 6f 20 53 65 74 75 70 20  LES)\Inno Setup 
4340: 35 5c 49 53 43 43 2e 65 78 65 22 0a 0a 23 23 23  5\ISCC.exe"..###
4350: 23 20 49 6e 63 6c 75 64 65 20 61 20 63 6f 6e 66  # Include a conf
4360: 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 20 74  iguration file t
4370: 68 61 74 20 63 61 6e 20 6f 76 65 72 72 69 64 65  hat can override
4380: 20 61 6e 79 20 6f 6e 65 20 6f 66 20 74 68 65 73   any one of thes
4390: 65 20 73 65 74 74 69 6e 67 73 2e 0a 23 0a 2d 69  e settings..#.-i
43a0: 6e 63 6c 75 64 65 20 63 6f 6e 66 69 67 2e 77 33  nclude config.w3
43b0: 32 0a 0a 23 20 53 54 4f 50 20 48 45 52 45 0a 23  2..# STOP HERE.#
43c0: 20 59 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 20   You should not 
43d0: 6e 65 65 64 20 74 6f 20 63 68 61 6e 67 65 20 61  need to change a
43e0: 6e 79 74 68 69 6e 67 20 62 65 6c 6f 77 20 74 68  nything below th
43f0: 69 73 20 6c 69 6e 65 0a 23 2d 2d 2d 2d 2d 2d 2d  is line.#-------
4400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4420: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4430: 2d 0a 58 54 43 43 20 3d 20 24 28 54 43 43 29 20  -.XTCC = $(TCC) 
4440: 24 28 43 46 4c 41 47 53 29 20 2d 49 2e 20 2d 49  $(CFLAGS) -I. -I
4450: 24 28 53 52 43 44 49 52 29 0a 7d 0a 77 72 69 74  $(SRCDIR).}.writ
4460: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
4470: 53 52 43 20 3d 22 0a 66 6f 72 65 61 63 68 20 73  SRC =".foreach s
4480: 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a   [lsort $src] {.
4490: 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77    writeln -nonew
44a0: 6c 69 6e 65 20 22 20 5c 5c 5c 6e 20 20 5c 24 28  line " \\\n  \$(
44b0: 53 52 43 44 49 52 29 2f 24 73 2e 63 22 0a 7d 0a  SRCDIR)/$s.c".}.
44c0: 77 72 69 74 65 6c 6e 20 22 5c 6e 22 0a 77 72 69  writeln "\n".wri
44d0: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
44e0: 22 54 52 41 4e 53 5f 53 52 43 20 3d 22 0a 66 6f  "TRANS_SRC =".fo
44f0: 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20 24  reach s [lsort $
4500: 73 72 63 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e  src] {.  writeln
4510: 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 5c 5c   -nonewline " \\
4520: 5c 6e 20 20 5c 24 28 4f 42 4a 44 49 52 29 2f 24  \n  \$(OBJDIR)/$
4530: 7b 73 7d 5f 2e 63 22 0a 7d 0a 77 72 69 74 65 6c  {s}_.c".}.writel
4540: 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d  n "\n".writeln -
4550: 6e 6f 6e 65 77 6c 69 6e 65 20 22 4f 42 4a 20 3d  nonewline "OBJ =
4560: 22 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f  ".foreach s [lso
4570: 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69  rt $src] {.  wri
4580: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
4590: 22 20 5c 5c 5c 6e 20 5c 24 28 4f 42 4a 44 49 52  " \\\n \$(OBJDIR
45a0: 29 2f 24 73 2e 6f 22 0a 7d 0a 77 72 69 74 65 6c  )/$s.o".}.writel
45b0: 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 22  n "\n".writeln "
45c0: 41 50 50 4e 41 4d 45 20 3d 20 24 7b 6e 61 6d 65  APPNAME = ${name
45d0: 7d 2e 65 78 65 22 0a 77 72 69 74 65 6c 6e 20 7b  }.exe".writeln {
45e0: 0a 23 23 23 23 20 49 66 20 74 68 65 20 55 53 45  .#### If the USE
45f0: 5f 57 49 4e 44 4f 57 53 20 76 61 72 69 61 62 6c  _WINDOWS variabl
4600: 65 20 65 78 69 73 74 73 2c 20 69 74 20 69 73 20  e exists, it is 
4610: 61 73 73 75 6d 65 64 20 74 68 61 74 20 77 65 20  assumed that we 
4620: 61 72 65 20 62 75 69 6c 64 69 6e 67 0a 23 20 20  are building.#  
4630: 20 20 69 6e 73 69 64 65 20 6f 66 20 61 20 57 69    inside of a Wi
4640: 6e 64 6f 77 73 2d 73 74 79 6c 65 20 73 68 65 6c  ndows-style shel
4650: 6c 3b 20 6f 74 68 65 72 77 69 73 65 2c 20 69 74  l; otherwise, it
4660: 20 69 73 20 61 73 73 75 6d 65 64 20 74 68 61 74   is assumed that
4670: 20 77 65 20 61 72 65 0a 23 20 20 20 20 62 75 69   we are.#    bui
4680: 6c 64 69 6e 67 20 69 6e 73 69 64 65 20 6f 66 20  lding inside of 
4690: 61 20 55 6e 69 78 2d 73 74 79 6c 65 20 73 68 65  a Unix-style she
46a0: 6c 6c 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74  ll.  Note that t
46b0: 68 65 20 22 6d 6f 76 65 22 20 63 6f 6d 6d 61 6e  he "move" comman
46c0: 64 20 69 73 0a 23 20 20 20 20 62 72 6f 6b 65 6e  d is.#    broken
46d0: 20 77 68 65 6e 20 61 74 74 65 6d 70 74 69 6e 67   when attempting
46e0: 20 74 6f 20 75 73 65 20 69 74 20 66 72 6f 6d 20   to use it from 
46f0: 74 68 65 20 57 69 6e 64 6f 77 73 20 73 68 65 6c  the Windows shel
4700: 6c 20 76 69 61 20 4d 69 6e 47 57 20 6d 61 6b 65  l via MinGW make
4710: 0a 23 20 20 20 20 62 65 63 61 75 73 65 20 74 68  .#    because th
4720: 65 20 53 48 45 4c 4c 20 76 61 72 69 61 62 6c 65  e SHELL variable
4730: 20 69 73 20 6f 6e 6c 79 20 75 73 65 64 20 66 6f   is only used fo
4740: 72 20 63 65 72 74 61 69 6e 20 63 6f 6d 6d 61 6e  r certain comman
4750: 64 73 20 74 68 61 74 20 61 72 65 0a 23 20 20 20  ds that are.#   
4760: 20 72 65 63 6f 67 6e 69 7a 65 64 20 69 6e 74 65   recognized inte
4770: 72 6e 61 6c 6c 79 20 62 79 20 6d 61 6b 65 2e 0a  rnally by make..
4780: 23 0a 69 66 64 65 66 20 55 53 45 5f 57 49 4e 44  #.ifdef USE_WIND
4790: 4f 57 53 0a 54 52 41 4e 53 4c 41 54 45 20 20 20  OWS.TRANSLATE   
47a0: 3d 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28  = $(subst /,\,$(
47b0: 4f 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c 61 74  OBJDIR)/translat
47c0: 65 29 0a 4d 41 4b 45 48 45 41 44 45 52 53 20 3d  e).MAKEHEADERS =
47d0: 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f   $(subst /,\,$(O
47e0: 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65  BJDIR)/makeheade
47f0: 72 73 29 0a 4d 4b 49 4e 44 45 58 20 20 20 20 20  rs).MKINDEX     
4800: 3d 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28  = $(subst /,\,$(
4810: 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64 65 78 29  OBJDIR)/mkindex)
4820: 0a 56 45 52 53 49 4f 4e 20 20 20 20 20 3d 20 24  .VERSION     = $
4830: 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a  (subst /,\,$(OBJ
4840: 44 49 52 29 2f 76 65 72 73 69 6f 6e 29 0a 43 41  DIR)/version).CA
4850: 54 20 20 20 20 20 20 20 20 20 3d 20 74 79 70 65  T         = type
4860: 0a 43 50 20 20 20 20 20 20 20 20 20 20 3d 20 63  .CP          = c
4870: 6f 70 79 0a 4d 56 20 20 20 20 20 20 20 20 20 20  opy.MV          
4880: 3d 20 63 6f 70 79 0a 52 4d 20 20 20 20 20 20 20  = copy.RM       
4890: 20 20 20 3d 20 64 65 6c 20 2f 51 0a 4d 4b 44 49     = del /Q.MKDI
48a0: 52 20 20 20 20 20 20 20 3d 20 2d 6d 6b 64 69 72  R       = -mkdir
48b0: 0a 52 4d 44 49 52 20 20 20 20 20 20 20 3d 20 72  .RMDIR       = r
48c0: 6d 64 69 72 20 2f 53 20 2f 51 0a 65 6c 73 65 0a  mdir /S /Q.else.
48d0: 54 52 41 4e 53 4c 41 54 45 20 20 20 3d 20 24 28  TRANSLATE   = $(
48e0: 4f 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c 61 74  OBJDIR)/translat
48f0: 65 0a 4d 41 4b 45 48 45 41 44 45 52 53 20 3d 20  e.MAKEHEADERS = 
4900: 24 28 4f 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65  $(OBJDIR)/makehe
4910: 61 64 65 72 73 0a 4d 4b 49 4e 44 45 58 20 20 20  aders.MKINDEX   
4920: 20 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 6d 6b    = $(OBJDIR)/mk
4930: 69 6e 64 65 78 0a 56 45 52 53 49 4f 4e 20 20 20  index.VERSION   
4940: 20 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 76 65    = $(OBJDIR)/ve
4950: 72 73 69 6f 6e 0a 43 41 54 20 20 20 20 20 20 20  rsion.CAT       
4960: 20 20 3d 20 63 61 74 0a 43 50 20 20 20 20 20 20    = cat.CP      
4970: 20 20 20 20 3d 20 63 70 0a 4d 56 20 20 20 20 20      = cp.MV     
4980: 20 20 20 20 20 3d 20 6d 76 0a 52 4d 20 20 20 20       = mv.RM    
4990: 20 20 20 20 20 20 3d 20 72 6d 20 2d 66 0a 4d 4b        = rm -f.MK
49a0: 44 49 52 20 20 20 20 20 20 20 3d 20 2d 6d 6b 64  DIR       = -mkd
49b0: 69 72 20 2d 70 0a 52 4d 44 49 52 20 20 20 20 20  ir -p.RMDIR     
49c0: 20 20 3d 20 72 6d 20 2d 72 66 0a 65 6e 64 69 66    = rm -rf.endif
49d0: 7d 0a 0a 77 72 69 74 65 6c 6e 20 7b 0a 61 6c 6c  }..writeln {.all
49e0: 3a 09 24 28 4f 42 4a 44 49 52 29 20 24 28 41 50  :.$(OBJDIR) $(AP
49f0: 50 4e 41 4d 45 29 0a 0a 24 28 4f 42 4a 44 49 52  PNAME)..$(OBJDIR
4a00: 29 2f 66 6f 73 73 69 6c 2e 6f 3a 09 24 28 53 52  )/fossil.o:.$(SR
4a10: 43 44 49 52 29 2f 2e 2e 2f 77 69 6e 2f 66 6f 73  CDIR)/../win/fos
4a20: 73 69 6c 2e 72 63 20 24 28 4f 42 4a 44 49 52 29  sil.rc $(OBJDIR)
4a30: 2f 56 45 52 53 49 4f 4e 2e 68 0a 69 66 64 65 66  /VERSION.h.ifdef
4a40: 20 55 53 45 5f 57 49 4e 44 4f 57 53 0a 09 24 28   USE_WINDOWS..$(
4a50: 43 50 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c  CP) $(subst /,\,
4a60: 24 28 53 52 43 44 49 52 29 5c 2e 2e 5c 77 69 6e  $(SRCDIR)\..\win
4a70: 5c 66 6f 73 73 69 6c 2e 72 63 29 20 24 28 73 75  \fossil.rc) $(su
4a80: 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a 44 49 52  bst /,\,$(OBJDIR
4a90: 29 29 0a 09 24 28 43 50 29 20 24 28 73 75 62 73  ))..$(CP) $(subs
4aa0: 74 20 2f 2c 5c 2c 24 28 53 52 43 44 49 52 29 5c  t /,\,$(SRCDIR)\
4ab0: 2e 2e 5c 77 69 6e 5c 66 6f 73 73 69 6c 2e 69 63  ..\win\fossil.ic
4ac0: 6f 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24  o) $(subst /,\,$
4ad0: 28 4f 42 4a 44 49 52 29 29 0a 09 24 28 43 50 29  (OBJDIR))..$(CP)
4ae0: 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 53   $(subst /,\,$(S
4af0: 52 43 44 49 52 29 5c 2e 2e 5c 77 69 6e 5c 66 6f  RCDIR)\..\win\fo
4b00: 73 73 69 6c 2e 65 78 65 2e 6d 61 6e 69 66 65 73  ssil.exe.manifes
4b10: 74 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24  t) $(subst /,\,$
4b20: 28 4f 42 4a 44 49 52 29 29 0a 65 6c 73 65 0a 09  (OBJDIR)).else..
4b30: 24 28 43 50 29 20 24 28 53 52 43 44 49 52 29 2f  $(CP) $(SRCDIR)/
4b40: 2e 2e 2f 77 69 6e 2f 66 6f 73 73 69 6c 2e 72 63  ../win/fossil.rc
4b50: 20 24 28 4f 42 4a 44 49 52 29 0a 09 24 28 43 50   $(OBJDIR)..$(CP
4b60: 29 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 77  ) $(SRCDIR)/../w
4b70: 69 6e 2f 66 6f 73 73 69 6c 2e 69 63 6f 20 24 28  in/fossil.ico $(
4b80: 4f 42 4a 44 49 52 29 0a 09 24 28 43 50 29 20 24  OBJDIR)..$(CP) $
4b90: 28 53 52 43 44 49 52 29 2f 2e 2e 2f 77 69 6e 2f  (SRCDIR)/../win/
4ba0: 66 6f 73 73 69 6c 2e 65 78 65 2e 6d 61 6e 69 66  fossil.exe.manif
4bb0: 65 73 74 20 24 28 4f 42 4a 44 49 52 29 0a 65 6e  est $(OBJDIR).en
4bc0: 64 69 66 0a 09 24 28 52 43 43 29 20 24 28 4f 42  dif..$(RCC) $(OB
4bd0: 4a 44 49 52 29 2f 66 6f 73 73 69 6c 2e 72 63 20  JDIR)/fossil.rc 
4be0: 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f 66 6f 73  -o $(OBJDIR)/fos
4bf0: 73 69 6c 2e 6f 0a 0a 69 6e 73 74 61 6c 6c 3a 09  sil.o..install:.
4c00: 24 28 4f 42 4a 44 49 52 29 20 24 28 41 50 50 4e  $(OBJDIR) $(APPN
4c10: 41 4d 45 29 0a 69 66 64 65 66 20 55 53 45 5f 57  AME).ifdef USE_W
4c20: 49 4e 44 4f 57 53 0a 09 24 28 4d 4b 44 49 52 29  INDOWS..$(MKDIR)
4c30: 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 49   $(subst /,\,$(I
4c40: 4e 53 54 41 4c 4c 44 49 52 29 29 0a 09 24 28 4d  NSTALLDIR))..$(M
4c50: 56 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24  V) $(subst /,\,$
4c60: 28 41 50 50 4e 41 4d 45 29 29 20 24 28 73 75 62  (APPNAME)) $(sub
4c70: 73 74 20 2f 2c 5c 2c 24 28 49 4e 53 54 41 4c 4c  st /,\,$(INSTALL
4c80: 44 49 52 29 29 0a 65 6c 73 65 0a 09 24 28 4d 4b  DIR)).else..$(MK
4c90: 44 49 52 29 20 24 28 49 4e 53 54 41 4c 4c 44 49  DIR) $(INSTALLDI
4ca0: 52 29 0a 09 24 28 4d 56 29 20 24 28 41 50 50 4e  R)..$(MV) $(APPN
4cb0: 41 4d 45 29 20 24 28 49 4e 53 54 41 4c 4c 44 49  AME) $(INSTALLDI
4cc0: 52 29 0a 65 6e 64 69 66 0a 0a 24 28 4f 42 4a 44  R).endif..$(OBJD
4cd0: 49 52 29 3a 0a 69 66 64 65 66 20 55 53 45 5f 57  IR):.ifdef USE_W
4ce0: 49 4e 44 4f 57 53 0a 09 24 28 4d 4b 44 49 52 29  INDOWS..$(MKDIR)
4cf0: 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f   $(subst /,\,$(O
4d00: 42 4a 44 49 52 29 29 0a 65 6c 73 65 0a 09 24 28  BJDIR)).else..$(
4d10: 4d 4b 44 49 52 29 20 24 28 4f 42 4a 44 49 52 29  MKDIR) $(OBJDIR)
4d20: 0a 65 6e 64 69 66 0a 0a 24 28 4f 42 4a 44 49 52  .endif..$(OBJDIR
4d30: 29 2f 74 72 61 6e 73 6c 61 74 65 3a 09 24 28 53  )/translate:.$(S
4d40: 52 43 44 49 52 29 2f 74 72 61 6e 73 6c 61 74 65  RCDIR)/translate
4d50: 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f 20 24 28  .c..$(BCC) -o $(
4d60: 4f 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c 61 74  OBJDIR)/translat
4d70: 65 20 24 28 53 52 43 44 49 52 29 2f 74 72 61 6e  e $(SRCDIR)/tran
4d80: 73 6c 61 74 65 2e 63 0a 0a 24 28 4f 42 4a 44 49  slate.c..$(OBJDI
4d90: 52 29 2f 6d 61 6b 65 68 65 61 64 65 72 73 3a 09  R)/makeheaders:.
4da0: 24 28 53 52 43 44 49 52 29 2f 6d 61 6b 65 68 65  $(SRCDIR)/makehe
4db0: 61 64 65 72 73 2e 63 0a 09 24 28 42 43 43 29 20  aders.c..$(BCC) 
4dc0: 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f 6d 61 6b  -o $(OBJDIR)/mak
4dd0: 65 68 65 61 64 65 72 73 20 24 28 53 52 43 44 49  eheaders $(SRCDI
4de0: 52 29 2f 6d 61 6b 65 68 65 61 64 65 72 73 2e 63  R)/makeheaders.c
4df0: 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e  ..$(OBJDIR)/mkin
4e00: 64 65 78 3a 09 24 28 53 52 43 44 49 52 29 2f 6d  dex:.$(SRCDIR)/m
4e10: 6b 69 6e 64 65 78 2e 63 0a 09 24 28 42 43 43 29  kindex.c..$(BCC)
4e20: 20 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f 6d 6b   -o $(OBJDIR)/mk
4e30: 69 6e 64 65 78 20 24 28 53 52 43 44 49 52 29 2f  index $(SRCDIR)/
4e40: 6d 6b 69 6e 64 65 78 2e 63 0a 0a 24 28 56 45 52  mkindex.c..$(VER
4e50: 53 49 4f 4e 29 3a 20 24 28 53 52 43 44 49 52 29  SION): $(SRCDIR)
4e60: 2f 6d 6b 76 65 72 73 69 6f 6e 2e 63 0a 09 24 28  /mkversion.c..$(
4e70: 42 43 43 29 20 2d 6f 20 24 28 4f 42 4a 44 49 52  BCC) -o $(OBJDIR
4e80: 29 2f 76 65 72 73 69 6f 6e 20 24 28 53 52 43 44  )/version $(SRCD
4e90: 49 52 29 2f 6d 6b 76 65 72 73 69 6f 6e 2e 63 0a  IR)/mkversion.c.
4ea0: 0a 23 20 57 41 52 4e 49 4e 47 2e 20 44 41 4e 47  .# WARNING. DANG
4eb0: 45 52 2e 20 52 75 6e 6e 69 6e 67 20 74 68 65 20  ER. Running the 
4ec0: 74 65 73 74 20 73 75 69 74 65 20 6d 6f 64 69 66  test suite modif
4ed0: 69 65 73 20 74 68 65 20 72 65 70 6f 73 69 74 6f  ies the reposito
4ee0: 72 79 20 74 68 65 0a 23 20 62 75 69 6c 64 20 69  ry the.# build i
4ef0: 73 20 64 6f 6e 65 20 66 72 6f 6d 2c 20 69 2e 65  s done from, i.e
4f00: 2e 20 74 68 65 20 63 68 65 63 6b 6f 75 74 20 62  . the checkout b
4f10: 65 6c 6f 6e 67 73 20 74 6f 2e 20 44 6f 20 6e 6f  elongs to. Do no
4f20: 74 20 73 79 6e 63 2f 70 75 73 68 0a 23 20 74 68  t sync/push.# th
4f30: 65 20 72 65 70 6f 73 69 74 6f 72 79 20 61 66 74  e repository aft
4f40: 65 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 74  er running the t
4f50: 65 73 74 73 2e 0a 74 65 73 74 3a 09 24 28 4f 42  ests..test:.$(OB
4f60: 4a 44 49 52 29 20 24 28 41 50 50 4e 41 4d 45 29  JDIR) $(APPNAME)
4f70: 0a 09 24 28 54 43 4c 53 48 29 20 24 28 53 52 43  ..$(TCLSH) $(SRC
4f80: 44 49 52 29 2f 2e 2e 2f 74 65 73 74 2f 74 65 73  DIR)/../test/tes
4f90: 74 65 72 2e 74 63 6c 20 24 28 41 50 50 4e 41 4d  ter.tcl $(APPNAM
4fa0: 45 29 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 56 45  E)..$(OBJDIR)/VE
4fb0: 52 53 49 4f 4e 2e 68 3a 09 24 28 53 52 43 44 49  RSION.h:.$(SRCDI
4fc0: 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73 74 2e 75  R)/../manifest.u
4fd0: 75 69 64 20 24 28 53 52 43 44 49 52 29 2f 2e 2e  uid $(SRCDIR)/..
4fe0: 2f 6d 61 6e 69 66 65 73 74 20 24 28 56 45 52 53  /manifest $(VERS
4ff0: 49 4f 4e 29 0a 09 24 28 56 45 52 53 49 4f 4e 29  ION)..$(VERSION)
5000: 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61   $(SRCDIR)/../ma
5010: 6e 69 66 65 73 74 2e 75 75 69 64 20 24 28 53 52  nifest.uuid $(SR
5020: 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73  CDIR)/../manifes
5030: 74 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 56  t $(SRCDIR)/../V
5040: 45 52 53 49 4f 4e 20 3e 24 28 4f 42 4a 44 49 52  ERSION >$(OBJDIR
5050: 29 2f 56 45 52 53 49 4f 4e 2e 68 0a 0a 23 20 54  )/VERSION.h..# T
5060: 68 65 20 55 53 45 5f 53 59 53 54 45 4d 5f 53 51  he USE_SYSTEM_SQ
5070: 4c 49 54 45 20 76 61 72 69 61 62 6c 65 20 6d 61  LITE variable ma
5080: 79 20 62 65 20 75 6e 64 65 66 69 6e 65 64 2c 20  y be undefined, 
5090: 73 65 74 20 74 6f 20 30 2c 20 6f 72 20 73 65 74  set to 0, or set
50a0: 0a 23 20 74 6f 20 31 2e 20 49 66 20 69 74 20 69  .# to 1. If it i
50b0: 73 20 73 65 74 20 74 6f 20 31 2c 20 74 68 65 6e  s set to 1, then
50c0: 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65 65   there is no nee
50d0: 64 20 74 6f 20 62 75 69 6c 64 20 6f 72 20 6c 69  d to build or li
50e0: 6e 6b 0a 23 20 74 68 65 20 73 71 6c 69 74 65 33  nk.# the sqlite3
50f0: 2e 6f 20 6f 62 6a 65 63 74 2e 20 49 6e 73 74 65  .o object. Inste
5100: 61 64 2c 20 74 68 65 20 73 79 73 74 65 6d 20 73  ad, the system s
5110: 71 6c 69 74 65 20 77 69 6c 6c 20 62 65 20 6c 69  qlite will be li
5120: 6e 6b 65 64 0a 23 20 75 73 69 6e 67 20 2d 6c 73  nked.# using -ls
5130: 71 6c 69 74 65 33 2e 0a 53 51 4c 49 54 45 33 5f  qlite3..SQLITE3_
5140: 4f 42 4a 2e 31 20 3d 0a 53 51 4c 49 54 45 33 5f  OBJ.1 =.SQLITE3_
5150: 4f 42 4a 2e 30 20 3d 20 24 28 4f 42 4a 44 49 52  OBJ.0 = $(OBJDIR
5160: 29 2f 73 71 6c 69 74 65 33 2e 6f 0a 53 51 4c 49  )/sqlite3.o.SQLI
5170: 54 45 33 5f 4f 42 4a 2e 20 20 3d 20 24 28 53 51  TE3_OBJ.  = $(SQ
5180: 4c 49 54 45 33 5f 4f 42 4a 2e 30 29 0a 0a 45 58  LITE3_OBJ.0)..EX
5190: 54 52 41 4f 42 4a 20 3d 20 5c 0a 20 20 24 28 53  TRAOBJ = \.  $(S
51a0: 51 4c 49 54 45 33 5f 4f 42 4a 2e 24 28 55 53 45  QLITE3_OBJ.$(USE
51b0: 5f 53 59 53 54 45 4d 5f 53 51 4c 49 54 45 29 29  _SYSTEM_SQLITE))
51c0: 20 5c 0a 20 20 24 28 4f 42 4a 44 49 52 29 2f 73   \.  $(OBJDIR)/s
51d0: 68 65 6c 6c 2e 6f 20 5c 0a 20 20 24 28 4f 42 4a  hell.o \.  $(OBJ
51e0: 44 49 52 29 2f 74 68 2e 6f 20 5c 0a 20 20 24 28  DIR)/th.o \.  $(
51f0: 4f 42 4a 44 49 52 29 2f 74 68 5f 6c 61 6e 67 2e  OBJDIR)/th_lang.
5200: 6f 20 5c 0a 20 20 24 28 4f 42 4a 44 49 52 29 2f  o \.  $(OBJDIR)/
5210: 74 68 5f 74 63 6c 2e 6f 20 5c 0a 20 20 24 28 4f  th_tcl.o \.  $(O
5220: 42 4a 44 49 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c  BJDIR)/cson_amal
5230: 67 61 6d 61 74 69 6f 6e 2e 6f 0a 0a 7a 6c 69 62  gamation.o..zlib
5240: 3a 0a 09 24 28 4d 41 4b 45 29 20 2d 43 20 24 28  :..$(MAKE) -C $(
5250: 5a 4c 49 42 44 49 52 29 20 50 52 45 46 49 58 3d  ZLIBDIR) PREFIX=
5260: 24 28 50 52 45 46 49 58 29 20 2d 66 20 77 69 6e  $(PREFIX) -f win
5270: 33 32 2f 4d 61 6b 65 66 69 6c 65 2e 67 63 63 20  32/Makefile.gcc 
5280: 6c 69 62 7a 2e 61 0a 0a 63 6c 65 61 6e 2d 7a 6c  libz.a..clean-zl
5290: 69 62 3a 0a 09 24 28 4d 41 4b 45 29 20 2d 43 20  ib:..$(MAKE) -C 
52a0: 24 28 5a 4c 49 42 44 49 52 29 20 50 52 45 46 49  $(ZLIBDIR) PREFI
52b0: 58 3d 24 28 50 52 45 46 49 58 29 20 2d 66 20 77  X=$(PREFIX) -f w
52c0: 69 6e 33 32 2f 4d 61 6b 65 66 69 6c 65 2e 67 63  in32/Makefile.gc
52d0: 63 20 63 6c 65 61 6e 0a 0a 6f 70 65 6e 73 73 6c  c clean..openssl
52e0: 3a 09 7a 6c 69 62 0a 09 63 64 20 24 28 4f 50 45  :.zlib..cd $(OPE
52f0: 4e 53 53 4c 4c 49 42 44 49 52 29 3b 2e 2f 43 6f  NSSLLIBDIR);./Co
5300: 6e 66 69 67 75 72 65 20 2d 2d 63 72 6f 73 73 2d  nfigure --cross-
5310: 63 6f 6d 70 69 6c 65 2d 70 72 65 66 69 78 3d 24  compile-prefix=$
5320: 28 50 52 45 46 49 58 29 20 2d 2d 77 69 74 68 2d  (PREFIX) --with-
5330: 7a 6c 69 62 2d 6c 69 62 3d 24 28 50 57 44 29 2f  zlib-lib=$(PWD)/
5340: 24 28 5a 4c 49 42 44 49 52 29 20 2d 2d 77 69 74  $(ZLIBDIR) --wit
5350: 68 2d 7a 6c 69 62 2d 69 6e 63 6c 75 64 65 3d 24  h-zlib-include=$
5360: 28 50 57 44 29 2f 24 28 5a 4c 49 42 44 49 52 29  (PWD)/$(ZLIBDIR)
5370: 20 7a 6c 69 62 20 6d 69 6e 67 77 0a 09 24 28 4d   zlib mingw..$(M
5380: 41 4b 45 29 20 2d 43 20 24 28 4f 50 45 4e 53 53  AKE) -C $(OPENSS
5390: 4c 4c 49 42 44 49 52 29 20 62 75 69 6c 64 5f 6c  LLIBDIR) build_l
53a0: 69 62 73 0a 0a 63 6c 65 61 6e 2d 6f 70 65 6e 73  ibs..clean-opens
53b0: 73 6c 3a 0a 09 24 28 4d 41 4b 45 29 20 2d 43 20  sl:..$(MAKE) -C 
53c0: 24 28 4f 50 45 4e 53 53 4c 4c 49 42 44 49 52 29  $(OPENSSLLIBDIR)
53d0: 20 63 6c 65 61 6e 0a 0a 74 63 6c 3a 0a 09 63 64   clean..tcl:..cd
53e0: 20 24 28 54 43 4c 53 52 43 44 49 52 29 2f 77 69   $(TCLSRCDIR)/wi
53f0: 6e 3b 2e 2f 63 6f 6e 66 69 67 75 72 65 0a 09 24  n;./configure..$
5400: 28 4d 41 4b 45 29 20 2d 43 20 24 28 54 43 4c 53  (MAKE) -C $(TCLS
5410: 52 43 44 49 52 29 2f 77 69 6e 20 24 28 54 43 4c  RCDIR)/win $(TCL
5420: 54 41 52 47 45 54 29 0a 0a 63 6c 65 61 6e 2d 74  TARGET)..clean-t
5430: 63 6c 3a 0a 09 24 28 4d 41 4b 45 29 20 2d 43 20  cl:..$(MAKE) -C 
5440: 24 28 54 43 4c 53 52 43 44 49 52 29 2f 77 69 6e  $(TCLSRCDIR)/win
5450: 20 64 69 73 74 63 6c 65 61 6e 0a 0a 24 28 41 50   distclean..$(AP
5460: 50 4e 41 4d 45 29 3a 09 24 28 4f 42 4a 44 49 52  PNAME):.$(OBJDIR
5470: 29 2f 68 65 61 64 65 72 73 20 24 28 4f 42 4a 29  )/headers $(OBJ)
5480: 20 24 28 45 58 54 52 41 4f 42 4a 29 20 24 28 4f   $(EXTRAOBJ) $(O
5490: 42 4a 44 49 52 29 2f 66 6f 73 73 69 6c 2e 6f 20  BJDIR)/fossil.o 
54a0: 7a 6c 69 62 0a 09 24 28 54 43 43 29 20 2d 6f 20  zlib..$(TCC) -o 
54b0: 24 28 41 50 50 4e 41 4d 45 29 20 24 28 4f 42 4a  $(APPNAME) $(OBJ
54c0: 29 20 24 28 45 58 54 52 41 4f 42 4a 29 20 24 28  ) $(EXTRAOBJ) $(
54d0: 4c 49 42 29 20 24 28 4f 42 4a 44 49 52 29 2f 66  LIB) $(OBJDIR)/f
54e0: 6f 73 73 69 6c 2e 6f 0a 0a 23 20 54 68 69 73 20  ossil.o..# This 
54f0: 72 75 6c 65 20 70 72 65 76 65 6e 74 73 20 6d 61  rule prevents ma
5500: 6b 65 20 66 72 6f 6d 20 75 73 69 6e 67 20 69 74  ke from using it
5510: 73 20 64 65 66 61 75 6c 74 20 72 75 6c 65 73 20  s default rules 
5520: 74 6f 20 74 72 79 20 62 75 69 6c 64 0a 23 20 61  to try build.# a
5530: 6e 20 65 78 65 63 75 74 61 62 6c 65 20 6e 61 6d  n executable nam
5540: 65 64 20 22 6d 61 6e 69 66 65 73 74 22 20 6f 75  ed "manifest" ou
5550: 74 20 6f 66 20 74 68 65 20 66 69 6c 65 20 6e 61  t of the file na
5560: 6d 65 64 20 22 6d 61 6e 69 66 65 73 74 2e 63 22  med "manifest.c"
5570: 0a 23 0a 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f  .#.$(SRCDIR)/../
5580: 6d 61 6e 69 66 65 73 74 3a 0a 09 23 20 6e 6f 6f  manifest:..# noo
5590: 70 0a 0a 63 6c 65 61 6e 3a 0a 69 66 64 65 66 20  p..clean:.ifdef 
55a0: 55 53 45 5f 57 49 4e 44 4f 57 53 0a 09 24 28 52  USE_WINDOWS..$(R
55b0: 4d 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24  M) $(subst /,\,$
55c0: 28 41 50 50 4e 41 4d 45 29 29 0a 09 24 28 52 4d  (APPNAME))..$(RM
55d0: 44 49 52 29 20 24 28 73 75 62 73 74 20 2f 2c 5c  DIR) $(subst /,\
55e0: 2c 24 28 4f 42 4a 44 49 52 29 29 0a 65 6c 73 65  ,$(OBJDIR)).else
55f0: 0a 09 24 28 52 4d 29 20 24 28 41 50 50 4e 41 4d  ..$(RM) $(APPNAM
5600: 45 29 0a 09 24 28 52 4d 44 49 52 29 20 24 28 4f  E)..$(RMDIR) $(O
5610: 42 4a 44 49 52 29 0a 65 6e 64 69 66 0a 0a 73 65  BJDIR).endif..se
5620: 74 75 70 3a 20 24 28 4f 42 4a 44 49 52 29 20 24  tup: $(OBJDIR) $
5630: 28 41 50 50 4e 41 4d 45 29 0a 09 24 28 4d 41 4b  (APPNAME)..$(MAK
5640: 45 4e 53 49 53 29 20 2e 2f 73 65 74 75 70 2f 66  ENSIS) ./setup/f
5650: 6f 73 73 69 6c 2e 6e 73 69 0a 0a 69 6e 6e 6f 73  ossil.nsi..innos
5660: 65 74 75 70 3a 20 24 28 4f 42 4a 44 49 52 29 20  etup: $(OBJDIR) 
5670: 24 28 41 50 50 4e 41 4d 45 29 0a 09 24 28 49 4e  $(APPNAME)..$(IN
5680: 4e 4f 53 45 54 55 50 29 20 2e 2f 73 65 74 75 70  NOSETUP) ./setup
5690: 2f 66 6f 73 73 69 6c 2e 69 73 73 20 2d 44 41 70  /fossil.iss -DAp
56a0: 70 56 65 72 73 69 6f 6e 3d 24 28 73 68 65 6c 6c  pVersion=$(shell
56b0: 20 24 28 43 41 54 29 20 2e 2f 56 45 52 53 49 4f   $(CAT) ./VERSIO
56c0: 4e 29 0a 7d 0a 0a 73 65 74 20 6d 68 61 72 67 73  N).}..set mhargs
56d0: 20 7b 7d 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c   {}.foreach s [l
56e0: 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 69  sort $src] {.  i
56f0: 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74  f {[string lengt
5700: 68 20 24 6d 68 61 72 67 73 5d 20 3e 20 30 7d 20  h $mhargs] > 0} 
5710: 7b 61 70 70 65 6e 64 20 6d 68 61 72 67 73 20 22  {append mhargs "
5720: 20 5c 5c 5c 6e 5c 74 5c 74 22 7d 0a 20 20 61 70   \\\n\t\t"}.  ap
5730: 70 65 6e 64 20 6d 68 61 72 67 73 20 22 5c 24 28  pend mhargs "\$(
5740: 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 3a  OBJDIR)/${s}_.c:
5750: 5c 24 28 4f 42 4a 44 49 52 29 2f 24 73 2e 68 22  \$(OBJDIR)/$s.h"
5760: 0a 20 20 73 65 74 20 65 78 74 72 61 5f 68 28 24  .  set extra_h($
5770: 73 29 20 7b 7d 0a 7d 0a 61 70 70 65 6e 64 20 6d  s) {}.}.append m
5780: 68 61 72 67 73 20 22 20 5c 5c 5c 6e 5c 74 5c 74  hargs " \\\n\t\t
5790: 5c 24 28 53 52 43 44 49 52 29 2f 73 71 6c 69 74  \$(SRCDIR)/sqlit
57a0: 65 33 2e 68 22 0a 61 70 70 65 6e 64 20 6d 68 61  e3.h".append mha
57b0: 72 67 73 20 22 20 5c 5c 5c 6e 5c 74 5c 74 5c 24  rgs " \\\n\t\t\$
57c0: 28 53 52 43 44 49 52 29 2f 74 68 2e 68 22 0a 61  (SRCDIR)/th.h".a
57d0: 70 70 65 6e 64 20 6d 68 61 72 67 73 20 22 20 5c  ppend mhargs " \
57e0: 5c 5c 6e 5c 74 5c 74 5c 24 28 4f 42 4a 44 49 52  \\n\t\t\$(OBJDIR
57f0: 29 2f 56 45 52 53 49 4f 4e 2e 68 22 0a 77 72 69  )/VERSION.h".wri
5800: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
5810: 2f 70 61 67 65 5f 69 6e 64 65 78 2e 68 3a 20 5c  /page_index.h: \
5820: 24 28 54 52 41 4e 53 5f 53 52 43 29 20 5c 24 28  $(TRANS_SRC) \$(
5830: 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64 65 78 22  OBJDIR)/mkindex"
5840: 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 4d  .writeln "\t\$(M
5850: 4b 49 4e 44 45 58 29 20 5c 24 28 54 52 41 4e 53  KINDEX) \$(TRANS
5860: 5f 53 52 43 29 20 3e 24 40 5c 6e 22 0a 77 72 69  _SRC) >$@\n".wri
5870: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
5880: 2f 68 65 61 64 65 72 73 3a 5c 74 5c 24 28 4f 42  /headers:\t\$(OB
5890: 4a 44 49 52 29 2f 70 61 67 65 5f 69 6e 64 65 78  JDIR)/page_index
58a0: 2e 68 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6d 61  .h \$(OBJDIR)/ma
58b0: 6b 65 68 65 61 64 65 72 73 20 5c 24 28 4f 42 4a  keheaders \$(OBJ
58c0: 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e 68 22 0a  DIR)/VERSION.h".
58d0: 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 4d 41  writeln "\t\$(MA
58e0: 4b 45 48 45 41 44 45 52 53 29 20 24 6d 68 61 72  KEHEADERS) $mhar
58f0: 67 73 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 65  gs".writeln "\te
5900: 63 68 6f 20 44 6f 6e 65 20 3e 5c 24 28 4f 42 4a  cho Done >\$(OBJ
5910: 44 49 52 29 2f 68 65 61 64 65 72 73 5c 6e 22 0a  DIR)/headers\n".
5920: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
5930: 49 52 29 2f 68 65 61 64 65 72 73 3a 20 4d 61 6b  IR)/headers: Mak
5940: 65 66 69 6c 65 5c 6e 22 0a 77 72 69 74 65 6c 6e  efile\n".writeln
5950: 20 22 4d 61 6b 65 66 69 6c 65 3a 5c 6e 22 0a 73   "Makefile:\n".s
5960: 65 74 20 65 78 74 72 61 5f 68 28 6d 61 69 6e 29  et extra_h(main)
5970: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 70 61 67 65   \$(OBJDIR)/page
5980: 5f 69 6e 64 65 78 2e 68 0a 0a 66 6f 72 65 61 63  _index.h..foreac
5990: 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d  h s [lsort $src]
59a0: 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 24   {.  writeln "\$
59b0: 28 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63  (OBJDIR)/${s}_.c
59c0: 3a 5c 74 5c 24 28 53 52 43 44 49 52 29 2f 24 73  :\t\$(SRCDIR)/$s
59d0: 2e 63 20 5c 24 28 4f 42 4a 44 49 52 29 2f 74 72  .c \$(OBJDIR)/tr
59e0: 61 6e 73 6c 61 74 65 22 0a 20 20 77 72 69 74 65  anslate".  write
59f0: 6c 6e 20 22 5c 74 5c 24 28 54 52 41 4e 53 4c 41  ln "\t\$(TRANSLA
5a00: 54 45 29 20 5c 24 28 53 52 43 44 49 52 29 2f 24  TE) \$(SRCDIR)/$
5a10: 73 2e 63 20 3e 5c 24 28 4f 42 4a 44 49 52 29 2f  s.c >\$(OBJDIR)/
5a20: 24 7b 73 7d 5f 2e 63 5c 6e 22 0a 20 20 77 72 69  ${s}_.c\n".  wri
5a30: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
5a40: 2f 24 73 2e 6f 3a 5c 74 5c 24 28 4f 42 4a 44 49  /$s.o:\t\$(OBJDI
5a50: 52 29 2f 24 7b 73 7d 5f 2e 63 20 5c 24 28 4f 42  R)/${s}_.c \$(OB
5a60: 4a 44 49 52 29 2f 24 73 2e 68 20 24 65 78 74 72  JDIR)/$s.h $extr
5a70: 61 5f 68 28 24 73 29 20 5c 24 28 53 52 43 44 49  a_h($s) \$(SRCDI
5a80: 52 29 2f 63 6f 6e 66 69 67 2e 68 22 0a 20 20 77  R)/config.h".  w
5a90: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43  riteln "\t\$(XTC
5aa0: 43 29 20 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29  C) -o \$(OBJDIR)
5ab0: 2f 24 73 2e 6f 20 2d 63 20 5c 24 28 4f 42 4a 44  /$s.o -c \$(OBJD
5ac0: 49 52 29 2f 24 7b 73 7d 5f 2e 63 5c 6e 22 0a 20  IR)/${s}_.c\n". 
5ad0: 20 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a   writeln "\$(OBJ
5ae0: 44 49 52 29 2f 24 7b 73 7d 2e 68 3a 5c 74 5c 24  DIR)/${s}.h:\t\$
5af0: 28 4f 42 4a 44 49 52 29 2f 68 65 61 64 65 72 73  (OBJDIR)/headers
5b00: 5c 6e 22 0a 7d 0a 0a 73 65 74 20 4d 49 4e 47 57  \n".}..set MINGW
5b10: 5f 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20  _SQLITE_OPTIONS 
5b20: 24 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 0a  $SQLITE_OPTIONS.
5b30: 6c 61 70 70 65 6e 64 20 4d 49 4e 47 57 5f 53 51  lappend MINGW_SQ
5b40: 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 5f  LITE_OPTIONS -D_
5b50: 48 41 56 45 5f 5f 4d 49 4e 47 57 5f 48 0a 6c 61  HAVE__MINGW_H.la
5b60: 70 70 65 6e 64 20 4d 49 4e 47 57 5f 53 51 4c 49  ppend MINGW_SQLI
5b70: 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 53 51 4c  TE_OPTIONS -DSQL
5b80: 49 54 45 5f 55 53 45 5f 4d 41 4c 4c 4f 43 5f 48  ITE_USE_MALLOC_H
5b90: 0a 6c 61 70 70 65 6e 64 20 4d 49 4e 47 57 5f 53  .lappend MINGW_S
5ba0: 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44  QLITE_OPTIONS -D
5bb0: 53 51 4c 49 54 45 5f 55 53 45 5f 4d 53 49 5a 45  SQLITE_USE_MSIZE
5bc0: 0a 0a 73 65 74 20 6a 20 22 20 5c 5c 5c 6e 20 20  ..set j " \\\n  
5bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22                 "
5be0: 0a 77 72 69 74 65 6c 6e 20 22 53 51 4c 49 54 45  .writeln "SQLITE
5bf0: 5f 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e  _OPTIONS = [join
5c00: 20 24 4d 49 4e 47 57 5f 53 51 4c 49 54 45 5f 4f   $MINGW_SQLITE_O
5c10: 50 54 49 4f 4e 53 20 24 6a 5d 5c 6e 22 0a 73 65  PTIONS $j]\n".se
5c20: 74 20 6a 20 22 20 5c 5c 5c 6e 20 20 20 20 20 20  t j " \\\n      
5c30: 20 20 20 20 20 20 20 20 20 20 22 0a 77 72 69 74            ".writ
5c40: 65 6c 6e 20 22 53 48 45 4c 4c 5f 4f 50 54 49 4f  eln "SHELL_OPTIO
5c50: 4e 53 20 3d 20 5b 6a 6f 69 6e 20 24 53 48 45 4c  NS = [join $SHEL
5c60: 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20  L_WIN32_OPTIONS 
5c70: 24 6a 5d 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20  $j]\n"..writeln 
5c80: 22 5c 24 28 4f 42 4a 44 49 52 29 2f 73 71 6c 69  "\$(OBJDIR)/sqli
5c90: 74 65 33 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49  te3.o:\t\$(SRCDI
5ca0: 52 29 2f 73 71 6c 69 74 65 33 2e 63 20 5c 24 28  R)/sqlite3.c \$(
5cb0: 53 52 43 44 49 52 29 2f 2e 2e 2f 77 69 6e 2f 4d  SRCDIR)/../win/M
5cc0: 61 6b 65 66 69 6c 65 2e 6d 69 6e 67 77 22 0a 77  akefile.mingw".w
5cd0: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43  riteln "\t\$(XTC
5ce0: 43 29 20 5c 24 28 53 51 4c 49 54 45 5f 4f 50 54  C) \$(SQLITE_OPT
5cf0: 49 4f 4e 53 29 20 5c 24 28 53 51 4c 49 54 45 5f  IONS) \$(SQLITE_
5d00: 43 46 4c 41 47 53 29 20 2d 63 20 5c 24 28 53 52  CFLAGS) -c \$(SR
5d10: 43 44 49 52 29 2f 73 71 6c 69 74 65 33 2e 63 20  CDIR)/sqlite3.c 
5d20: 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 73 71  -o \$(OBJDIR)/sq
5d30: 6c 69 74 65 33 2e 6f 5c 6e 22 0a 0a 77 72 69 74  lite3.o\n"..writ
5d40: 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f  eln "\$(OBJDIR)/
5d50: 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f  cson_amalgamatio
5d60: 6e 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49 52 29  n.o:\t\$(SRCDIR)
5d70: 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69  /cson_amalgamati
5d80: 6f 6e 2e 63 22 0a 77 72 69 74 65 6c 6e 20 22 5c  on.c".writeln "\
5d90: 74 5c 24 28 58 54 43 43 29 20 2d 63 20 5c 24 28  t\$(XTCC) -c \$(
5da0: 53 52 43 44 49 52 29 2f 63 73 6f 6e 5f 61 6d 61  SRCDIR)/cson_ama
5db0: 6c 67 61 6d 61 74 69 6f 6e 2e 63 20 2d 6f 20 5c  lgamation.c -o \
5dc0: 24 28 4f 42 4a 44 49 52 29 2f 63 73 6f 6e 5f 61  $(OBJDIR)/cson_a
5dd0: 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 6f 5c 6e 22  malgamation.o\n"
5de0: 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a  .writeln "\$(OBJ
5df0: 44 49 52 29 2f 6a 73 6f 6e 2e 6f 20 5c 24 28 4f  DIR)/json.o \$(O
5e00: 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 61 72 74 69  BJDIR)/json_arti
5e10: 66 61 63 74 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  fact.o \$(OBJDIR
5e20: 29 2f 6a 73 6f 6e 5f 62 72 61 6e 63 68 2e 6f 20  )/json_branch.o 
5e30: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
5e40: 63 6f 6e 66 69 67 2e 6f 20 5c 24 28 4f 42 4a 44  config.o \$(OBJD
5e50: 49 52 29 2f 6a 73 6f 6e 5f 64 69 66 66 2e 6f 20  IR)/json_diff.o 
5e60: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
5e70: 64 69 72 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  dir.o \$(OBJDIR)
5e80: 2f 6a 73 6f 73 5f 66 69 6e 66 6f 2e 6f 20 5c 24  /jsos_finfo.o \$
5e90: 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 6c 6f  (OBJDIR)/json_lo
5ea0: 67 69 6e 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  gin.o \$(OBJDIR)
5eb0: 2f 6a 73 6f 6e 5f 71 75 65 72 79 2e 6f 20 5c 24  /json_query.o \$
5ec0: 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 72 65  (OBJDIR)/json_re
5ed0: 70 6f 72 74 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  port.o \$(OBJDIR
5ee0: 29 2f 6a 73 6f 6e 5f 73 74 61 74 75 73 2e 6f 20  )/json_status.o 
5ef0: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
5f00: 74 61 67 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  tag.o \$(OBJDIR)
5f10: 2f 6a 73 6f 6e 5f 74 69 6d 65 6c 69 6e 65 2e 6f  /json_timeline.o
5f20: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e   \$(OBJDIR)/json
5f30: 5f 75 73 65 72 2e 6f 20 5c 24 28 4f 42 4a 44 49  _user.o \$(OBJDI
5f40: 52 29 2f 6a 73 6f 6e 5f 77 69 6b 69 2e 6f 20 3a  R)/json_wiki.o :
5f50: 20 5c 24 28 53 52 43 44 49 52 29 2f 6a 73 6f 6e   \$(SRCDIR)/json
5f60: 5f 64 65 74 61 69 6c 2e 68 5c 6e 22 0a 0a 77 72  _detail.h\n"..wr
5f70: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
5f80: 29 2f 73 68 65 6c 6c 2e 6f 3a 5c 74 5c 24 28 53  )/shell.o:\t\$(S
5f90: 52 43 44 49 52 29 2f 73 68 65 6c 6c 2e 63 20 5c  RCDIR)/shell.c \
5fa0: 24 28 53 52 43 44 49 52 29 2f 73 71 6c 69 74 65  $(SRCDIR)/sqlite
5fb0: 33 2e 68 20 5c 24 28 53 52 43 44 49 52 29 2f 2e  3.h \$(SRCDIR)/.
5fc0: 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 6d  ./win/Makefile.m
5fd0: 69 6e 67 77 22 0a 77 72 69 74 65 6c 6e 20 22 5c  ingw".writeln "\
5fe0: 74 5c 24 28 58 54 43 43 29 20 5c 24 28 53 48 45  t\$(XTCC) \$(SHE
5ff0: 4c 4c 5f 4f 50 54 49 4f 4e 53 29 20 5c 24 28 53  LL_OPTIONS) \$(S
6000: 48 45 4c 4c 5f 43 46 4c 41 47 53 29 20 2d 63 20  HELL_CFLAGS) -c 
6010: 5c 24 28 53 52 43 44 49 52 29 2f 73 68 65 6c 6c  \$(SRCDIR)/shell
6020: 2e 63 20 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29  .c -o \$(OBJDIR)
6030: 2f 73 68 65 6c 6c 2e 6f 5c 6e 22 0a 0a 77 72 69  /shell.o\n"..wri
6040: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
6050: 2f 74 68 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49  /th.o:\t\$(SRCDI
6060: 52 29 2f 74 68 2e 63 22 0a 77 72 69 74 65 6c 6e  R)/th.c".writeln
6070: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 2d 63 20   "\t\$(XTCC) -c 
6080: 5c 24 28 53 52 43 44 49 52 29 2f 74 68 2e 63 20  \$(SRCDIR)/th.c 
6090: 2d 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 74 68  -o \$(OBJDIR)/th
60a0: 2e 6f 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22  .o\n"..writeln "
60b0: 5c 24 28 4f 42 4a 44 49 52 29 2f 74 68 5f 6c 61  \$(OBJDIR)/th_la
60c0: 6e 67 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49 52  ng.o:\t\$(SRCDIR
60d0: 29 2f 74 68 5f 6c 61 6e 67 2e 63 22 0a 77 72 69  )/th_lang.c".wri
60e0: 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43 43 29  teln "\t\$(XTCC)
60f0: 20 2d 63 20 5c 24 28 53 52 43 44 49 52 29 2f 74   -c \$(SRCDIR)/t
6100: 68 5f 6c 61 6e 67 2e 63 20 2d 6f 20 5c 24 28 4f  h_lang.c -o \$(O
6110: 42 4a 44 49 52 29 2f 74 68 5f 6c 61 6e 67 2e 6f  BJDIR)/th_lang.o
6120: 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 24  \n"..writeln "\$
6130: 28 4f 42 4a 44 49 52 29 2f 74 68 5f 74 63 6c 2e  (OBJDIR)/th_tcl.
6140: 6f 3a 5c 74 5c 24 28 53 52 43 44 49 52 29 2f 74  o:\t\$(SRCDIR)/t
6150: 68 5f 74 63 6c 2e 63 22 0a 77 72 69 74 65 6c 6e  h_tcl.c".writeln
6160: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 2d 63 20   "\t\$(XTCC) -c 
6170: 5c 24 28 53 52 43 44 49 52 29 2f 74 68 5f 74 63  \$(SRCDIR)/th_tc
6180: 6c 2e 63 20 2d 6f 20 5c 24 28 4f 42 4a 44 49 52  l.c -o \$(OBJDIR
6190: 29 2f 74 68 5f 74 63 6c 2e 6f 5c 6e 22 0a 0a 63  )/th_tcl.o\n"..c
61a0: 6c 6f 73 65 20 24 6f 75 74 70 75 74 5f 66 69 6c  lose $output_fil
61b0: 65 0a 23 0a 23 20 45 6e 64 20 6f 66 20 74 68 65  e.#.# End of the
61c0: 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 6d 69   win/Makefile.mi
61d0: 6e 67 77 20 6f 75 74 70 75 74 0a 23 23 23 23 23  ngw output.#####
61e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
61f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6200: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6210: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6220: 23 23 23 23 23 23 23 23 23 0a 23 23 23 23 23 23  #########.######
6230: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6250: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6260: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6270: 23 23 23 23 23 23 23 23 0a 23 23 23 23 23 23 23  ########.#######
6280: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6290: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
62a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
62b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
62c0: 23 23 23 23 23 23 23 0a 23 20 42 65 67 69 6e 20  #######.# Begin 
62d0: 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 64 6d 63  win/Makefile.dmc
62e0: 20 6f 75 74 70 75 74 0a 23 0a 70 75 74 73 20 22   output.#.puts "
62f0: 62 75 69 6c 64 69 6e 67 20 2e 2e 2f 77 69 6e 2f  building ../win/
6300: 4d 61 6b 65 66 69 6c 65 2e 64 6d 63 22 0a 73 65  Makefile.dmc".se
6310: 74 20 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6f  t output_file [o
6320: 70 65 6e 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66  pen ../win/Makef
6330: 69 6c 65 2e 64 6d 63 20 77 5d 0a 66 63 6f 6e 66  ile.dmc w].fconf
6340: 69 67 75 72 65 20 24 6f 75 74 70 75 74 5f 66 69  igure $output_fi
6350: 6c 65 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e 20  le -translation 
6360: 62 69 6e 61 72 79 0a 0a 77 72 69 74 65 6c 6e 20  binary..writeln 
6370: 7b 23 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  {#.#############
6380: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6390: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
63a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
63b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
63c0: 23 0a 23 20 57 41 52 4e 49 4e 47 3a 20 44 4f 20  #.# WARNING: DO 
63d0: 4e 4f 54 20 45 44 49 54 2c 20 41 55 54 4f 4d 41  NOT EDIT, AUTOMA
63e0: 54 49 43 41 4c 4c 59 20 47 45 4e 45 52 41 54 45  TICALLY GENERATE
63f0: 44 20 46 49 4c 45 20 28 53 45 45 20 22 73 72 63  D FILE (SEE "src
6400: 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 29 0a  /makemake.tcl").
6410: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6420: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6430: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6440: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
6450: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
6460: 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20  .# This file is 
6470: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  automatically ge
6480: 6e 65 72 61 74 65 64 2e 20 20 49 6e 73 74 65 61  nerated.  Instea
6490: 64 20 6f 66 20 65 64 69 74 69 6e 67 20 74 68 69  d of editing thi
64a0: 73 0a 23 20 66 69 6c 65 2c 20 65 64 69 74 20 22  s.# file, edit "
64b0: 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74 68  makemake.tcl" th
64c0: 65 6e 20 72 75 6e 20 22 74 63 6c 73 68 20 6d 61  en run "tclsh ma
64d0: 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74 6f  kemake.tcl".# to
64e0: 20 72 65 67 65 6e 65 72 61 74 65 20 74 68 69 73   regenerate this
64f0: 20 66 69 6c 65 2e 0a 23 0a 42 20 20 20 20 20 20   file..#.B      
6500: 3d 20 2e 2e 0a 53 52 43 44 49 52 20 3d 20 24 42  = ...SRCDIR = $B
6510: 5c 73 72 63 0a 4f 42 4a 44 49 52 20 3d 20 2e 0a  \src.OBJDIR = ..
6520: 4f 20 20 20 20 20 20 3d 20 2e 6f 62 6a 0a 45 20  O      = .obj.E 
6530: 20 20 20 20 20 3d 20 2e 65 78 65 0a 0a 0a 23 20       = .exe...# 
6540: 4d 61 79 62 65 20 44 4d 44 49 52 2c 20 53 53 4c  Maybe DMDIR, SSL
6550: 20 6f 72 20 49 4e 43 4c 20 6e 65 65 64 73 20 61   or INCL needs a
6560: 64 6a 75 73 74 6d 65 6e 74 0a 44 4d 44 49 52 20  djustment.DMDIR 
6570: 20 3d 20 63 3a 5c 44 4d 0a 49 4e 43 4c 20 20 20   = c:\DM.INCL   
6580: 3d 20 2d 49 2e 20 2d 49 24 28 53 52 43 44 49 52  = -I. -I$(SRCDIR
6590: 29 20 2d 49 24 42 5c 77 69 6e 5c 69 6e 63 6c 75  ) -I$B\win\inclu
65a0: 64 65 20 2d 49 24 28 44 4d 44 49 52 29 5c 65 78  de -I$(DMDIR)\ex
65b0: 74 72 61 5c 69 6e 63 6c 75 64 65 0a 0a 23 53 53  tra\include..#SS
65c0: 4c 20 20 20 3d 20 20 2d 44 46 4f 53 53 49 4c 5f  L   =  -DFOSSIL_
65d0: 45 4e 41 42 4c 45 5f 53 53 4c 3d 31 0a 53 53 4c  ENABLE_SSL=1.SSL
65e0: 20 20 20 20 3d 0a 0a 43 46 4c 41 47 53 20 3d 20      =..CFLAGS = 
65f0: 2d 6f 0a 42 43 43 20 20 20 20 3d 20 24 28 44 4d  -o.BCC    = $(DM
6600: 44 49 52 29 5c 62 69 6e 5c 64 6d 63 20 24 28 43  DIR)\bin\dmc $(C
6610: 46 4c 41 47 53 29 0a 54 43 43 20 20 20 20 3d 20  FLAGS).TCC    = 
6620: 24 28 44 4d 44 49 52 29 5c 62 69 6e 5c 64 6d 63  $(DMDIR)\bin\dmc
6630: 20 24 28 43 46 4c 41 47 53 29 20 24 28 44 4d 43   $(CFLAGS) $(DMC
6640: 44 45 46 29 20 24 28 53 53 4c 29 20 24 28 49 4e  DEF) $(SSL) $(IN
6650: 43 4c 29 0a 4c 49 42 53 20 20 20 3d 20 24 28 44  CL).LIBS   = $(D
6660: 4d 44 49 52 29 5c 65 78 74 72 61 5c 6c 69 62 5c  MDIR)\extra\lib\
6670: 20 7a 6c 69 62 20 77 73 6f 63 6b 33 32 20 61 64   zlib wsock32 ad
6680: 76 61 70 69 33 32 0a 7d 0a 77 72 69 74 65 6c 6e  vapi32.}.writeln
6690: 20 22 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53   "SQLITE_OPTIONS
66a0: 20 3d 20 5b 6a 6f 69 6e 20 24 53 51 4c 49 54 45   = [join $SQLITE
66b0: 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d 5d 5c 6e 22  _OPTIONS { }]\n"
66c0: 0a 77 72 69 74 65 6c 6e 20 22 53 48 45 4c 4c 5f  .writeln "SHELL_
66d0: 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e 20  OPTIONS = [join 
66e0: 24 53 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54  $SHELL_WIN32_OPT
66f0: 49 4f 4e 53 20 7b 20 7d 5d 5c 6e 22 0a 77 72 69  IONS { }]\n".wri
6700: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
6710: 22 53 52 43 20 20 20 3d 20 22 0a 66 6f 72 65 61  "SRC   = ".forea
6720: 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63  ch s [lsort $src
6730: 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e  ] {.  writeln -n
6740: 6f 6e 65 77 6c 69 6e 65 20 22 24 7b 73 7d 5f 2e  onewline "${s}_.
6750: 63 20 22 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c  c ".}.writeln "\
6760: 6e 22 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65  n".writeln -none
6770: 77 6c 69 6e 65 20 22 4f 42 4a 20 20 20 3d 20 22  wline "OBJ   = "
6780: 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72  .foreach s [lsor
6790: 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74  t $src] {.  writ
67a0: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
67b0: 5c 24 28 4f 42 4a 44 49 52 29 5c 5c 24 73 5c 24  \$(OBJDIR)\\$s\$
67c0: 4f 20 22 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c  O ".}.writeln "\
67d0: 24 28 4f 42 4a 44 49 52 29 5c 5c 73 68 65 6c 6c  $(OBJDIR)\\shell
67e0: 5c 24 4f 20 5c 24 28 4f 42 4a 44 49 52 29 5c 5c  \$O \$(OBJDIR)\\
67f0: 73 71 6c 69 74 65 33 5c 24 4f 20 5c 24 28 4f 42  sqlite3\$O \$(OB
6800: 4a 44 49 52 29 5c 5c 74 68 5c 24 4f 20 5c 24 28  JDIR)\\th\$O \$(
6810: 4f 42 4a 44 49 52 29 5c 5c 74 68 5f 6c 61 6e 67  OBJDIR)\\th_lang
6820: 5c 24 4f 20 22 0a 77 72 69 74 65 6c 6e 20 7b 0a  \$O ".writeln {.
6830: 0a 52 43 3d 24 28 44 4d 44 49 52 29 5c 62 69 6e  .RC=$(DMDIR)\bin
6840: 5c 72 63 63 0a 52 43 46 4c 41 47 53 3d 2d 33 32  \rcc.RCFLAGS=-32
6850: 20 2d 77 31 20 2d 49 24 28 53 52 43 44 49 52 29   -w1 -I$(SRCDIR)
6860: 20 2f 44 5f 5f 44 4d 43 5f 5f 0a 0a 41 50 50 4e   /D__DMC__..APPN
6870: 41 4d 45 20 3d 20 24 28 4f 42 4a 44 49 52 29 5c  AME = $(OBJDIR)\
6880: 66 6f 73 73 69 6c 24 28 45 29 0a 0a 61 6c 6c 3a  fossil$(E)..all:
6890: 20 24 28 41 50 50 4e 41 4d 45 29 0a 0a 24 28 41   $(APPNAME)..$(A
68a0: 50 50 4e 41 4d 45 29 20 3a 20 74 72 61 6e 73 6c  PPNAME) : transl
68b0: 61 74 65 24 45 20 6d 6b 69 6e 64 65 78 24 45 20  ate$E mkindex$E 
68c0: 68 65 61 64 65 72 73 20 20 24 28 4f 42 4a 29 20  headers  $(OBJ) 
68d0: 24 28 4f 42 4a 44 49 52 29 5c 6c 69 6e 6b 0a 09  $(OBJDIR)\link..
68e0: 63 64 20 24 28 4f 42 4a 44 49 52 29 20 0a 09 24  cd $(OBJDIR) ..$
68f0: 28 44 4d 44 49 52 29 5c 62 69 6e 5c 6c 69 6e 6b  (DMDIR)\bin\link
6900: 20 40 6c 69 6e 6b 0a 0a 24 28 4f 42 4a 44 49 52   @link..$(OBJDIR
6910: 29 5c 66 6f 73 73 69 6c 2e 72 65 73 3a 09 24 42  )\fossil.res:.$B
6920: 5c 77 69 6e 5c 66 6f 73 73 69 6c 2e 72 63 0a 09  \win\fossil.rc..
6930: 24 28 52 43 29 20 24 28 52 43 46 4c 41 47 53 29  $(RC) $(RCFLAGS)
6940: 20 2d 6f 24 40 20 24 2a 2a 0a 0a 24 28 4f 42 4a   -o$@ $**..$(OBJ
6950: 44 49 52 29 5c 6c 69 6e 6b 3a 20 24 42 5c 77 69  DIR)\link: $B\wi
6960: 6e 5c 4d 61 6b 65 66 69 6c 65 2e 64 6d 63 20 24  n\Makefile.dmc $
6970: 28 4f 42 4a 44 49 52 29 5c 66 6f 73 73 69 6c 2e  (OBJDIR)\fossil.
6980: 72 65 73 7d 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f  res}.writeln -no
6990: 6e 65 77 6c 69 6e 65 20 22 5c 74 2b 65 63 68 6f  newline "\t+echo
69a0: 20 22 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73   ".foreach s [ls
69b0: 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72  ort $src] {.  wr
69c0: 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65  iteln -nonewline
69d0: 20 22 24 73 20 22 0a 7d 0a 77 72 69 74 65 6c 6e   "$s ".}.writeln
69e0: 20 22 73 68 65 6c 6c 20 73 71 6c 69 74 65 33 20   "shell sqlite3 
69f0: 74 68 20 74 68 5f 6c 61 6e 67 20 3e 20 5c 24 40  th th_lang > \$@
6a00: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 2b 65 63  ".writeln "\t+ec
6a10: 68 6f 20 66 6f 73 73 69 6c 20 3e 3e 20 5c 24 40  ho fossil >> \$@
6a20: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 2b 65 63  ".writeln "\t+ec
6a30: 68 6f 20 66 6f 73 73 69 6c 20 3e 3e 20 5c 24 40  ho fossil >> \$@
6a40: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 2b 65 63  ".writeln "\t+ec
6a50: 68 6f 20 5c 24 28 4c 49 42 53 29 20 3e 3e 20 5c  ho \$(LIBS) >> \
6a60: 24 40 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 2b  $@".writeln "\t+
6a70: 65 63 68 6f 2e 20 3e 3e 20 5c 24 40 22 0a 77 72  echo. >> \$@".wr
6a80: 69 74 65 6c 6e 20 22 5c 74 2b 65 63 68 6f 20 66  iteln "\t+echo f
6a90: 6f 73 73 69 6c 20 3e 3e 20 5c 24 40 22 0a 0a 77  ossil >> \$@"..w
6aa0: 72 69 74 65 6c 6e 20 7b 0a 74 72 61 6e 73 6c 61  riteln {.transla
6ab0: 74 65 24 45 3a 20 24 28 53 52 43 44 49 52 29 5c  te$E: $(SRCDIR)\
6ac0: 74 72 61 6e 73 6c 61 74 65 2e 63 0a 09 24 28 42  translate.c..$(B
6ad0: 43 43 29 20 2d 6f 24 40 20 24 2a 2a 0a 0a 6d 61  CC) -o$@ $**..ma
6ae0: 6b 65 68 65 61 64 65 72 73 24 45 3a 20 24 28 53  keheaders$E: $(S
6af0: 52 43 44 49 52 29 5c 6d 61 6b 65 68 65 61 64 65  RCDIR)\makeheade
6b00: 72 73 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f 24  rs.c..$(BCC) -o$
6b10: 40 20 24 2a 2a 0a 0a 6d 6b 69 6e 64 65 78 24 45  @ $**..mkindex$E
6b20: 3a 20 24 28 53 52 43 44 49 52 29 5c 6d 6b 69 6e  : $(SRCDIR)\mkin
6b30: 64 65 78 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f  dex.c..$(BCC) -o
6b40: 24 40 20 24 2a 2a 0a 0a 76 65 72 73 69 6f 6e 24  $@ $**..version$
6b50: 45 3a 20 24 42 5c 73 72 63 5c 6d 6b 76 65 72 73  E: $B\src\mkvers
6b60: 69 6f 6e 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f  ion.c..$(BCC) -o
6b70: 24 40 20 24 2a 2a 0a 0a 24 28 4f 42 4a 44 49 52  $@ $**..$(OBJDIR
6b80: 29 5c 73 68 65 6c 6c 24 4f 20 3a 20 24 28 53 52  )\shell$O : $(SR
6b90: 43 44 49 52 29 5c 73 68 65 6c 6c 2e 63 0a 09 24  CDIR)\shell.c..$
6ba0: 28 54 43 43 29 20 2d 6f 24 40 20 2d 63 20 24 28  (TCC) -o$@ -c $(
6bb0: 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 29 20 24  SHELL_OPTIONS) $
6bc0: 28 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 29  (SQLITE_OPTIONS)
6bd0: 20 24 28 53 48 45 4c 4c 5f 43 46 4c 41 47 53 29   $(SHELL_CFLAGS)
6be0: 20 24 2a 2a 0a 0a 24 28 4f 42 4a 44 49 52 29 5c   $**..$(OBJDIR)\
6bf0: 73 71 6c 69 74 65 33 24 4f 20 3a 20 24 28 53 52  sqlite3$O : $(SR
6c00: 43 44 49 52 29 5c 73 71 6c 69 74 65 33 2e 63 0a  CDIR)\sqlite3.c.
6c10: 09 24 28 54 43 43 29 20 2d 6f 24 40 20 2d 63 20  .$(TCC) -o$@ -c 
6c20: 24 28 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  $(SQLITE_OPTIONS
6c30: 29 20 24 28 53 51 4c 49 54 45 5f 43 46 4c 41 47  ) $(SQLITE_CFLAG
6c40: 53 29 20 24 2a 2a 0a 0a 24 28 4f 42 4a 44 49 52  S) $**..$(OBJDIR
6c50: 29 5c 74 68 24 4f 20 3a 20 24 28 53 52 43 44 49  )\th$O : $(SRCDI
6c60: 52 29 5c 74 68 2e 63 0a 09 24 28 54 43 43 29 20  R)\th.c..$(TCC) 
6c70: 2d 6f 24 40 20 2d 63 20 24 2a 2a 0a 0a 24 28 4f  -o$@ -c $**..$(O
6c80: 42 4a 44 49 52 29 5c 74 68 5f 6c 61 6e 67 24 4f  BJDIR)\th_lang$O
6c90: 20 3a 20 24 28 53 52 43 44 49 52 29 5c 74 68 5f   : $(SRCDIR)\th_
6ca0: 6c 61 6e 67 2e 63 0a 09 24 28 54 43 43 29 20 2d  lang.c..$(TCC) -
6cb0: 6f 24 40 20 2d 63 20 24 2a 2a 0a 0a 24 28 4f 42  o$@ -c $**..$(OB
6cc0: 4a 44 49 52 29 5c 63 73 6f 6e 5f 61 6d 61 6c 67  JDIR)\cson_amalg
6cd0: 61 6d 61 74 69 6f 6e 2e 68 20 3a 20 24 28 53 52  amation.h : $(SR
6ce0: 43 44 49 52 29 5c 63 73 6f 6e 5f 61 6d 61 6c 67  CDIR)\cson_amalg
6cf0: 61 6d 61 74 69 6f 6e 2e 68 0a 09 63 70 20 24 40  amation.h..cp $@
6d00: 20 24 40 0a 0a 56 45 52 53 49 4f 4e 2e 68 20 3a   $@..VERSION.h :
6d10: 20 76 65 72 73 69 6f 6e 24 45 20 24 42 5c 6d 61   version$E $B\ma
6d20: 6e 69 66 65 73 74 2e 75 75 69 64 20 24 42 5c 6d  nifest.uuid $B\m
6d30: 61 6e 69 66 65 73 74 20 24 42 5c 56 45 52 53 49  anifest $B\VERSI
6d40: 4f 4e 0a 09 2b 24 2a 2a 20 3e 20 24 40 0a 0a 70  ON..+$** > $@..p
6d50: 61 67 65 5f 69 6e 64 65 78 2e 68 3a 20 6d 6b 69  age_index.h: mki
6d60: 6e 64 65 78 24 45 20 24 28 53 52 43 29 20 0a 09  ndex$E $(SRC) ..
6d70: 2b 24 2a 2a 20 3e 20 24 40 0a 0a 63 6c 65 61 6e  +$** > $@..clean
6d80: 3a 0a 09 2d 64 65 6c 20 24 28 4f 42 4a 44 49 52  :..-del $(OBJDIR
6d90: 29 5c 2a 2e 6f 62 6a 0a 09 2d 64 65 6c 20 2a 2e  )\*.obj..-del *.
6da0: 6f 62 6a 20 2a 5f 2e 63 20 2a 2e 68 20 2a 2e 6d  obj *_.c *.h *.m
6db0: 61 70 0a 0a 72 65 61 6c 63 6c 65 61 6e 3a 0a 09  ap..realclean:..
6dc0: 2d 64 65 6c 20 24 28 41 50 50 4e 41 4d 45 29 20  -del $(APPNAME) 
6dd0: 74 72 61 6e 73 6c 61 74 65 24 45 20 6d 6b 69 6e  translate$E mkin
6de0: 64 65 78 24 45 20 6d 61 6b 65 68 65 61 64 65 72  dex$E makeheader
6df0: 73 24 45 20 6d 6b 76 65 72 73 69 6f 6e 24 45 0a  s$E mkversion$E.
6e00: 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 24  .$(OBJDIR)\json$
6e10: 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a 73  O : $(SRCDIR)\js
6e20: 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42  on_detail.h.$(OB
6e30: 4a 44 49 52 29 5c 6a 73 6f 6e 5f 61 72 74 69 66  JDIR)\json_artif
6e40: 61 63 74 24 4f 20 3a 20 24 28 53 52 43 44 49 52  act$O : $(SRCDIR
6e50: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
6e60: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 62  $(OBJDIR)\json_b
6e70: 72 61 6e 63 68 24 4f 20 3a 20 24 28 53 52 43 44  ranch$O : $(SRCD
6e80: 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e  IR)\json_detail.
6e90: 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e  h.$(OBJDIR)\json
6ea0: 5f 63 6f 6e 66 69 67 24 4f 20 3a 20 24 28 53 52  _config$O : $(SR
6eb0: 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69  CDIR)\json_detai
6ec0: 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73  l.h.$(OBJDIR)\js
6ed0: 6f 6e 5f 64 69 66 66 24 4f 20 3a 20 24 28 53 52  on_diff$O : $(SR
6ee0: 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69  CDIR)\json_detai
6ef0: 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73  l.h.$(OBJDIR)\js
6f00: 6f 6e 5f 64 69 72 24 4f 20 3a 20 24 28 53 52 43  on_dir$O : $(SRC
6f10: 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c  DIR)\json_detail
6f20: 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f  .h.$(OBJDIR)\jso
6f30: 6e 5f 66 69 6e 66 6f 24 4f 20 3a 20 24 28 53 52  n_finfo$O : $(SR
6f40: 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69  CDIR)\json_detai
6f50: 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73  l.h.$(OBJDIR)\js
6f60: 6f 6e 5f 6c 6f 67 69 6e 24 4f 20 3a 20 24 28 53  on_login$O : $(S
6f70: 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61  RCDIR)\json_deta
6f80: 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a  il.h.$(OBJDIR)\j
6f90: 73 6f 6e 5f 71 75 65 72 79 24 4f 20 3a 20 24 28  son_query$O : $(
6fa0: 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74  SRCDIR)\json_det
6fb0: 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c  ail.h.$(OBJDIR)\
6fc0: 6a 73 6f 6e 5f 72 65 70 6f 72 74 24 4f 20 3a 20  json_report$O : 
6fd0: 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(SRCDIR)\json_d
6fe0: 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52  etail.h.$(OBJDIR
6ff0: 29 5c 6a 73 6f 6e 5f 73 74 61 74 75 73 24 4f 20  )\json_status$O 
7000: 3a 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e  : $(SRCDIR)\json
7010: 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44  _detail.h.$(OBJD
7020: 49 52 29 5c 6a 73 6f 6e 5f 74 61 67 24 4f 20 3a  IR)\json_tag$O :
7030: 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f   $(SRCDIR)\json_
7040: 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49  detail.h.$(OBJDI
7050: 52 29 5c 6a 73 6f 6e 5f 74 69 6d 65 6c 69 6e 65  R)\json_timeline
7060: 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a  $O : $(SRCDIR)\j
7070: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f  son_detail.h.$(O
7080: 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 75 73 65 72  BJDIR)\json_user
7090: 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a  $O : $(SRCDIR)\j
70a0: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f  son_detail.h.$(O
70b0: 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 77 69 6b 69  BJDIR)\json_wiki
70c0: 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a  $O : $(SRCDIR)\j
70d0: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 0a 0a 7d  son_detail.h...}
70e0: 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72  .foreach s [lsor
70f0: 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74  t $src] {.  writ
7100: 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 5c  eln "\$(OBJDIR)\
7110: 5c 24 73 5c 24 4f 20 3a 20 24 7b 73 7d 5f 2e 63  \$s\$O : ${s}_.c
7120: 20 24 7b 73 7d 2e 68 22 0a 20 20 77 72 69 74 65   ${s}.h".  write
7130: 6c 6e 20 22 5c 74 5c 24 28 54 43 43 29 20 2d 6f  ln "\t\$(TCC) -o
7140: 5c 24 40 20 2d 63 20 24 7b 73 7d 5f 2e 63 5c 6e  \$@ -c ${s}_.c\n
7150: 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 24 7b 73  ".  writeln "${s
7160: 7d 5f 2e 63 20 3a 20 5c 24 28 53 52 43 44 49 52  }_.c : \$(SRCDIR
7170: 29 5c 5c 24 73 2e 63 22 0a 20 20 77 72 69 74 65  )\\$s.c".  write
7180: 6c 6e 20 22 5c 74 2b 74 72 61 6e 73 6c 61 74 65  ln "\t+translate
7190: 5c 24 45 20 5c 24 2a 2a 20 3e 20 5c 24 40 5c 6e  \$E \$** > \$@\n
71a0: 22 0a 7d 0a 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f  ".}..writeln -no
71b0: 6e 65 77 6c 69 6e 65 20 22 68 65 61 64 65 72 73  newline "headers
71c0: 3a 20 6d 61 6b 65 68 65 61 64 65 72 73 5c 24 45  : makeheaders\$E
71d0: 20 70 61 67 65 5f 69 6e 64 65 78 2e 68 20 56 45   page_index.h VE
71e0: 52 53 49 4f 4e 2e 68 5c 6e 5c 74 20 2b 6d 61 6b  RSION.h\n\t +mak
71f0: 65 68 65 61 64 65 72 73 5c 24 45 20 22 0a 66 6f  eheaders\$E ".fo
7200: 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20 24  reach s [lsort $
7210: 73 72 63 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e  src] {.  writeln
7220: 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 24 7b 73   -nonewline "${s
7230: 7d 5f 2e 63 3a 24 73 2e 68 20 22 0a 7d 0a 77 72  }_.c:$s.h ".}.wr
7240: 69 74 65 6c 6e 20 22 5c 24 28 53 52 43 44 49 52  iteln "\$(SRCDIR
7250: 29 5c 5c 73 71 6c 69 74 65 33 2e 68 20 5c 24 28  )\\sqlite3.h \$(
7260: 53 52 43 44 49 52 29 5c 5c 74 68 2e 68 20 56 45  SRCDIR)\\th.h VE
7270: 52 53 49 4f 4e 2e 68 20 5c 24 28 53 52 43 44 49  RSION.h \$(SRCDI
7280: 52 29 5c 5c 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d  R)\\cson_amalgam
7290: 61 74 69 6f 6e 2e 68 22 0a 77 72 69 74 65 6c 6e  ation.h".writeln
72a0: 20 22 5c 74 40 63 6f 70 79 20 2f 59 20 6e 75 6c   "\t@copy /Y nul
72b0: 3a 20 68 65 61 64 65 72 73 22 0a 0a 63 6c 6f 73  : headers"..clos
72c0: 65 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 0a 23  e $output_file.#
72d0: 0a 23 20 45 6e 64 20 6f 66 20 74 68 65 20 77 69  .# End of the wi
72e0: 6e 2f 4d 61 6b 65 66 69 6c 65 2e 64 6d 63 20 6f  n/Makefile.dmc o
72f0: 75 74 70 75 74 0a 23 23 23 23 23 23 23 23 23 23  utput.##########
7300: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7310: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7320: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7330: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7340: 23 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23  ####.###########
7350: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7360: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7370: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7380: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7390: 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23  ###.############
73a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
73b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
73c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
73d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
73e0: 23 23 0a 23 20 42 65 67 69 6e 20 77 69 6e 2f 4d  ##.# Begin win/M
73f0: 61 6b 65 66 69 6c 65 2e 6d 73 63 20 6f 75 74 70  akefile.msc outp
7400: 75 74 0a 23 0a 70 75 74 73 20 22 62 75 69 6c 64  ut.#.puts "build
7410: 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66  ing ../win/Makef
7420: 69 6c 65 2e 6d 73 63 22 0a 73 65 74 20 6f 75 74  ile.msc".set out
7430: 70 75 74 5f 66 69 6c 65 20 5b 6f 70 65 6e 20 2e  put_file [open .
7440: 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 6d  ./win/Makefile.m
7450: 73 63 20 77 5d 0a 66 63 6f 6e 66 69 67 75 72 65  sc w].fconfigure
7460: 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20 2d 74   $output_file -t
7470: 72 61 6e 73 6c 61 74 69 6f 6e 20 62 69 6e 61 72  ranslation binar
7480: 79 0a 0a 77 72 69 74 65 6c 6e 20 7b 23 0a 23 23  y..writeln {#.##
7490: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
74a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
74b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
74c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
74d0: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 57  ############.# W
74e0: 41 52 4e 49 4e 47 3a 20 44 4f 20 4e 4f 54 20 45  ARNING: DO NOT E
74f0: 44 49 54 2c 20 41 55 54 4f 4d 41 54 49 43 41 4c  DIT, AUTOMATICAL
7500: 4c 59 20 47 45 4e 45 52 41 54 45 44 20 46 49 4c  LY GENERATED FIL
7510: 45 20 28 53 45 45 20 22 73 72 63 2f 6d 61 6b 65  E (SEE "src/make
7520: 6d 61 6b 65 2e 74 63 6c 22 29 0a 23 23 23 23 23  make.tcl").#####
7530: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7540: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7550: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7560: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
7570: 23 23 23 23 23 23 23 23 23 0a 23 0a 23 20 54 68  #########.#.# Th
7580: 69 73 20 66 69 6c 65 20 69 73 20 61 75 74 6f 6d  is file is autom
7590: 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74  atically generat
75a0: 65 64 2e 20 20 49 6e 73 74 65 61 64 20 6f 66 20  ed.  Instead of 
75b0: 65 64 69 74 69 6e 67 20 74 68 69 73 0a 23 20 66  editing this.# f
75c0: 69 6c 65 2c 20 65 64 69 74 20 22 6d 61 6b 65 6d  ile, edit "makem
75d0: 61 6b 65 2e 74 63 6c 22 20 74 68 65 6e 20 72 75  ake.tcl" then ru
75e0: 6e 20 22 74 63 6c 73 68 20 6d 61 6b 65 6d 61 6b  n "tclsh makemak
75f0: 65 2e 74 63 6c 22 0a 23 20 74 6f 20 72 65 67 65  e.tcl".# to rege
7600: 6e 65 72 61 74 65 20 74 68 69 73 20 66 69 6c 65  nerate this file
7610: 2e 0a 23 0a 42 20 20 20 20 20 20 3d 20 2e 2e 0a  ..#.B      = ...
7620: 53 52 43 44 49 52 20 3d 20 24 42 5c 73 72 63 0a  SRCDIR = $B\src.
7630: 4f 42 4a 44 49 52 20 3d 20 2e 0a 4f 58 20 20 20  OBJDIR = ..OX   
7640: 20 20 3d 20 2e 0a 4f 20 20 20 20 20 20 3d 20 2e    = ..O      = .
7650: 6f 62 6a 0a 45 20 20 20 20 20 20 3d 20 2e 65 78  obj.E      = .ex
7660: 65 0a 50 20 20 20 20 20 20 3d 20 2e 70 64 62 0a  e.P      = .pdb.
7670: 0a 23 20 55 6e 63 6f 6d 6d 65 6e 74 20 74 6f 20  .# Uncomment to 
7680: 65 6e 61 62 6c 65 20 64 65 62 75 67 20 73 79 6d  enable debug sym
7690: 62 6f 6c 73 0a 23 20 44 45 42 55 47 20 3d 20 31  bols.# DEBUG = 1
76a0: 0a 0a 23 20 55 6e 63 6f 6d 6d 65 6e 74 20 74 6f  ..# Uncomment to
76b0: 20 65 6e 61 62 6c 65 20 4a 53 4f 4e 20 41 50 49   enable JSON API
76c0: 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45  .# FOSSIL_ENABLE
76d0: 5f 4a 53 4f 4e 20 3d 20 31 0a 0a 23 20 55 6e 63  _JSON = 1..# Unc
76e0: 6f 6d 6d 65 6e 74 20 74 6f 20 65 6e 61 62 6c 65  omment to enable
76f0: 20 53 53 4c 20 73 75 70 70 6f 72 74 0a 23 20 46   SSL support.# F
7700: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c  OSSIL_ENABLE_SSL
7710: 20 3d 20 31 0a 0a 23 20 55 6e 63 6f 6d 6d 65 6e   = 1..# Uncommen
7720: 74 20 74 6f 20 65 6e 61 62 6c 65 20 54 48 31 20  t to enable TH1 
7730: 68 6f 6f 6b 73 0a 23 20 46 4f 53 53 49 4c 5f 45  hooks.# FOSSIL_E
7740: 4e 41 42 4c 45 5f 54 48 31 5f 48 4f 4f 4b 53 20  NABLE_TH1_HOOKS 
7750: 3d 20 31 0a 0a 23 20 55 6e 63 6f 6d 6d 65 6e 74  = 1..# Uncomment
7760: 20 74 6f 20 65 6e 61 62 6c 65 20 54 63 6c 20 73   to enable Tcl s
7770: 75 70 70 6f 72 74 0a 23 20 46 4f 53 53 49 4c 5f  upport.# FOSSIL_
7780: 45 4e 41 42 4c 45 5f 54 43 4c 20 3d 20 31 0a 0a  ENABLE_TCL = 1..
7790: 21 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e  !ifdef FOSSIL_EN
77a0: 41 42 4c 45 5f 53 53 4c 0a 53 53 4c 49 4e 43 44  ABLE_SSL.SSLINCD
77b0: 49 52 20 3d 20 24 28 42 29 5c 63 6f 6d 70 61 74  IR = $(B)\compat
77c0: 5c 6f 70 65 6e 73 73 6c 2d 31 2e 30 2e 31 68 5c  \openssl-1.0.1h\
77d0: 69 6e 63 6c 75 64 65 0a 53 53 4c 4c 49 42 44 49  include.SSLLIBDI
77e0: 52 20 3d 20 24 28 42 29 5c 63 6f 6d 70 61 74 5c  R = $(B)\compat\
77f0: 6f 70 65 6e 73 73 6c 2d 31 2e 30 2e 31 68 5c 6f  openssl-1.0.1h\o
7800: 75 74 33 32 0a 53 53 4c 4c 49 42 20 20 20 20 3d  ut32.SSLLIB    =
7810: 20 73 73 6c 65 61 79 33 32 2e 6c 69 62 20 6c 69   ssleay32.lib li
7820: 62 65 61 79 33 32 2e 6c 69 62 20 75 73 65 72 33  beay32.lib user3
7830: 32 2e 6c 69 62 20 67 64 69 33 32 2e 6c 69 62 0a  2.lib gdi32.lib.
7840: 21 65 6e 64 69 66 0a 0a 21 69 66 64 65 66 20 46  !endif..!ifdef F
7850: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c  OSSIL_ENABLE_TCL
7860: 0a 54 43 4c 44 49 52 20 20 20 20 3d 20 24 28 42  .TCLDIR    = $(B
7870: 29 5c 63 6f 6d 70 61 74 5c 74 63 6c 2d 38 2e 36  )\compat\tcl-8.6
7880: 0a 54 43 4c 53 52 43 44 49 52 20 3d 20 24 28 54  .TCLSRCDIR = $(T
7890: 43 4c 44 49 52 29 0a 54 43 4c 49 4e 43 44 49 52  CLDIR).TCLINCDIR
78a0: 20 3d 20 24 28 54 43 4c 53 52 43 44 49 52 29 5c   = $(TCLSRCDIR)\
78b0: 67 65 6e 65 72 69 63 0a 21 65 6e 64 69 66 0a 0a  generic.!endif..
78c0: 23 20 7a 6c 69 62 20 6f 70 74 69 6f 6e 73 0a 5a  # zlib options.Z
78d0: 49 4e 43 44 49 52 20 20 20 3d 20 24 28 42 29 5c  INCDIR   = $(B)\
78e0: 63 6f 6d 70 61 74 5c 7a 6c 69 62 0a 5a 4c 49 42  compat\zlib.ZLIB
78f0: 44 49 52 20 20 20 3d 20 24 28 42 29 5c 63 6f 6d  DIR   = $(B)\com
7900: 70 61 74 5c 7a 6c 69 62 0a 5a 4c 49 42 20 20 20  pat\zlib.ZLIB   
7910: 20 20 20 3d 20 7a 6c 69 62 2e 6c 69 62 0a 0a 49     = zlib.lib..I
7920: 4e 43 4c 20 20 20 20 20 20 3d 20 2f 49 2e 20 2f  NCL      = /I. /
7930: 49 24 28 53 52 43 44 49 52 29 20 2f 49 24 42 5c  I$(SRCDIR) /I$B\
7940: 77 69 6e 5c 69 6e 63 6c 75 64 65 20 2f 49 24 28  win\include /I$(
7950: 5a 49 4e 43 44 49 52 29 0a 0a 21 69 66 64 65 66  ZINCDIR)..!ifdef
7960: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53   FOSSIL_ENABLE_S
7970: 53 4c 0a 49 4e 43 4c 20 20 20 20 20 20 3d 20 24  SL.INCL      = $
7980: 28 49 4e 43 4c 29 20 2f 49 24 28 53 53 4c 49 4e  (INCL) /I$(SSLIN
7990: 43 44 49 52 29 0a 21 65 6e 64 69 66 0a 0a 21 69  CDIR).!endif..!i
79a0: 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42  fdef FOSSIL_ENAB
79b0: 4c 45 5f 54 43 4c 0a 49 4e 43 4c 20 20 20 20 20  LE_TCL.INCL     
79c0: 20 3d 20 24 28 49 4e 43 4c 29 20 2f 49 24 28 54   = $(INCL) /I$(T
79d0: 43 4c 49 4e 43 44 49 52 29 0a 21 65 6e 64 69 66  CLINCDIR).!endif
79e0: 0a 0a 43 46 4c 41 47 53 20 20 20 20 3d 20 2f 6e  ..CFLAGS    = /n
79f0: 6f 6c 6f 67 6f 0a 4c 44 46 4c 41 47 53 20 20 20  ologo.LDFLAGS   
7a00: 3d 20 2f 4e 4f 44 45 46 41 55 4c 54 4c 49 42 3a  = /NODEFAULTLIB:
7a10: 6d 73 76 63 72 74 20 2f 4d 41 4e 49 46 45 53 54  msvcrt /MANIFEST
7a20: 3a 4e 4f 0a 0a 21 69 66 64 65 66 20 44 45 42 55  :NO..!ifdef DEBU
7a30: 47 0a 43 46 4c 41 47 53 20 20 20 20 3d 20 24 28  G.CFLAGS    = $(
7a40: 43 46 4c 41 47 53 29 20 2f 5a 69 20 2f 4d 54 64  CFLAGS) /Zi /MTd
7a50: 20 2f 4f 64 0a 4c 44 46 4c 41 47 53 20 20 20 3d   /Od.LDFLAGS   =
7a60: 20 24 28 4c 44 46 4c 41 47 53 29 20 2f 44 45 42   $(LDFLAGS) /DEB
7a70: 55 47 0a 21 65 6c 73 65 0a 43 46 4c 41 47 53 20  UG.!else.CFLAGS 
7a80: 20 20 20 3d 20 24 28 43 46 4c 41 47 53 29 20 2f     = $(CFLAGS) /
7a90: 4d 54 20 2f 4f 32 0a 21 65 6e 64 69 66 0a 0a 42  MT /O2.!endif..B
7aa0: 43 43 20 20 20 20 20 20 20 3d 20 24 28 43 43 29  CC       = $(CC)
7ab0: 20 24 28 43 46 4c 41 47 53 29 0a 54 43 43 20 20   $(CFLAGS).TCC  
7ac0: 20 20 20 20 20 3d 20 24 28 43 43 29 20 2f 63 20       = $(CC) /c 
7ad0: 24 28 43 46 4c 41 47 53 29 20 24 28 4d 53 43 44  $(CFLAGS) $(MSCD
7ae0: 45 46 29 20 24 28 49 4e 43 4c 29 0a 52 43 43 20  EF) $(INCL).RCC 
7af0: 20 20 20 20 20 20 3d 20 72 63 20 2f 44 5f 57 49        = rc /D_WI
7b00: 4e 33 32 20 2f 44 5f 4d 53 43 5f 56 45 52 20 24  N32 /D_MSC_VER $
7b10: 28 4d 53 43 44 45 46 29 20 24 28 49 4e 43 4c 29  (MSCDEF) $(INCL)
7b20: 0a 4c 49 42 53 20 20 20 20 20 20 3d 20 24 28 5a  .LIBS      = $(Z
7b30: 4c 49 42 29 20 77 73 32 5f 33 32 2e 6c 69 62 20  LIB) ws2_32.lib 
7b40: 61 64 76 61 70 69 33 32 2e 6c 69 62 0a 4c 49 42  advapi32.lib.LIB
7b50: 44 49 52 20 20 20 20 3d 20 2f 4c 49 42 50 41 54  DIR    = /LIBPAT
7b60: 48 3a 24 28 5a 4c 49 42 44 49 52 29 0a 0a 21 69  H:$(ZLIBDIR)..!i
7b70: 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42  fdef FOSSIL_ENAB
7b80: 4c 45 5f 4a 53 4f 4e 0a 54 43 43 20 20 20 20 20  LE_JSON.TCC     
7b90: 20 20 3d 20 24 28 54 43 43 29 20 2f 44 46 4f 53    = $(TCC) /DFOS
7ba0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 3d  SIL_ENABLE_JSON=
7bb0: 31 0a 52 43 43 20 20 20 20 20 20 20 3d 20 24 28  1.RCC       = $(
7bc0: 52 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e  RCC) /DFOSSIL_EN
7bd0: 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a 21 65 6e 64  ABLE_JSON=1.!end
7be0: 69 66 0a 0a 21 69 66 64 65 66 20 46 4f 53 53 49  if..!ifdef FOSSI
7bf0: 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 0a 54 43 43  L_ENABLE_SSL.TCC
7c00: 20 20 20 20 20 20 20 3d 20 24 28 54 43 43 29 20         = $(TCC) 
7c10: 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  /DFOSSIL_ENABLE_
7c20: 53 53 4c 3d 31 0a 52 43 43 20 20 20 20 20 20 20  SSL=1.RCC       
7c30: 3d 20 24 28 52 43 43 29 20 2f 44 46 4f 53 53 49  = $(RCC) /DFOSSI
7c40: 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 3d 31 0a 4c  L_ENABLE_SSL=1.L
7c50: 49 42 53 20 20 20 20 20 20 3d 20 24 28 4c 49 42  IBS      = $(LIB
7c60: 53 29 20 24 28 53 53 4c 4c 49 42 29 0a 4c 49 42  S) $(SSLLIB).LIB
7c70: 44 49 52 20 20 20 20 3d 20 24 28 4c 49 42 44 49  DIR    = $(LIBDI
7c80: 52 29 20 2f 4c 49 42 50 41 54 48 3a 24 28 53 53  R) /LIBPATH:$(SS
7c90: 4c 4c 49 42 44 49 52 29 0a 21 65 6e 64 69 66 0a  LLIBDIR).!endif.
7ca0: 0a 21 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45  .!ifdef FOSSIL_E
7cb0: 4e 41 42 4c 45 5f 54 48 31 5f 48 4f 4f 4b 53 0a  NABLE_TH1_HOOKS.
7cc0: 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 54 43  TCC       = $(TC
7cd0: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42  C) /DFOSSIL_ENAB
7ce0: 4c 45 5f 54 48 31 5f 48 4f 4f 4b 53 3d 31 0a 52  LE_TH1_HOOKS=1.R
7cf0: 43 43 20 20 20 20 20 20 20 3d 20 24 28 52 43 43  CC       = $(RCC
7d00: 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  ) /DFOSSIL_ENABL
7d10: 45 5f 54 48 31 5f 48 4f 4f 4b 53 3d 31 0a 21 65  E_TH1_HOOKS=1.!e
7d20: 6e 64 69 66 0a 0a 21 69 66 64 65 66 20 46 4f 53  ndif..!ifdef FOS
7d30: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 0a 54  SIL_ENABLE_TCL.T
7d40: 43 43 20 20 20 20 20 20 20 3d 20 24 28 54 43 43  CC       = $(TCC
7d50: 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  ) /DFOSSIL_ENABL
7d60: 45 5f 54 43 4c 3d 31 0a 52 43 43 20 20 20 20 20  E_TCL=1.RCC     
7d70: 20 20 3d 20 24 28 52 43 43 29 20 2f 44 46 4f 53    = $(RCC) /DFOS
7d80: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 3d 31  SIL_ENABLE_TCL=1
7d90: 0a 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 54  .TCC       = $(T
7da0: 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41  CC) /DFOSSIL_ENA
7db0: 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53 3d 31 0a  BLE_TCL_STUBS=1.
7dc0: 52 43 43 20 20 20 20 20 20 20 3d 20 24 28 52 43  RCC       = $(RC
7dd0: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42  C) /DFOSSIL_ENAB
7de0: 4c 45 5f 54 43 4c 5f 53 54 55 42 53 3d 31 0a 54  LE_TCL_STUBS=1.T
7df0: 43 43 20 20 20 20 20 20 20 3d 20 24 28 54 43 43  CC       = $(TCC
7e00: 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  ) /DFOSSIL_ENABL
7e10: 45 5f 54 43 4c 5f 50 52 49 56 41 54 45 5f 53 54  E_TCL_PRIVATE_ST
7e20: 55 42 53 3d 31 0a 52 43 43 20 20 20 20 20 20 20  UBS=1.RCC       
7e30: 3d 20 24 28 52 43 43 29 20 2f 44 46 4f 53 53 49  = $(RCC) /DFOSSI
7e40: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 50 52 49  L_ENABLE_TCL_PRI
7e50: 56 41 54 45 5f 53 54 55 42 53 3d 31 0a 54 43 43  VATE_STUBS=1.TCC
7e60: 20 20 20 20 20 20 20 3d 20 24 28 54 43 43 29 20         = $(TCC) 
7e70: 2f 44 55 53 45 5f 54 43 4c 5f 53 54 55 42 53 3d  /DUSE_TCL_STUBS=
7e80: 31 0a 52 43 43 20 20 20 20 20 20 20 3d 20 24 28  1.RCC       = $(
7e90: 52 43 43 29 20 2f 44 55 53 45 5f 54 43 4c 5f 53  RCC) /DUSE_TCL_S
7ea0: 54 55 42 53 3d 31 0a 21 65 6e 64 69 66 0a 7d 0a  TUBS=1.!endif.}.
7eb0: 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5b 2d 5d  regsub -all {[-]
7ec0: 44 7d 20 5b 6a 6f 69 6e 20 24 53 51 4c 49 54 45  D} [join $SQLITE
7ed0: 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d 5d 20 7b 2f  _OPTIONS { }] {/
7ee0: 44 7d 20 4d 53 43 5f 53 51 4c 49 54 45 5f 4f 50  D} MSC_SQLITE_OP
7ef0: 54 49 4f 4e 53 0a 73 65 74 20 6a 20 22 20 5c 5c  TIONS.set j " \\
7f00: 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  \n              
7f10: 20 20 20 22 0a 77 72 69 74 65 6c 6e 20 22 53 51     ".writeln "SQ
7f20: 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 3d 20 5b  LITE_OPTIONS = [
7f30: 6a 6f 69 6e 20 24 4d 53 43 5f 53 51 4c 49 54 45  join $MSC_SQLITE
7f40: 5f 4f 50 54 49 4f 4e 53 20 24 6a 5d 5c 6e 22 0a  _OPTIONS $j]\n".
7f50: 0a 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5b 2d  .regsub -all {[-
7f60: 5d 44 7d 20 5b 6a 6f 69 6e 20 24 53 48 45 4c 4c  ]D} [join $SHELL
7f70: 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 7b  _WIN32_OPTIONS {
7f80: 20 7d 5d 20 7b 2f 44 7d 20 4d 53 43 5f 53 48 45   }] {/D} MSC_SHE
7f90: 4c 4c 5f 4f 50 54 49 4f 4e 53 0a 73 65 74 20 6a  LL_OPTIONS.set j
7fa0: 20 22 20 5c 5c 5c 6e 20 20 20 20 20 20 20 20 20   " \\\n         
7fb0: 20 20 20 20 20 20 20 22 0a 77 72 69 74 65 6c 6e         ".writeln
7fc0: 20 22 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 20   "SHELL_OPTIONS 
7fd0: 3d 20 5b 6a 6f 69 6e 20 24 4d 53 43 5f 53 48 45  = [join $MSC_SHE
7fe0: 4c 4c 5f 4f 50 54 49 4f 4e 53 20 24 6a 5d 5c 6e  LL_OPTIONS $j]\n
7ff0: 22 0a 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65  "..writeln -none
8000: 77 6c 69 6e 65 20 22 53 52 43 20 20 20 3d 20 22  wline "SRC   = "
8010: 0a 73 65 74 20 69 20 30 0a 66 6f 72 65 61 63 68  .set i 0.foreach
8020: 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20   s [lsort $src] 
8030: 7b 0a 20 20 69 66 20 7b 24 69 20 3e 20 30 7d 20  {.  if {$i > 0} 
8040: 7b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 22 20  {.    writeln " 
8050: 5c 5c 22 0a 20 20 20 20 77 72 69 74 65 6c 6e 20  \\".    writeln 
8060: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 20 20 20  -nonewline "    
8070: 20 20 20 20 22 0a 20 20 7d 0a 20 20 77 72 69 74      ".  }.  writ
8080: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
8090: 24 7b 73 7d 5f 2e 63 22 3b 20 69 6e 63 72 20 69  ${s}_.c"; incr i
80a0: 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22 0a  .}.writeln "\n".
80b0: 73 65 74 20 41 64 64 69 74 69 6f 6e 61 6c 4f 62  set AdditionalOb
80c0: 6a 20 5b 6c 69 73 74 20 73 68 65 6c 6c 20 73 71  j [list shell sq
80d0: 6c 69 74 65 33 20 74 68 20 74 68 5f 6c 61 6e 67  lite3 th th_lang
80e0: 20 74 68 5f 74 63 6c 20 63 73 6f 6e 5f 61 6d 61   th_tcl cson_ama
80f0: 6c 67 61 6d 61 74 69 6f 6e 5d 0a 77 72 69 74 65  lgamation].write
8100: 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 4f  ln -nonewline "O
8110: 42 4a 20 20 20 3d 20 22 0a 73 65 74 20 69 20 30  BJ   = ".set i 0
8120: 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72  .foreach s [lsor
8130: 74 20 5b 63 6f 6e 63 61 74 20 24 73 72 63 20 24  t [concat $src $
8140: 41 64 64 69 74 69 6f 6e 61 6c 4f 62 6a 5d 5d 20  AdditionalObj]] 
8150: 7b 0a 20 20 69 66 20 7b 24 69 20 3e 20 30 7d 20  {.  if {$i > 0} 
8160: 7b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 22 20  {.    writeln " 
8170: 5c 5c 22 0a 20 20 20 20 77 72 69 74 65 6c 6e 20  \\".    writeln 
8180: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 20 20 20  -nonewline "    
8190: 20 20 20 20 22 0a 20 20 7d 0a 20 20 77 72 69 74      ".  }.  writ
81a0: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
81b0: 5c 24 28 4f 58 29 5c 5c 24 73 5c 24 4f 22 3b 20  \$(OX)\\$s\$O"; 
81c0: 69 6e 63 72 20 69 0a 7d 0a 77 72 69 74 65 6c 6e  incr i.}.writeln
81d0: 20 22 20 5c 5c 22 0a 77 72 69 74 65 6c 6e 20 2d   " \\".writeln -
81e0: 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 20 20 20 20  nonewline "     
81f0: 20 20 20 5c 24 28 4f 58 29 5c 5c 66 6f 73 73 69     \$(OX)\\fossi
8200: 6c 2e 72 65 73 5c 6e 5c 6e 22 0a 77 72 69 74 65  l.res\n\n".write
8210: 6c 6e 20 7b 0a 41 50 50 4e 41 4d 45 20 3d 20 24  ln {.APPNAME = $
8220: 28 4f 58 29 5c 66 6f 73 73 69 6c 24 28 45 29 0a  (OX)\fossil$(E).
8230: 50 44 42 4e 41 4d 45 20 3d 20 24 28 4f 58 29 5c  PDBNAME = $(OX)\
8240: 66 6f 73 73 69 6c 24 28 50 29 0a 0a 61 6c 6c 3a  fossil$(P)..all:
8250: 20 24 28 4f 58 29 20 24 28 41 50 50 4e 41 4d 45   $(OX) $(APPNAME
8260: 29 0a 0a 7a 6c 69 62 3a 0a 09 40 65 63 68 6f 20  )..zlib:..@echo 
8270: 42 75 69 6c 64 69 6e 67 20 7a 6c 69 62 20 66 72  Building zlib fr
8280: 6f 6d 20 22 24 28 5a 4c 49 42 44 49 52 29 22 2e  om "$(ZLIBDIR)".
8290: 2e 2e 0a 09 40 70 75 73 68 64 20 22 24 28 5a 4c  ....@pushd "$(ZL
82a0: 49 42 44 49 52 29 22 20 26 26 20 6e 6d 61 6b 65  IBDIR)" && nmake
82b0: 20 2f 66 20 77 69 6e 33 32 5c 4d 61 6b 65 66 69   /f win32\Makefi
82c0: 6c 65 2e 6d 73 63 20 24 28 5a 4c 49 42 29 20 26  le.msc $(ZLIB) &
82d0: 26 20 70 6f 70 64 0a 0a 24 28 41 50 50 4e 41 4d  & popd..$(APPNAM
82e0: 45 29 20 3a 20 74 72 61 6e 73 6c 61 74 65 24 45  E) : translate$E
82f0: 20 6d 6b 69 6e 64 65 78 24 45 20 68 65 61 64 65   mkindex$E heade
8300: 72 73 20 24 28 4f 42 4a 29 20 24 28 4f 58 29 5c  rs $(OBJ) $(OX)\
8310: 6c 69 6e 6b 6f 70 74 73 20 7a 6c 69 62 0a 09 63  linkopts zlib..c
8320: 64 20 24 28 4f 58 29 20 0a 09 6c 69 6e 6b 20 24  d $(OX) ..link $
8330: 28 4c 44 46 4c 41 47 53 29 20 2f 4f 55 54 3a 24  (LDFLAGS) /OUT:$
8340: 40 20 24 28 4c 49 42 44 49 52 29 20 57 73 65 74  @ $(LIBDIR) Wset
8350: 61 72 67 76 2e 6f 62 6a 20 66 6f 73 73 69 6c 2e  argv.obj fossil.
8360: 72 65 73 20 40 6c 69 6e 6b 6f 70 74 73 0a 0a 24  res @linkopts..$
8370: 28 4f 58 29 5c 6c 69 6e 6b 6f 70 74 73 3a 20 24  (OX)\linkopts: $
8380: 42 5c 77 69 6e 5c 4d 61 6b 65 66 69 6c 65 2e 6d  B\win\Makefile.m
8390: 73 63 7d 0a 73 65 74 20 72 65 64 69 72 20 7b 3e  sc}.set redir {>
83a0: 7d 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f  }.foreach s [lso
83b0: 72 74 20 5b 63 6f 6e 63 61 74 20 24 73 72 63 20  rt [concat $src 
83c0: 24 41 64 64 69 74 69 6f 6e 61 6c 4f 62 6a 5d 5d  $AdditionalObj]]
83d0: 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 74   {.  writeln "\t
83e0: 65 63 68 6f 20 5c 24 28 4f 58 29 5c 5c 24 73 2e  echo \$(OX)\\$s.
83f0: 6f 62 6a 20 24 72 65 64 69 72 20 5c 24 40 22 0a  obj $redir \$@".
8400: 20 20 73 65 74 20 72 65 64 69 72 20 7b 3e 3e 7d    set redir {>>}
8410: 0a 7d 0a 73 65 74 20 72 65 64 69 72 20 7b 3e 3e  .}.set redir {>>
8420: 7d 0a 77 72 69 74 65 6c 6e 20 22 5c 74 65 63 68  }.writeln "\tech
8430: 6f 20 5c 24 28 4c 49 42 53 29 20 24 72 65 64 69  o \$(LIBS) $redi
8440: 72 20 5c 24 40 22 0a 77 72 69 74 65 6c 6e 20 7b  r \$@".writeln {
8450: 0a 24 28 4f 58 29 3a 0a 09 40 2d 6d 6b 64 69 72  .$(OX):..@-mkdir
8460: 20 24 40 0a 0a 74 72 61 6e 73 6c 61 74 65 24 45   $@..translate$E
8470: 3a 20 24 28 53 52 43 44 49 52 29 5c 74 72 61 6e  : $(SRCDIR)\tran
8480: 73 6c 61 74 65 2e 63 0a 09 24 28 42 43 43 29 20  slate.c..$(BCC) 
8490: 24 2a 2a 0a 0a 6d 61 6b 65 68 65 61 64 65 72 73  $**..makeheaders
84a0: 24 45 3a 20 24 28 53 52 43 44 49 52 29 5c 6d 61  $E: $(SRCDIR)\ma
84b0: 6b 65 68 65 61 64 65 72 73 2e 63 0a 09 24 28 42  keheaders.c..$(B
84c0: 43 43 29 20 24 2a 2a 0a 0a 6d 6b 69 6e 64 65 78  CC) $**..mkindex
84d0: 24 45 3a 20 24 28 53 52 43 44 49 52 29 5c 6d 6b  $E: $(SRCDIR)\mk
84e0: 69 6e 64 65 78 2e 63 0a 09 24 28 42 43 43 29 20  index.c..$(BCC) 
84f0: 24 2a 2a 0a 0a 6d 6b 76 65 72 73 69 6f 6e 24 45  $**..mkversion$E
8500: 3a 20 24 42 5c 73 72 63 5c 6d 6b 76 65 72 73 69  : $B\src\mkversi
8510: 6f 6e 2e 63 0a 09 24 28 42 43 43 29 20 24 2a 2a  on.c..$(BCC) $**
8520: 0a 0a 24 28 4f 58 29 5c 73 68 65 6c 6c 24 4f 20  ..$(OX)\shell$O 
8530: 3a 20 24 28 53 52 43 44 49 52 29 5c 73 68 65 6c  : $(SRCDIR)\shel
8540: 6c 2e 63 20 24 42 5c 77 69 6e 5c 4d 61 6b 65 66  l.c $B\win\Makef
8550: 69 6c 65 2e 6d 73 63 0a 09 24 28 54 43 43 29 20  ile.msc..$(TCC) 
8560: 2f 46 6f 24 40 20 24 28 53 48 45 4c 4c 5f 4f 50  /Fo$@ $(SHELL_OP
8570: 54 49 4f 4e 53 29 20 24 28 53 51 4c 49 54 45 5f  TIONS) $(SQLITE_
8580: 4f 50 54 49 4f 4e 53 29 20 24 28 53 48 45 4c 4c  OPTIONS) $(SHELL
8590: 5f 43 46 4c 41 47 53 29 20 2d 63 20 24 28 53 52  _CFLAGS) -c $(SR
85a0: 43 44 49 52 29 5c 73 68 65 6c 6c 2e 63 0a 0a 24  CDIR)\shell.c..$
85b0: 28 4f 58 29 5c 73 71 6c 69 74 65 33 24 4f 20 3a  (OX)\sqlite3$O :
85c0: 20 24 28 53 52 43 44 49 52 29 5c 73 71 6c 69 74   $(SRCDIR)\sqlit
85d0: 65 33 2e 63 20 24 42 5c 77 69 6e 5c 4d 61 6b 65  e3.c $B\win\Make
85e0: 66 69 6c 65 2e 6d 73 63 0a 09 24 28 54 43 43 29  file.msc..$(TCC)
85f0: 20 2f 46 6f 24 40 20 2d 63 20 24 28 53 51 4c 49   /Fo$@ -c $(SQLI
8600: 54 45 5f 4f 50 54 49 4f 4e 53 29 20 24 28 53 51  TE_OPTIONS) $(SQ
8610: 4c 49 54 45 5f 43 46 4c 41 47 53 29 20 24 28 53  LITE_CFLAGS) $(S
8620: 52 43 44 49 52 29 5c 73 71 6c 69 74 65 33 2e 63  RCDIR)\sqlite3.c
8630: 0a 0a 24 28 4f 58 29 5c 74 68 24 4f 20 3a 20 24  ..$(OX)\th$O : $
8640: 28 53 52 43 44 49 52 29 5c 74 68 2e 63 0a 09 24  (SRCDIR)\th.c..$
8650: 28 54 43 43 29 20 2f 46 6f 24 40 20 2d 63 20 24  (TCC) /Fo$@ -c $
8660: 2a 2a 0a 0a 24 28 4f 58 29 5c 74 68 5f 6c 61 6e  **..$(OX)\th_lan
8670: 67 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c  g$O : $(SRCDIR)\
8680: 74 68 5f 6c 61 6e 67 2e 63 0a 09 24 28 54 43 43  th_lang.c..$(TCC
8690: 29 20 2f 46 6f 24 40 20 2d 63 20 24 2a 2a 0a 0a  ) /Fo$@ -c $**..
86a0: 24 28 4f 58 29 5c 74 68 5f 74 63 6c 24 4f 20 3a  $(OX)\th_tcl$O :
86b0: 20 24 28 53 52 43 44 49 52 29 5c 74 68 5f 74 63   $(SRCDIR)\th_tc
86c0: 6c 2e 63 0a 09 24 28 54 43 43 29 20 2f 46 6f 24  l.c..$(TCC) /Fo$
86d0: 40 20 2d 63 20 24 2a 2a 0a 0a 56 45 52 53 49 4f  @ -c $**..VERSIO
86e0: 4e 2e 68 20 3a 20 6d 6b 76 65 72 73 69 6f 6e 24  N.h : mkversion$
86f0: 45 20 24 42 5c 6d 61 6e 69 66 65 73 74 2e 75 75  E $B\manifest.uu
8700: 69 64 20 24 42 5c 6d 61 6e 69 66 65 73 74 20 24  id $B\manifest $
8710: 42 5c 56 45 52 53 49 4f 4e 0a 09 24 2a 2a 20 3e  B\VERSION..$** >
8720: 20 24 40 0a 24 28 4f 58 29 5c 63 73 6f 6e 5f 61   $@.$(OX)\cson_a
8730: 6d 61 6c 67 61 6d 61 74 69 6f 6e 24 4f 20 3a 20  malgamation$O : 
8740: 24 28 53 52 43 44 49 52 29 5c 63 73 6f 6e 5f 61  $(SRCDIR)\cson_a
8750: 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 63 0a 09 24  malgamation.c..$
8760: 28 54 43 43 29 20 2f 46 6f 24 40 20 2f 63 20 24  (TCC) /Fo$@ /c $
8770: 2a 2a 0a 0a 70 61 67 65 5f 69 6e 64 65 78 2e 68  **..page_index.h
8780: 3a 20 6d 6b 69 6e 64 65 78 24 45 20 24 28 53 52  : mkindex$E $(SR
8790: 43 29 20 0a 09 24 2a 2a 20 3e 20 24 40 0a 0a 63  C) ..$** > $@..c
87a0: 6c 65 61 6e 3a 0a 09 2d 64 65 6c 20 24 28 4f 58  lean:..-del $(OX
87b0: 29 5c 2a 2e 6f 62 6a 0a 09 2d 64 65 6c 20 2a 2e  )\*.obj..-del *.
87c0: 6f 62 6a 0a 09 2d 64 65 6c 20 2a 5f 2e 63 0a 09  obj..-del *_.c..
87d0: 2d 64 65 6c 20 2a 2e 68 0a 09 2d 64 65 6c 20 2a  -del *.h..-del *
87e0: 2e 69 6c 6b 0a 09 2d 64 65 6c 20 2a 2e 6d 61 70  .ilk..-del *.map
87f0: 0a 09 2d 64 65 6c 20 2a 2e 72 65 73 0a 09 2d 64  ..-del *.res..-d
8800: 65 6c 20 68 65 61 64 65 72 73 0a 09 2d 64 65 6c  el headers..-del
8810: 20 6c 69 6e 6b 6f 70 74 73 0a 09 2d 64 65 6c 20   linkopts..-del 
8820: 76 63 2a 2e 70 64 62 0a 0a 72 65 61 6c 63 6c 65  vc*.pdb..realcle
8830: 61 6e 3a 20 63 6c 65 61 6e 0a 09 2d 64 65 6c 20  an: clean..-del 
8840: 24 28 41 50 50 4e 41 4d 45 29 0a 09 2d 64 65 6c  $(APPNAME)..-del
8850: 20 24 28 50 44 42 4e 41 4d 45 29 0a 09 2d 64 65   $(PDBNAME)..-de
8860: 6c 20 74 72 61 6e 73 6c 61 74 65 24 45 0a 09 2d  l translate$E..-
8870: 64 65 6c 20 74 72 61 6e 73 6c 61 74 65 24 50 0a  del translate$P.
8880: 09 2d 64 65 6c 20 6d 6b 69 6e 64 65 78 24 45 0a  .-del mkindex$E.
8890: 09 2d 64 65 6c 20 6d 6b 69 6e 64 65 78 24 50 0a  .-del mkindex$P.
88a0: 09 2d 64 65 6c 20 6d 61 6b 65 68 65 61 64 65 72  .-del makeheader
88b0: 73 24 45 0a 09 2d 64 65 6c 20 6d 61 6b 65 68 65  s$E..-del makehe
88c0: 61 64 65 72 73 24 50 0a 09 2d 64 65 6c 20 6d 6b  aders$P..-del mk
88d0: 76 65 72 73 69 6f 6e 24 45 0a 09 2d 64 65 6c 20  version$E..-del 
88e0: 6d 6b 76 65 72 73 69 6f 6e 24 50 0a 0a 24 28 4f  mkversion$P..$(O
88f0: 42 4a 44 49 52 29 5c 6a 73 6f 6e 24 4f 20 3a 20  BJDIR)\json$O : 
8900: 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(SRCDIR)\json_d
8910: 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52  etail.h.$(OBJDIR
8920: 29 5c 6a 73 6f 6e 5f 61 72 74 69 66 61 63 74 24  )\json_artifact$
8930: 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a 73  O : $(SRCDIR)\js
8940: 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42  on_detail.h.$(OB
8950: 4a 44 49 52 29 5c 6a 73 6f 6e 5f 62 72 61 6e 63  JDIR)\json_branc
8960: 68 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c  h$O : $(SRCDIR)\
8970: 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28  json_detail.h.$(
8980: 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 63 6f 6e  OBJDIR)\json_con
8990: 66 69 67 24 4f 20 3a 20 24 28 53 52 43 44 49 52  fig$O : $(SRCDIR
89a0: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
89b0: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(OBJDIR)\json_d
89c0: 69 66 66 24 4f 20 3a 20 24 28 53 52 43 44 49 52  iff$O : $(SRCDIR
89d0: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
89e0: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(OBJDIR)\json_d
89f0: 69 72 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29  ir$O : $(SRCDIR)
8a00: 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24  \json_detail.h.$
8a10: 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 66 69  (OBJDIR)\json_fi
8a20: 6e 66 6f 24 4f 20 3a 20 24 28 53 52 43 44 49 52  nfo$O : $(SRCDIR
8a30: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
8a40: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 6c  $(OBJDIR)\json_l
8a50: 6f 67 69 6e 24 4f 20 3a 20 24 28 53 52 43 44 49  ogin$O : $(SRCDI
8a60: 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68  R)\json_detail.h
8a70: 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f  .$(OBJDIR)\json_
8a80: 71 75 65 72 79 24 4f 20 3a 20 24 28 53 52 43 44  query$O : $(SRCD
8a90: 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e  IR)\json_detail.
8aa0: 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e  h.$(OBJDIR)\json
8ab0: 5f 72 65 70 6f 72 74 24 4f 20 3a 20 24 28 53 52  _report$O : $(SR
8ac0: 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69  CDIR)\json_detai
8ad0: 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73  l.h.$(OBJDIR)\js
8ae0: 6f 6e 5f 73 74 61 74 75 73 24 4f 20 3a 20 24 28  on_status$O : $(
8af0: 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74  SRCDIR)\json_det
8b00: 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c  ail.h.$(OBJDIR)\
8b10: 6a 73 6f 6e 5f 74 61 67 24 4f 20 3a 20 24 28 53  json_tag$O : $(S
8b20: 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61  RCDIR)\json_deta
8b30: 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a  il.h.$(OBJDIR)\j
8b40: 73 6f 6e 5f 74 69 6d 65 6c 69 6e 65 24 4f 20 3a  son_timeline$O :
8b50: 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f   $(SRCDIR)\json_
8b60: 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49  detail.h.$(OBJDI
8b70: 52 29 5c 6a 73 6f 6e 5f 75 73 65 72 24 4f 20 3a  R)\json_user$O :
8b80: 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f   $(SRCDIR)\json_
8b90: 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49  detail.h.$(OBJDI
8ba0: 52 29 5c 6a 73 6f 6e 5f 77 69 6b 69 24 4f 20 3a  R)\json_wiki$O :
8bb0: 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f   $(SRCDIR)\json_
8bc0: 64 65 74 61 69 6c 2e 68 0a 7d 0a 66 6f 72 65 61  detail.h.}.forea
8bd0: 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63  ch s [lsort $src
8be0: 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c  ] {.  writeln "\
8bf0: 24 28 4f 58 29 5c 5c 24 73 5c 24 4f 20 3a 20 24  $(OX)\\$s\$O : $
8c00: 7b 73 7d 5f 2e 63 20 24 7b 73 7d 2e 68 22 0a 20  {s}_.c ${s}.h". 
8c10: 20 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 54   writeln "\t\$(T
8c20: 43 43 29 20 2f 46 6f 5c 24 40 20 2d 63 20 24 7b  CC) /Fo\$@ -c ${
8c30: 73 7d 5f 2e 63 5c 6e 22 0a 20 20 77 72 69 74 65  s}_.c\n".  write
8c40: 6c 6e 20 22 24 7b 73 7d 5f 2e 63 20 3a 20 5c 24  ln "${s}_.c : \$
8c50: 28 53 52 43 44 49 52 29 5c 5c 24 73 2e 63 22 0a  (SRCDIR)\\$s.c".
8c60: 20 20 77 72 69 74 65 6c 6e 20 22 5c 74 74 72 61    writeln "\ttra
8c70: 6e 73 6c 61 74 65 5c 24 45 20 5c 24 2a 2a 20 3e  nslate\$E \$** >
8c80: 20 5c 24 40 5c 6e 22 0a 7d 0a 0a 77 72 69 74 65   \$@\n".}..write
8c90: 6c 6e 20 22 66 6f 73 73 69 6c 2e 72 65 73 20 3a  ln "fossil.res :
8ca0: 20 5c 24 42 5c 5c 77 69 6e 5c 5c 66 6f 73 73 69   \$B\\win\\fossi
8cb0: 6c 2e 72 63 22 0a 77 72 69 74 65 6c 6e 20 22 5c  l.rc".writeln "\
8cc0: 74 5c 24 28 52 43 43 29 20 20 2f 66 6f 20 5c 24  t\$(RCC)  /fo \$
8cd0: 40 20 5c 24 2a 2a 5c 6e 22 0a 0a 77 72 69 74 65  @ \$**\n"..write
8ce0: 6c 6e 20 22 68 65 61 64 65 72 73 3a 20 6d 61 6b  ln "headers: mak
8cf0: 65 68 65 61 64 65 72 73 5c 24 45 20 70 61 67 65  eheaders\$E page
8d00: 5f 69 6e 64 65 78 2e 68 20 56 45 52 53 49 4f 4e  _index.h VERSION
8d10: 2e 68 22 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e  .h".writeln -non
8d20: 65 77 6c 69 6e 65 20 22 5c 74 6d 61 6b 65 68 65  ewline "\tmakehe
8d30: 61 64 65 72 73 5c 24 45 20 22 0a 73 65 74 20 69  aders\$E ".set i
8d40: 20 30 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73   0.foreach s [ls
8d50: 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 69 66  ort $src] {.  if
8d60: 20 7b 24 69 20 3e 20 30 7d 20 7b 0a 20 20 20 20   {$i > 0} {.    
8d70: 77 72 69 74 65 6c 6e 20 22 20 5c 5c 22 0a 20 20  writeln " \\".  
8d80: 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77    writeln -nonew
8d90: 6c 69 6e 65 20 22 5c 74 5c 74 5c 74 22 0a 20 20  line "\t\t\t".  
8da0: 7d 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e  }.  writeln -non
8db0: 65 77 6c 69 6e 65 20 22 24 7b 73 7d 5f 2e 63 3a  ewline "${s}_.c:
8dc0: 24 73 2e 68 22 3b 20 69 6e 63 72 20 69 0a 7d 0a  $s.h"; incr i.}.
8dd0: 77 72 69 74 65 6c 6e 20 22 20 5c 5c 5c 6e 5c 74  writeln " \\\n\t
8de0: 5c 74 5c 74 5c 24 28 53 52 43 44 49 52 29 5c 5c  \t\t\$(SRCDIR)\\
8df0: 73 71 6c 69 74 65 33 2e 68 20 5c 5c 22 0a 77 72  sqlite3.h \\".wr
8e00: 69 74 65 6c 6e 20 22 5c 74 5c 74 5c 74 5c 24 28  iteln "\t\t\t\$(
8e10: 53 52 43 44 49 52 29 5c 5c 74 68 2e 68 20 5c 5c  SRCDIR)\\th.h \\
8e20: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 74 5c  ".writeln "\t\t\
8e30: 74 56 45 52 53 49 4f 4e 2e 68 20 5c 5c 22 0a 77  tVERSION.h \\".w
8e40: 72 69 74 65 6c 6e 20 22 5c 74 5c 74 5c 74 5c 24  riteln "\t\t\t\$
8e50: 28 53 52 43 44 49 52 29 5c 5c 63 73 6f 6e 5f 61  (SRCDIR)\\cson_a
8e60: 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 68 22 0a 77  malgamation.h".w
8e70: 72 69 74 65 6c 6e 20 22 5c 74 40 63 6f 70 79 20  riteln "\t@copy 
8e80: 2f 59 20 6e 75 6c 3a 20 68 65 61 64 65 72 73 22  /Y nul: headers"
8e90: 0a 0a 0a 63 6c 6f 73 65 20 24 6f 75 74 70 75 74  ...close $output
8ea0: 5f 66 69 6c 65 0a 23 0a 23 20 45 6e 64 20 6f 66  _file.#.# End of
8eb0: 20 74 68 65 20 77 69 6e 2f 4d 61 6b 65 66 69 6c   the win/Makefil
8ec0: 65 2e 6d 73 63 20 6f 75 74 70 75 74 0a 23 23 23  e.msc output.###
8ed0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8ee0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8ef0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f10: 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 23 23  ###########.####
8f20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f60: 23 23 23 23 23 23 23 23 23 23 0a 23 23 23 23 23  ##########.#####
8f70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8f90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8fa0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
8fb0: 23 23 23 23 23 23 23 23 23 0a 23 20 42 65 67 69  #########.# Begi
8fc0: 6e 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 50  n win/Makefile.P
8fd0: 65 6c 6c 65 73 43 47 4d 61 6b 65 20 6f 75 74 70  ellesCGMake outp
8fe0: 75 74 0a 23 0a 70 75 74 73 20 22 62 75 69 6c 64  ut.#.puts "build
8ff0: 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66  ing ../win/Makef
9000: 69 6c 65 2e 50 65 6c 6c 65 73 43 47 4d 61 6b 65  ile.PellesCGMake
9010: 22 0a 73 65 74 20 6f 75 74 70 75 74 5f 66 69 6c  ".set output_fil
9020: 65 20 5b 6f 70 65 6e 20 2e 2e 2f 77 69 6e 2f 4d  e [open ../win/M
9030: 61 6b 65 66 69 6c 65 2e 50 65 6c 6c 65 73 43 47  akefile.PellesCG
9040: 4d 61 6b 65 20 77 5d 0a 66 63 6f 6e 66 69 67 75  Make w].fconfigu
9050: 72 65 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20  re $output_file 
9060: 2d 74 72 61 6e 73 6c 61 74 69 6f 6e 20 62 69 6e  -translation bin
9070: 61 72 79 0a 0a 77 72 69 74 65 6c 6e 20 5b 73 74  ary..writeln [st
9080: 72 69 6e 67 20 6d 61 70 20 5b 6c 69 73 74 20 5c  ring map [list \
9090: 0a 20 20 20 20 3c 3c 3c 53 51 4c 49 54 45 5f 4f  .    <<<SQLITE_O
90a0: 50 54 49 4f 4e 53 3e 3e 3e 20 5b 6a 6f 69 6e 20  PTIONS>>> [join 
90b0: 24 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20  $SQLITE_OPTIONS 
90c0: 7b 20 7d 5d 20 5c 0a 20 20 20 20 3c 3c 3c 53 48  { }] \.    <<<SH
90d0: 45 4c 4c 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 20 5b  ELL_OPTIONS>>> [
90e0: 6a 6f 69 6e 20 24 53 48 45 4c 4c 5f 57 49 4e 33  join $SHELL_WIN3
90f0: 32 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d 5d 5d 20  2_OPTIONS { }]] 
9100: 7b 23 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  {#.#############
9110: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9120: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9130: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9140: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9150: 23 0a 23 20 57 41 52 4e 49 4e 47 3a 20 44 4f 20  #.# WARNING: DO 
9160: 4e 4f 54 20 45 44 49 54 2c 20 41 55 54 4f 4d 41  NOT EDIT, AUTOMA
9170: 54 49 43 41 4c 4c 59 20 47 45 4e 45 52 41 54 45  TICALLY GENERATE
9180: 44 20 46 49 4c 45 20 28 53 45 45 20 22 73 72 63  D FILE (SEE "src
9190: 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 29 0a  /makemake.tcl").
91a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
91b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
91c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
91d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
91e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
91f0: 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20  .# This file is 
9200: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  automatically ge
9210: 6e 65 72 61 74 65 64 2e 20 20 49 6e 73 74 65 61  nerated.  Instea
9220: 64 20 6f 66 20 65 64 69 74 69 6e 67 20 74 68 69  d of editing thi
9230: 73 0a 23 20 66 69 6c 65 2c 20 65 64 69 74 20 22  s.# file, edit "
9240: 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74 68  makemake.tcl" th
9250: 65 6e 20 72 75 6e 20 22 74 63 6c 73 68 20 6d 61  en run "tclsh ma
9260: 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74 6f  kemake.tcl".# to
9270: 20 72 65 67 65 6e 65 72 61 74 65 20 74 68 69 73   regenerate this
9280: 20 66 69 6c 65 2e 0a 23 0a 23 20 48 6f 77 54 6f   file..#.# HowTo
9290: 0a 23 20 2d 2d 2d 2d 2d 0a 23 0a 23 20 54 68 69  .# -----.#.# Thi
92a0: 73 20 69 73 20 61 20 4d 61 6b 65 66 69 6c 65 20  s is a Makefile 
92b0: 74 6f 20 63 6f 6d 70 69 6c 65 20 66 6f 73 73 69  to compile fossi
92c0: 6c 20 77 69 74 68 20 50 65 6c 6c 65 73 43 20 66  l with PellesC f
92d0: 72 6f 6d 0a 23 20 20 68 74 74 70 3a 2f 2f 77 77  rom.#  http://ww
92e0: 77 2e 73 6d 6f 72 67 61 73 62 6f 72 64 65 74 2e  w.smorgasbordet.
92f0: 63 6f 6d 2f 70 65 6c 6c 65 73 63 2f 69 6e 64 65  com/pellesc/inde
9300: 78 2e 68 74 6d 0a 23 20 49 6e 20 61 64 64 69 74  x.htm.# In addit
9310: 69 6f 6e 20 74 6f 20 74 68 65 20 43 6f 6d 70 69  ion to the Compi
9320: 6c 65 72 20 65 6e 76 72 69 6f 6e 6d 65 6e 74 2c  ler envrionment,
9330: 20 79 6f 75 20 6e 65 65 64 0a 23 20 20 67 6d 61   you need.#  gma
9340: 6b 65 20 66 72 6f 6d 20 68 74 74 70 3a 2f 2f 73  ke from http://s
9350: 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f 70  ourceforge.net/p
9360: 72 6f 6a 65 63 74 73 2f 75 6e 78 75 74 69 6c 73  rojects/unxutils
9370: 2f 2c 20 50 65 6c 6c 65 73 20 6d 61 6b 65 20 76  /, Pelles make v
9380: 65 72 73 69 6f 6e 0a 23 20 20 20 20 20 20 20 20  ersion.#        
9390: 63 6f 75 6c 64 6e 27 74 20 68 61 6e 64 6c 65 20  couldn't handle 
93a0: 74 68 65 20 63 6f 6d 70 6c 65 78 20 64 65 70 65  the complex depe
93b0: 6e 64 65 6e 63 69 65 73 20 69 6e 20 74 68 69 73  ndencies in this
93c0: 20 62 75 69 6c 64 0a 23 20 20 7a 6c 69 62 20 73   build.#  zlib s
93d0: 6f 75 72 63 65 73 0a 23 20 54 68 65 6e 20 79 6f  ources.# Then yo
93e0: 75 20 64 6f 0a 23 20 31 2e 20 63 72 65 61 74 65  u do.# 1. create
93f0: 20 61 20 64 69 72 65 63 74 6f 72 79 20 50 65 6c   a directory Pel
9400: 6c 65 73 43 20 69 6e 20 74 68 65 20 70 72 6f 6a  lesC in the proj
9410: 65 63 74 20 72 6f 6f 74 20 64 69 72 65 63 74 6f  ect root directo
9420: 72 79 0a 23 20 32 2e 20 43 68 61 6e 67 65 20 74  ry.# 2. Change t
9430: 68 65 20 76 61 72 69 61 62 6c 65 73 20 50 65 6c  he variables Pel
9440: 6c 65 73 43 44 69 72 2f 5a 4c 49 42 53 52 43 44  lesCDir/ZLIBSRCD
9450: 49 52 20 74 6f 20 74 68 65 20 70 61 74 68 20 6f  IR to the path o
9460: 66 20 79 6f 75 72 20 69 6e 73 74 61 6c 6c 61 74  f your installat
9470: 69 6f 6e 0a 23 20 33 2e 20 6f 70 65 6e 20 61 20  ion.# 3. open a 
9480: 64 6f 73 20 70 72 6f 6d 70 74 20 77 69 6e 64 6f  dos prompt windo
9490: 77 20 61 6e 64 20 63 68 61 6e 67 65 20 77 6f 72  w and change wor
94a0: 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 69  king directory i
94b0: 6e 74 6f 20 50 65 6c 6c 65 73 43 20 28 73 74 65  nto PellesC (ste
94c0: 70 20 31 29 0a 23 20 34 2e 20 72 75 6e 20 67 6d  p 1).# 4. run gm
94d0: 61 6b 65 20 2d 66 20 2e 2e 5c 77 69 6e 5c 4d 61  ake -f ..\win\Ma
94e0: 6b 65 66 69 6c 65 2e 50 65 6c 6c 65 73 43 47 4d  kefile.PellesCGM
94f0: 61 6b 65 0a 23 0a 23 20 74 68 69 73 20 66 69 6c  ake.#.# this fil
9500: 65 20 69 73 20 74 65 73 74 65 64 20 77 69 74 68  e is tested with
9510: 0a 23 20 20 20 50 65 6c 6c 65 73 43 20 20 20 20  .#   PellesC    
9520: 20 20 20 20 20 35 2e 30 30 2e 31 33 0a 23 20 20       5.00.13.#  
9530: 20 67 6d 61 6b 65 20 20 20 20 20 20 20 20 20 20   gmake          
9540: 20 33 2e 38 30 0a 23 20 20 20 7a 6c 69 62 20 73   3.80.#   zlib s
9550: 6f 75 72 63 65 73 20 20 20 20 31 2e 32 2e 35 0a  ources    1.2.5.
9560: 23 20 20 20 57 69 6e 64 6f 77 73 20 58 50 20 53  #   Windows XP S
9570: 50 20 32 0a 23 20 61 6e 64 0a 23 20 20 20 50 65  P 2.# and.#   Pe
9580: 6c 6c 65 73 43 20 20 20 20 20 20 20 20 20 36 2e  llesC         6.
9590: 30 30 2e 34 0a 23 20 20 20 67 6d 61 6b 65 20 20  00.4.#   gmake  
95a0: 20 20 20 20 20 20 20 20 20 33 2e 38 30 0a 23 20           3.80.# 
95b0: 20 20 7a 6c 69 62 20 73 6f 75 72 63 65 73 20 20    zlib sources  
95c0: 20 20 31 2e 32 2e 35 0a 23 20 20 20 57 69 6e 64    1.2.5.#   Wind
95d0: 6f 77 73 20 37 20 48 6f 6d 65 20 50 72 65 6d 69  ows 7 Home Premi
95e0: 75 6d 0a 23 20 20 0a 0a 23 20 20 0a 50 65 6c 6c  um.#  ..#  .Pell
95f0: 65 73 43 44 69 72 3d 63 3a 5c 50 72 6f 67 72 61  esCDir=c:\Progra
9600: 6d 6d 65 5c 50 65 6c 6c 65 73 43 0a 0a 23 20 53  mme\PellesC..# S
9610: 65 6c 65 63 74 20 62 65 74 77 65 65 6e 20 33 32  elect between 32
9620: 2f 36 34 20 62 69 74 20 63 6f 64 65 2c 20 64 65  /64 bit code, de
9630: 66 61 75 6c 74 20 69 73 20 33 32 20 62 69 74 0a  fault is 32 bit.
9640: 23 54 41 52 47 45 54 56 45 52 53 49 4f 4e 3d 36  #TARGETVERSION=6
9650: 34 0a 0a 69 66 65 71 20 28 24 28 54 41 52 47 45  4..ifeq ($(TARGE
9660: 54 56 45 52 53 49 4f 4e 29 2c 36 34 29 0a 23 20  TVERSION),64).# 
9670: 36 34 20 62 69 74 20 76 65 72 73 69 6f 6e 0a 54  64 bit version.T
9680: 41 52 47 45 54 4d 41 43 48 49 4e 45 5f 43 43 3d  ARGETMACHINE_CC=
9690: 61 6d 64 36 34 0a 54 41 52 47 45 54 4d 41 43 48  amd64.TARGETMACH
96a0: 49 4e 45 5f 4c 4e 3d 61 6d 64 36 34 0a 54 41 52  INE_LN=amd64.TAR
96b0: 47 45 54 45 58 54 45 4e 44 3d 36 34 0a 65 6c 73  GETEXTEND=64.els
96c0: 65 0a 23 20 33 32 20 62 69 74 20 76 65 72 73 69  e.# 32 bit versi
96d0: 6f 6e 0a 54 41 52 47 45 54 4d 41 43 48 49 4e 45  on.TARGETMACHINE
96e0: 5f 43 43 3d 78 38 36 0a 54 41 52 47 45 54 4d 41  _CC=x86.TARGETMA
96f0: 43 48 49 4e 45 5f 4c 4e 3d 69 78 38 36 0a 54 41  CHINE_LN=ix86.TA
9700: 52 47 45 54 45 58 54 45 4e 44 3d 0a 65 6e 64 69  RGETEXTEND=.endi
9710: 66 0a 0a 23 20 64 65 66 69 6e 65 20 74 68 65 20  f..# define the 
9720: 70 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72  project director
9730: 69 65 73 0a 42 3d 2e 2e 0a 53 52 43 44 49 52 3d  ies.B=...SRCDIR=
9740: 24 28 42 29 2f 73 72 63 2f 0a 57 49 4e 44 49 52  $(B)/src/.WINDIR
9750: 3d 24 28 42 29 2f 77 69 6e 2f 0a 5a 4c 49 42 53  =$(B)/win/.ZLIBS
9760: 52 43 44 49 52 3d 2e 2e 2f 2e 2e 2f 7a 6c 69 62  RCDIR=../../zlib
9770: 2f 0a 0a 23 20 64 65 66 69 6e 65 20 6c 69 6e 6b  /..# define link
9780: 65 72 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 6f  er command and o
9790: 70 74 69 6f 6e 73 0a 4c 49 4e 4b 3d 24 28 50 65  ptions.LINK=$(Pe
97a0: 6c 6c 65 73 43 44 69 72 29 2f 62 69 6e 2f 70 6f  llesCDir)/bin/po
97b0: 6c 69 6e 6b 2e 65 78 65 0a 4c 49 4e 4b 46 4c 41  link.exe.LINKFLA
97c0: 47 53 3d 2d 73 75 62 73 79 73 74 65 6d 3a 63 6f  GS=-subsystem:co
97d0: 6e 73 6f 6c 65 20 2d 6d 61 63 68 69 6e 65 3a 24  nsole -machine:$
97e0: 28 54 41 52 47 45 54 4d 41 43 48 49 4e 45 5f 4c  (TARGETMACHINE_L
97f0: 4e 29 20 2f 4c 49 42 50 41 54 48 3a 24 28 50 65  N) /LIBPATH:$(Pe
9800: 6c 6c 65 73 43 44 69 72 29 5c 6c 69 62 5c 77 69  llesCDir)\lib\wi
9810: 6e 24 28 54 41 52 47 45 54 45 58 54 45 4e 44 29  n$(TARGETEXTEND)
9820: 20 2f 4c 49 42 50 41 54 48 3a 24 28 50 65 6c 6c   /LIBPATH:$(Pell
9830: 65 73 43 44 69 72 29 5c 6c 69 62 20 6b 65 72 6e  esCDir)\lib kern
9840: 65 6c 33 32 2e 6c 69 62 20 61 64 76 61 70 69 33  el32.lib advapi3
9850: 32 2e 6c 69 62 20 64 65 6c 61 79 69 6d 70 24 28  2.lib delayimp$(
9860: 54 41 52 47 45 54 45 58 54 45 4e 44 29 2e 6c 69  TARGETEXTEND).li
9870: 62 20 57 73 6f 63 6b 33 32 2e 6c 69 62 20 43 72  b Wsock32.lib Cr
9880: 74 6d 74 24 28 54 41 52 47 45 54 45 58 54 45 4e  tmt$(TARGETEXTEN
9890: 44 29 2e 6c 69 62 0a 0a 23 20 64 65 66 69 6e 65  D).lib..# define
98a0: 20 73 74 61 6e 64 61 72 64 20 43 2d 63 6f 6d 70   standard C-comp
98b0: 69 6c 65 72 20 61 6e 64 20 66 6c 61 67 73 2c 20  iler and flags, 
98c0: 75 73 65 64 20 74 6f 20 63 6f 6d 70 69 6c 65 0a  used to compile.
98d0: 23 20 74 68 65 20 66 6f 73 73 69 6c 20 62 69 6e  # the fossil bin
98e0: 61 72 79 2e 20 53 6f 6d 65 20 73 70 65 63 69 61  ary. Some specia
98f0: 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f  l definitions fo
9900: 6c 6c 6f 77 20 66 6f 72 0a 23 20 73 70 65 63 69  llow for.# speci
9910: 61 6c 20 66 69 6c 65 73 20 66 6f 6c 6c 6f 77 0a  al files follow.
9920: 43 43 3d 24 28 50 65 6c 6c 65 73 43 44 69 72 29  CC=$(PellesCDir)
9930: 5c 62 69 6e 5c 70 6f 63 63 2e 65 78 65 0a 44 45  \bin\pocc.exe.DE
9940: 46 49 4e 45 53 3d 2d 44 5f 70 67 6d 70 74 72 3d  FINES=-D_pgmptr=
9950: 67 2e 61 72 67 76 5b 30 5d 0a 43 43 46 4c 41 47  g.argv[0].CCFLAG
9960: 53 3d 2d 54 24 28 54 41 52 47 45 54 4d 41 43 48  S=-T$(TARGETMACH
9970: 49 4e 45 5f 43 43 29 2d 63 6f 66 66 20 2d 4f 74  INE_CC)-coff -Ot
9980: 20 2d 57 32 20 2d 47 64 20 2d 47 6f 20 2d 5a 65   -W2 -Gd -Go -Ze
9990: 20 2d 4d 54 20 24 28 44 45 46 49 4e 45 53 29 0a   -MT $(DEFINES).
99a0: 49 4e 43 4c 55 44 45 3d 2f 49 20 24 28 50 65 6c  INCLUDE=/I $(Pel
99b0: 6c 65 73 43 44 69 72 29 5c 49 6e 63 6c 75 64 65  lesCDir)\Include
99c0: 5c 57 69 6e 20 2f 49 20 24 28 50 65 6c 6c 65 73  \Win /I $(Pelles
99d0: 43 44 69 72 29 5c 49 6e 63 6c 75 64 65 20 2f 49  CDir)\Include /I
99e0: 20 24 28 5a 4c 49 42 53 52 43 44 49 52 29 20 2f   $(ZLIBSRCDIR) /
99f0: 49 20 24 28 53 52 43 44 49 52 29 0a 0a 23 20 64  I $(SRCDIR)..# d
9a00: 65 66 69 6e 65 20 63 6f 6d 6d 61 6e 64 73 20 66  efine commands f
9a10: 6f 72 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20  or building the 
9a20: 77 69 6e 64 6f 77 73 20 72 65 73 6f 75 72 63 65  windows resource
9a30: 20 66 69 6c 65 73 0a 52 45 53 4f 55 52 43 45 3d   files.RESOURCE=
9a40: 66 6f 73 73 69 6c 2e 72 65 73 0a 52 43 3d 24 28  fossil.res.RC=$(
9a50: 50 65 6c 6c 65 73 43 44 69 72 29 5c 62 69 6e 5c  PellesCDir)\bin\
9a60: 70 6f 72 63 2e 65 78 65 0a 52 43 46 4c 41 47 53  porc.exe.RCFLAGS
9a70: 3d 24 28 49 4e 43 4c 55 44 45 29 20 2d 44 5f 5f  =$(INCLUDE) -D__
9a80: 50 4f 43 43 5f 5f 3d 31 20 2d 44 5f 4d 5f 58 24  POCC__=1 -D_M_X$
9a90: 28 54 41 52 47 45 54 56 45 52 53 49 4f 4e 29 0a  (TARGETVERSION).
9aa0: 0a 23 20 64 65 66 69 6e 65 20 74 68 65 20 73 70  .# define the sp
9ab0: 65 63 69 61 6c 20 75 74 69 6c 69 74 69 65 73 20  ecial utilities 
9ac0: 66 69 6c 65 73 2c 20 6e 65 65 64 65 64 20 74 6f  files, needed to
9ad0: 20 67 65 6e 65 72 61 74 65 0a 23 20 74 68 65 20   generate.# the 
9ae0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  automatically ge
9af0: 6e 65 72 61 74 65 64 20 73 6f 75 72 63 65 20 66  nerated source f
9b00: 69 6c 65 73 0a 55 54 49 4c 53 3d 74 72 61 6e 73  iles.UTILS=trans
9b10: 6c 61 74 65 2e 65 78 65 20 6d 6b 69 6e 64 65 78  late.exe mkindex
9b20: 2e 65 78 65 20 6d 61 6b 65 68 65 61 64 65 72 73  .exe makeheaders
9b30: 2e 65 78 65 0a 55 54 49 4c 53 5f 4f 42 4a 3d 24  .exe.UTILS_OBJ=$
9b40: 28 55 54 49 4c 53 3a 2e 65 78 65 3d 2e 6f 62 6a  (UTILS:.exe=.obj
9b50: 29 0a 55 54 49 4c 53 5f 53 52 43 3d 24 28 66 6f  ).UTILS_SRC=$(fo
9b60: 72 65 61 63 68 20 75 66 2c 24 28 55 54 49 4c 53  reach uf,$(UTILS
9b70: 29 2c 24 28 53 52 43 44 49 52 29 24 28 75 66 3a  ),$(SRCDIR)$(uf:
9b80: 2e 65 78 65 3d 2e 63 29 29 0a 0a 23 20 64 65 66  .exe=.c))..# def
9b90: 69 6e 65 20 74 68 65 20 73 71 6c 69 74 65 20 66  ine the sqlite f
9ba0: 69 6c 65 73 2c 20 77 68 69 63 68 20 6e 65 65 64  iles, which need
9bb0: 20 73 70 65 63 69 61 6c 20 66 6c 61 67 73 20 6f   special flags o
9bc0: 6e 20 63 6f 6d 70 69 6c 65 0a 53 51 4c 49 54 45  n compile.SQLITE
9bd0: 53 52 43 3d 73 71 6c 69 74 65 33 2e 63 0a 4f 52  SRC=sqlite3.c.OR
9be0: 49 47 53 51 4c 49 54 45 53 52 43 3d 24 28 66 6f  IGSQLITESRC=$(fo
9bf0: 72 65 61 63 68 20 73 66 2c 24 28 53 51 4c 49 54  reach sf,$(SQLIT
9c00: 45 53 52 43 29 2c 24 28 53 52 43 44 49 52 29 24  ESRC),$(SRCDIR)$
9c10: 28 73 66 29 29 0a 53 51 4c 49 54 45 4f 42 4a 3d  (sf)).SQLITEOBJ=
9c20: 24 28 66 6f 72 65 61 63 68 20 73 66 2c 24 28 53  $(foreach sf,$(S
9c30: 51 4c 49 54 45 53 52 43 29 2c 24 28 73 66 3a 2e  QLITESRC),$(sf:.
9c40: 63 3d 2e 6f 62 6a 29 29 0a 53 51 4c 49 54 45 44  c=.obj)).SQLITED
9c50: 45 46 49 4e 45 53 3d 3c 3c 3c 53 51 4c 49 54 45  EFINES=<<<SQLITE
9c60: 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a 23 20 64  _OPTIONS>>>..# d
9c70: 65 66 69 6e 65 20 74 68 65 20 73 71 6c 69 74 65  efine the sqlite
9c80: 20 73 68 65 6c 6c 20 66 69 6c 65 73 2c 20 77 68   shell files, wh
9c90: 69 63 68 20 6e 65 65 64 20 73 70 65 63 69 61 6c  ich need special
9ca0: 20 66 6c 61 67 73 20 6f 6e 20 63 6f 6d 70 69 6c   flags on compil
9cb0: 65 0a 53 51 4c 49 54 45 53 48 45 4c 4c 53 52 43  e.SQLITESHELLSRC
9cc0: 3d 73 68 65 6c 6c 2e 63 0a 4f 52 49 47 53 51 4c  =shell.c.ORIGSQL
9cd0: 49 54 45 53 48 45 4c 4c 53 52 43 3d 24 28 66 6f  ITESHELLSRC=$(fo
9ce0: 72 65 61 63 68 20 73 66 2c 24 28 53 51 4c 49 54  reach sf,$(SQLIT
9cf0: 45 53 48 45 4c 4c 53 52 43 29 2c 24 28 53 52 43  ESHELLSRC),$(SRC
9d00: 44 49 52 29 24 28 73 66 29 29 0a 53 51 4c 49 54  DIR)$(sf)).SQLIT
9d10: 45 53 48 45 4c 4c 4f 42 4a 3d 24 28 66 6f 72 65  ESHELLOBJ=$(fore
9d20: 61 63 68 20 73 66 2c 24 28 53 51 4c 49 54 45 53  ach sf,$(SQLITES
9d30: 48 45 4c 4c 53 52 43 29 2c 24 28 73 66 3a 2e 63  HELLSRC),$(sf:.c
9d40: 3d 2e 6f 62 6a 29 29 0a 53 51 4c 49 54 45 53 48  =.obj)).SQLITESH
9d50: 45 4c 4c 44 45 46 49 4e 45 53 3d 3c 3c 3c 53 48  ELLDEFINES=<<<SH
9d60: 45 4c 4c 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a  ELL_OPTIONS>>>..
9d70: 23 20 64 65 66 69 6e 65 20 74 68 65 20 74 68 20  # define the th 
9d80: 73 63 72 69 70 74 69 6e 67 20 66 69 6c 65 73 2c  scripting files,
9d90: 20 77 68 69 63 68 20 6e 65 65 64 20 73 70 65 63   which need spec
9da0: 69 61 6c 20 66 6c 61 67 73 20 6f 6e 20 63 6f 6d  ial flags on com
9db0: 70 69 6c 65 0a 54 48 53 52 43 3d 74 68 2e 63 20  pile.THSRC=th.c 
9dc0: 74 68 5f 6c 61 6e 67 2e 63 0a 4f 52 49 47 54 48  th_lang.c.ORIGTH
9dd0: 53 52 43 3d 24 28 66 6f 72 65 61 63 68 20 73 66  SRC=$(foreach sf
9de0: 2c 24 28 54 48 53 52 43 29 2c 24 28 53 52 43 44  ,$(THSRC),$(SRCD
9df0: 49 52 29 24 28 73 66 29 29 0a 54 48 4f 42 4a 3d  IR)$(sf)).THOBJ=
9e00: 24 28 66 6f 72 65 61 63 68 20 73 66 2c 24 28 54  $(foreach sf,$(T
9e10: 48 53 52 43 29 2c 24 28 73 66 3a 2e 63 3d 2e 6f  HSRC),$(sf:.c=.o
9e20: 62 6a 29 29 0a 0a 23 20 64 65 66 69 6e 65 20 74  bj))..# define t
9e30: 68 65 20 7a 6c 69 62 20 66 69 6c 65 73 2c 20 6e  he zlib files, n
9e40: 65 65 64 65 64 20 62 79 20 74 68 69 73 20 63 6f  eeded by this co
9e50: 6d 70 69 6c 65 0a 5a 4c 49 42 53 52 43 3d 61 64  mpile.ZLIBSRC=ad
9e60: 6c 65 72 33 32 2e 63 20 63 6f 6d 70 72 65 73 73  ler32.c compress
9e70: 2e 63 20 63 72 63 33 32 2e 63 20 64 65 66 6c 61  .c crc32.c defla
9e80: 74 65 2e 63 20 67 7a 63 6c 6f 73 65 2e 63 20 67  te.c gzclose.c g
9e90: 7a 6c 69 62 2e 63 20 67 7a 72 65 61 64 2e 63 20  zlib.c gzread.c 
9ea0: 67 7a 77 72 69 74 65 2e 63 20 69 6e 66 62 61 63  gzwrite.c infbac
9eb0: 6b 2e 63 20 69 6e 66 66 61 73 74 2e 63 20 69 6e  k.c inffast.c in
9ec0: 66 6c 61 74 65 2e 63 20 69 6e 66 74 72 65 65 73  flate.c inftrees
9ed0: 2e 63 20 74 72 65 65 73 2e 63 20 75 6e 63 6f 6d  .c trees.c uncom
9ee0: 70 72 2e 63 20 7a 75 74 69 6c 2e 63 0a 4f 52 49  pr.c zutil.c.ORI
9ef0: 47 5a 4c 49 42 53 52 43 3d 24 28 66 6f 72 65 61  GZLIBSRC=$(forea
9f00: 63 68 20 73 66 2c 24 28 5a 4c 49 42 53 52 43 29  ch sf,$(ZLIBSRC)
9f10: 2c 24 28 5a 4c 49 42 53 52 43 44 49 52 29 24 28  ,$(ZLIBSRCDIR)$(
9f20: 73 66 29 29 0a 5a 4c 49 42 4f 42 4a 3d 24 28 66  sf)).ZLIBOBJ=$(f
9f30: 6f 72 65 61 63 68 20 73 66 2c 24 28 5a 4c 49 42  oreach sf,$(ZLIB
9f40: 53 52 43 29 2c 24 28 73 66 3a 2e 63 3d 2e 6f 62  SRC),$(sf:.c=.ob
9f50: 6a 29 29 0a 0a 23 20 64 65 66 69 6e 65 20 61 6c  j))..# define al
9f60: 6c 20 66 6f 73 73 69 6c 20 73 6f 75 72 63 65 73  l fossil sources
9f70: 2c 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e  , using the stan
9f80: 64 61 72 64 20 63 6f 6d 70 69 6c 65 20 61 6e 64  dard compile and
9f90: 0a 23 20 73 6f 75 72 63 65 20 67 65 6e 65 72 61  .# source genera
9fa0: 74 69 6f 6e 2e 20 54 68 65 73 65 20 61 72 65 20  tion. These are 
9fb0: 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 53 52 43  all files in SRC
9fc0: 44 49 52 2c 20 77 68 69 63 68 20 61 72 65 20 6e  DIR, which are n
9fd0: 6f 74 0a 23 20 6d 65 6e 74 69 6f 6e 65 64 20 61  ot.# mentioned a
9fe0: 73 20 73 70 65 63 69 61 6c 20 66 69 6c 65 73 20  s special files 
9ff0: 61 62 6f 76 65 3a 0a 4f 52 49 47 53 52 43 3d 24  above:.ORIGSRC=$
a000: 28 66 69 6c 74 65 72 2d 6f 75 74 20 24 28 55 54  (filter-out $(UT
a010: 49 4c 53 5f 53 52 43 29 20 24 28 4f 52 49 47 54  ILS_SRC) $(ORIGT
a020: 48 53 52 43 29 20 24 28 4f 52 49 47 53 51 4c 49  HSRC) $(ORIGSQLI
a030: 54 45 53 52 43 29 20 24 28 4f 52 49 47 53 51 4c  TESRC) $(ORIGSQL
a040: 49 54 45 53 48 45 4c 4c 53 52 43 29 2c 24 28 77  ITESHELLSRC),$(w
a050: 69 6c 64 63 61 72 64 20 24 28 53 52 43 44 49 52  ildcard $(SRCDIR
a060: 29 2a 2e 63 29 29 0a 53 52 43 3d 24 28 73 75 62  )*.c)).SRC=$(sub
a070: 73 74 20 24 28 53 52 43 44 49 52 29 2c 2c 24 28  st $(SRCDIR),,$(
a080: 4f 52 49 47 53 52 43 29 29 0a 54 52 41 4e 53 4c  ORIGSRC)).TRANSL
a090: 41 54 45 44 53 52 43 3d 24 28 53 52 43 3a 2e 63  ATEDSRC=$(SRC:.c
a0a0: 3d 5f 2e 63 29 0a 54 52 41 4e 53 4c 41 54 45 44  =_.c).TRANSLATED
a0b0: 4f 42 4a 3d 24 28 54 52 41 4e 53 4c 41 54 45 44  OBJ=$(TRANSLATED
a0c0: 53 52 43 3a 2e 63 3d 2e 6f 62 6a 29 0a 0a 23 20  SRC:.c=.obj)..# 
a0d0: 6d 61 69 6e 20 74 61 72 67 65 74 20 66 69 6c 65  main target file
a0e0: 20 69 73 20 74 68 65 20 61 70 70 6c 69 63 61 74   is the applicat
a0f0: 69 6f 6e 0a 41 50 50 4c 49 43 41 54 49 4f 4e 3d  ion.APPLICATION=
a100: 66 6f 73 73 69 6c 2e 65 78 65 0a 0a 23 20 64 65  fossil.exe..# de
a110: 66 69 6e 65 20 74 68 65 20 73 74 61 6e 64 61 72  fine the standar
a120: 64 20 6d 61 6b 65 20 74 61 72 67 65 74 0a 2e 50  d make target..P
a130: 48 4f 4e 59 3a 09 64 65 66 61 75 6c 74 0a 64 65  HONY:.default.de
a140: 66 61 75 6c 74 3a 09 70 61 67 65 5f 69 6e 64 65  fault:.page_inde
a150: 78 2e 68 20 68 65 61 64 65 72 73 20 24 28 41 50  x.h headers $(AP
a160: 50 4c 49 43 41 54 49 4f 4e 29 0a 0a 23 20 73 79  PLICATION)..# sy
a170: 6d 62 6f 6c 69 63 20 74 61 72 67 65 74 20 74 6f  mbolic target to
a180: 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 73 6f   generate the so
a190: 75 72 63 65 20 67 65 6e 65 72 61 74 65 20 75 74  urce generate ut
a1a0: 69 6c 73 0a 2e 50 48 4f 4e 59 3a 09 75 74 69 6c  ils..PHONY:.util
a1b0: 73 0a 75 74 69 6c 73 3a 09 24 28 55 54 49 4c 53  s.utils:.$(UTILS
a1c0: 29 0a 0a 23 20 6c 69 6e 6b 20 75 74 69 6c 73 0a  )..# link utils.
a1d0: 24 28 55 54 49 4c 53 29 20 76 65 72 73 69 6f 6e  $(UTILS) version
a1e0: 2e 65 78 65 3a 09 25 2e 65 78 65 3a 09 25 2e 6f  .exe:.%.exe:.%.o
a1f0: 62 6a 0a 09 24 28 4c 49 4e 4b 29 20 24 28 4c 49  bj..$(LINK) $(LI
a200: 4e 4b 46 4c 41 47 53 29 20 2d 6f 75 74 3a 22 24  NKFLAGS) -out:"$
a210: 40 22 20 24 3c 0a 0a 23 20 63 6f 6d 70 69 6c 69  @" $<..# compili
a220: 6e 67 20 73 74 61 6e 64 61 72 64 20 66 6f 73 73  ng standard foss
a230: 69 6c 20 75 74 69 6c 73 0a 24 28 55 54 49 4c 53  il utils.$(UTILS
a240: 5f 4f 42 4a 29 3a 09 25 2e 6f 62 6a 3a 09 24 28  _OBJ):.%.obj:.$(
a250: 53 52 43 44 49 52 29 25 2e 63 0a 09 24 28 43 43  SRCDIR)%.c..$(CC
a260: 29 20 24 28 43 43 46 4c 41 47 53 29 20 24 28 49  ) $(CCFLAGS) $(I
a270: 4e 43 4c 55 44 45 29 20 22 24 3c 22 20 2d 46 6f  NCLUDE) "$<" -Fo
a280: 22 24 40 22 0a 0a 23 20 63 6f 6d 70 69 6c 65 20  "$@"..# compile 
a290: 73 70 65 63 69 61 6c 20 77 69 6e 64 6f 77 73 20  special windows 
a2a0: 75 74 69 6c 73 0a 76 65 72 73 69 6f 6e 2e 6f 62  utils.version.ob
a2b0: 6a 3a 09 24 28 53 52 43 44 49 52 29 6d 6b 76 65  j:.$(SRCDIR)mkve
a2c0: 72 73 69 6f 6e 2e 63 0a 09 24 28 43 43 29 20 24  rsion.c..$(CC) $
a2d0: 28 43 43 46 4c 41 47 53 29 20 24 28 49 4e 43 4c  (CCFLAGS) $(INCL
a2e0: 55 44 45 29 20 22 24 3c 22 20 2d 46 6f 22 24 40  UDE) "$<" -Fo"$@
a2f0: 22 0a 0a 23 20 67 65 6e 65 72 61 74 65 20 74 68  "..# generate th
a300: 65 20 74 72 61 6e 73 6c 61 74 65 64 20 63 2d 73  e translated c-s
a310: 6f 75 72 63 65 20 66 69 6c 65 73 0a 24 28 54 52  ource files.$(TR
a320: 41 4e 53 4c 41 54 45 44 53 52 43 29 3a 09 25 5f  ANSLATEDSRC):.%_
a330: 2e 63 3a 09 24 28 53 52 43 44 49 52 29 25 2e 63  .c:.$(SRCDIR)%.c
a340: 20 74 72 61 6e 73 6c 61 74 65 2e 65 78 65 0a 09   translate.exe..
a350: 74 72 61 6e 73 6c 61 74 65 2e 65 78 65 20 24 3c  translate.exe $<
a360: 20 3e 24 40 0a 0a 23 20 67 65 6e 65 72 61 74 65   >$@..# generate
a370: 20 74 68 65 20 69 6e 64 65 78 20 73 6f 75 72 63   the index sourc
a380: 65 2c 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c  e, containing al
a390: 6c 20 77 65 62 20 72 65 66 65 72 65 6e 63 65 73  l web references
a3a0: 2c 2e 2e 0a 70 61 67 65 5f 69 6e 64 65 78 2e 68  ,...page_index.h
a3b0: 3a 09 24 28 54 52 41 4e 53 4c 41 54 45 44 53 52  :.$(TRANSLATEDSR
a3c0: 43 29 20 6d 6b 69 6e 64 65 78 2e 65 78 65 0a 09  C) mkindex.exe..
a3d0: 6d 6b 69 6e 64 65 78 2e 65 78 65 20 24 28 54 52  mkindex.exe $(TR
a3e0: 41 4e 53 4c 41 54 45 44 53 52 43 29 20 3e 24 40  ANSLATEDSRC) >$@
a3f0: 0a 0a 23 20 65 78 74 72 61 63 74 69 6e 67 20 76  ..# extracting v
a400: 65 72 73 69 6f 6e 20 69 6e 66 6f 20 66 72 6f 6d  ersion info from
a410: 20 6d 61 6e 69 66 65 73 74 0a 56 45 52 53 49 4f   manifest.VERSIO
a420: 4e 2e 68 3a 09 76 65 72 73 69 6f 6e 2e 65 78 65  N.h:.version.exe
a430: 20 2e 2e 5c 6d 61 6e 69 66 65 73 74 2e 75 75 69   ..\manifest.uui
a440: 64 20 2e 2e 5c 6d 61 6e 69 66 65 73 74 20 2e 2e  d ..\manifest ..
a450: 5c 56 45 52 53 49 4f 4e 0a 09 76 65 72 73 69 6f  \VERSION..versio
a460: 6e 2e 65 78 65 20 2e 2e 5c 6d 61 6e 69 66 65 73  n.exe ..\manifes
a470: 74 2e 75 75 69 64 20 2e 2e 5c 6d 61 6e 69 66 65  t.uuid ..\manife
a480: 73 74 20 2e 2e 5c 56 45 52 53 49 4f 4e 20 20 3e  st ..\VERSION  >
a490: 20 24 40 0a 0a 23 20 67 65 6e 65 72 61 74 65 20   $@..# generate 
a4a0: 74 68 65 20 73 69 6d 70 6c 69 66 69 65 64 20 68  the simplified h
a4b0: 65 61 64 65 72 73 0a 68 65 61 64 65 72 73 3a 20  eaders.headers: 
a4c0: 6d 61 6b 65 68 65 61 64 65 72 73 2e 65 78 65 20  makeheaders.exe 
a4d0: 70 61 67 65 5f 69 6e 64 65 78 2e 68 20 56 45 52  page_index.h VER
a4e0: 53 49 4f 4e 2e 68 20 2e 2e 2f 73 72 63 2f 73 71  SION.h ../src/sq
a4f0: 6c 69 74 65 33 2e 68 20 2e 2e 2f 73 72 63 2f 74  lite3.h ../src/t
a500: 68 2e 68 20 56 45 52 53 49 4f 4e 2e 68 0a 09 6d  h.h VERSION.h..m
a510: 61 6b 65 68 65 61 64 65 72 73 2e 65 78 65 20 24  akeheaders.exe $
a520: 28 66 6f 72 65 61 63 68 20 74 73 2c 24 28 54 52  (foreach ts,$(TR
a530: 41 4e 53 4c 41 54 45 44 53 52 43 29 2c 24 28 74  ANSLATEDSRC),$(t
a540: 73 29 3a 24 28 74 73 3a 5f 2e 63 3d 2e 68 29 29  s):$(ts:_.c=.h))
a550: 20 2e 2e 2f 73 72 63 2f 73 71 6c 69 74 65 33 2e   ../src/sqlite3.
a560: 68 20 2e 2e 2f 73 72 63 2f 74 68 2e 68 20 56 45  h ../src/th.h VE
a570: 52 53 49 4f 4e 2e 68 0a 09 65 63 68 6f 20 44 6f  RSION.h..echo Do
a580: 6e 65 20 3e 24 40 0a 0a 23 20 63 6f 6d 70 69 6c  ne >$@..# compil
a590: 65 20 43 20 73 6f 75 72 63 65 73 20 77 69 74 68  e C sources with
a5a0: 20 72 65 6c 65 76 61 6e 74 20 6f 70 74 69 6f 6e   relevant option
a5b0: 73 0a 0a 24 28 54 52 41 4e 53 4c 41 54 45 44 4f  s..$(TRANSLATEDO
a5c0: 42 4a 29 3a 09 25 5f 2e 6f 62 6a 3a 09 25 5f 2e  BJ):.%_.obj:.%_.
a5d0: 63 20 25 2e 68 0a 09 24 28 43 43 29 20 24 28 43  c %.h..$(CC) $(C
a5e0: 43 46 4c 41 47 53 29 20 24 28 49 4e 43 4c 55 44  CFLAGS) $(INCLUD
a5f0: 45 29 20 22 24 3c 22 20 2d 46 6f 22 24 40 22 0a  E) "$<" -Fo"$@".
a600: 0a 24 28 53 51 4c 49 54 45 4f 42 4a 29 3a 09 25  .$(SQLITEOBJ):.%
a610: 2e 6f 62 6a 3a 09 24 28 53 52 43 44 49 52 29 25  .obj:.$(SRCDIR)%
a620: 2e 63 20 24 28 53 52 43 44 49 52 29 25 2e 68 0a  .c $(SRCDIR)%.h.
a630: 09 24 28 43 43 29 20 24 28 43 43 46 4c 41 47 53  .$(CC) $(CCFLAGS
a640: 29 20 24 28 53 51 4c 49 54 45 44 45 46 49 4e 45  ) $(SQLITEDEFINE
a650: 53 29 20 24 28 49 4e 43 4c 55 44 45 29 20 22 24  S) $(INCLUDE) "$
a660: 3c 22 20 2d 46 6f 22 24 40 22 0a 0a 24 28 53 51  <" -Fo"$@"..$(SQ
a670: 4c 49 54 45 53 48 45 4c 4c 4f 42 4a 29 3a 09 25  LITESHELLOBJ):.%
a680: 2e 6f 62 6a 3a 09 24 28 53 52 43 44 49 52 29 25  .obj:.$(SRCDIR)%
a690: 2e 63 0a 09 24 28 43 43 29 20 24 28 43 43 46 4c  .c..$(CC) $(CCFL
a6a0: 41 47 53 29 20 24 28 53 51 4c 49 54 45 53 48 45  AGS) $(SQLITESHE
a6b0: 4c 4c 44 45 46 49 4e 45 53 29 20 24 28 49 4e 43  LLDEFINES) $(INC
a6c0: 4c 55 44 45 29 20 22 24 3c 22 20 2d 46 6f 22 24  LUDE) "$<" -Fo"$
a6d0: 40 22 0a 0a 24 28 54 48 4f 42 4a 29 3a 09 25 2e  @"..$(THOBJ):.%.
a6e0: 6f 62 6a 3a 09 24 28 53 52 43 44 49 52 29 25 2e  obj:.$(SRCDIR)%.
a6f0: 63 20 24 28 53 52 43 44 49 52 29 74 68 2e 68 0a  c $(SRCDIR)th.h.
a700: 09 24 28 43 43 29 20 24 28 43 43 46 4c 41 47 53  .$(CC) $(CCFLAGS
a710: 29 20 24 28 49 4e 43 4c 55 44 45 29 20 22 24 3c  ) $(INCLUDE) "$<
a720: 22 20 2d 46 6f 22 24 40 22 0a 0a 24 28 5a 4c 49  " -Fo"$@"..$(ZLI
a730: 42 4f 42 4a 29 3a 09 25 2e 6f 62 6a 3a 09 24 28  BOBJ):.%.obj:.$(
a740: 5a 4c 49 42 53 52 43 44 49 52 29 25 2e 63 0a 09  ZLIBSRCDIR)%.c..
a750: 24 28 43 43 29 20 24 28 43 43 46 4c 41 47 53 29  $(CC) $(CCFLAGS)
a760: 20 24 28 49 4e 43 4c 55 44 45 29 20 22 24 3c 22   $(INCLUDE) "$<"
a770: 20 2d 46 6f 22 24 40 22 0a 0a 23 20 63 72 65 61   -Fo"$@"..# crea
a780: 74 65 20 74 68 65 20 77 69 6e 64 6f 77 73 20 72  te the windows r
a790: 65 73 6f 75 72 63 65 20 77 69 74 68 20 69 63 6f  esource with ico
a7a0: 6e 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 69 6e  n and version in
a7b0: 66 6f 0a 24 28 52 45 53 4f 55 52 43 45 29 3a 09  fo.$(RESOURCE):.
a7c0: 25 2e 72 65 73 3a 09 2e 2e 2f 77 69 6e 2f 25 2e  %.res:.../win/%.
a7d0: 72 63 20 2e 2e 2f 77 69 6e 2f 2a 2e 69 63 6f 0a  rc ../win/*.ico.
a7e0: 09 24 28 52 43 29 20 24 28 52 43 46 4c 41 47 53  .$(RC) $(RCFLAGS
a7f0: 29 20 24 3c 20 2d 46 6f 22 24 40 22 0a 0a 23 20  ) $< -Fo"$@"..# 
a800: 6c 69 6e 6b 20 74 68 65 20 61 70 70 6c 69 63 61  link the applica
a810: 74 69 6f 6e 0a 24 28 41 50 50 4c 49 43 41 54 49  tion.$(APPLICATI
a820: 4f 4e 29 3a 09 24 28 54 52 41 4e 53 4c 41 54 45  ON):.$(TRANSLATE
a830: 44 4f 42 4a 29 20 24 28 53 51 4c 49 54 45 4f 42  DOBJ) $(SQLITEOB
a840: 4a 29 20 24 28 53 51 4c 49 54 45 53 48 45 4c 4c  J) $(SQLITESHELL
a850: 4f 42 4a 29 20 24 28 54 48 4f 42 4a 29 20 24 28  OBJ) $(THOBJ) $(
a860: 5a 4c 49 42 4f 42 4a 29 20 68 65 61 64 65 72 73  ZLIBOBJ) headers
a870: 20 24 28 52 45 53 4f 55 52 43 45 29 0a 09 24 28   $(RESOURCE)..$(
a880: 4c 49 4e 4b 29 20 24 28 4c 49 4e 4b 46 4c 41 47  LINK) $(LINKFLAG
a890: 53 29 20 2d 6f 75 74 3a 22 24 40 22 20 24 28 54  S) -out:"$@" $(T
a8a0: 52 41 4e 53 4c 41 54 45 44 4f 42 4a 29 20 24 28  RANSLATEDOBJ) $(
a8b0: 53 51 4c 49 54 45 4f 42 4a 29 20 24 28 53 51 4c  SQLITEOBJ) $(SQL
a8c0: 49 54 45 53 48 45 4c 4c 4f 42 4a 29 20 24 28 54  ITESHELLOBJ) $(T
a8d0: 48 4f 42 4a 29 20 24 28 5a 4c 49 42 4f 42 4a 29  HOBJ) $(ZLIBOBJ)
a8e0: 20 24 28 52 45 53 4f 55 52 43 45 29 0a 0a 23 20   $(RESOURCE)..# 
a8f0: 63 6c 65 61 6e 75 70 0a 0a 2e 50 48 4f 4e 59 3a  cleanup...PHONY:
a900: 20 63 6c 65 61 6e 0a 63 6c 65 61 6e 3a 0a 09 64   clean.clean:..d
a910: 65 6c 20 2f 46 20 24 28 54 52 41 4e 53 4c 41 54  el /F $(TRANSLAT
a920: 45 44 4f 42 4a 29 20 24 28 53 51 4c 49 54 45 4f  EDOBJ) $(SQLITEO
a930: 42 4a 29 20 24 28 54 48 4f 42 4a 29 20 24 28 5a  BJ) $(THOBJ) $(Z
a940: 4c 49 42 4f 42 4a 29 20 24 28 55 54 49 4c 53 5f  LIBOBJ) $(UTILS_
a950: 4f 42 4a 29 20 76 65 72 73 69 6f 6e 2e 6f 62 6a  OBJ) version.obj
a960: 0a 09 64 65 6c 20 2f 46 20 24 28 54 52 41 4e 53  ..del /F $(TRANS
a970: 4c 41 54 45 44 53 52 43 29 0a 09 64 65 6c 20 2f  LATEDSRC)..del /
a980: 46 20 2a 2e 68 20 68 65 61 64 65 72 73 0a 09 64  F *.h headers..d
a990: 65 6c 20 2f 46 20 24 28 52 45 53 4f 55 52 43 45  el /F $(RESOURCE
a9a0: 29 0a 0a 2e 50 48 4f 4e 59 3a 20 63 6c 6f 62 62  )...PHONY: clobb
a9b0: 65 72 0a 63 6c 6f 62 62 65 72 3a 20 63 6c 65 61  er.clobber: clea
a9c0: 6e 0a 09 64 65 6c 20 2f 46 20 2a 2e 65 78 65 0a  n..del /F *.exe.
a9d0: 7d 5d 0a                                         }].