Fossil

Hex Artifact Content
Login

Artifact 9e023e7503352a367dad3981470ead3efce6df10e74c153f6c6b71ee2806dd7c:


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 20 20 20 23 23 23 20 52 75 6e 20  .#.#    ### Run 
0020: 74 68 69 73 20 54 63 6c 20 73 63 72 69 70 74 20  this Tcl script 
0030: 45 56 45 52 59 20 74 69 6d 65 20 79 6f 75 20 6d  EVERY time you m
0040: 6f 64 69 66 79 20 69 74 20 69 6e 20 61 6e 79 20  odify it in any 
0050: 77 61 79 21 20 23 23 23 0a 23 0a 23 20 54 68 69  way! ###.#.# Thi
0060: 73 20 54 63 6c 20 73 63 72 69 70 74 20 67 65 6e  s Tcl script gen
0070: 65 72 61 74 65 73 20 6d 61 6b 65 20 66 69 6c 65  erates make file
0080: 73 20 66 6f 72 20 76 61 72 69 6f 75 73 20 70 6c  s for various pl
0090: 61 74 66 6f 72 6d 73 2e 20 54 68 65 20 6d 61 6b  atforms. The mak
00a0: 65 66 69 6c 65 73 0a 23 20 74 68 65 6e 20 6e 65  efiles.# then ne
00b0: 65 64 20 74 6f 20 62 65 20 63 6f 6d 6d 69 74 74  ed to be committ
00c0: 65 64 2e 0a 23 0a 23 20 49 66 20 79 6f 75 20 6d  ed..#.# If you m
00d0: 6f 64 69 66 79 20 74 68 69 73 20 66 69 6c 65 20  odify this file 
00e0: 74 68 65 6e 3a 0a 23 0a 23 20 20 20 20 20 31 2e  then:.#.#     1.
00f0: 20 63 64 20 73 72 63 3b 20 74 63 6c 73 68 20 6d   cd src; tclsh m
0100: 61 6b 65 6d 61 6b 65 2e 74 63 6c 0a 23 0a 23 20  akemake.tcl.#.# 
0110: 20 20 20 20 32 2e 20 69 66 20 65 72 72 6f 72 73      2. if errors
0120: 20 61 72 65 20 72 65 70 6f 72 74 65 64 2c 20 66   are reported, f
0130: 69 78 20 74 68 65 6d 20 61 6e 64 20 67 6f 20 74  ix them and go t
0140: 6f 20 73 74 65 70 20 31 0a 23 0a 23 20 20 20 20  o step 1.#.#    
0150: 20 33 2e 20 69 66 20 22 66 6f 73 73 69 6c 20 64   3. if "fossil d
0160: 69 66 66 22 20 72 65 70 6f 72 74 73 20 63 68 61  iff" reports cha
0170: 6e 67 65 73 20 69 6e 20 61 6e 79 20 6f 66 20 74  nges in any of t
0180: 68 65 20 67 65 6e 65 72 61 74 65 64 0a 23 20 20  he generated.#  
0190: 20 20 20 20 20 20 66 69 6c 65 73 2c 20 63 6f 6d        files, com
01a0: 6d 69 74 20 74 68 65 20 63 68 61 6e 67 65 64 20  mit the changed 
01b0: 66 69 6c 65 73 20 74 6f 20 74 68 65 20 72 65 70  files to the rep
01c0: 6f 0a 23 0a 23 20 46 69 6c 65 73 20 67 65 6e 65  o.#.# Files gene
01d0: 72 61 74 65 64 20 69 6e 63 6c 75 64 65 3a 0a 23  rated include:.#
01e0: 0a 23 20 20 20 20 20 73 72 63 2f 6d 61 69 6e 2e  .#     src/main.
01f0: 6d 6b 20 20 20 20 20 20 20 20 20 20 20 23 20 6d  mk           # m
0200: 61 6b 65 66 69 6c 65 20 66 6f 72 20 61 6c 6c 20  akefile for all 
0210: 75 6e 69 78 20 73 79 73 74 65 6d 73 0a 23 20 20  unix systems.#  
0220: 20 20 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e     win/Makefile.
0230: 6d 69 6e 67 77 20 20 20 20 23 20 6d 61 6b 65 66  mingw    # makef
0240: 69 6c 65 20 66 6f 72 20 6d 69 6e 67 77 20 6f 6e  ile for mingw on
0250: 20 77 69 6e 64 6f 77 73 0a 23 20 20 20 20 20 77   windows.#     w
0260: 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 2a 20 20 20  in/Makefile.*   
0270: 20 20 20 20 20 23 20 6d 61 6b 65 66 69 6c 65 73       # makefiles
0280: 20 66 6f 72 20 6f 74 68 65 72 20 77 69 6e 64 6f   for other windo
0290: 77 73 20 63 6f 6d 70 69 6c 65 72 73 0a 23 0a 23  ws compilers.#.#
02a0: 20 41 64 64 20 6e 65 77 20 73 6f 75 72 63 65 20   Add new source 
02b0: 66 69 6c 65 73 20 62 79 20 6c 69 73 74 69 6e 67  files by listing
02c0: 20 74 68 65 20 66 69 6c 65 73 20 28 77 69 74 68   the files (with
02d0: 6f 75 74 20 74 68 65 69 72 20 2e 63 20 73 75 66  out their .c suf
02e0: 66 69 78 29 0a 23 20 69 6e 20 74 68 65 20 22 73  fix).# in the "s
02f0: 72 63 22 20 76 61 72 69 61 62 6c 65 2e 20 20 41  rc" variable.  A
0300: 64 64 20 6e 65 77 20 72 65 73 6f 75 72 63 65 20  dd new resource 
0310: 66 69 6c 65 73 20 74 6f 20 74 68 65 20 22 65 78  files to the "ex
0320: 74 72 61 5f 66 69 6c 65 73 22 0a 23 20 76 61 72  tra_files".# var
0330: 69 61 62 6c 65 2e 20 20 54 68 65 72 65 20 61 72  iable.  There ar
0340: 65 20 6f 74 68 65 72 20 76 61 72 69 61 62 6c 65  e other variable
0350: 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 61  s that you can a
0360: 6c 74 65 72 2c 20 64 6f 77 6e 20 74 6f 0a 23 20  lter, down to.# 
0370: 74 68 65 20 22 53 54 4f 50 20 48 45 52 45 22 20  the "STOP HERE" 
0380: 63 6f 6d 6d 65 6e 74 2e 20 20 54 68 65 20 73 74  comment.  The st
0390: 75 66 66 20 62 65 6c 6f 77 20 22 53 54 4f 50 20  uff below "STOP 
03a0: 48 45 52 45 22 20 73 68 6f 75 6c 64 20 72 61 72  HERE" should rar
03b0: 65 6c 79 20 6e 65 65 64 0a 23 20 74 6f 20 63 68  ely need.# to ch
03c0: 61 6e 67 65 2e 20 41 66 74 65 72 20 6d 6f 64 69  ange. After modi
03d0: 66 69 63 61 74 69 6f 6e 2c 20 67 6f 20 74 6f 20  fication, go to 
03e0: 73 74 65 70 20 31 20 61 62 6f 76 65 2e 0a 23 0a  step 1 above..#.
03f0: 23 20 44 65 6c 65 74 65 20 75 6e 75 73 65 64 20  # Delete unused 
0400: 73 6f 75 72 63 65 20 66 69 6c 65 73 20 69 6e 20  source files in 
0410: 74 68 65 20 22 73 72 63 22 20 76 61 72 69 61 62  the "src" variab
0420: 6c 65 2c 20 74 68 65 6e 20 67 6f 20 74 6f 20 73  le, then go to s
0430: 74 65 70 20 31 20 61 62 6f 76 65 2e 0a 23 0a 23  tep 1 above..#.#
0440: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0450: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0460: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0470: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0480: 23 23 23 23 23 23 23 23 23 23 23 23 0a 0a 23 20  ############..# 
0490: 42 61 73 65 6e 61 6d 65 73 20 6f 66 20 61 6c 6c  Basenames of all
04a0: 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 74 68   source files th
04b0: 61 74 20 67 65 74 20 70 72 65 70 72 6f 63 65 73  at get preproces
04c0: 73 65 64 20 75 73 69 6e 67 0a 23 20 22 74 72 61  sed using.# "tra
04d0: 6e 73 6c 61 74 65 22 20 61 6e 64 20 22 6d 61 6b  nslate" and "mak
04e0: 65 68 65 61 64 65 72 73 22 2e 20 20 54 6f 20 61  eheaders".  To a
04f0: 64 64 20 6e 65 77 20 43 2d 6c 61 6e 67 75 61 67  dd new C-languag
0500: 65 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 74  e source files t
0510: 6f 20 74 68 65 0a 23 20 70 72 6f 6a 65 63 74 2c  o the.# project,
0520: 20 73 69 6d 70 6c 79 20 61 64 64 20 74 68 65 20   simply add the 
0530: 62 61 73 65 6e 61 6d 65 20 74 6f 20 74 68 69 73  basename to this
0540: 20 6c 69 73 74 20 61 6e 64 20 72 65 72 75 6e 20   list and rerun 
0550: 74 68 69 73 20 73 63 72 69 70 74 2e 0a 23 0a 23  this script..#.#
0560: 20 53 65 74 20 74 68 65 20 73 65 70 61 72 61 74   Set the separat
0570: 65 20 65 78 74 72 61 5f 66 69 6c 65 73 20 76 61  e extra_files va
0580: 72 69 61 62 6c 65 20 66 75 72 74 68 65 72 20 64  riable further d
0590: 6f 77 6e 20 66 6f 72 20 68 6f 77 20 74 6f 20 61  own for how to a
05a0: 64 64 20 6e 6f 6e 2d 43 0a 23 20 66 69 6c 65 73  dd non-C.# files
05b0: 2c 20 73 75 63 68 20 61 73 20 73 74 72 69 6e 67  , such as string
05c0: 20 61 6e 64 20 42 4c 4f 42 20 72 65 73 6f 75 72   and BLOB resour
05d0: 63 65 73 2e 0a 23 0a 73 65 74 20 73 72 63 20 7b  ces..#.set src {
05e0: 0a 20 20 61 64 64 0a 20 20 61 6a 61 78 0a 20 20  .  add.  ajax.  
05f0: 61 6c 65 72 74 73 0a 20 20 61 6c 6c 72 65 70 6f  alerts.  allrepo
0600: 0a 20 20 61 74 74 61 63 68 0a 20 20 62 61 63 6b  .  attach.  back
0610: 6c 69 6e 6b 0a 20 20 62 61 63 6b 6f 66 66 69 63  link.  backoffic
0620: 65 0a 20 20 62 61 67 0a 20 20 62 69 73 65 63 74  e.  bag.  bisect
0630: 0a 20 20 62 6c 6f 62 0a 20 20 62 72 61 6e 63 68  .  blob.  branch
0640: 0a 20 20 62 72 6f 77 73 65 0a 20 20 62 75 69 6c  .  browse.  buil
0650: 74 69 6e 0a 20 20 62 75 6e 64 6c 65 0a 20 20 63  tin.  bundle.  c
0660: 61 63 68 65 0a 20 20 63 61 70 61 62 69 6c 69 74  ache.  capabilit
0670: 69 65 73 0a 20 20 63 61 70 74 63 68 61 0a 20 20  ies.  captcha.  
0680: 63 67 69 0a 20 20 63 68 61 74 0a 20 20 63 68 65  cgi.  chat.  che
0690: 63 6b 69 6e 0a 20 20 63 68 65 63 6b 6f 75 74 0a  ckin.  checkout.
06a0: 20 20 63 6c 65 61 72 73 69 67 6e 0a 20 20 63 6c    clearsign.  cl
06b0: 6f 6e 65 0a 20 20 63 6f 6c 6f 72 0a 20 20 63 6f  one.  color.  co
06c0: 6d 66 6f 72 6d 61 74 0a 20 20 63 6f 6e 66 69 67  mformat.  config
06d0: 75 72 65 0a 20 20 63 6f 6e 74 65 6e 74 0a 20 20  ure.  content.  
06e0: 63 6f 6f 6b 69 65 73 0a 20 20 64 62 0a 20 20 64  cookies.  db.  d
06f0: 65 6c 74 61 0a 20 20 64 65 6c 74 61 63 6d 64 0a  elta.  deltacmd.
0700: 20 20 64 65 6c 74 61 66 75 6e 63 0a 20 20 64 65    deltafunc.  de
0710: 73 63 65 6e 64 61 6e 74 73 0a 20 20 64 69 66 66  scendants.  diff
0720: 0a 20 20 64 69 66 66 63 6d 64 0a 20 20 64 69 73  .  diffcmd.  dis
0730: 70 61 74 63 68 0a 20 20 64 6f 63 0a 20 20 65 6e  patch.  doc.  en
0740: 63 6f 64 65 0a 20 20 65 74 61 67 0a 20 20 65 76  code.  etag.  ev
0750: 65 6e 74 0a 20 20 65 78 74 63 67 69 0a 20 20 65  ent.  extcgi.  e
0760: 78 70 6f 72 74 0a 20 20 66 69 6c 65 0a 20 20 66  xport.  file.  f
0770: 69 6c 65 65 64 69 74 0a 20 20 66 69 6e 66 6f 0a  ileedit.  finfo.
0780: 20 20 66 6f 63 69 0a 20 20 66 6f 72 75 6d 0a 20    foci.  forum. 
0790: 20 66 73 68 65 6c 6c 0a 20 20 66 75 73 65 66 73   fshell.  fusefs
07a0: 0a 20 20 66 75 7a 7a 0a 20 20 67 6c 6f 62 0a 20  .  fuzz.  glob. 
07b0: 20 67 72 61 70 68 0a 20 20 67 7a 69 70 0a 20 20   graph.  gzip.  
07c0: 68 6e 61 6d 65 0a 20 20 68 6f 6f 6b 0a 20 20 68  hname.  hook.  h
07d0: 74 74 70 0a 20 20 68 74 74 70 5f 73 6f 63 6b 65  ttp.  http_socke
07e0: 74 0a 20 20 68 74 74 70 5f 74 72 61 6e 73 70 6f  t.  http_transpo
07f0: 72 74 0a 20 20 69 6d 70 6f 72 74 0a 20 20 69 6e  rt.  import.  in
0800: 66 6f 0a 20 20 69 6e 74 65 72 77 69 6b 69 0a 20  fo.  interwiki. 
0810: 20 6a 73 6f 6e 0a 20 20 6a 73 6f 6e 5f 61 72 74   json.  json_art
0820: 69 66 61 63 74 0a 20 20 6a 73 6f 6e 5f 62 72 61  ifact.  json_bra
0830: 6e 63 68 0a 20 20 6a 73 6f 6e 5f 63 6f 6e 66 69  nch.  json_confi
0840: 67 0a 20 20 6a 73 6f 6e 5f 64 69 66 66 0a 20 20  g.  json_diff.  
0850: 6a 73 6f 6e 5f 64 69 72 0a 20 20 6a 73 6f 6e 5f  json_dir.  json_
0860: 66 69 6e 66 6f 0a 20 20 6a 73 6f 6e 5f 6c 6f 67  finfo.  json_log
0870: 69 6e 0a 20 20 6a 73 6f 6e 5f 71 75 65 72 79 0a  in.  json_query.
0880: 20 20 6a 73 6f 6e 5f 72 65 70 6f 72 74 0a 20 20    json_report.  
0890: 6a 73 6f 6e 5f 73 74 61 74 75 73 0a 20 20 6a 73  json_status.  js
08a0: 6f 6e 5f 74 61 67 0a 20 20 6a 73 6f 6e 5f 74 69  on_tag.  json_ti
08b0: 6d 65 6c 69 6e 65 0a 20 20 6a 73 6f 6e 5f 75 73  meline.  json_us
08c0: 65 72 0a 20 20 6a 73 6f 6e 5f 77 69 6b 69 0a 20  er.  json_wiki. 
08d0: 20 6c 65 61 66 0a 20 20 6c 6f 61 64 63 74 72 6c   leaf.  loadctrl
08e0: 0a 20 20 6c 6f 67 69 6e 0a 20 20 6c 6f 6f 6b 73  .  login.  looks
08f0: 6c 69 6b 65 0a 20 20 6d 61 69 6e 0a 20 20 6d 61  like.  main.  ma
0900: 6e 69 66 65 73 74 0a 20 20 6d 61 72 6b 64 6f 77  nifest.  markdow
0910: 6e 0a 20 20 6d 61 72 6b 64 6f 77 6e 5f 68 74 6d  n.  markdown_htm
0920: 6c 0a 20 20 6d 64 35 0a 20 20 6d 65 72 67 65 0a  l.  md5.  merge.
0930: 20 20 6d 65 72 67 65 33 0a 20 20 6d 6f 64 65 72    merge3.  moder
0940: 61 74 65 0a 20 20 6e 61 6d 65 0a 20 20 70 61 74  ate.  name.  pat
0950: 63 68 0a 20 20 70 61 74 68 0a 20 20 70 69 65 63  ch.  path.  piec
0960: 68 61 72 74 0a 20 20 70 69 6b 63 68 72 0a 20 20  hart.  pikchr.  
0970: 70 69 6b 63 68 72 73 68 6f 77 0a 20 20 70 69 76  pikchrshow.  piv
0980: 6f 74 0a 20 20 70 6f 70 65 6e 0a 20 20 70 71 75  ot.  popen.  pqu
0990: 65 75 65 0a 20 20 70 72 69 6e 74 66 0a 20 20 70  eue.  printf.  p
09a0: 75 62 6c 69 73 68 0a 20 20 70 75 72 67 65 0a 20  ublish.  purge. 
09b0: 20 72 65 62 75 69 6c 64 0a 20 20 72 65 67 65 78   rebuild.  regex
09c0: 70 0a 20 20 72 65 70 6f 6c 69 73 74 0a 20 20 72  p.  repolist.  r
09d0: 65 70 6f 72 74 0a 20 20 72 73 73 0a 20 20 73 63  eport.  rss.  sc
09e0: 68 65 6d 61 0a 20 20 73 65 61 72 63 68 0a 20 20  hema.  search.  
09f0: 73 65 63 75 72 69 74 79 5f 61 75 64 69 74 0a 20  security_audit. 
0a00: 20 73 65 74 75 70 0a 20 20 73 65 74 75 70 75 73   setup.  setupus
0a10: 65 72 0a 20 20 73 68 61 31 0a 20 20 73 68 61 31  er.  sha1.  sha1
0a20: 68 61 72 64 0a 20 20 73 68 61 33 0a 20 20 73 68  hard.  sha3.  sh
0a30: 75 6e 0a 20 20 73 69 74 65 6d 61 70 0a 20 20 73  un.  sitemap.  s
0a40: 6b 69 6e 73 0a 20 20 73 6d 74 70 0a 20 20 73 71  kins.  smtp.  sq
0a50: 6c 63 6d 64 0a 20 20 73 74 61 73 68 0a 20 20 73  lcmd.  stash.  s
0a60: 74 61 74 0a 20 20 73 74 61 74 72 65 70 0a 20 20  tat.  statrep.  
0a70: 73 74 79 6c 65 0a 20 20 73 79 6e 63 0a 20 20 74  style.  sync.  t
0a80: 61 67 0a 20 20 74 61 72 0a 20 20 74 65 72 6d 69  ag.  tar.  termi
0a90: 6e 61 6c 0a 20 20 74 68 5f 6d 61 69 6e 0a 20 20  nal.  th_main.  
0aa0: 74 69 6d 65 6c 69 6e 65 0a 20 20 74 6b 74 0a 20  timeline.  tkt. 
0ab0: 20 74 6b 74 73 65 74 75 70 0a 20 20 75 6e 64 6f   tktsetup.  undo
0ac0: 0a 20 20 75 6e 69 63 6f 64 65 0a 20 20 75 6e 76  .  unicode.  unv
0ad0: 65 72 73 69 6f 6e 65 64 0a 20 20 75 70 64 61 74  ersioned.  updat
0ae0: 65 0a 20 20 75 72 6c 0a 20 20 75 73 65 72 0a 20  e.  url.  user. 
0af0: 20 75 74 66 38 0a 20 20 75 74 69 6c 0a 20 20 76   utf8.  util.  v
0b00: 65 72 69 66 79 0a 20 20 76 66 69 6c 65 0a 20 20  erify.  vfile.  
0b10: 77 69 6b 69 0a 20 20 77 69 6b 69 66 6f 72 6d 61  wiki.  wikiforma
0b20: 74 0a 20 20 77 69 6e 66 69 6c 65 0a 20 20 77 69  t.  winfile.  wi
0b30: 6e 68 74 74 70 0a 20 20 78 66 65 72 0a 20 20 78  nhttp.  xfer.  x
0b40: 66 65 72 73 65 74 75 70 0a 20 20 7a 69 70 0a 20  fersetup.  zip. 
0b50: 20 68 74 74 70 5f 73 73 6c 0a 7d 0a 0a 23 20 41   http_ssl.}..# A
0b60: 64 64 69 74 69 6f 6e 61 6c 20 72 65 73 6f 75 72  dditional resour
0b70: 63 65 20 66 69 6c 65 73 20 74 68 61 74 20 67 65  ce files that ge
0b80: 74 20 62 75 69 6c 74 20 69 6e 74 6f 20 74 68 65  t built into the
0b90: 20 65 78 65 63 75 74 61 62 6c 65 2e 0a 23 0a 73   executable..#.s
0ba0: 65 74 20 65 78 74 72 61 5f 66 69 6c 65 73 20 7b  et extra_files {
0bb0: 0a 20 20 64 69 66 66 2e 74 63 6c 0a 20 20 6d 61  .  diff.tcl.  ma
0bc0: 72 6b 64 6f 77 6e 2e 6d 64 0a 20 20 77 69 6b 69  rkdown.md.  wiki
0bd0: 2e 77 69 6b 69 0a 20 20 2a 2e 6a 73 0a 20 20 64  .wiki.  *.js.  d
0be0: 65 66 61 75 6c 74 2e 63 73 73 0a 20 20 73 74 79  efault.css.  sty
0bf0: 6c 65 2e 2a 2e 63 73 73 0a 20 20 2e 2e 2f 73 6b  le.*.css.  ../sk
0c00: 69 6e 73 2f 2a 2f 2a 2e 74 78 74 0a 20 20 73 6f  ins/*/*.txt.  so
0c10: 75 6e 64 73 2f 2a 2e 77 61 76 0a 20 20 61 6c 65  unds/*.wav.  ale
0c20: 72 74 73 2f 2a 2e 77 61 76 0a 7d 0a 0a 23 20 4f  rts/*.wav.}..# O
0c30: 70 74 69 6f 6e 73 20 75 73 65 64 20 74 6f 20 63  ptions used to c
0c40: 6f 6d 70 69 6c 65 20 74 68 65 20 69 6e 63 6c 75  ompile the inclu
0c50: 64 65 64 20 53 51 4c 69 74 65 20 6c 69 62 72 61  ded SQLite libra
0c60: 72 79 2e 0a 23 0a 73 65 74 20 53 51 4c 49 54 45  ry..#.set SQLITE
0c70: 5f 4f 50 54 49 4f 4e 53 20 7b 0a 20 20 2d 44 4e  _OPTIONS {.  -DN
0c80: 44 45 42 55 47 3d 31 0a 20 20 2d 44 53 51 4c 49  DEBUG=1.  -DSQLI
0c90: 54 45 5f 44 51 53 3d 30 0a 20 20 2d 44 53 51 4c  TE_DQS=0.  -DSQL
0ca0: 49 54 45 5f 54 48 52 45 41 44 53 41 46 45 3d 30  ITE_THREADSAFE=0
0cb0: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46 41  .  -DSQLITE_DEFA
0cc0: 55 4c 54 5f 4d 45 4d 53 54 41 54 55 53 3d 30 0a  ULT_MEMSTATUS=0.
0cd0: 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55    -DSQLITE_DEFAU
0ce0: 4c 54 5f 57 41 4c 5f 53 59 4e 43 48 52 4f 4e 4f  LT_WAL_SYNCHRONO
0cf0: 55 53 3d 31 0a 20 20 2d 44 53 51 4c 49 54 45 5f  US=1.  -DSQLITE_
0d00: 4c 49 4b 45 5f 44 4f 45 53 4e 54 5f 4d 41 54 43  LIKE_DOESNT_MATC
0d10: 48 5f 42 4c 4f 42 53 0a 20 20 2d 44 53 51 4c 49  H_BLOBS.  -DSQLI
0d20: 54 45 5f 4f 4d 49 54 5f 44 45 43 4c 54 59 50 45  TE_OMIT_DECLTYPE
0d30: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54  .  -DSQLITE_OMIT
0d40: 5f 44 45 50 52 45 43 41 54 45 44 0a 20 20 2d 44  _DEPRECATED.  -D
0d50: 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 50 52 4f 47  SQLITE_OMIT_PROG
0d60: 52 45 53 53 5f 43 41 4c 4c 42 41 43 4b 0a 20 20  RESS_CALLBACK.  
0d70: 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 53 48  -DSQLITE_OMIT_SH
0d80: 41 52 45 44 5f 43 41 43 48 45 0a 20 20 2d 44 53  ARED_CACHE.  -DS
0d90: 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41 44 5f  QLITE_OMIT_LOAD_
0da0: 45 58 54 45 4e 53 49 4f 4e 0a 20 20 2d 44 53 51  EXTENSION.  -DSQ
0db0: 4c 49 54 45 5f 4d 41 58 5f 45 58 50 52 5f 44 45  LITE_MAX_EXPR_DE
0dc0: 50 54 48 3d 30 0a 20 20 2d 44 53 51 4c 49 54 45  PTH=0.  -DSQLITE
0dd0: 5f 55 53 45 5f 41 4c 4c 4f 43 41 0a 20 20 2d 44  _USE_ALLOCA.  -D
0de0: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4c 4f  SQLITE_ENABLE_LO
0df0: 43 4b 49 4e 47 5f 53 54 59 4c 45 3d 30 0a 20 20  CKING_STYLE=0.  
0e00: 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54  -DSQLITE_DEFAULT
0e10: 5f 46 49 4c 45 5f 46 4f 52 4d 41 54 3d 34 0a 20  _FILE_FORMAT=4. 
0e20: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
0e30: 5f 45 58 50 4c 41 49 4e 5f 43 4f 4d 4d 45 4e 54  _EXPLAIN_COMMENT
0e40: 53 0a 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  S.  -DSQLITE_ENA
0e50: 42 4c 45 5f 46 54 53 34 0a 20 20 2d 44 53 51 4c  BLE_FTS4.  -DSQL
0e60: 49 54 45 5f 45 4e 41 42 4c 45 5f 44 42 53 54 41  ITE_ENABLE_DBSTA
0e70: 54 5f 56 54 41 42 0a 20 20 2d 44 53 51 4c 49 54  T_VTAB.  -DSQLIT
0e80: 45 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 31 0a 20  E_ENABLE_JSON1. 
0e90: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
0ea0: 5f 46 54 53 35 0a 20 20 2d 44 53 51 4c 49 54 45  _FTS5.  -DSQLITE
0eb0: 5f 45 4e 41 42 4c 45 5f 53 54 4d 54 56 54 41 42  _ENABLE_STMTVTAB
0ec0: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 48 41 56 45  .  -DSQLITE_HAVE
0ed0: 5f 5a 4c 49 42 0a 20 20 2d 44 53 51 4c 49 54 45  _ZLIB.  -DSQLITE
0ee0: 5f 49 4e 54 52 4f 53 50 45 43 54 49 4f 4e 5f 50  _INTROSPECTION_P
0ef0: 52 41 47 4d 41 53 0a 20 20 2d 44 53 51 4c 49 54  RAGMAS.  -DSQLIT
0f00: 45 5f 45 4e 41 42 4c 45 5f 44 42 50 41 47 45 5f  E_ENABLE_DBPAGE_
0f10: 56 54 41 42 0a 20 20 2d 44 53 51 4c 49 54 45 5f  VTAB.  -DSQLITE_
0f20: 54 52 55 53 54 45 44 5f 53 43 48 45 4d 41 3d 30  TRUSTED_SCHEMA=0
0f30: 0a 7d 0a 23 6c 61 70 70 65 6e 64 20 53 51 4c 49  .}.#lappend SQLI
0f40: 54 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 53 51 4c  TE_OPTIONS -DSQL
0f50: 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 33 3d  ITE_ENABLE_FTS3=
0f60: 31 0a 23 6c 61 70 70 65 6e 64 20 53 51 4c 49 54  1.#lappend SQLIT
0f70: 45 5f 4f 50 54 49 4f 4e 53 20 2d 44 53 51 4c 49  E_OPTIONS -DSQLI
0f80: 54 45 5f 45 4e 41 42 4c 45 5f 53 54 41 54 34 0a  TE_ENABLE_STAT4.
0f90: 23 6c 61 70 70 65 6e 64 20 53 51 4c 49 54 45 5f  #lappend SQLITE_
0fa0: 4f 50 54 49 4f 4e 53 20 2d 44 53 51 4c 49 54 45  OPTIONS -DSQLITE
0fb0: 5f 57 49 4e 33 32 5f 4e 4f 5f 41 4e 53 49 0a 23  _WIN32_NO_ANSI.#
0fc0: 6c 61 70 70 65 6e 64 20 53 51 4c 49 54 45 5f 4f  lappend SQLITE_O
0fd0: 50 54 49 4f 4e 53 20 2d 44 53 51 4c 49 54 45 5f  PTIONS -DSQLITE_
0fe0: 57 49 4e 4e 54 5f 4d 41 58 5f 50 41 54 48 5f 43  WINNT_MAX_PATH_C
0ff0: 48 41 52 53 3d 34 30 39 36 0a 0a 23 20 4f 70 74  HARS=4096..# Opt
1000: 69 6f 6e 73 20 75 73 65 64 20 74 6f 20 63 6f 6d  ions used to com
1010: 70 69 6c 65 20 74 68 65 20 69 6e 63 6c 75 64 65  pile the include
1020: 64 20 53 51 4c 69 74 65 20 73 68 65 6c 6c 2e 0a  d SQLite shell..
1030: 23 0a 73 65 74 20 53 48 45 4c 4c 5f 4f 50 54 49  #.set SHELL_OPTI
1040: 4f 4e 53 20 5b 63 6f 6e 63 61 74 20 24 53 51 4c  ONS [concat $SQL
1050: 49 54 45 5f 4f 50 54 49 4f 4e 53 20 7b 0a 20 20  ITE_OPTIONS {.  
1060: 2d 44 6d 61 69 6e 3d 73 71 6c 69 74 65 33 5f 73  -Dmain=sqlite3_s
1070: 68 65 6c 6c 0a 20 20 2d 44 53 51 4c 49 54 45 5f  hell.  -DSQLITE_
1080: 53 48 45 4c 4c 5f 49 53 5f 55 54 46 38 3d 31 0a  SHELL_IS_UTF8=1.
1090: 20 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f    -DSQLITE_OMIT_
10a0: 4c 4f 41 44 5f 45 58 54 45 4e 53 49 4f 4e 3d 31  LOAD_EXTENSION=1
10b0: 0a 20 20 2d 44 55 53 45 5f 53 59 53 54 45 4d 5f  .  -DUSE_SYSTEM_
10c0: 53 51 4c 49 54 45 3d 24 28 55 53 45 5f 53 59 53  SQLITE=$(USE_SYS
10d0: 54 45 4d 5f 53 51 4c 49 54 45 29 0a 20 20 2d 44  TEM_SQLITE).  -D
10e0: 53 51 4c 49 54 45 5f 53 48 45 4c 4c 5f 44 42 4e  SQLITE_SHELL_DBN
10f0: 41 4d 45 5f 50 52 4f 43 3d 73 71 6c 63 6d 64 5f  AME_PROC=sqlcmd_
1100: 67 65 74 5f 64 62 6e 61 6d 65 0a 20 20 2d 44 53  get_dbname.  -DS
1110: 51 4c 49 54 45 5f 53 48 45 4c 4c 5f 49 4e 49 54  QLITE_SHELL_INIT
1120: 5f 50 52 4f 43 3d 73 71 6c 63 6d 64 5f 69 6e 69  _PROC=sqlcmd_ini
1130: 74 5f 70 72 6f 63 0a 7d 5d 0a 0a 23 20 6d 69 6e  t_proc.}]..# min
1140: 69 7a 20 28 6c 69 62 7a 20 64 72 6f 70 2d 69 6e  iz (libz drop-in
1150: 20 61 6c 74 65 72 6e 61 74 69 76 65 29 20 70 72   alternative) pr
1160: 65 63 6f 6d 70 69 6c 65 72 20 66 6c 61 67 73 2e  ecompiler flags.
1170: 0a 23 0a 73 65 74 20 4d 49 4e 49 5a 5f 4f 50 54  .#.set MINIZ_OPT
1180: 49 4f 4e 53 20 7b 0a 20 20 2d 44 4d 49 4e 49 5a  IONS {.  -DMINIZ
1190: 5f 4e 4f 5f 53 54 44 49 4f 0a 20 20 2d 44 4d 49  _NO_STDIO.  -DMI
11a0: 4e 49 5a 5f 4e 4f 5f 54 49 4d 45 0a 20 20 2d 44  NIZ_NO_TIME.  -D
11b0: 4d 49 4e 49 5a 5f 4e 4f 5f 41 52 43 48 49 56 45  MINIZ_NO_ARCHIVE
11c0: 5f 41 50 49 53 0a 7d 0a 0a 23 20 4f 70 74 69 6f  _APIS.}..# Optio
11d0: 6e 73 20 75 73 65 64 20 74 6f 20 63 6f 6d 70 69  ns used to compi
11e0: 6c 65 20 74 68 65 20 69 6e 63 6c 75 64 65 64 20  le the included 
11f0: 53 51 4c 69 74 65 20 73 68 65 6c 6c 20 6f 6e 20  SQLite shell on 
1200: 57 69 6e 64 6f 77 73 2e 0a 23 0a 73 65 74 20 53  Windows..#.set S
1210: 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f  HELL_WIN32_OPTIO
1220: 4e 53 20 24 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e  NS $SHELL_OPTION
1230: 53 0a 6c 61 70 70 65 6e 64 20 53 48 45 4c 4c 5f  S.lappend SHELL_
1240: 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 2d 44  WIN32_OPTIONS -D
1250: 61 63 63 65 73 73 3d 66 69 6c 65 5f 61 63 63 65  access=file_acce
1260: 73 73 0a 6c 61 70 70 65 6e 64 20 53 48 45 4c 4c  ss.lappend SHELL
1270: 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 2d  _WIN32_OPTIONS -
1280: 44 73 79 73 74 65 6d 3d 66 6f 73 73 69 6c 5f 73  Dsystem=fossil_s
1290: 79 73 74 65 6d 0a 6c 61 70 70 65 6e 64 20 53 48  ystem.lappend SH
12a0: 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e  ELL_WIN32_OPTION
12b0: 53 20 2d 44 67 65 74 65 6e 76 3d 66 6f 73 73 69  S -Dgetenv=fossi
12c0: 6c 5f 67 65 74 65 6e 76 0a 6c 61 70 70 65 6e 64  l_getenv.lappend
12d0: 20 53 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54   SHELL_WIN32_OPT
12e0: 49 4f 4e 53 20 2d 44 66 6f 70 65 6e 3d 66 6f 73  IONS -Dfopen=fos
12f0: 73 69 6c 5f 66 6f 70 65 6e 0a 0a 23 20 53 54 4f  sil_fopen..# STO
1300: 50 20 48 45 52 45 2e 0a 23 20 55 6e 6c 65 73 73  P HERE..# Unless
1310: 20 74 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65   the build proce
1320: 64 75 72 65 73 20 63 68 61 6e 67 65 73 2c 20 79  dures changes, y
1330: 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 20 68 61  ou should not ha
1340: 76 65 20 74 6f 20 65 64 69 74 20 61 6e 79 74 68  ve to edit anyth
1350: 69 6e 67 0a 23 20 62 65 6c 6f 77 20 74 68 69 73  ing.# below this
1360: 20 6c 69 6e 65 2e 0a 23 23 23 23 23 23 23 23 23   line..#########
1370: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1380: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1390: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
13a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
13b0: 23 23 23 23 0a 0a 23 20 4e 61 6d 65 20 6f 66 20  ####..# Name of 
13c0: 74 68 65 20 66 69 6e 61 6c 20 61 70 70 6c 69 63  the final applic
13d0: 61 74 69 6f 6e 0a 23 0a 73 65 74 20 6e 61 6d 65  ation.#.set name
13e0: 20 66 6f 73 73 69 6c 0a 0a 23 20 54 68 65 20 22   fossil..# The "
13f0: 77 72 69 74 65 6c 6e 22 20 63 6f 6d 6d 61 6e 64  writeln" command
1400: 20 73 65 6e 64 73 20 6f 75 74 70 75 74 20 74 6f   sends output to
1410: 20 74 68 65 20 74 61 72 67 65 74 20 6d 61 6b 65   the target make
1420: 66 69 6c 65 2e 0a 23 0a 70 72 6f 63 20 77 72 69  file..#.proc wri
1430: 74 65 6c 6e 20 7b 61 72 67 73 7d 20 7b 0a 20 20  teln {args} {.  
1440: 67 6c 6f 62 61 6c 20 6f 75 74 70 75 74 5f 66 69  global output_fi
1450: 6c 65 0a 20 20 69 66 20 7b 5b 6c 69 6e 64 65 78  le.  if {[lindex
1460: 20 24 61 72 67 73 20 30 5d 3d 3d 22 2d 6e 6f 6e   $args 0]=="-non
1470: 65 77 6c 69 6e 65 22 7d 20 7b 0a 20 20 20 20 70  ewline"} {.    p
1480: 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24  uts -nonewline $
1490: 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6c 69 6e  output_file [lin
14a0: 64 65 78 20 24 61 72 67 73 20 31 5d 0a 20 20 7d  dex $args 1].  }
14b0: 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 75 74 73   else {.    puts
14c0: 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6c   $output_file [l
14d0: 69 6e 64 65 78 20 24 61 72 67 73 20 30 5d 0a 20  index $args 0]. 
14e0: 20 7d 0a 7d 0a 0a 23 20 45 78 70 61 6e 64 20 61   }.}..# Expand a
14f0: 6e 79 20 77 69 6c 64 63 61 72 64 73 20 69 6e 20  ny wildcards in 
1500: 22 65 78 74 72 61 5f 66 69 6c 65 73 22 0a 73 65  "extra_files".se
1510: 74 20 6e 65 77 5f 65 78 74 72 61 5f 66 69 6c 65  t new_extra_file
1520: 73 20 7b 7d 0a 66 6f 72 65 61 63 68 20 66 69 6c  s {}.foreach fil
1530: 65 20 24 65 78 74 72 61 5f 66 69 6c 65 73 20 7b  e $extra_files {
1540: 0a 20 20 66 6f 72 65 61 63 68 20 78 20 5b 67 6c  .  foreach x [gl
1550: 6f 62 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 24  ob -nocomplain $
1560: 66 69 6c 65 5d 20 7b 0a 20 20 20 20 6c 61 70 70  file] {.    lapp
1570: 65 6e 64 20 6e 65 77 5f 65 78 74 72 61 5f 66 69  end new_extra_fi
1580: 6c 65 73 20 24 78 0a 20 20 7d 0a 7d 0a 73 65 74  les $x.  }.}.set
1590: 20 65 78 74 72 61 5f 66 69 6c 65 73 20 24 6e 65   extra_files $ne
15a0: 77 5f 65 78 74 72 61 5f 66 69 6c 65 73 0a 0a 23  w_extra_files..#
15b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
15c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
15d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
15e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
15f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23  #############.##
1600: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1620: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1630: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1640: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 23  ############.###
1650: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1660: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1670: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1680: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1690: 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 53 74  ###########.# St
16a0: 61 72 74 20 62 79 20 67 65 6e 65 72 61 74 69 6e  art by generatin
16b0: 67 20 74 68 65 20 22 6d 61 69 6e 2e 6d 6b 22 20  g the "main.mk" 
16c0: 6d 61 6b 65 66 69 6c 65 20 75 73 65 64 20 66 6f  makefile used fo
16d0: 72 20 61 6c 6c 20 75 6e 69 78 20 73 79 73 74 65  r all unix syste
16e0: 6d 73 2e 0a 23 0a 70 75 74 73 20 22 62 75 69 6c  ms..#.puts "buil
16f0: 64 69 6e 67 20 6d 61 69 6e 2e 6d 6b 22 0a 73 65  ding main.mk".se
1700: 74 20 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6f  t output_file [o
1710: 70 65 6e 20 6d 61 69 6e 2e 6d 6b 20 77 5d 0a 66  pen main.mk w].f
1720: 63 6f 6e 66 69 67 75 72 65 20 24 6f 75 74 70 75  configure $outpu
1730: 74 5f 66 69 6c 65 20 2d 74 72 61 6e 73 6c 61 74  t_file -translat
1740: 69 6f 6e 20 62 69 6e 61 72 79 0a 0a 77 72 69 74  ion binary..writ
1750: 65 6c 6e 20 7b 23 0a 23 23 23 23 23 23 23 23 23  eln {#.#########
1760: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1770: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1780: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1790: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
17a0: 23 23 23 23 23 0a 23 20 57 41 52 4e 49 4e 47 3a  #####.# WARNING:
17b0: 20 44 4f 20 4e 4f 54 20 45 44 49 54 2c 20 41 55   DO NOT EDIT, AU
17c0: 54 4f 4d 41 54 49 43 41 4c 4c 59 20 47 45 4e 45  TOMATICALLY GENE
17d0: 52 41 54 45 44 20 46 49 4c 45 20 28 53 45 45 20  RATED FILE (SEE 
17e0: 22 73 72 63 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63  "src/makemake.tc
17f0: 6c 22 29 0a 23 23 23 23 23 23 23 23 23 23 23 23  l").############
1800: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1810: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1820: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1830: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1840: 23 23 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65  ##.#.# This file
1850: 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c   is automaticall
1860: 79 20 67 65 6e 65 72 61 74 65 64 2e 20 20 49 6e  y generated.  In
1870: 73 74 65 61 64 20 6f 66 20 65 64 69 74 69 6e 67  stead of editing
1880: 20 74 68 69 73 0a 23 20 66 69 6c 65 2c 20 65 64   this.# file, ed
1890: 69 74 20 22 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c  it "makemake.tcl
18a0: 22 20 74 68 65 6e 20 72 75 6e 20 22 74 63 6c 73  " then run "tcls
18b0: 68 20 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a  h makemake.tcl".
18c0: 23 20 74 6f 20 72 65 67 65 6e 65 72 61 74 65 20  # to regenerate 
18d0: 74 68 69 73 20 66 69 6c 65 2e 0a 23 0a 23 20 54  this file..#.# T
18e0: 68 69 73 20 66 69 6c 65 20 69 73 20 69 6e 63 6c  his file is incl
18f0: 75 64 65 64 20 62 79 20 70 72 69 6d 61 72 79 20  uded by primary 
1900: 4d 61 6b 65 66 69 6c 65 2e 0a 23 0a 0a 58 42 43  Makefile..#..XBC
1910: 43 20 3d 20 24 28 42 43 43 29 20 24 28 42 43 43  C = $(BCC) $(BCC
1920: 46 4c 41 47 53 29 0a 58 54 43 43 20 3d 20 24 28  FLAGS).XTCC = $(
1930: 54 43 43 29 20 24 28 43 46 4c 41 47 53 5f 49 4e  TCC) $(CFLAGS_IN
1940: 43 4c 55 44 45 29 20 2d 49 24 28 4f 42 4a 44 49  CLUDE) -I$(OBJDI
1950: 52 29 20 24 28 54 43 43 46 4c 41 47 53 29 0a 0a  R) $(TCCFLAGS)..
1960: 54 45 53 54 46 4c 41 47 53 20 3a 3d 20 2d 71 75  TESTFLAGS := -qu
1970: 69 65 74 0a 7d 0a 77 72 69 74 65 6c 6e 20 2d 6e  iet.}.writeln -n
1980: 6f 6e 65 77 6c 69 6e 65 20 22 53 52 43 20 3d 22  onewline "SRC ="
1990: 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72  .foreach s [lsor
19a0: 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74  t $src] {.  writ
19b0: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
19c0: 20 5c 5c 5c 6e 20 20 5c 24 28 53 52 43 44 49 52   \\\n  \$(SRCDIR
19d0: 29 2f 24 73 2e 63 22 0a 7d 0a 77 72 69 74 65 6c  )/$s.c".}.writel
19e0: 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d  n "\n".writeln -
19f0: 6e 6f 6e 65 77 6c 69 6e 65 20 22 45 58 54 52 41  nonewline "EXTRA
1a00: 5f 46 49 4c 45 53 20 3d 22 0a 66 6f 72 65 61 63  _FILES =".foreac
1a10: 68 20 73 20 5b 6c 73 6f 72 74 20 24 65 78 74 72  h s [lsort $extr
1a20: 61 5f 66 69 6c 65 73 5d 20 7b 0a 20 20 77 72 69  a_files] {.  wri
1a30: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
1a40: 22 20 5c 5c 5c 6e 20 20 5c 24 28 53 52 43 44 49  " \\\n  \$(SRCDI
1a50: 52 29 2f 24 73 22 0a 7d 0a 77 72 69 74 65 6c 6e  R)/$s".}.writeln
1a60: 20 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d 6e   "\n".writeln -n
1a70: 6f 6e 65 77 6c 69 6e 65 20 22 54 52 41 4e 53 5f  onewline "TRANS_
1a80: 53 52 43 20 3d 22 0a 66 6f 72 65 61 63 68 20 73  SRC =".foreach s
1a90: 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a   [lsort $src] {.
1aa0: 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77    writeln -nonew
1ab0: 6c 69 6e 65 20 22 20 5c 5c 5c 6e 20 20 5c 24 28  line " \\\n  \$(
1ac0: 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 22  OBJDIR)/${s}_.c"
1ad0: 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22 0a  .}.writeln "\n".
1ae0: 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69  writeln -nonewli
1af0: 6e 65 20 22 4f 42 4a 20 3d 22 0a 66 6f 72 65 61  ne "OBJ =".forea
1b00: 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63  ch s [lsort $src
1b10: 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e  ] {.  writeln -n
1b20: 6f 6e 65 77 6c 69 6e 65 20 22 20 5c 5c 5c 6e 20  onewline " \\\n 
1b30: 5c 24 28 4f 42 4a 44 49 52 29 2f 24 73 2e 6f 22  \$(OBJDIR)/$s.o"
1b40: 0a 7d 0a 0a 77 72 69 74 65 6c 6e 20 5b 73 74 72  .}..writeln [str
1b50: 69 6e 67 20 6d 61 70 20 5b 6c 69 73 74 20 5c 0a  ing map [list \.
1b60: 20 20 20 20 3c 3c 3c 53 51 4c 49 54 45 5f 4f 50      <<<SQLITE_OP
1b70: 54 49 4f 4e 53 3e 3e 3e 20 5b 6a 6f 69 6e 20 24  TIONS>>> [join $
1b80: 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 22  SQLITE_OPTIONS "
1b90: 20 5c 5c 5c 6e 20 20 20 20 20 20 20 20 20 20 20   \\\n           
1ba0: 20 20 20 20 20 20 22 5d 20 5c 0a 20 20 20 20 3c        "] \.    <
1bb0: 3c 3c 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 3e  <<SHELL_OPTIONS>
1bc0: 3e 3e 20 5b 6a 6f 69 6e 20 24 53 48 45 4c 4c 5f  >> [join $SHELL_
1bd0: 4f 50 54 49 4f 4e 53 20 22 20 5c 5c 5c 6e 20 20  OPTIONS " \\\n  
1be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5d                "]
1bf0: 20 5c 0a 20 20 20 20 3c 3c 3c 4d 49 4e 49 5a 5f   \.    <<<MINIZ_
1c00: 4f 50 54 49 4f 4e 53 3e 3e 3e 20 5b 6a 6f 69 6e  OPTIONS>>> [join
1c10: 20 24 4d 49 4e 49 5a 5f 4f 50 54 49 4f 4e 53 20   $MINIZ_OPTIONS 
1c20: 22 20 5c 5c 5c 6e 20 20 20 20 20 20 20 20 20 20  " \\\n          
1c30: 20 20 20 20 20 20 22 5d 5d 20 7b 0a 61 6c 6c 3a        "]] {.all:
1c40: 09 24 28 4f 42 4a 44 49 52 29 20 24 28 41 50 50  .$(OBJDIR) $(APP
1c50: 4e 41 4d 45 29 0a 0a 69 6e 73 74 61 6c 6c 3a 09  NAME)..install:.
1c60: 61 6c 6c 0a 09 6d 6b 64 69 72 20 2d 70 20 24 28  all..mkdir -p $(
1c70: 49 4e 53 54 41 4c 4c 44 49 52 29 0a 09 63 70 20  INSTALLDIR)..cp 
1c80: 24 28 41 50 50 4e 41 4d 45 29 20 24 28 49 4e 53  $(APPNAME) $(INS
1c90: 54 41 4c 4c 44 49 52 29 0a 0a 63 6f 64 65 63 68  TALLDIR)..codech
1ca0: 65 63 6b 3a 09 24 28 54 52 41 4e 53 5f 53 52 43  eck:.$(TRANS_SRC
1cb0: 29 20 24 28 4f 42 4a 44 49 52 29 2f 63 6f 64 65  ) $(OBJDIR)/code
1cc0: 63 68 65 63 6b 31 0a 09 24 28 4f 42 4a 44 49 52  check1..$(OBJDIR
1cd0: 29 2f 63 6f 64 65 63 68 65 63 6b 31 20 24 28 54  )/codecheck1 $(T
1ce0: 52 41 4e 53 5f 53 52 43 29 0a 0a 24 28 4f 42 4a  RANS_SRC)..$(OBJ
1cf0: 44 49 52 29 3a 0a 09 2d 6d 6b 64 69 72 20 24 28  DIR):..-mkdir $(
1d00: 4f 42 4a 44 49 52 29 0a 0a 24 28 4f 42 4a 44 49  OBJDIR)..$(OBJDI
1d10: 52 29 2f 74 72 61 6e 73 6c 61 74 65 3a 09 24 28  R)/translate:.$(
1d20: 53 52 43 44 49 52 29 2f 74 72 61 6e 73 6c 61 74  SRCDIR)/translat
1d30: 65 2e 63 0a 09 24 28 58 42 43 43 29 20 2d 6f 20  e.c..$(XBCC) -o 
1d40: 24 28 4f 42 4a 44 49 52 29 2f 74 72 61 6e 73 6c  $(OBJDIR)/transl
1d50: 61 74 65 20 24 28 53 52 43 44 49 52 29 2f 74 72  ate $(SRCDIR)/tr
1d60: 61 6e 73 6c 61 74 65 2e 63 0a 0a 24 28 4f 42 4a  anslate.c..$(OBJ
1d70: 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65 72 73  DIR)/makeheaders
1d80: 3a 09 24 28 53 52 43 44 49 52 29 2f 6d 61 6b 65  :.$(SRCDIR)/make
1d90: 68 65 61 64 65 72 73 2e 63 0a 09 24 28 58 42 43  headers.c..$(XBC
1da0: 43 29 20 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f  C) -o $(OBJDIR)/
1db0: 6d 61 6b 65 68 65 61 64 65 72 73 20 24 28 53 52  makeheaders $(SR
1dc0: 43 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65 72  CDIR)/makeheader
1dd0: 73 2e 63 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 6d  s.c..$(OBJDIR)/m
1de0: 6b 69 6e 64 65 78 3a 09 24 28 53 52 43 44 49 52  kindex:.$(SRCDIR
1df0: 29 2f 6d 6b 69 6e 64 65 78 2e 63 0a 09 24 28 58  )/mkindex.c..$(X
1e00: 42 43 43 29 20 2d 6f 20 24 28 4f 42 4a 44 49 52  BCC) -o $(OBJDIR
1e10: 29 2f 6d 6b 69 6e 64 65 78 20 24 28 53 52 43 44  )/mkindex $(SRCD
1e20: 49 52 29 2f 6d 6b 69 6e 64 65 78 2e 63 0a 0a 24  IR)/mkindex.c..$
1e30: 28 4f 42 4a 44 49 52 29 2f 6d 6b 62 75 69 6c 74  (OBJDIR)/mkbuilt
1e40: 69 6e 3a 09 24 28 53 52 43 44 49 52 29 2f 6d 6b  in:.$(SRCDIR)/mk
1e50: 62 75 69 6c 74 69 6e 2e 63 0a 09 24 28 58 42 43  builtin.c..$(XBC
1e60: 43 29 20 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f  C) -o $(OBJDIR)/
1e70: 6d 6b 62 75 69 6c 74 69 6e 20 24 28 53 52 43 44  mkbuiltin $(SRCD
1e80: 49 52 29 2f 6d 6b 62 75 69 6c 74 69 6e 2e 63 0a  IR)/mkbuiltin.c.
1e90: 0a 24 28 4f 42 4a 44 49 52 29 2f 6d 6b 76 65 72  .$(OBJDIR)/mkver
1ea0: 73 69 6f 6e 3a 09 24 28 53 52 43 44 49 52 29 2f  sion:.$(SRCDIR)/
1eb0: 6d 6b 76 65 72 73 69 6f 6e 2e 63 0a 09 24 28 58  mkversion.c..$(X
1ec0: 42 43 43 29 20 2d 6f 20 24 28 4f 42 4a 44 49 52  BCC) -o $(OBJDIR
1ed0: 29 2f 6d 6b 76 65 72 73 69 6f 6e 20 24 28 53 52  )/mkversion $(SR
1ee0: 43 44 49 52 29 2f 6d 6b 76 65 72 73 69 6f 6e 2e  CDIR)/mkversion.
1ef0: 63 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 63 6f 64  c..$(OBJDIR)/cod
1f00: 65 63 68 65 63 6b 31 3a 09 24 28 53 52 43 44 49  echeck1:.$(SRCDI
1f10: 52 29 2f 63 6f 64 65 63 68 65 63 6b 31 2e 63 0a  R)/codecheck1.c.
1f20: 09 24 28 58 42 43 43 29 20 2d 6f 20 24 28 4f 42  .$(XBCC) -o $(OB
1f30: 4a 44 49 52 29 2f 63 6f 64 65 63 68 65 63 6b 31  JDIR)/codecheck1
1f40: 20 24 28 53 52 43 44 49 52 29 2f 63 6f 64 65 63   $(SRCDIR)/codec
1f50: 68 65 63 6b 31 2e 63 0a 0a 23 20 52 75 6e 20 74  heck1.c..# Run t
1f60: 68 65 20 74 65 73 74 20 73 75 69 74 65 2e 0a 23  he test suite..#
1f70: 20 4f 74 68 65 72 20 66 6c 61 67 73 20 74 68 61   Other flags tha
1f80: 74 20 63 61 6e 20 62 65 20 69 6e 63 6c 75 64 65  t can be include
1f90: 64 20 69 6e 20 54 45 53 54 46 4c 41 47 53 20 61  d in TESTFLAGS a
1fa0: 72 65 3a 0a 23 0a 23 20 20 2d 68 61 6c 74 20 20  re:.#.#  -halt  
1fb0: 20 20 20 53 74 6f 70 20 74 65 73 74 69 6e 67 20     Stop testing 
1fc0: 61 66 74 65 72 20 74 68 65 20 66 69 72 73 74 20  after the first 
1fd0: 66 61 69 6c 65 64 20 74 65 73 74 0a 23 20 20 2d  failed test.#  -
1fe0: 6b 65 65 70 20 20 20 20 20 4b 65 65 70 20 74 68  keep     Keep th
1ff0: 65 20 74 65 6d 70 6f 72 61 72 79 20 77 6f 72 6b  e temporary work
2000: 73 70 61 63 65 20 66 6f 72 20 64 65 62 75 67 67  space for debugg
2010: 69 6e 67 0a 23 20 20 2d 70 72 6f 74 20 20 20 20  ing.#  -prot    
2020: 20 57 72 69 74 65 20 61 20 64 65 74 61 69 6c 65   Write a detaile
2030: 64 20 6c 6f 67 20 6f 66 20 74 68 65 20 74 65 73  d log of the tes
2040: 74 73 20 74 6f 20 74 68 65 20 66 69 6c 65 20 2e  ts to the file .
2050: 2f 70 72 6f 74 0a 23 20 20 2d 76 65 72 62 6f 73  /prot.#  -verbos
2060: 65 20 20 49 6e 63 6c 75 64 65 20 65 76 65 6e 20  e  Include even 
2070: 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 20  more details in 
2080: 74 68 65 20 6f 75 74 70 75 74 0a 23 20 20 2d 71  the output.#  -q
2090: 75 69 65 74 20 20 20 20 48 69 64 65 20 6d 6f 73  uiet    Hide mos
20a0: 74 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74 68  t output from th
20b0: 65 20 74 65 72 6d 69 6e 61 6c 0a 23 20 20 2d 73  e terminal.#  -s
20c0: 74 72 69 63 74 20 20 20 54 72 65 61 74 20 6b 6e  trict   Treat kn
20d0: 6f 77 6e 20 62 75 67 73 20 61 73 20 66 61 69 6c  own bugs as fail
20e0: 75 72 65 73 0a 23 0a 23 20 54 45 53 54 46 4c 41  ures.#.# TESTFLA
20f0: 47 53 20 63 61 6e 20 61 6c 73 6f 20 69 6e 63 6c  GS can also incl
2100: 75 64 65 20 6e 61 6d 65 73 20 6f 66 20 73 70 65  ude names of spe
2110: 63 69 66 69 63 20 74 65 73 74 20 66 69 6c 65 73  cific test files
2120: 20 74 6f 20 6c 69 6d 69 74 0a 23 20 74 68 65 20   to limit.# the 
2130: 72 75 6e 20 74 6f 20 6a 75 73 74 20 74 68 6f 73  run to just thos
2140: 65 20 74 65 73 74 20 63 61 73 65 73 2e 0a 23 0a  e test cases..#.
2150: 74 65 73 74 3a 09 24 28 4f 42 4a 44 49 52 29 20  test:.$(OBJDIR) 
2160: 24 28 41 50 50 4e 41 4d 45 29 0a 09 24 28 54 43  $(APPNAME)..$(TC
2170: 4c 53 48 29 20 24 28 53 52 43 44 49 52 29 2f 2e  LSH) $(SRCDIR)/.
2180: 2e 2f 74 65 73 74 2f 74 65 73 74 65 72 2e 74 63  ./test/tester.tc
2190: 6c 20 24 28 41 50 50 4e 41 4d 45 29 20 24 28 54  l $(APPNAME) $(T
21a0: 45 53 54 46 4c 41 47 53 29 0a 0a 24 28 4f 42 4a  ESTFLAGS)..$(OBJ
21b0: 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e 68 3a 09  DIR)/VERSION.h:.
21c0: 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e  $(SRCDIR)/../man
21d0: 69 66 65 73 74 2e 75 75 69 64 20 24 28 53 52 43  ifest.uuid $(SRC
21e0: 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73 74  DIR)/../manifest
21f0: 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 56 45   $(SRCDIR)/../VE
2200: 52 53 49 4f 4e 20 24 28 4f 42 4a 44 49 52 29 2f  RSION $(OBJDIR)/
2210: 6d 6b 76 65 72 73 69 6f 6e 20 24 28 4f 42 4a 44  mkversion $(OBJD
2220: 49 52 29 2f 70 68 6f 6e 79 2e 68 0a 09 24 28 4f  IR)/phony.h..$(O
2230: 42 4a 44 49 52 29 2f 6d 6b 76 65 72 73 69 6f 6e  BJDIR)/mkversion
2240: 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61   $(SRCDIR)/../ma
2250: 6e 69 66 65 73 74 2e 75 75 69 64 20 5c 0a 09 09  nifest.uuid \...
2260: 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e  $(SRCDIR)/../man
2270: 69 66 65 73 74 20 5c 0a 09 09 24 28 53 52 43 44  ifest \...$(SRCD
2280: 49 52 29 2f 2e 2e 2f 56 45 52 53 49 4f 4e 20 3e  IR)/../VERSION >
2290: 24 28 4f 42 4a 44 49 52 29 2f 56 45 52 53 49 4f  $(OBJDIR)/VERSIO
22a0: 4e 2e 68 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 70  N.h..$(OBJDIR)/p
22b0: 68 6f 6e 79 2e 68 3a 0a 09 23 20 46 6f 72 63 65  hony.h:..# Force
22c0: 20 72 65 62 75 69 6c 64 20 6f 66 20 56 45 52 53   rebuild of VERS
22d0: 49 4f 4e 2e 68 20 65 76 65 72 79 20 74 69 6d 65  ION.h every time
22e0: 20 77 65 20 72 75 6e 20 22 6d 61 6b 65 22 0a 0a   we run "make"..
22f0: 23 20 53 65 74 75 70 20 74 68 65 20 6f 70 74 69  # Setup the opti
2300: 6f 6e 73 20 75 73 65 64 20 74 6f 20 63 6f 6d 70  ons used to comp
2310: 69 6c 65 20 74 68 65 20 69 6e 63 6c 75 64 65 64  ile the included
2320: 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e   SQLite library.
2330: 0a 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20  .SQLITE_OPTIONS 
2340: 3d 20 3c 3c 3c 53 51 4c 49 54 45 5f 4f 50 54 49  = <<<SQLITE_OPTI
2350: 4f 4e 53 3e 3e 3e 0a 0a 23 20 53 65 74 75 70 20  ONS>>>..# Setup 
2360: 74 68 65 20 6f 70 74 69 6f 6e 73 20 75 73 65 64  the options used
2370: 20 74 6f 20 63 6f 6d 70 69 6c 65 20 74 68 65 20   to compile the 
2380: 69 6e 63 6c 75 64 65 64 20 53 51 4c 69 74 65 20  included SQLite 
2390: 73 68 65 6c 6c 2e 0a 53 48 45 4c 4c 5f 4f 50 54  shell..SHELL_OPT
23a0: 49 4f 4e 53 20 3d 20 3c 3c 3c 53 48 45 4c 4c 5f  IONS = <<<SHELL_
23b0: 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a 23 20 53 65  OPTIONS>>>..# Se
23c0: 74 75 70 20 74 68 65 20 6f 70 74 69 6f 6e 73 20  tup the options 
23d0: 75 73 65 64 20 74 6f 20 63 6f 6d 70 69 6c 65 20  used to compile 
23e0: 74 68 65 20 69 6e 63 6c 75 64 65 64 20 6d 69 6e  the included min
23f0: 69 7a 20 6c 69 62 72 61 72 79 2e 0a 4d 49 4e 49  iz library..MINI
2400: 5a 5f 4f 50 54 49 4f 4e 53 20 3d 20 3c 3c 3c 4d  Z_OPTIONS = <<<M
2410: 49 4e 49 5a 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 0a  INIZ_OPTIONS>>>.
2420: 0a 23 20 54 68 65 20 55 53 45 5f 53 59 53 54 45  .# The USE_SYSTE
2430: 4d 5f 53 51 4c 49 54 45 20 76 61 72 69 61 62 6c  M_SQLITE variabl
2440: 65 20 6d 61 79 20 62 65 20 75 6e 64 65 66 69 6e  e may be undefin
2450: 65 64 2c 20 73 65 74 20 74 6f 20 30 20 6f 72 20  ed, set to 0 or 
2460: 31 2e 0a 23 20 49 66 20 69 74 20 69 73 20 73 65  1..# If it is se
2470: 74 20 74 6f 20 31 2c 20 74 68 65 6e 20 74 68 65  t to 1, then the
2480: 72 65 20 69 73 20 6e 6f 20 6e 65 65 64 20 74 6f  re is no need to
2490: 20 62 75 69 6c 64 20 6f 72 20 6c 69 6e 6b 0a 23   build or link.#
24a0: 20 74 68 65 20 73 71 6c 69 74 65 33 2e 6f 20 6f   the sqlite3.o o
24b0: 62 6a 65 63 74 2e 20 49 6e 73 74 65 61 64 2c 20  bject. Instead, 
24c0: 74 68 65 20 73 79 73 74 65 6d 20 53 51 4c 69 74  the system SQLit
24d0: 65 20 77 69 6c 6c 20 62 65 20 6c 69 6e 6b 65 64  e will be linked
24e0: 0a 23 20 75 73 69 6e 67 20 2d 6c 73 71 6c 69 74  .# using -lsqlit
24f0: 65 33 2e 0a 23 0a 23 20 43 6c 6f 73 65 6c 79 20  e3..#.# Closely 
2500: 72 65 6c 61 74 65 64 20 69 73 20 53 51 4c 49 54  related is SQLIT
2510: 45 33 5f 4f 52 49 47 49 4e 2c 20 77 69 74 68 20  E3_ORIGIN, with 
2520: 74 68 65 20 73 61 6d 65 20 6e 75 6d 65 72 69 63  the same numeric
2530: 20 6d 61 70 70 69 6e 67 20 70 6c 75 73 0a 23 20   mapping plus.# 
2540: 61 20 76 61 6c 75 65 20 6f 66 20 32 20 6d 65 61  a value of 2 mea
2550: 6e 73 20 74 68 61 74 20 77 65 20 61 72 65 20 62  ns that we are b
2560: 75 69 6c 64 69 6e 67 20 61 20 63 6c 69 65 6e 74  uilding a client
2570: 2d 70 72 6f 76 69 64 65 64 20 73 71 6c 69 74 65  -provided sqlite
2580: 33 2e 63 2e 0a 53 51 4c 49 54 45 33 5f 4f 42 4a  3.c..SQLITE3_OBJ
2590: 2e 30 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 73  .0 = $(OBJDIR)/s
25a0: 71 6c 69 74 65 33 2e 6f 0a 53 51 4c 49 54 45 33  qlite3.o.SQLITE3
25b0: 5f 4f 42 4a 2e 31 20 3d 0a 23 20 53 51 4c 49 54  _OBJ.1 =.# SQLIT
25c0: 45 33 5f 4f 42 4a 2e 32 20 69 73 20 73 65 74 20  E3_OBJ.2 is set 
25d0: 62 79 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65  by the configure
25e0: 20 70 72 6f 63 65 73 73 0a 53 51 4c 49 54 45 33   process.SQLITE3
25f0: 5f 4f 42 4a 2e 20 20 3d 20 24 28 53 51 4c 49 54  _OBJ.  = $(SQLIT
2600: 45 33 5f 4f 42 4a 2e 30 29 0a 0a 23 20 54 68 65  E3_OBJ.0)..# The
2610: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d   FOSSIL_ENABLE_M
2620: 49 4e 49 5a 20 76 61 72 69 61 62 6c 65 20 6d 61  INIZ variable ma
2630: 79 20 62 65 20 75 6e 64 65 66 69 6e 65 64 2c 20  y be undefined, 
2640: 73 65 74 20 74 6f 20 30 2c 20 6f 72 0a 23 20 73  set to 0, or.# s
2650: 65 74 20 74 6f 20 31 2e 20 20 49 66 20 69 74 20  et to 1.  If it 
2660: 69 73 20 73 65 74 20 74 6f 20 31 2c 20 74 68 65  is set to 1, the
2670: 20 6d 69 6e 69 7a 20 6c 69 62 72 61 72 79 20 69   miniz library i
2680: 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 0a 23  ncluded in the.#
2690: 20 73 6f 75 72 63 65 20 74 72 65 65 20 73 68 6f   source tree sho
26a0: 75 6c 64 20 62 65 20 75 73 65 64 3b 20 6f 74 68  uld be used; oth
26b0: 65 72 77 69 73 65 2c 20 69 74 20 73 68 6f 75 6c  erwise, it shoul
26c0: 64 20 6e 6f 74 2e 0a 4d 49 4e 49 5a 5f 4f 42 4a  d not..MINIZ_OBJ
26d0: 2e 30 20 3d 0a 4d 49 4e 49 5a 5f 4f 42 4a 2e 31  .0 =.MINIZ_OBJ.1
26e0: 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 6d 69 6e   = $(OBJDIR)/min
26f0: 69 7a 2e 6f 0a 4d 49 4e 49 5a 5f 4f 42 4a 2e 20  iz.o.MINIZ_OBJ. 
2700: 20 3d 20 24 28 4d 49 4e 49 5a 5f 4f 42 4a 2e 30   = $(MINIZ_OBJ.0
2710: 29 0a 0a 23 20 54 68 65 20 55 53 45 5f 4c 49 4e  )..# The USE_LIN
2720: 45 4e 4f 49 53 45 20 76 61 72 69 61 62 6c 65 20  ENOISE variable 
2730: 6d 61 79 20 62 65 20 75 6e 64 65 66 69 6e 65 64  may be undefined
2740: 2c 20 73 65 74 20 74 6f 20 30 2c 20 6f 72 20 73  , set to 0, or s
2750: 65 74 0a 23 20 74 6f 20 31 2e 20 49 66 20 69 74  et.# to 1. If it
2760: 20 69 73 20 73 65 74 20 74 6f 20 30 2c 20 74 68   is set to 0, th
2770: 65 6e 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e  en there is no n
2780: 65 65 64 20 74 6f 20 62 75 69 6c 64 20 6f 72 20  eed to build or 
2790: 6c 69 6e 6b 0a 23 20 74 68 65 20 6c 69 6e 65 6e  link.# the linen
27a0: 6f 69 73 65 2e 6f 20 6f 62 6a 65 63 74 2e 0a 4c  oise.o object..L
27b0: 49 4e 45 4e 4f 49 53 45 5f 44 45 46 2e 30 20 3d  INENOISE_DEF.0 =
27c0: 0a 4c 49 4e 45 4e 4f 49 53 45 5f 44 45 46 2e 31  .LINENOISE_DEF.1
27d0: 20 3d 20 2d 44 48 41 56 45 5f 4c 49 4e 45 4e 4f   = -DHAVE_LINENO
27e0: 49 53 45 0a 4c 49 4e 45 4e 4f 49 53 45 5f 44 45  ISE.LINENOISE_DE
27f0: 46 2e 20 20 3d 20 24 28 4c 49 4e 45 4e 4f 49 53  F.  = $(LINENOIS
2800: 45 5f 44 45 46 2e 30 29 0a 4c 49 4e 45 4e 4f 49  E_DEF.0).LINENOI
2810: 53 45 5f 4f 42 4a 2e 30 20 3d 0a 4c 49 4e 45 4e  SE_OBJ.0 =.LINEN
2820: 4f 49 53 45 5f 4f 42 4a 2e 31 20 3d 20 24 28 4f  OISE_OBJ.1 = $(O
2830: 42 4a 44 49 52 29 2f 6c 69 6e 65 6e 6f 69 73 65  BJDIR)/linenoise
2840: 2e 6f 0a 4c 49 4e 45 4e 4f 49 53 45 5f 4f 42 4a  .o.LINENOISE_OBJ
2850: 2e 20 20 3d 20 24 28 4c 49 4e 45 4e 4f 49 53 45  .  = $(LINENOISE
2860: 5f 4f 42 4a 2e 30 29 0a 0a 23 20 54 68 65 20 55  _OBJ.0)..# The U
2870: 53 45 5f 53 45 45 20 76 61 72 69 61 62 6c 65 20  SE_SEE variable 
2880: 6d 61 79 20 62 65 20 75 6e 64 65 66 69 6e 65 64  may be undefined
2890: 2c 20 30 20 6f 72 20 31 2e 20 20 49 66 20 75 6e  , 0 or 1.  If un
28a0: 64 65 66 69 6e 65 64 20 6f 72 0a 23 20 30 2c 20  defined or.# 0, 
28b0: 6f 72 64 69 6e 61 72 79 20 53 51 4c 69 74 65 20  ordinary SQLite 
28c0: 69 73 20 75 73 65 64 2e 20 20 49 66 20 31 2c 20  is used.  If 1, 
28d0: 74 68 65 6e 20 73 71 6c 69 74 65 33 2d 73 65 65  then sqlite3-see
28e0: 2e 63 20 28 6e 6f 74 20 70 61 72 74 20 6f 66 0a  .c (not part of.
28f0: 23 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65  # the source tre
2900: 65 29 20 69 73 20 75 73 65 64 20 61 6e 64 20 65  e) is used and e
2910: 78 74 72 61 20 66 6c 61 67 73 20 61 72 65 20 70  xtra flags are p
2920: 72 6f 76 69 64 65 64 20 74 6f 20 65 6e 61 62 6c  rovided to enabl
2930: 65 0a 23 20 74 68 65 20 53 51 4c 69 74 65 20 45  e.# the SQLite E
2940: 6e 63 72 79 70 74 69 6f 6e 20 45 78 74 65 6e 73  ncryption Extens
2950: 69 6f 6e 2e 0a 53 51 4c 49 54 45 33 5f 53 52 43  ion..SQLITE3_SRC
2960: 2e 30 20 3d 20 24 28 53 52 43 44 49 52 29 2f 73  .0 = $(SRCDIR)/s
2970: 71 6c 69 74 65 33 2e 63 0a 53 51 4c 49 54 45 33  qlite3.c.SQLITE3
2980: 5f 53 52 43 2e 31 20 3d 20 24 28 53 52 43 44 49  _SRC.1 = $(SRCDI
2990: 52 29 2f 73 71 6c 69 74 65 33 2d 73 65 65 2e 63  R)/sqlite3-see.c
29a0: 0a 23 20 53 51 4c 49 54 45 33 5f 53 52 43 2e 32  .# SQLITE3_SRC.2
29b0: 20 69 73 20 73 65 74 20 62 79 20 74 6f 70 2d 6c   is set by top-l
29c0: 65 76 65 6c 20 63 6f 6e 66 69 67 75 72 65 2f 6d  evel configure/m
29d0: 61 6b 65 66 69 6c 65 20 70 72 6f 63 65 73 73 2e  akefile process.
29e0: 0a 53 51 4c 49 54 45 33 5f 53 52 43 2e 20 3d 20  .SQLITE3_SRC. = 
29f0: 24 28 53 52 43 44 49 52 29 2f 73 71 6c 69 74 65  $(SRCDIR)/sqlite
2a00: 33 2e 63 0a 53 51 4c 49 54 45 33 5f 53 52 43 20  3.c.SQLITE3_SRC 
2a10: 3d 20 24 28 53 51 4c 49 54 45 33 5f 53 52 43 2e  = $(SQLITE3_SRC.
2a20: 24 28 53 51 4c 49 54 45 33 5f 4f 52 49 47 49 4e  $(SQLITE3_ORIGIN
2a30: 29 29 0a 53 51 4c 49 54 45 33 5f 53 48 45 4c 4c  )).SQLITE3_SHELL
2a40: 5f 53 52 43 2e 30 20 3d 20 24 28 53 52 43 44 49  _SRC.0 = $(SRCDI
2a50: 52 29 2f 73 68 65 6c 6c 2e 63 0a 53 51 4c 49 54  R)/shell.c.SQLIT
2a60: 45 33 5f 53 48 45 4c 4c 5f 53 52 43 2e 31 20 3d  E3_SHELL_SRC.1 =
2a70: 20 24 28 53 52 43 44 49 52 29 2f 73 68 65 6c 6c   $(SRCDIR)/shell
2a80: 2d 73 65 65 2e 63 0a 23 20 53 51 4c 49 54 45 33  -see.c.# SQLITE3
2a90: 5f 53 48 45 4c 4c 5f 53 52 43 2e 32 20 63 6f 6d  _SHELL_SRC.2 com
2aa0: 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66  es from the conf
2ab0: 69 67 75 72 65 20 70 72 6f 63 65 73 73 0a 53 51  igure process.SQ
2ac0: 4c 49 54 45 33 5f 53 48 45 4c 4c 5f 53 52 43 2e  LITE3_SHELL_SRC.
2ad0: 20 3d 20 24 28 53 52 43 44 49 52 29 2f 73 68 65   = $(SRCDIR)/she
2ae0: 6c 6c 2e 63 0a 53 51 4c 49 54 45 33 5f 53 48 45  ll.c.SQLITE3_SHE
2af0: 4c 4c 5f 53 52 43 20 3d 20 24 28 53 51 4c 49 54  LL_SRC = $(SQLIT
2b00: 45 33 5f 53 48 45 4c 4c 5f 53 52 43 2e 24 28 53  E3_SHELL_SRC.$(S
2b10: 51 4c 49 54 45 33 5f 4f 52 49 47 49 4e 29 29 0a  QLITE3_ORIGIN)).
2b20: 53 45 45 5f 46 4c 41 47 53 2e 30 20 3d 0a 53 45  SEE_FLAGS.0 =.SE
2b30: 45 5f 46 4c 41 47 53 2e 31 20 3d 20 2d 44 53 51  E_FLAGS.1 = -DSQ
2b40: 4c 49 54 45 5f 48 41 53 5f 43 4f 44 45 43 20 2d  LITE_HAS_CODEC -
2b50: 44 53 51 4c 49 54 45 5f 53 48 45 4c 4c 5f 44 42  DSQLITE_SHELL_DB
2b60: 4b 45 59 5f 50 52 4f 43 3d 66 6f 73 73 69 6c 5f  KEY_PROC=fossil_
2b70: 6b 65 79 0a 53 45 45 5f 46 4c 41 47 53 2e 20 3d  key.SEE_FLAGS. =
2b80: 0a 53 45 45 5f 46 4c 41 47 53 20 3d 20 24 28 53  .SEE_FLAGS = $(S
2b90: 45 45 5f 46 4c 41 47 53 2e 24 28 55 53 45 5f 53  EE_FLAGS.$(USE_S
2ba0: 45 45 29 29 0a 7d 5d 0a 0a 77 72 69 74 65 6c 6e  EE)).}]..writeln
2bb0: 20 5b 73 74 72 69 6e 67 20 6d 61 70 20 5b 6c 69   [string map [li
2bc0: 73 74 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e  st <<<NEXT_LINE>
2bd0: 3e 3e 20 5c 5c 5d 20 7b 0a 45 58 54 52 41 4f 42  >> \\] {.EXTRAOB
2be0: 4a 20 3d 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45  J = <<<NEXT_LINE
2bf0: 3e 3e 3e 0a 20 24 28 53 51 4c 49 54 45 33 5f 4f  >>>. $(SQLITE3_O
2c00: 42 4a 2e 24 28 53 51 4c 49 54 45 33 5f 4f 52 49  BJ.$(SQLITE3_ORI
2c10: 47 49 4e 29 29 20 3c 3c 3c 4e 45 58 54 5f 4c 49  GIN)) <<<NEXT_LI
2c20: 4e 45 3e 3e 3e 0a 20 24 28 4d 49 4e 49 5a 5f 4f  NE>>>. $(MINIZ_O
2c30: 42 4a 2e 24 28 46 4f 53 53 49 4c 5f 45 4e 41 42  BJ.$(FOSSIL_ENAB
2c40: 4c 45 5f 4d 49 4e 49 5a 29 29 20 3c 3c 3c 4e 45  LE_MINIZ)) <<<NE
2c50: 58 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24 28 4c 49  XT_LINE>>>. $(LI
2c60: 4e 45 4e 4f 49 53 45 5f 4f 42 4a 2e 24 28 55 53  NENOISE_OBJ.$(US
2c70: 45 5f 4c 49 4e 45 4e 4f 49 53 45 29 29 20 3c 3c  E_LINENOISE)) <<
2c80: 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24  <NEXT_LINE>>>. $
2c90: 28 4f 42 4a 44 49 52 29 2f 73 68 65 6c 6c 2e 6f  (OBJDIR)/shell.o
2ca0: 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e   <<<NEXT_LINE>>>
2cb0: 0a 20 24 28 4f 42 4a 44 49 52 29 2f 74 68 2e 6f  . $(OBJDIR)/th.o
2cc0: 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e   <<<NEXT_LINE>>>
2cd0: 0a 20 24 28 4f 42 4a 44 49 52 29 2f 74 68 5f 6c  . $(OBJDIR)/th_l
2ce0: 61 6e 67 2e 6f 20 3c 3c 3c 4e 45 58 54 5f 4c 49  ang.o <<<NEXT_LI
2cf0: 4e 45 3e 3e 3e 0a 20 24 28 4f 42 4a 44 49 52 29  NE>>>. $(OBJDIR)
2d00: 2f 74 68 5f 74 63 6c 2e 6f 20 3c 3c 3c 4e 45 58  /th_tcl.o <<<NEX
2d10: 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24 28 4f 42 4a  T_LINE>>>. $(OBJ
2d20: 44 49 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61  DIR)/cson_amalga
2d30: 6d 61 74 69 6f 6e 2e 6f 0a 7d 5d 0a 0a 77 72 69  mation.o.}]..wri
2d40: 74 65 6c 6e 20 7b 0a 24 28 41 50 50 4e 41 4d 45  teln {.$(APPNAME
2d50: 29 3a 09 24 28 4f 42 4a 44 49 52 29 2f 68 65 61  ):.$(OBJDIR)/hea
2d60: 64 65 72 73 20 24 28 4f 42 4a 44 49 52 29 2f 63  ders $(OBJDIR)/c
2d70: 6f 64 65 63 68 65 63 6b 31 20 24 28 45 58 54 52  odecheck1 $(EXTR
2d80: 41 4f 42 4a 29 20 24 28 4f 42 4a 29 0a 09 24 28  AOBJ) $(OBJ)..$(
2d90: 4f 42 4a 44 49 52 29 2f 63 6f 64 65 63 68 65 63  OBJDIR)/codechec
2da0: 6b 31 20 24 28 54 52 41 4e 53 5f 53 52 43 29 0a  k1 $(TRANS_SRC).
2db0: 09 24 28 54 43 43 29 20 24 28 54 43 43 46 4c 41  .$(TCC) $(TCCFLA
2dc0: 47 53 29 20 2d 6f 20 24 28 41 50 50 4e 41 4d 45  GS) -o $(APPNAME
2dd0: 29 20 24 28 45 58 54 52 41 4f 42 4a 29 20 24 28  ) $(EXTRAOBJ) $(
2de0: 4f 42 4a 29 20 24 28 4c 49 42 29 0a 0a 23 20 54  OBJ) $(LIB)..# T
2df0: 68 69 73 20 72 75 6c 65 20 70 72 65 76 65 6e 74  his rule prevent
2e00: 73 20 6d 61 6b 65 20 66 72 6f 6d 20 75 73 69 6e  s make from usin
2e10: 67 20 69 74 73 20 64 65 66 61 75 6c 74 20 72 75  g its default ru
2e20: 6c 65 73 20 74 6f 20 74 72 79 20 62 75 69 6c 64  les to try build
2e30: 0a 23 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65  .# an executable
2e40: 20 6e 61 6d 65 64 20 22 6d 61 6e 69 66 65 73 74   named "manifest
2e50: 22 20 6f 75 74 20 6f 66 20 74 68 65 20 66 69 6c  " out of the fil
2e60: 65 20 6e 61 6d 65 64 20 22 6d 61 6e 69 66 65 73  e named "manifes
2e70: 74 2e 63 22 0a 23 0a 24 28 53 52 43 44 49 52 29  t.c".#.$(SRCDIR)
2e80: 2f 2e 2e 2f 6d 61 6e 69 66 65 73 74 3a 0a 09 23  /../manifest:..#
2e90: 20 6e 6f 6f 70 0a 0a 63 6c 65 61 6e 3a 0a 09 2d   noop..clean:..-
2ea0: 72 6d 20 2d 72 66 20 24 28 4f 42 4a 44 49 52 29  rm -rf $(OBJDIR)
2eb0: 2f 2a 20 24 28 41 50 50 4e 41 4d 45 29 0a 0a 7d  /* $(APPNAME)..}
2ec0: 0a 0a 73 65 74 20 6d 68 61 72 67 73 20 7b 7d 0a  ..set mhargs {}.
2ed0: 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74  foreach s [lsort
2ee0: 20 24 73 72 63 5d 20 7b 0a 20 20 61 70 70 65 6e   $src] {.  appen
2ef0: 64 20 6d 68 61 72 67 73 20 22 5c 24 28 4f 42 4a  d mhargs "\$(OBJ
2f00: 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 3a 5c 24 28  DIR)/${s}_.c:\$(
2f10: 4f 42 4a 44 49 52 29 2f 24 73 2e 68 20 3c 3c 3c  OBJDIR)/$s.h <<<
2f20: 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 22 0a 20 20  NEXT_LINE>>>".  
2f30: 73 65 74 20 65 78 74 72 61 5f 68 28 24 73 29 20  set extra_h($s) 
2f40: 7b 20 7d 0a 7d 0a 61 70 70 65 6e 64 20 6d 68 61  { }.}.append mha
2f50: 72 67 73 20 22 5c 24 28 53 52 43 44 49 52 29 2f  rgs "\$(SRCDIR)/
2f60: 73 71 6c 69 74 65 33 2e 68 20 3c 3c 3c 4e 45 58  sqlite3.h <<<NEX
2f70: 54 5f 4c 49 4e 45 3e 3e 3e 22 0a 61 70 70 65 6e  T_LINE>>>".appen
2f80: 64 20 6d 68 61 72 67 73 20 22 5c 24 28 53 52 43  d mhargs "\$(SRC
2f90: 44 49 52 29 2f 74 68 2e 68 20 3c 3c 3c 4e 45 58  DIR)/th.h <<<NEX
2fa0: 54 5f 4c 49 4e 45 3e 3e 3e 22 0a 23 61 70 70 65  T_LINE>>>".#appe
2fb0: 6e 64 20 6d 68 61 72 67 73 20 22 5c 24 28 53 52  nd mhargs "\$(SR
2fc0: 43 44 49 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67  CDIR)/cson_amalg
2fd0: 61 6d 61 74 69 6f 6e 2e 68 20 3c 3c 3c 4e 45 58  amation.h <<<NEX
2fe0: 54 5f 4c 49 4e 45 3e 3e 3e 22 0a 61 70 70 65 6e  T_LINE>>>".appen
2ff0: 64 20 6d 68 61 72 67 73 20 22 5c 24 28 4f 42 4a  d mhargs "\$(OBJ
3000: 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e 68 20 22  DIR)/VERSION.h "
3010: 0a 73 65 74 20 6d 68 61 72 67 73 20 5b 73 74 72  .set mhargs [str
3020: 69 6e 67 20 6d 61 70 20 5b 6c 69 73 74 20 3c 3c  ing map [list <<
3030: 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 20 5c 5c  <NEXT_LINE>>> \\
3040: 5c 6e 5c 74 5d 20 24 6d 68 61 72 67 73 5d 0a 77  \n\t] $mhargs].w
3050: 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49  riteln "\$(OBJDI
3060: 52 29 2f 70 61 67 65 5f 69 6e 64 65 78 2e 68 3a  R)/page_index.h:
3070: 20 5c 24 28 54 52 41 4e 53 5f 53 52 43 29 20 5c   \$(TRANS_SRC) \
3080: 24 28 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64 65  $(OBJDIR)/mkinde
3090: 78 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24  x".writeln "\t\$
30a0: 28 4f 42 4a 44 49 52 29 2f 6d 6b 69 6e 64 65 78  (OBJDIR)/mkindex
30b0: 20 5c 24 28 54 52 41 4e 53 5f 53 52 43 29 20 3e   \$(TRANS_SRC) >
30c0: 5c 24 40 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20  \$@\n"..writeln 
30d0: 22 5c 24 28 4f 42 4a 44 49 52 29 2f 62 75 69 6c  "\$(OBJDIR)/buil
30e0: 74 69 6e 5f 64 61 74 61 2e 68 3a 20 5c 24 28 4f  tin_data.h: \$(O
30f0: 42 4a 44 49 52 29 2f 6d 6b 62 75 69 6c 74 69 6e  BJDIR)/mkbuiltin
3100: 20 5c 24 28 45 58 54 52 41 5f 46 49 4c 45 53 29   \$(EXTRA_FILES)
3110: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28  ".writeln "\t\$(
3120: 4f 42 4a 44 49 52 29 2f 6d 6b 62 75 69 6c 74 69  OBJDIR)/mkbuilti
3130: 6e 20 2d 2d 70 72 65 66 69 78 20 5c 24 28 53 52  n --prefix \$(SR
3140: 43 44 49 52 29 2f 20 5c 24 28 45 58 54 52 41 5f  CDIR)/ \$(EXTRA_
3150: 46 49 4c 45 53 29 20 3e 5c 24 40 5c 6e 22 0a 0a  FILES) >\$@\n"..
3160: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
3170: 49 52 29 2f 68 65 61 64 65 72 73 3a 5c 74 5c 24  IR)/headers:\t\$
3180: 28 4f 42 4a 44 49 52 29 2f 70 61 67 65 5f 69 6e  (OBJDIR)/page_in
3190: 64 65 78 2e 68 20 5c 24 28 4f 42 4a 44 49 52 29  dex.h \$(OBJDIR)
31a0: 2f 62 75 69 6c 74 69 6e 5f 64 61 74 61 2e 68 20  /builtin_data.h 
31b0: 5c 24 28 4f 42 4a 44 49 52 29 2f 6d 61 6b 65 68  \$(OBJDIR)/makeh
31c0: 65 61 64 65 72 73 20 5c 24 28 4f 42 4a 44 49 52  eaders \$(OBJDIR
31d0: 29 2f 56 45 52 53 49 4f 4e 2e 68 22 0a 77 72 69  )/VERSION.h".wri
31e0: 74 65 6c 6e 20 22 5c 74 5c 24 28 4f 42 4a 44 49  teln "\t\$(OBJDI
31f0: 52 29 2f 6d 61 6b 65 68 65 61 64 65 72 73 20 24  R)/makeheaders $
3200: 6d 68 61 72 67 73 22 0a 77 72 69 74 65 6c 6e 20  mhargs".writeln 
3210: 22 5c 74 74 6f 75 63 68 20 5c 24 28 4f 42 4a 44  "\ttouch \$(OBJD
3220: 49 52 29 2f 68 65 61 64 65 72 73 22 0a 77 72 69  IR)/headers".wri
3230: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
3240: 2f 68 65 61 64 65 72 73 3a 20 4d 61 6b 65 66 69  /headers: Makefi
3250: 6c 65 22 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28  le".writeln "\$(
3260: 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 2e 6f 20 5c  OBJDIR)/json.o \
3270: 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 61  $(OBJDIR)/json_a
3280: 72 74 69 66 61 63 74 2e 6f 20 5c 24 28 4f 42 4a  rtifact.o \$(OBJ
3290: 44 49 52 29 2f 6a 73 6f 6e 5f 62 72 61 6e 63 68  DIR)/json_branch
32a0: 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73  .o \$(OBJDIR)/js
32b0: 6f 6e 5f 63 6f 6e 66 69 67 2e 6f 20 5c 24 28 4f  on_config.o \$(O
32c0: 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 64 69 66 66  BJDIR)/json_diff
32d0: 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73  .o \$(OBJDIR)/js
32e0: 6f 6e 5f 64 69 72 2e 6f 20 5c 24 28 4f 42 4a 44  on_dir.o \$(OBJD
32f0: 49 52 29 2f 6a 73 6f 6e 5f 66 69 6e 66 6f 2e 6f  IR)/json_finfo.o
3300: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e   \$(OBJDIR)/json
3310: 5f 6c 6f 67 69 6e 2e 6f 20 5c 24 28 4f 42 4a 44  _login.o \$(OBJD
3320: 49 52 29 2f 6a 73 6f 6e 5f 71 75 65 72 79 2e 6f  IR)/json_query.o
3330: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e   \$(OBJDIR)/json
3340: 5f 72 65 70 6f 72 74 2e 6f 20 5c 24 28 4f 42 4a  _report.o \$(OBJ
3350: 44 49 52 29 2f 6a 73 6f 6e 5f 73 74 61 74 75 73  DIR)/json_status
3360: 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73  .o \$(OBJDIR)/js
3370: 6f 6e 5f 74 61 67 2e 6f 20 5c 24 28 4f 42 4a 44  on_tag.o \$(OBJD
3380: 49 52 29 2f 6a 73 6f 6e 5f 74 69 6d 65 6c 69 6e  IR)/json_timelin
3390: 65 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a  e.o \$(OBJDIR)/j
33a0: 73 6f 6e 5f 75 73 65 72 2e 6f 20 5c 24 28 4f 42  son_user.o \$(OB
33b0: 4a 44 49 52 29 2f 6a 73 6f 6e 5f 77 69 6b 69 2e  JDIR)/json_wiki.
33c0: 6f 20 3a 20 5c 24 28 53 52 43 44 49 52 29 2f 6a  o : \$(SRCDIR)/j
33d0: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 22 0a 0a 77  son_detail.h"..w
33e0: 72 69 74 65 6c 6e 20 22 4d 61 6b 65 66 69 6c 65  riteln "Makefile
33f0: 3a 22 0a 73 65 74 20 65 78 74 72 61 5f 68 28 64  :".set extra_h(d
3400: 69 73 70 61 74 63 68 29 20 22 20 5c 24 28 4f 42  ispatch) " \$(OB
3410: 4a 44 49 52 29 2f 70 61 67 65 5f 69 6e 64 65 78  JDIR)/page_index
3420: 2e 68 20 22 0a 73 65 74 20 65 78 74 72 61 5f 68  .h ".set extra_h
3430: 28 62 75 69 6c 74 69 6e 29 20 22 20 5c 24 28 4f  (builtin) " \$(O
3440: 42 4a 44 49 52 29 2f 62 75 69 6c 74 69 6e 5f 64  BJDIR)/builtin_d
3450: 61 74 61 2e 68 20 22 0a 0a 66 6f 72 65 61 63 68  ata.h "..foreach
3460: 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20   s [lsort $src] 
3470: 7b 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 24 28  {.  writeln "\$(
3480: 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 3a  OBJDIR)/${s}_.c:
3490: 5c 74 5c 24 28 53 52 43 44 49 52 29 2f 24 73 2e  \t\$(SRCDIR)/$s.
34a0: 63 20 5c 24 28 4f 42 4a 44 49 52 29 2f 74 72 61  c \$(OBJDIR)/tra
34b0: 6e 73 6c 61 74 65 22 0a 20 20 77 72 69 74 65 6c  nslate".  writel
34c0: 6e 20 22 5c 74 5c 24 28 4f 42 4a 44 49 52 29 2f  n "\t\$(OBJDIR)/
34d0: 74 72 61 6e 73 6c 61 74 65 20 5c 24 28 53 52 43  translate \$(SRC
34e0: 44 49 52 29 2f 24 73 2e 63 20 3e 5c 24 40 5c 6e  DIR)/$s.c >\$@\n
34f0: 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 24 28  ".  writeln "\$(
3500: 4f 42 4a 44 49 52 29 2f 24 73 2e 6f 3a 5c 74 5c  OBJDIR)/$s.o:\t\
3510: 24 28 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e  $(OBJDIR)/${s}_.
3520: 63 20 5c 24 28 4f 42 4a 44 49 52 29 2f 24 73 2e  c \$(OBJDIR)/$s.
3530: 68 24 65 78 74 72 61 5f 68 28 24 73 29 5c 24 28  h$extra_h($s)\$(
3540: 53 52 43 44 49 52 29 2f 63 6f 6e 66 69 67 2e 68  SRCDIR)/config.h
3550: 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 74 5c  ".  writeln "\t\
3560: 24 28 58 54 43 43 29 20 2d 6f 20 5c 24 28 4f 42  $(XTCC) -o \$(OB
3570: 4a 44 49 52 29 2f 24 73 2e 6f 20 2d 63 20 5c 24  JDIR)/$s.o -c \$
3580: 28 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63  (OBJDIR)/${s}_.c
3590: 5c 6e 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c  \n".  writeln "\
35a0: 24 28 4f 42 4a 44 49 52 29 2f 24 73 2e 68 3a 5c  $(OBJDIR)/$s.h:\
35b0: 74 5c 24 28 4f 42 4a 44 49 52 29 2f 68 65 61 64  t\$(OBJDIR)/head
35c0: 65 72 73 5c 6e 22 0a 7d 0a 0a 77 72 69 74 65 6c  ers\n".}..writel
35d0: 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f 73 71  n "\$(OBJDIR)/sq
35e0: 6c 69 74 65 33 2e 6f 3a 5c 74 5c 24 28 53 51 4c  lite3.o:\t\$(SQL
35f0: 49 54 45 33 5f 53 52 43 29 22 0a 77 72 69 74 65  ITE3_SRC)".write
3600: 6c 6e 20 22 5c 74 5c 24 28 58 54 43 43 29 20 5c  ln "\t\$(XTCC) \
3610: 24 28 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  $(SQLITE_OPTIONS
3620: 29 20 5c 24 28 53 51 4c 49 54 45 5f 43 46 4c 41  ) \$(SQLITE_CFLA
3630: 47 53 29 20 5c 24 28 53 45 45 5f 46 4c 41 47 53  GS) \$(SEE_FLAGS
3640: 29 20 5c 5c 22 0a 77 72 69 74 65 6c 6e 20 22 5c  ) \\".writeln "\
3650: 74 5c 74 2d 63 20 5c 24 28 53 51 4c 49 54 45 33  t\t-c \$(SQLITE3
3660: 5f 53 52 43 29 20 2d 6f 20 5c 24 40 22 0a 0a 77  _SRC) -o \$@"..w
3670: 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49  riteln "\$(OBJDI
3680: 52 29 2f 73 68 65 6c 6c 2e 6f 3a 5c 74 5c 24 28  R)/shell.o:\t\$(
3690: 53 51 4c 49 54 45 33 5f 53 48 45 4c 4c 5f 53 52  SQLITE3_SHELL_SR
36a0: 43 29 20 5c 24 28 53 52 43 44 49 52 29 2f 73 71  C) \$(SRCDIR)/sq
36b0: 6c 69 74 65 33 2e 68 22 0a 77 72 69 74 65 6c 6e  lite3.h".writeln
36c0: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 5c 24 28   "\t\$(XTCC) \$(
36d0: 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 29 20 5c  SHELL_OPTIONS) \
36e0: 24 28 53 48 45 4c 4c 5f 43 46 4c 41 47 53 29 20  $(SHELL_CFLAGS) 
36f0: 5c 24 28 53 45 45 5f 46 4c 41 47 53 29 20 5c 24  \$(SEE_FLAGS) \$
3700: 28 4c 49 4e 45 4e 4f 49 53 45 5f 44 45 46 2e 5c  (LINENOISE_DEF.\
3710: 24 28 55 53 45 5f 4c 49 4e 45 4e 4f 49 53 45 29  $(USE_LINENOISE)
3720: 29 20 2d 63 20 5c 24 28 53 51 4c 49 54 45 33 5f  ) -c \$(SQLITE3_
3730: 53 48 45 4c 4c 5f 53 52 43 29 20 2d 6f 20 5c 24  SHELL_SRC) -o \$
3740: 40 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c  @\n"..writeln "\
3750: 24 28 4f 42 4a 44 49 52 29 2f 6c 69 6e 65 6e 6f  $(OBJDIR)/lineno
3760: 69 73 65 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49  ise.o:\t\$(SRCDI
3770: 52 29 2f 6c 69 6e 65 6e 6f 69 73 65 2e 63 20 5c  R)/linenoise.c \
3780: 24 28 53 52 43 44 49 52 29 2f 6c 69 6e 65 6e 6f  $(SRCDIR)/lineno
3790: 69 73 65 2e 68 22 0a 77 72 69 74 65 6c 6e 20 22  ise.h".writeln "
37a0: 5c 74 5c 24 28 58 54 43 43 29 20 2d 63 20 5c 24  \t\$(XTCC) -c \$
37b0: 28 53 52 43 44 49 52 29 2f 6c 69 6e 65 6e 6f 69  (SRCDIR)/linenoi
37c0: 73 65 2e 63 20 2d 6f 20 5c 24 40 5c 6e 22 0a 0a  se.c -o \$@\n"..
37d0: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
37e0: 49 52 29 2f 74 68 2e 6f 3a 5c 74 5c 24 28 53 52  IR)/th.o:\t\$(SR
37f0: 43 44 49 52 29 2f 74 68 2e 63 22 0a 77 72 69 74  CDIR)/th.c".writ
3800: 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43 43 29 20  eln "\t\$(XTCC) 
3810: 2d 63 20 5c 24 28 53 52 43 44 49 52 29 2f 74 68  -c \$(SRCDIR)/th
3820: 2e 63 20 2d 6f 20 5c 24 40 5c 6e 22 0a 0a 77 72  .c -o \$@\n"..wr
3830: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
3840: 29 2f 74 68 5f 6c 61 6e 67 2e 6f 3a 5c 74 5c 24  )/th_lang.o:\t\$
3850: 28 53 52 43 44 49 52 29 2f 74 68 5f 6c 61 6e 67  (SRCDIR)/th_lang
3860: 2e 63 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c  .c".writeln "\t\
3870: 24 28 58 54 43 43 29 20 2d 63 20 5c 24 28 53 52  $(XTCC) -c \$(SR
3880: 43 44 49 52 29 2f 74 68 5f 6c 61 6e 67 2e 63 20  CDIR)/th_lang.c 
3890: 2d 6f 20 5c 24 40 5c 6e 22 0a 0a 77 72 69 74 65  -o \$@\n"..write
38a0: 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29 2f 74  ln "\$(OBJDIR)/t
38b0: 68 5f 74 63 6c 2e 6f 3a 5c 74 5c 24 28 53 52 43  h_tcl.o:\t\$(SRC
38c0: 44 49 52 29 2f 74 68 5f 74 63 6c 2e 63 22 0a 77  DIR)/th_tcl.c".w
38d0: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43  riteln "\t\$(XTC
38e0: 43 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52 29  C) -c \$(SRCDIR)
38f0: 2f 74 68 5f 74 63 6c 2e 63 20 2d 6f 20 5c 24 40  /th_tcl.c -o \$@
3900: 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 7b 0a 24  \n"..writeln {.$
3910: 28 4f 42 4a 44 49 52 29 2f 6d 69 6e 69 7a 2e 6f  (OBJDIR)/miniz.o
3920: 3a 09 24 28 53 52 43 44 49 52 29 2f 6d 69 6e 69  :.$(SRCDIR)/mini
3930: 7a 2e 63 0a 09 24 28 58 54 43 43 29 20 24 28 4d  z.c..$(XTCC) $(M
3940: 49 4e 49 5a 5f 4f 50 54 49 4f 4e 53 29 20 2d 63  INIZ_OPTIONS) -c
3950: 20 24 28 53 52 43 44 49 52 29 2f 6d 69 6e 69 7a   $(SRCDIR)/miniz
3960: 2e 63 20 2d 6f 20 24 40 0a 0a 24 28 4f 42 4a 44  .c -o $@..$(OBJD
3970: 49 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d  IR)/cson_amalgam
3980: 61 74 69 6f 6e 2e 6f 3a 20 24 28 53 52 43 44 49  ation.o: $(SRCDI
3990: 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61  R)/cson_amalgama
39a0: 74 69 6f 6e 2e 63 0a 09 24 28 58 54 43 43 29 20  tion.c..$(XTCC) 
39b0: 2d 63 20 24 28 53 52 43 44 49 52 29 2f 63 73 6f  -c $(SRCDIR)/cso
39c0: 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 63  n_amalgamation.c
39d0: 20 2d 6f 20 24 40 0a 0a 23 0a 23 20 54 68 65 20   -o $@..#.# The 
39e0: 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 68 65 20  list of all the 
39f0: 74 61 72 67 65 74 73 20 74 68 61 74 20 64 6f 20  targets that do 
3a00: 6e 6f 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74  not correspond t
3a10: 6f 20 72 65 61 6c 20 66 69 6c 65 73 2e 20 54 68  o real files. Th
3a20: 69 73 20 73 74 6f 70 73 0a 23 20 27 6d 61 6b 65  is stops.# 'make
3a30: 27 20 66 72 6f 6d 20 67 65 74 74 69 6e 67 20 63  ' from getting c
3a40: 6f 6e 66 75 73 65 64 20 77 68 65 6e 20 73 6f 6d  onfused when som
3a50: 65 6f 6e 65 20 6d 61 6b 65 73 20 61 6e 20 65 72  eone makes an er
3a60: 72 6f 72 20 69 6e 20 61 20 72 75 6c 65 2e 0a 23  ror in a rule..#
3a70: 0a 0a 2e 50 48 4f 4e 59 3a 20 61 6c 6c 20 69 6e  ...PHONY: all in
3a80: 73 74 61 6c 6c 20 74 65 73 74 20 63 6c 65 61 6e  stall test clean
3a90: 0a 7d 0a 0a 63 6c 6f 73 65 20 24 6f 75 74 70 75  .}..close $outpu
3aa0: 74 5f 66 69 6c 65 0a 23 0a 23 20 45 6e 64 20 6f  t_file.#.# End o
3ab0: 66 20 74 68 65 20 6d 61 69 6e 2e 6d 6b 20 6f 75  f the main.mk ou
3ac0: 74 70 75 74 0a 23 23 23 23 23 23 23 23 23 23 23  tput.###########
3ad0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3ae0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3af0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b10: 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23  ###.############
3b20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b60: 23 23 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  ##.#############
3b70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3b90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3ba0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3bb0: 23 0a 23 20 42 65 67 69 6e 20 77 69 6e 2f 4d 61  #.# Begin win/Ma
3bc0: 6b 65 66 69 6c 65 2e 6d 69 6e 67 77 20 6f 75 74  kefile.mingw out
3bd0: 70 75 74 0a 23 0a 70 75 74 73 20 22 62 75 69 6c  put.#.puts "buil
3be0: 64 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65  ding ../win/Make
3bf0: 66 69 6c 65 2e 6d 69 6e 67 77 22 0a 73 65 74 20  file.mingw".set 
3c00: 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b 6f 70 65  output_file [ope
3c10: 6e 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69 6c  n ../win/Makefil
3c20: 65 2e 6d 69 6e 67 77 20 77 5d 0a 66 63 6f 6e 66  e.mingw w].fconf
3c30: 69 67 75 72 65 20 24 6f 75 74 70 75 74 5f 66 69  igure $output_fi
3c40: 6c 65 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e 20  le -translation 
3c50: 62 69 6e 61 72 79 0a 0a 77 72 69 74 65 6c 6e 20  binary..writeln 
3c60: 7b 23 21 2f 75 73 72 2f 62 69 6e 2f 6d 61 6b 65  {#!/usr/bin/make
3c70: 0a 23 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  .#.#############
3c80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3c90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3ca0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3cb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3cc0: 23 0a 23 20 57 41 52 4e 49 4e 47 3a 20 44 4f 20  #.# WARNING: DO 
3cd0: 4e 4f 54 20 45 44 49 54 2c 20 41 55 54 4f 4d 41  NOT EDIT, AUTOMA
3ce0: 54 49 43 41 4c 4c 59 20 47 45 4e 45 52 41 54 45  TICALLY GENERATE
3cf0: 44 20 46 49 4c 45 20 28 53 45 45 20 22 73 72 63  D FILE (SEE "src
3d00: 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 29 0a  /makemake.tcl").
3d10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d50: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
3d60: 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20  .# This file is 
3d70: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  automatically ge
3d80: 6e 65 72 61 74 65 64 2e 20 20 49 6e 73 74 65 61  nerated.  Instea
3d90: 64 20 6f 66 20 65 64 69 74 69 6e 67 20 74 68 69  d of editing thi
3da0: 73 0a 23 20 66 69 6c 65 2c 20 65 64 69 74 20 22  s.# file, edit "
3db0: 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74 68  makemake.tcl" th
3dc0: 65 6e 20 72 75 6e 20 22 74 63 6c 73 68 20 6d 61  en run "tclsh ma
3dd0: 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74 6f  kemake.tcl".# to
3de0: 20 72 65 67 65 6e 65 72 61 74 65 20 74 68 69 73   regenerate this
3df0: 20 66 69 6c 65 2e 0a 23 0a 23 20 54 68 69 73 20   file..#.# This 
3e00: 69 73 20 61 20 6d 61 6b 65 66 69 6c 65 20 66 6f  is a makefile fo
3e10: 72 20 75 73 65 20 6f 6e 20 43 79 67 77 69 6e 2f  r use on Cygwin/
3e20: 44 61 72 77 69 6e 2f 46 72 65 65 42 53 44 2f 4c  Darwin/FreeBSD/L
3e30: 69 6e 75 78 2f 57 69 6e 64 6f 77 73 20 75 73 69  inux/Windows usi
3e40: 6e 67 0a 23 20 4d 69 6e 47 57 20 6f 72 20 4d 69  ng.# MinGW or Mi
3e50: 6e 47 57 2d 77 36 34 2e 0a 23 0a 23 20 53 6f 6d  nGW-w64..#.# Som
3e60: 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 61 6c  e of the special
3e70: 20 6f 70 74 69 6f 6e 73 20 77 68 69 63 68 20 63   options which c
3e80: 61 6e 20 62 65 20 70 61 73 73 65 64 20 74 6f 20  an be passed to 
3e90: 6d 61 6b 65 0a 23 20 20 20 55 53 45 5f 57 49 4e  make.#   USE_WIN
3ea0: 44 4f 57 53 3d 31 20 20 20 20 69 66 20 62 75 69  DOWS=1    if bui
3eb0: 6c 64 69 6e 67 20 75 6e 64 65 72 20 61 20 77 69  lding under a wi
3ec0: 6e 64 6f 77 73 20 63 6f 6d 6d 61 6e 64 20 70 72  ndows command pr
3ed0: 6f 6d 70 74 0a 23 20 20 20 58 36 34 3d 31 20 20  ompt.#   X64=1  
3ee0: 20 20 20 20 20 20 20 20 20 20 69 66 20 75 73 69            if usi
3ef0: 6e 67 20 61 6e 20 75 6e 70 72 65 66 69 78 65 64  ng an unprefixed
3f00: 20 36 34 2d 62 69 74 20 6d 69 6e 67 77 20 63 6f   64-bit mingw co
3f10: 6d 70 69 6c 65 72 0a 23 0a 0a 23 23 23 23 20 53  mpiler.#..#### S
3f20: 65 6c 65 63 74 20 6f 6e 65 20 6f 66 20 4d 69 6e  elect one of Min
3f30: 47 57 2c 20 4d 69 6e 47 57 2d 77 36 34 20 28 33  GW, MinGW-w64 (3
3f40: 32 2d 62 69 74 29 20 6f 72 20 4d 69 6e 47 57 2d  2-bit) or MinGW-
3f50: 77 36 34 20 28 36 34 2d 62 69 74 29 20 63 6f 6d  w64 (64-bit) com
3f60: 70 69 6c 65 72 73 2e 0a 23 20 20 20 20 42 79 20  pilers..#    By 
3f70: 64 65 66 61 75 6c 74 2c 20 74 68 69 73 20 69 73  default, this is
3f80: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
3f90: 20 28 69 2e 65 2e 20 75 73 65 20 74 68 65 20 6e   (i.e. use the n
3fa0: 61 74 69 76 65 20 63 6f 6d 70 69 6c 65 72 29 2e  ative compiler).
3fb0: 0a 23 0a 50 52 45 46 49 58 20 3d 0a 23 20 50 52  .#.PREFIX =.# PR
3fc0: 45 46 49 58 20 3d 20 6d 69 6e 67 77 33 32 2d 0a  EFIX = mingw32-.
3fd0: 23 20 50 52 45 46 49 58 20 3d 20 69 36 38 36 2d  # PREFIX = i686-
3fe0: 70 63 2d 6d 69 6e 67 77 33 32 2d 0a 23 20 50 52  pc-mingw32-.# PR
3ff0: 45 46 49 58 20 3d 20 69 36 38 36 2d 77 36 34 2d  EFIX = i686-w64-
4000: 6d 69 6e 67 77 33 32 2d 0a 23 20 50 52 45 46 49  mingw32-.# PREFI
4010: 58 20 3d 20 78 38 36 5f 36 34 2d 77 36 34 2d 6d  X = x86_64-w64-m
4020: 69 6e 67 77 33 32 2d 0a 0a 23 23 23 23 20 54 68  ingw32-..#### Th
4030: 65 20 74 6f 70 6c 65 76 65 6c 20 64 69 72 65 63  e toplevel direc
4040: 74 6f 72 79 20 6f 66 20 74 68 65 20 73 6f 75 72  tory of the sour
4050: 63 65 20 74 72 65 65 2e 20 20 46 6f 73 73 69 6c  ce tree.  Fossil
4060: 20 63 61 6e 20 62 65 20 62 75 69 6c 74 0a 23 20   can be built.# 
4070: 20 20 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72     in a director
4080: 79 20 74 68 61 74 20 69 73 20 73 65 70 61 72 61  y that is separa
4090: 74 65 20 66 72 6f 6d 20 74 68 65 20 73 6f 75 72  te from the sour
40a0: 63 65 20 74 72 65 65 2e 20 20 4a 75 73 74 20 63  ce tree.  Just c
40b0: 68 61 6e 67 65 0a 23 20 20 20 20 74 68 65 20 66  hange.#    the f
40c0: 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 70 6f 69 6e  ollowing to poin
40d0: 74 20 66 72 6f 6d 20 74 68 65 20 62 75 69 6c 64  t from the build
40e0: 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 74 68   directory to th
40f0: 65 20 73 72 63 2f 20 66 6f 6c 64 65 72 2e 0a 23  e src/ folder..#
4100: 0a 53 52 43 44 49 52 20 3d 20 73 72 63 0a 0a 23  .SRCDIR = src..#
4110: 23 23 23 20 54 68 65 20 64 69 72 65 63 74 6f 72  ### The director
4120: 79 20 69 6e 74 6f 20 77 68 69 63 68 20 6f 62 6a  y into which obj
4130: 65 63 74 20 63 6f 64 65 20 66 69 6c 65 73 20 73  ect code files s
4140: 68 6f 75 6c 64 20 62 65 20 77 72 69 74 74 65 6e  hould be written
4150: 2e 0a 23 0a 4f 42 4a 44 49 52 20 3d 20 77 62 6c  ..#.OBJDIR = wbl
4160: 64 0a 0a 23 23 23 23 20 43 20 63 6f 6d 70 69 6c  d..#### C compil
4170: 65 72 20 66 6f 72 20 75 73 65 20 69 6e 20 62 75  er for use in bu
4180: 69 6c 64 69 6e 67 20 65 78 65 63 75 74 61 62 6c  ilding executabl
4190: 65 73 20 74 68 61 74 20 77 69 6c 6c 20 72 75 6e  es that will run
41a0: 20 6f 6e 0a 23 20 20 20 20 74 68 65 20 70 6c 61   on.#    the pla
41b0: 74 66 6f 72 6d 20 74 68 61 74 20 69 73 20 64 6f  tform that is do
41c0: 69 6e 67 20 74 68 65 20 62 75 69 6c 64 2e 20 20  ing the build.  
41d0: 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20  This is used to 
41e0: 63 6f 6d 70 69 6c 65 0a 23 20 20 20 20 63 6f 64  compile.#    cod
41f0: 65 2d 67 65 6e 65 72 61 74 6f 72 20 70 72 6f 67  e-generator prog
4200: 72 61 6d 73 20 61 73 20 70 61 72 74 20 6f 66 20  rams as part of 
4210: 74 68 65 20 62 75 69 6c 64 20 70 72 6f 63 65 73  the build proces
4220: 73 2e 20 20 53 65 65 20 54 43 43 0a 23 20 20 20  s.  See TCC.#   
4230: 20 61 6e 64 20 54 43 43 45 58 45 20 62 65 6c 6f   and TCCEXE belo
4240: 77 20 66 6f 72 20 74 68 65 20 43 20 63 6f 6d 70  w for the C comp
4250: 69 6c 65 72 20 66 6f 72 20 62 75 69 6c 64 69 6e  iler for buildin
4260: 67 20 74 68 65 20 66 69 6e 69 73 68 65 64 0a 23  g the finished.#
4270: 20 20 20 20 62 69 6e 61 72 79 2e 0a 23 0a 42 43      binary..#.BC
4280: 43 45 58 45 20 3d 20 67 63 63 0a 0a 23 23 23 23  CEXE = gcc..####
4290: 20 43 20 43 6f 6d 70 69 6c 65 72 20 61 6e 64 20   C Compiler and 
42a0: 6f 70 74 69 6f 6e 73 20 66 6f 72 20 75 73 65 20  options for use 
42b0: 69 6e 20 62 75 69 6c 64 69 6e 67 20 65 78 65 63  in building exec
42c0: 75 74 61 62 6c 65 73 20 74 68 61 74 0a 23 20 20  utables that.#  
42d0: 20 20 77 69 6c 6c 20 72 75 6e 20 6f 6e 20 74 68    will run on th
42e0: 65 20 70 6c 61 74 66 6f 72 6d 20 74 68 61 74 20  e platform that 
42f0: 69 73 20 64 6f 69 6e 67 20 74 68 65 20 62 75 69  is doing the bui
4300: 6c 64 2e 20 20 54 68 69 73 20 69 73 20 75 73 65  ld.  This is use
4310: 64 0a 23 20 20 20 20 74 6f 20 63 6f 6d 70 69 6c  d.#    to compil
4320: 65 20 63 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72  e code-generator
4330: 20 70 72 6f 67 72 61 6d 73 20 61 73 20 70 61 72   programs as par
4340: 74 20 6f 66 20 74 68 65 20 62 75 69 6c 64 20 70  t of the build p
4350: 72 6f 63 65 73 73 2e 0a 23 20 20 20 20 53 65 65  rocess..#    See
4360: 20 54 43 43 20 62 65 6c 6f 77 20 66 6f 72 20 74   TCC below for t
4370: 68 65 20 43 20 63 6f 6d 70 69 6c 65 72 20 66 6f  he C compiler fo
4380: 72 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20 66  r building the f
4390: 69 6e 69 73 68 65 64 20 62 69 6e 61 72 79 2e 0a  inished binary..
43a0: 23 0a 42 43 43 20 3d 20 24 28 42 43 43 45 58 45  #.BCC = $(BCCEXE
43b0: 29 0a 0a 23 23 23 23 20 45 6e 61 62 6c 65 20 63  )..#### Enable c
43c0: 6f 6d 70 69 6c 69 6e 67 20 77 69 74 68 20 64 65  ompiling with de
43d0: 62 75 67 20 73 79 6d 62 6f 6c 73 20 28 6d 75 63  bug symbols (muc
43e0: 68 20 6c 61 72 67 65 72 20 62 69 6e 61 72 79 29  h larger binary)
43f0: 0a 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41 42  .#.# FOSSIL_ENAB
4400: 4c 45 5f 53 59 4d 42 4f 4c 53 20 3d 20 31 0a 0a  LE_SYMBOLS = 1..
4410: 23 23 23 23 20 45 6e 61 62 6c 65 20 4a 53 4f 4e  #### Enable JSON
4420: 20 28 68 74 74 70 3a 2f 2f 77 77 77 2e 6a 73 6f   (http://www.jso
4430: 6e 2e 6f 72 67 29 20 73 75 70 70 6f 72 74 20 75  n.org) support u
4440: 73 69 6e 67 20 22 63 73 6f 6e 22 0a 23 0a 23 20  sing "cson".#.# 
4450: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4a 53  FOSSIL_ENABLE_JS
4460: 4f 4e 20 3d 20 31 0a 0a 23 23 23 23 20 45 6e 61  ON = 1..#### Ena
4470: 62 6c 65 20 48 54 54 50 53 20 73 75 70 70 6f 72  ble HTTPS suppor
4480: 74 20 76 69 61 20 4f 70 65 6e 53 53 4c 20 28 6c  t via OpenSSL (l
4490: 69 6e 6b 73 20 74 6f 20 6c 69 62 73 73 6c 20 61  inks to libssl a
44a0: 6e 64 20 6c 69 62 63 72 79 70 74 6f 29 0a 23 0a  nd libcrypto).#.
44b0: 23 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  # FOSSIL_ENABLE_
44c0: 53 53 4c 20 3d 20 31 0a 0a 23 23 23 23 20 41 75  SSL = 1..#### Au
44d0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75 69 6c  tomatically buil
44e0: 64 20 4f 70 65 6e 53 53 4c 20 77 68 65 6e 20 62  d OpenSSL when b
44f0: 75 69 6c 64 69 6e 67 20 46 6f 73 73 69 6c 20 28  uilding Fossil (
4500: 63 61 75 73 65 73 20 72 65 62 75 69 6c 64 0a 23  causes rebuild.#
4510: 20 20 20 20 69 73 73 75 65 73 20 77 68 65 6e 20      issues when 
4520: 62 75 69 6c 64 69 6e 67 20 69 6e 63 72 65 6d 65  building increme
4530: 6e 74 61 6c 6c 79 29 2e 0a 23 0a 23 20 46 4f 53  ntally)..#.# FOS
4540: 53 49 4c 5f 42 55 49 4c 44 5f 53 53 4c 20 3d 20  SIL_BUILD_SSL = 
4550: 31 0a 0a 23 23 23 23 20 45 6e 61 62 6c 65 20 72  1..#### Enable r
4560: 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 69 6e  elative paths in
4570: 20 65 78 74 65 72 6e 61 6c 20 64 69 66 66 2f 67   external diff/g
4580: 64 69 66 66 0a 23 0a 23 20 46 4f 53 53 49 4c 5f  diff.#.# FOSSIL_
4590: 45 4e 41 42 4c 45 5f 45 58 45 43 5f 52 45 4c 5f  ENABLE_EXEC_REL_
45a0: 50 41 54 48 53 20 3d 20 31 0a 0a 23 23 23 23 20  PATHS = 1..#### 
45b0: 45 6e 61 62 6c 65 20 54 48 31 20 73 63 72 69 70  Enable TH1 scrip
45c0: 74 73 20 69 6e 20 65 6d 62 65 64 64 65 64 20 64  ts in embedded d
45d0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c  ocumentation fil
45e0: 65 73 0a 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e  es.#.# FOSSIL_EN
45f0: 41 42 4c 45 5f 54 48 31 5f 44 4f 43 53 20 3d 20  ABLE_TH1_DOCS = 
4600: 31 0a 0a 23 23 23 23 20 45 6e 61 62 6c 65 20 68  1..#### Enable h
4610: 6f 6f 6b 73 20 66 6f 72 20 63 6f 6d 6d 61 6e 64  ooks for command
4620: 73 20 61 6e 64 20 77 65 62 20 70 61 67 65 73 20  s and web pages 
4630: 76 69 61 20 54 48 31 0a 23 0a 23 20 46 4f 53 53  via TH1.#.# FOSS
4640: 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 48 4f  IL_ENABLE_TH1_HO
4650: 4f 4b 53 20 3d 20 31 0a 0a 23 23 23 23 20 45 6e  OKS = 1..#### En
4660: 61 62 6c 65 20 73 63 72 69 70 74 69 6e 67 20 73  able scripting s
4670: 75 70 70 6f 72 74 20 76 69 61 20 54 63 6c 2f 54  upport via Tcl/T
4680: 6b 0a 23 0a 23 20 46 4f 53 53 49 4c 5f 45 4e 41  k.#.# FOSSIL_ENA
4690: 42 4c 45 5f 54 43 4c 20 3d 20 31 0a 0a 23 23 23  BLE_TCL = 1..###
46a0: 23 20 4c 6f 61 64 20 54 63 6c 20 75 73 69 6e 67  # Load Tcl using
46b0: 20 74 68 65 20 73 74 75 62 73 20 6c 69 62 72 61   the stubs libra
46c0: 72 79 20 6d 65 63 68 61 6e 69 73 6d 0a 23 0a 23  ry mechanism.#.#
46d0: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54   FOSSIL_ENABLE_T
46e0: 43 4c 5f 53 54 55 42 53 20 3d 20 31 0a 0a 23 23  CL_STUBS = 1..##
46f0: 23 23 20 4c 6f 61 64 20 54 63 6c 20 75 73 69 6e  ## Load Tcl usin
4700: 67 20 74 68 65 20 70 72 69 76 61 74 65 20 73 74  g the private st
4710: 75 62 73 20 6d 65 63 68 61 6e 69 73 6d 0a 23 0a  ubs mechanism.#.
4720: 23 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  # FOSSIL_ENABLE_
4730: 54 43 4c 5f 50 52 49 56 41 54 45 5f 53 54 55 42  TCL_PRIVATE_STUB
4740: 53 20 3d 20 31 0a 0a 23 23 23 23 20 55 73 65 20  S = 1..#### Use 
4750: 27 73 79 73 74 65 6d 27 20 53 51 4c 69 74 65 0a  'system' SQLite.
4760: 23 0a 23 20 55 53 45 5f 53 59 53 54 45 4d 5f 53  #.# USE_SYSTEM_S
4770: 51 4c 49 54 45 20 3d 20 31 0a 0a 23 23 23 23 20  QLITE = 1..#### 
4780: 55 73 65 20 50 4f 53 49 58 20 6d 65 6d 6f 72 79  Use POSIX memory
4790: 20 41 50 49 73 20 66 72 6f 6d 20 22 73 79 73 2f   APIs from "sys/
47a0: 6d 6d 61 6e 2e 68 22 0a 23 0a 23 20 55 53 45 5f  mman.h".#.# USE_
47b0: 4d 4d 41 4e 5f 48 20 3d 20 31 0a 0a 23 23 23 23  MMAN_H = 1..####
47c0: 20 55 73 65 20 74 68 65 20 53 51 4c 69 74 65 20   Use the SQLite 
47d0: 45 6e 63 72 79 70 74 69 6f 6e 20 45 78 74 65 6e  Encryption Exten
47e0: 73 69 6f 6e 0a 23 0a 23 20 55 53 45 5f 53 45 45  sion.#.# USE_SEE
47f0: 20 3d 20 31 0a 0a 23 23 23 23 20 55 73 65 20 74   = 1..#### Use t
4800: 68 65 20 6d 69 6e 69 7a 20 63 6f 6d 70 72 65 73  he miniz compres
4810: 73 69 6f 6e 20 6c 69 62 72 61 72 79 0a 23 0a 23  sion library.#.#
4820: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d   FOSSIL_ENABLE_M
4830: 49 4e 49 5a 20 3d 20 31 0a 0a 23 23 23 23 20 55  INIZ = 1..#### U
4840: 73 65 20 74 68 65 20 54 63 6c 20 73 6f 75 72 63  se the Tcl sourc
4850: 65 20 64 69 72 65 63 74 6f 72 79 20 69 6e 73 74  e directory inst
4860: 65 61 64 20 6f 66 20 74 68 65 20 69 6e 73 74 61  ead of the insta
4870: 6c 6c 20 64 69 72 65 63 74 6f 72 79 3f 0a 23 20  ll directory?.# 
4880: 20 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75     This is usefu
4890: 6c 20 77 68 65 6e 20 54 63 6c 20 68 61 73 20 62  l when Tcl has b
48a0: 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 73 74 61  een compiled sta
48b0: 74 69 63 61 6c 6c 79 20 77 69 74 68 20 4d 69 6e  tically with Min
48c0: 47 57 2e 0a 23 0a 46 4f 53 53 49 4c 5f 54 43 4c  GW..#.FOSSIL_TCL
48d0: 5f 53 4f 55 52 43 45 20 3d 20 31 0a 0a 23 23 23  _SOURCE = 1..###
48e0: 23 20 43 68 65 63 6b 20 69 66 20 74 68 65 20 77  # Check if the w
48f0: 6f 72 6b 61 72 6f 75 6e 64 20 66 6f 72 20 74 68  orkaround for th
4900: 65 20 4d 69 6e 47 57 20 63 6f 6d 6d 61 6e 64 20  e MinGW command 
4910: 6c 69 6e 65 20 68 61 6e 64 6c 69 6e 67 20 6e 65  line handling ne
4920: 65 64 73 20 74 6f 0a 23 20 20 20 20 62 65 20 65  eds to.#    be e
4930: 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c  nabled by defaul
4940: 74 2e 20 20 54 68 69 73 20 63 68 65 63 6b 20 6d  t.  This check m
4950: 61 79 20 62 65 20 73 6f 6d 65 77 68 61 74 20 66  ay be somewhat f
4960: 72 61 67 69 6c 65 20 64 75 65 20 74 6f 20 74 68  ragile due to th
4970: 65 0a 23 20 20 20 20 75 73 65 20 6f 66 20 22 66  e.#    use of "f
4980: 69 6e 64 73 74 72 69 6e 67 22 2e 0a 23 0a 69 66  indstring"..#.if
4990: 6e 64 65 66 20 4d 49 4e 47 57 5f 49 53 5f 33 32  ndef MINGW_IS_32
49a0: 42 49 54 5f 4f 4e 4c 59 0a 69 66 65 71 20 28 2c  BIT_ONLY.ifeq (,
49b0: 24 28 66 69 6e 64 73 74 72 69 6e 67 20 77 36 34  $(findstring w64
49c0: 2d 6d 69 6e 67 77 33 32 2c 24 28 50 52 45 46 49  -mingw32,$(PREFI
49d0: 58 29 29 29 0a 4d 49 4e 47 57 5f 49 53 5f 33 32  X))).MINGW_IS_32
49e0: 42 49 54 5f 4f 4e 4c 59 20 3d 20 31 0a 65 6e 64  BIT_ONLY = 1.end
49f0: 69 66 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20 54  if.endif..#### T
4a00: 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 77  he directories w
4a10: 68 65 72 65 20 74 68 65 20 7a 6c 69 62 20 69 6e  here the zlib in
4a20: 63 6c 75 64 65 20 61 6e 64 20 6c 69 62 72 61 72  clude and librar
4a30: 79 20 66 69 6c 65 73 20 61 72 65 20 6c 6f 63 61  y files are loca
4a40: 74 65 64 2e 0a 23 0a 5a 49 4e 43 44 49 52 20 3d  ted..#.ZINCDIR =
4a50: 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 63 6f   $(SRCDIR)/../co
4a60: 6d 70 61 74 2f 7a 6c 69 62 0a 5a 4c 49 42 44 49  mpat/zlib.ZLIBDI
4a70: 52 20 3d 20 24 28 53 52 43 44 49 52 29 2f 2e 2e  R = $(SRCDIR)/..
4a80: 2f 63 6f 6d 70 61 74 2f 7a 6c 69 62 0a 0a 23 23  /compat/zlib..##
4a90: 23 23 20 4d 61 6b 65 20 61 6e 20 61 74 74 65 6d  ## Make an attem
4aa0: 70 74 20 74 6f 20 64 65 74 65 63 74 20 69 66 20  pt to detect if 
4ab0: 46 6f 73 73 69 6c 20 69 73 20 62 65 69 6e 67 20  Fossil is being 
4ac0: 62 75 69 6c 74 20 66 6f 72 20 74 68 65 20 78 36  built for the x6
4ad0: 34 20 70 72 6f 63 65 73 73 6f 72 0a 23 20 20 20  4 processor.#   
4ae0: 20 61 72 63 68 69 74 65 63 74 75 72 65 2e 20 20   architecture.  
4af0: 54 68 69 73 20 63 68 65 63 6b 20 6d 61 79 20 62  This check may b
4b00: 65 20 73 6f 6d 65 77 68 61 74 20 66 72 61 67 69  e somewhat fragi
4b10: 6c 65 20 64 75 65 20 74 6f 20 22 66 69 6e 64 73  le due to "finds
4b20: 74 72 69 6e 67 22 2e 0a 23 0a 69 66 6e 64 65 66  tring"..#.ifndef
4b30: 20 58 36 34 0a 69 66 6e 65 71 20 28 2c 24 28 66   X64.ifneq (,$(f
4b40: 69 6e 64 73 74 72 69 6e 67 20 78 38 36 5f 36 34  indstring x86_64
4b50: 2d 77 36 34 2d 6d 69 6e 67 77 33 32 2c 24 28 50  -w64-mingw32,$(P
4b60: 52 45 46 49 58 29 29 29 0a 58 36 34 20 3d 20 31  REFIX))).X64 = 1
4b70: 0a 65 6e 64 69 66 0a 65 6e 64 69 66 0a 0a 23 23  .endif.endif..##
4b80: 23 23 20 44 65 74 65 72 6d 69 6e 65 20 69 66 20  ## Determine if 
4b90: 74 68 65 20 6f 70 74 69 6d 69 7a 65 64 20 61 73  the optimized as
4ba0: 73 65 6d 62 6c 79 20 72 6f 75 74 69 6e 65 73 20  sembly routines 
4bb0: 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 7a 6c  provided with zl
4bc0: 69 62 20 73 68 6f 75 6c 64 20 62 65 0a 23 20 20  ib should be.#  
4bd0: 20 20 75 73 65 64 2c 20 74 61 6b 69 6e 67 20 69    used, taking i
4be0: 6e 74 6f 20 61 63 63 6f 75 6e 74 20 77 68 65 74  nto account whet
4bf0: 68 65 72 20 7a 6c 69 62 20 69 73 20 61 63 74 75  her zlib is actu
4c00: 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 61 6e 64  ally enabled and
4c10: 20 74 68 65 20 74 61 72 67 65 74 0a 23 20 20 20   the target.#   
4c20: 20 70 72 6f 63 65 73 73 6f 72 20 61 72 63 68 69   processor archi
4c30: 74 65 63 74 75 72 65 2e 0a 23 0a 69 66 6e 64 65  tecture..#.ifnde
4c40: 66 20 58 36 34 0a 53 53 4c 43 4f 4e 46 49 47 20  f X64.SSLCONFIG 
4c50: 3d 20 6d 69 6e 67 77 0a 69 66 6e 64 65 66 20 46  = mingw.ifndef F
4c60: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49 4e  OSSIL_ENABLE_MIN
4c70: 49 5a 0a 5a 4c 49 42 43 4f 4e 46 49 47 20 3d 20  IZ.ZLIBCONFIG = 
4c80: 4c 4f 43 3d 22 2d 44 41 53 4d 56 20 2d 44 41 53  LOC="-DASMV -DAS
4c90: 4d 49 4e 46 22 20 4f 42 4a 41 3d 22 69 6e 66 66  MINF" OBJA="inff
4ca0: 61 73 38 36 2e 6f 20 6d 61 74 63 68 2e 6f 22 0a  as86.o match.o".
4cb0: 5a 4c 49 42 54 41 52 47 45 54 53 20 3d 20 24 28  ZLIBTARGETS = $(
4cc0: 5a 4c 49 42 44 49 52 29 2f 69 6e 66 66 61 73 38  ZLIBDIR)/inffas8
4cd0: 36 2e 6f 20 24 28 5a 4c 49 42 44 49 52 29 2f 6d  6.o $(ZLIBDIR)/m
4ce0: 61 74 63 68 2e 6f 0a 65 6c 73 65 0a 5a 4c 49 42  atch.o.else.ZLIB
4cf0: 43 4f 4e 46 49 47 20 3d 0a 5a 4c 49 42 54 41 52  CONFIG =.ZLIBTAR
4d00: 47 45 54 53 20 3d 0a 65 6e 64 69 66 0a 65 6c 73  GETS =.endif.els
4d10: 65 0a 53 53 4c 43 4f 4e 46 49 47 20 3d 20 6d 69  e.SSLCONFIG = mi
4d20: 6e 67 77 36 34 0a 5a 4c 49 42 43 4f 4e 46 49 47  ngw64.ZLIBCONFIG
4d30: 20 3d 0a 5a 4c 49 42 54 41 52 47 45 54 53 20 3d   =.ZLIBTARGETS =
4d40: 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20 44 69 73  .endif..#### Dis
4d50: 61 62 6c 65 20 63 72 65 61 74 69 6f 6e 20 6f 66  able creation of
4d60: 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 73 68 61   the OpenSSL sha
4d70: 72 65 64 20 6c 69 62 72 61 72 69 65 73 2e 20 20  red libraries.  
4d80: 41 6c 73 6f 2c 20 64 69 73 61 62 6c 65 20 73 75  Also, disable su
4d90: 70 70 6f 72 74 0a 23 20 20 20 20 66 6f 72 20 53  pport.#    for S
4da0: 53 4c 76 33 20 28 69 2e 65 2e 20 74 68 65 72 65  SLv3 (i.e. there
4db0: 62 79 20 66 6f 72 63 69 6e 67 20 74 68 65 20 75  by forcing the u
4dc0: 73 65 20 6f 66 20 54 4c 53 29 2e 0a 23 0a 53 53  se of TLS)..#.SS
4dd0: 4c 43 4f 4e 46 49 47 20 2b 3d 20 6e 6f 2d 73 73  LCONFIG += no-ss
4de0: 6c 33 20 6e 6f 2d 77 65 61 6b 2d 73 73 6c 2d 63  l3 no-weak-ssl-c
4df0: 69 70 68 65 72 73 20 6e 6f 2d 73 68 61 72 65 64  iphers no-shared
4e00: 0a 0a 23 23 23 23 20 57 68 65 6e 20 75 73 69 6e  ..#### When usin
4e10: 67 20 7a 6c 69 62 2c 20 6d 61 6b 65 20 73 75 72  g zlib, make sur
4e20: 65 20 74 68 61 74 20 4f 70 65 6e 53 53 4c 20 69  e that OpenSSL i
4e30: 73 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f 20  s configured to 
4e40: 75 73 65 20 74 68 65 20 7a 6c 69 62 0a 23 20 20  use the zlib.#  
4e50: 20 20 74 68 61 74 20 46 6f 73 73 69 6c 20 6b 6e    that Fossil kn
4e60: 6f 77 73 20 61 62 6f 75 74 20 28 69 2e 65 2e 20  ows about (i.e. 
4e70: 74 68 65 20 6f 6e 65 20 77 69 74 68 69 6e 20 74  the one within t
4e80: 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 29 2e  he source tree).
4e90: 0a 23 0a 69 66 6e 64 65 66 20 46 4f 53 53 49 4c  .#.ifndef FOSSIL
4ea0: 5f 45 4e 41 42 4c 45 5f 4d 49 4e 49 5a 0a 53 53  _ENABLE_MINIZ.SS
4eb0: 4c 43 4f 4e 46 49 47 20 2b 3d 20 20 2d 2d 77 69  LCONFIG +=  --wi
4ec0: 74 68 2d 7a 6c 69 62 2d 6c 69 62 3d 24 28 50 57  th-zlib-lib=$(PW
4ed0: 44 29 2f 24 28 5a 4c 49 42 44 49 52 29 20 2d 2d  D)/$(ZLIBDIR) --
4ee0: 77 69 74 68 2d 7a 6c 69 62 2d 69 6e 63 6c 75 64  with-zlib-includ
4ef0: 65 3d 24 28 50 57 44 29 2f 24 28 5a 4c 49 42 44  e=$(PWD)/$(ZLIBD
4f00: 49 52 29 20 7a 6c 69 62 0a 65 6e 64 69 66 0a 0a  IR) zlib.endif..
4f10: 23 23 23 23 20 54 68 65 20 64 69 72 65 63 74 6f  #### The directo
4f20: 72 69 65 73 20 77 68 65 72 65 20 74 68 65 20 4f  ries where the O
4f30: 70 65 6e 53 53 4c 20 69 6e 63 6c 75 64 65 20 61  penSSL include a
4f40: 6e 64 20 6c 69 62 72 61 72 79 20 66 69 6c 65 73  nd library files
4f50: 20 61 72 65 20 6c 6f 63 61 74 65 64 2e 0a 23 0a   are located..#.
4f60: 4f 50 45 4e 53 53 4c 44 49 52 20 3d 20 24 28 53  OPENSSLDIR = $(S
4f70: 52 43 44 49 52 29 2f 2e 2e 2f 63 6f 6d 70 61 74  RCDIR)/../compat
4f80: 2f 6f 70 65 6e 73 73 6c 0a 4f 50 45 4e 53 53 4c  /openssl.OPENSSL
4f90: 49 4e 43 44 49 52 20 3d 20 24 28 4f 50 45 4e 53  INCDIR = $(OPENS
4fa0: 53 4c 44 49 52 29 2f 69 6e 63 6c 75 64 65 0a 4f  SLDIR)/include.O
4fb0: 50 45 4e 53 53 4c 4c 49 42 44 49 52 20 3d 20 24  PENSSLLIBDIR = $
4fc0: 28 4f 50 45 4e 53 53 4c 44 49 52 29 0a 0a 23 23  (OPENSSLDIR)..##
4fd0: 23 23 20 45 69 74 68 65 72 20 74 68 65 20 64 69  ## Either the di
4fe0: 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68  rectory where th
4ff0: 65 20 54 63 6c 20 6c 69 62 72 61 72 79 20 69 73  e Tcl library is
5000: 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 74 68   installed or th
5010: 65 20 54 63 6c 0a 23 20 20 20 20 73 6f 75 72 63  e Tcl.#    sourc
5020: 65 20 63 6f 64 65 20 64 69 72 65 63 74 6f 72 79  e code directory
5030: 20 72 65 73 69 64 65 73 20 28 64 65 70 65 6e 64   resides (depend
5040: 69 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c 75 65  ing on the value
5050: 20 6f 66 20 74 68 65 20 6d 61 63 72 6f 0a 23 20   of the macro.# 
5060: 20 20 20 46 4f 53 53 49 4c 5f 54 43 4c 5f 53 4f     FOSSIL_TCL_SO
5070: 55 52 43 45 29 2e 20 20 49 66 20 74 68 69 73 20  URCE).  If this 
5080: 70 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 54 63  points to the Tc
5090: 6c 20 69 6e 73 74 61 6c 6c 20 64 69 72 65 63 74  l install direct
50a0: 6f 72 79 2c 0a 23 20 20 20 20 74 68 69 73 20 64  ory,.#    this d
50b0: 69 72 65 63 74 6f 72 79 20 6d 75 73 74 20 68 61  irectory must ha
50c0: 76 65 20 22 69 6e 63 6c 75 64 65 22 20 61 6e 64  ve "include" and
50d0: 20 22 6c 69 62 22 20 73 75 62 2d 64 69 72 65 63   "lib" sub-direc
50e0: 74 6f 72 69 65 73 2e 20 20 49 66 0a 23 20 20 20  tories.  If.#   
50f0: 20 74 68 69 73 20 70 6f 69 6e 74 73 20 74 6f 20   this points to 
5100: 74 68 65 20 54 63 6c 20 73 6f 75 72 63 65 20 63  the Tcl source c
5110: 6f 64 65 20 64 69 72 65 63 74 6f 72 79 2c 20 74  ode directory, t
5120: 68 69 73 20 64 69 72 65 63 74 6f 72 79 20 6d 75  his directory mu
5130: 73 74 0a 23 20 20 20 20 68 61 76 65 20 22 67 65  st.#    have "ge
5140: 6e 65 72 69 63 22 20 61 6e 64 20 22 77 69 6e 22  neric" and "win"
5150: 20 73 75 62 2d 64 69 72 65 63 74 6f 72 69 65 73   sub-directories
5160: 2e 20 20 54 68 65 20 72 65 63 6f 6d 6d 65 6e 64  .  The recommend
5170: 65 64 20 75 73 61 67 65 0a 23 20 20 20 20 68 65  ed usage.#    he
5180: 72 65 20 69 73 20 74 6f 20 75 73 65 20 74 68 65  re is to use the
5190: 20 53 79 73 69 6e 74 65 72 6e 61 6c 73 20 6a 75   Sysinternals ju
51a0: 6e 63 74 69 6f 6e 20 74 6f 6f 6c 20 74 6f 20 63  nction tool to c
51b0: 72 65 61 74 65 20 61 20 68 61 72 64 0a 23 20 20  reate a hard.#  
51c0: 20 20 6c 69 6e 6b 20 62 65 74 77 65 65 6e 20 61    link between a
51d0: 20 22 74 63 6c 2d 38 2e 78 22 20 73 75 62 2d 64   "tcl-8.x" sub-d
51e0: 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20  irectory of the 
51f0: 46 6f 73 73 69 6c 20 73 6f 75 72 63 65 20 63 6f  Fossil source co
5200: 64 65 0a 23 20 20 20 20 64 69 72 65 63 74 6f 72  de.#    director
5210: 79 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74  y and the target
5220: 20 54 63 6c 20 64 69 72 65 63 74 6f 72 79 2e 20   Tcl directory. 
5230: 20 54 68 69 73 20 72 65 6d 6f 76 65 73 20 74 68   This removes th
5240: 65 20 6e 65 65 64 20 74 6f 0a 23 20 20 20 20 68  e need to.#    h
5250: 61 72 64 2d 63 6f 64 65 20 74 68 65 20 6e 65 63  ard-code the nec
5260: 65 73 73 61 72 79 20 70 61 74 68 73 20 69 6e 20  essary paths in 
5270: 74 68 69 73 20 4d 61 6b 65 66 69 6c 65 2e 0a 23  this Makefile..#
5280: 0a 54 43 4c 44 49 52 20 3d 20 24 28 53 52 43 44  .TCLDIR = $(SRCD
5290: 49 52 29 2f 2e 2e 2f 63 6f 6d 70 61 74 2f 74 63  IR)/../compat/tc
52a0: 6c 2d 38 2e 36 0a 0a 23 23 23 23 20 54 68 65 20  l-8.6..#### The 
52b0: 54 63 6c 20 73 6f 75 72 63 65 20 63 6f 64 65 20  Tcl source code 
52c0: 64 69 72 65 63 74 6f 72 79 2e 20 20 54 68 69 73  directory.  This
52d0: 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65   defaults to the
52e0: 20 73 61 6d 65 20 76 61 6c 75 65 20 61 73 0a 23   same value as.#
52f0: 20 20 20 20 54 43 4c 44 49 52 20 6d 61 63 72 6f      TCLDIR macro
5300: 20 28 61 62 6f 76 65 29 2c 20 77 68 69 63 68 20   (above), which 
5310: 6d 61 79 20 6e 6f 74 20 62 65 20 63 6f 72 72 65  may not be corre
5320: 63 74 2e 20 20 54 68 69 73 20 76 61 6c 75 65 20  ct.  This value 
5330: 77 69 6c 6c 0a 23 20 20 20 20 6f 6e 6c 79 20 62  will.#    only b
5340: 65 20 75 73 65 64 20 69 66 20 74 68 65 20 46 4f  e used if the FO
5350: 53 53 49 4c 5f 54 43 4c 5f 53 4f 55 52 43 45 20  SSIL_TCL_SOURCE 
5360: 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64  macro is defined
5370: 2e 0a 23 0a 54 43 4c 53 52 43 44 49 52 20 3d 20  ..#.TCLSRCDIR = 
5380: 24 28 54 43 4c 44 49 52 29 0a 0a 23 23 23 23 20  $(TCLDIR)..#### 
5390: 54 68 65 20 54 63 6c 20 69 6e 63 6c 75 64 65 20  The Tcl include 
53a0: 61 6e 64 20 6c 69 62 72 61 72 79 20 64 69 72 65  and library dire
53b0: 63 74 6f 72 69 65 73 2e 20 20 54 68 65 73 65 20  ctories.  These 
53c0: 76 61 6c 75 65 73 20 77 69 6c 6c 20 6f 6e 6c 79  values will only
53d0: 20 62 65 0a 23 20 20 20 20 75 73 65 64 20 69 66   be.#    used if
53e0: 20 74 68 65 20 46 4f 53 53 49 4c 5f 54 43 4c 5f   the FOSSIL_TCL_
53f0: 53 4f 55 52 43 45 20 6d 61 63 72 6f 20 69 73 20  SOURCE macro is 
5400: 6e 6f 74 20 64 65 66 69 6e 65 64 2e 0a 23 0a 54  not defined..#.T
5410: 43 4c 49 4e 43 44 49 52 20 3d 20 24 28 54 43 4c  CLINCDIR = $(TCL
5420: 44 49 52 29 2f 69 6e 63 6c 75 64 65 0a 54 43 4c  DIR)/include.TCL
5430: 4c 49 42 44 49 52 20 3d 20 24 28 54 43 4c 44 49  LIBDIR = $(TCLDI
5440: 52 29 2f 6c 69 62 0a 0a 23 23 23 23 20 54 63 6c  R)/lib..#### Tcl
5450: 3a 20 57 68 69 63 68 20 54 63 6c 20 6c 69 62 72  : Which Tcl libr
5460: 61 72 79 20 64 6f 20 77 65 20 77 61 6e 74 20 74  ary do we want t
5470: 6f 20 75 73 65 20 28 38 2e 34 2c 20 38 2e 35 2c  o use (8.4, 8.5,
5480: 20 38 2e 36 2c 20 65 74 63 29 3f 0a 23 0a 69 66   8.6, etc)?.#.if
5490: 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  def FOSSIL_ENABL
54a0: 45 5f 54 43 4c 5f 53 54 55 42 53 0a 69 66 6e 64  E_TCL_STUBS.ifnd
54b0: 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45  ef FOSSIL_ENABLE
54c0: 5f 54 43 4c 5f 50 52 49 56 41 54 45 5f 53 54 55  _TCL_PRIVATE_STU
54d0: 42 53 0a 4c 49 42 54 43 4c 20 3d 20 2d 6c 74 63  BS.LIBTCL = -ltc
54e0: 6c 73 74 75 62 38 36 0a 65 6e 64 69 66 0a 54 43  lstub86.endif.TC
54f0: 4c 54 41 52 47 45 54 20 3d 20 6c 69 62 74 63 6c  LTARGET = libtcl
5500: 73 74 75 62 38 36 2e 61 0a 65 6c 73 65 0a 4c 49  stub86.a.else.LI
5510: 42 54 43 4c 20 3d 20 2d 6c 74 63 6c 38 36 0a 54  BTCL = -ltcl86.T
5520: 43 4c 54 41 52 47 45 54 20 3d 20 62 69 6e 61 72  CLTARGET = binar
5530: 69 65 73 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20  ies.endif..#### 
5540: 43 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 20 75  C compiler for u
5550: 73 65 20 69 6e 20 62 75 69 6c 64 69 6e 67 20 65  se in building e
5560: 78 65 63 75 74 61 62 6c 65 73 20 74 68 61 74 20  xecutables that 
5570: 77 69 6c 6c 20 72 75 6e 20 6f 6e 20 74 68 65 0a  will run on the.
5580: 23 20 20 20 20 74 61 72 67 65 74 20 70 6c 61 74  #    target plat
5590: 66 6f 72 6d 2e 20 20 54 68 69 73 20 69 73 20 75  form.  This is u
55a0: 73 75 61 6c 6c 79 20 74 68 65 20 73 61 6d 65 20  sually the same 
55b0: 61 73 20 42 43 43 45 58 45 2c 20 75 6e 6c 65 73  as BCCEXE, unles
55c0: 73 20 79 6f 75 0a 23 20 20 20 20 61 72 65 20 63  s you.#    are c
55d0: 72 6f 73 73 2d 63 6f 6d 70 69 6c 69 6e 67 2e 20  ross-compiling. 
55e0: 20 54 68 69 73 20 43 20 63 6f 6d 70 69 6c 65 72   This C compiler
55f0: 20 62 75 69 6c 64 73 20 74 68 65 20 66 69 6e 69   builds the fini
5600: 73 68 65 64 20 62 69 6e 61 72 79 0a 23 20 20 20  shed binary.#   
5610: 20 66 6f 72 20 66 6f 73 73 69 6c 2e 20 20 53 65   for fossil.  Se
5620: 65 20 42 43 43 20 61 6e 64 20 42 43 43 45 58 45  e BCC and BCCEXE
5630: 20 61 62 6f 76 65 20 66 6f 72 20 74 68 65 20 43   above for the C
5640: 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 0a 23 20   compiler for.# 
5650: 20 20 20 62 75 69 6c 64 69 6e 67 20 69 6e 74 65     building inte
5660: 72 6d 65 64 69 61 74 65 20 63 6f 64 65 2d 67 65  rmediate code-ge
5670: 6e 65 72 61 74 6f 72 20 74 6f 6f 6c 73 2e 0a 23  nerator tools..#
5680: 0a 54 43 43 45 58 45 20 3d 20 67 63 63 0a 0a 23  .TCCEXE = gcc..#
5690: 23 23 23 20 43 20 63 6f 6d 70 69 6c 65 72 20 61  ### C compiler a
56a0: 6e 64 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 75  nd options for u
56b0: 73 65 20 69 6e 20 62 75 69 6c 64 69 6e 67 20 65  se in building e
56c0: 78 65 63 75 74 61 62 6c 65 73 20 74 68 61 74 20  xecutables that 
56d0: 77 69 6c 6c 0a 23 20 20 20 20 72 75 6e 20 6f 6e  will.#    run on
56e0: 20 74 68 65 20 74 61 72 67 65 74 20 70 6c 61 74   the target plat
56f0: 66 6f 72 6d 2e 20 20 54 68 69 73 20 69 73 20 75  form.  This is u
5700: 73 75 61 6c 6c 79 20 74 68 65 20 61 6c 6d 6f 73  sually the almos
5710: 74 20 74 68 65 20 73 61 6d 65 0a 23 20 20 20 20  t the same.#    
5720: 61 73 20 42 43 43 2c 20 75 6e 6c 65 73 73 20 79  as BCC, unless y
5730: 6f 75 20 61 72 65 20 63 72 6f 73 73 2d 63 6f 6d  ou are cross-com
5740: 70 69 6c 69 6e 67 2e 20 20 54 68 69 73 20 43 20  piling.  This C 
5750: 63 6f 6d 70 69 6c 65 72 20 62 75 69 6c 64 73 0a  compiler builds.
5760: 23 20 20 20 20 74 68 65 20 66 69 6e 69 73 68 65  #    the finishe
5770: 64 20 62 69 6e 61 72 79 20 66 6f 72 20 66 6f 73  d binary for fos
5780: 73 69 6c 2e 20 20 54 68 65 20 42 43 43 20 63 6f  sil.  The BCC co
5790: 6d 70 69 6c 65 72 20 61 62 6f 76 65 20 69 73 20  mpiler above is 
57a0: 75 73 65 64 0a 23 20 20 20 20 66 6f 72 20 62 75  used.#    for bu
57b0: 69 6c 64 69 6e 67 20 69 6e 74 65 72 6d 65 64 69  ilding intermedi
57c0: 61 74 65 20 63 6f 64 65 2d 67 65 6e 65 72 61 74  ate code-generat
57d0: 6f 72 20 74 6f 6f 6c 73 2e 0a 23 0a 54 43 43 20  or tools..#.TCC 
57e0: 3d 20 24 28 50 52 45 46 49 58 29 24 28 54 43 43  = $(PREFIX)$(TCC
57f0: 45 58 45 29 20 2d 57 61 6c 6c 20 2d 57 64 65 63  EXE) -Wall -Wdec
5800: 6c 61 72 61 74 69 6f 6e 2d 61 66 74 65 72 2d 73  laration-after-s
5810: 74 61 74 65 6d 65 6e 74 0a 0a 23 23 23 23 20 41  tatement..#### A
5820: 64 64 20 74 68 65 20 6e 65 63 65 73 73 61 72 79  dd the necessary
5830: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70   command line op
5840: 74 69 6f 6e 73 20 74 6f 20 62 75 69 6c 64 20 77  tions to build w
5850: 69 74 68 20 64 65 62 75 67 67 69 6e 67 0a 23 20  ith debugging.# 
5860: 20 20 20 73 79 6d 62 6f 6c 73 2c 20 69 66 20 65     symbols, if e
5870: 6e 61 62 6c 65 64 2e 0a 23 0a 69 66 64 65 66 20  nabled..#.ifdef 
5880: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 59  FOSSIL_ENABLE_SY
5890: 4d 42 4f 4c 53 0a 54 43 43 20 2b 3d 20 2d 67 0a  MBOLS.TCC += -g.
58a0: 65 6c 73 65 0a 54 43 43 20 2b 3d 20 2d 4f 73 0a  else.TCC += -Os.
58b0: 65 6e 64 69 66 0a 0a 23 23 23 23 20 57 68 65 6e  endif..#### When
58c0: 20 6e 6f 74 20 75 73 69 6e 67 20 74 68 65 20 6d   not using the m
58d0: 69 6e 69 7a 20 63 6f 6d 70 72 65 73 73 69 6f 6e  iniz compression
58e0: 20 6c 69 62 72 61 72 79 2c 20 7a 6c 69 62 20 69   library, zlib i
58f0: 73 20 72 65 71 75 69 72 65 64 2e 0a 23 0a 69 66  s required..#.if
5900: 6e 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42  ndef FOSSIL_ENAB
5910: 4c 45 5f 4d 49 4e 49 5a 0a 54 43 43 20 2b 3d 20  LE_MINIZ.TCC += 
5920: 2d 4c 24 28 5a 4c 49 42 44 49 52 29 20 2d 49 24  -L$(ZLIBDIR) -I$
5930: 28 5a 49 4e 43 44 49 52 29 0a 65 6e 64 69 66 0a  (ZINCDIR).endif.
5940: 0a 23 23 23 23 20 43 6f 6d 70 69 6c 65 20 72 65  .#### Compile re
5950: 73 6f 75 72 63 65 73 20 66 6f 72 20 75 73 65 20  sources for use 
5960: 69 6e 20 62 75 69 6c 64 69 6e 67 20 65 78 65 63  in building exec
5970: 75 74 61 62 6c 65 73 20 74 68 61 74 20 77 69 6c  utables that wil
5980: 6c 20 72 75 6e 0a 23 20 20 20 20 6f 6e 20 74 68  l run.#    on th
5990: 65 20 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72  e target platfor
59a0: 6d 2e 0a 23 0a 52 43 43 20 3d 20 24 28 50 52 45  m..#.RCC = $(PRE
59b0: 46 49 58 29 77 69 6e 64 72 65 73 20 2d 49 24 28  FIX)windres -I$(
59c0: 53 52 43 44 49 52 29 0a 0a 69 66 6e 64 65 66 20  SRCDIR)..ifndef 
59d0: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49  FOSSIL_ENABLE_MI
59e0: 4e 49 5a 0a 52 43 43 20 2b 3d 20 2d 49 24 28 5a  NIZ.RCC += -I$(Z
59f0: 49 4e 43 44 49 52 29 0a 65 6e 64 69 66 0a 0a 23  INCDIR).endif..#
5a00: 20 57 69 74 68 20 48 54 54 50 53 20 73 75 70 70   With HTTPS supp
5a10: 6f 72 74 0a 69 66 64 65 66 20 46 4f 53 53 49 4c  ort.ifdef FOSSIL
5a20: 5f 45 4e 41 42 4c 45 5f 53 53 4c 0a 54 43 43 20  _ENABLE_SSL.TCC 
5a30: 2b 3d 20 2d 4c 24 28 4f 50 45 4e 53 53 4c 4c 49  += -L$(OPENSSLLI
5a40: 42 44 49 52 29 20 2d 49 24 28 4f 50 45 4e 53 53  BDIR) -I$(OPENSS
5a50: 4c 49 4e 43 44 49 52 29 0a 52 43 43 20 2b 3d 20  LINCDIR).RCC += 
5a60: 2d 49 24 28 4f 50 45 4e 53 53 4c 49 4e 43 44 49  -I$(OPENSSLINCDI
5a70: 52 29 0a 65 6e 64 69 66 0a 0a 23 20 57 69 74 68  R).endif..# With
5a80: 20 54 63 6c 20 73 75 70 70 6f 72 74 0a 69 66 64   Tcl support.ifd
5a90: 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45  ef FOSSIL_ENABLE
5aa0: 5f 54 43 4c 0a 69 66 64 65 66 20 46 4f 53 53 49  _TCL.ifdef FOSSI
5ab0: 4c 5f 54 43 4c 5f 53 4f 55 52 43 45 0a 54 43 43  L_TCL_SOURCE.TCC
5ac0: 20 2b 3d 20 2d 4c 24 28 54 43 4c 53 52 43 44 49   += -L$(TCLSRCDI
5ad0: 52 29 2f 77 69 6e 20 2d 49 24 28 54 43 4c 53 52  R)/win -I$(TCLSR
5ae0: 43 44 49 52 29 2f 67 65 6e 65 72 69 63 20 2d 49  CDIR)/generic -I
5af0: 24 28 54 43 4c 53 52 43 44 49 52 29 2f 77 69 6e  $(TCLSRCDIR)/win
5b00: 0a 52 43 43 20 2b 3d 20 2d 49 24 28 54 43 4c 53  .RCC += -I$(TCLS
5b10: 52 43 44 49 52 29 2f 67 65 6e 65 72 69 63 20 2d  RCDIR)/generic -
5b20: 49 24 28 54 43 4c 53 52 43 44 49 52 29 2f 77 69  I$(TCLSRCDIR)/wi
5b30: 6e 0a 65 6c 73 65 0a 54 43 43 20 2b 3d 20 2d 4c  n.else.TCC += -L
5b40: 24 28 54 43 4c 4c 49 42 44 49 52 29 20 2d 49 24  $(TCLLIBDIR) -I$
5b50: 28 54 43 4c 49 4e 43 44 49 52 29 0a 52 43 43 20  (TCLINCDIR).RCC 
5b60: 2b 3d 20 2d 49 24 28 54 43 4c 49 4e 43 44 49 52  += -I$(TCLINCDIR
5b70: 29 0a 65 6e 64 69 66 0a 65 6e 64 69 66 0a 0a 23  ).endif.endif..#
5b80: 20 57 69 74 68 20 6d 69 6e 69 7a 20 28 69 2e 65   With miniz (i.e
5b90: 2e 20 69 6e 73 74 65 61 64 20 6f 66 20 7a 6c 69  . instead of zli
5ba0: 62 29 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f  b).ifdef FOSSIL_
5bb0: 45 4e 41 42 4c 45 5f 4d 49 4e 49 5a 0a 54 43 43  ENABLE_MINIZ.TCC
5bc0: 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41   += -DFOSSIL_ENA
5bd0: 42 4c 45 5f 4d 49 4e 49 5a 3d 31 0a 52 43 43 20  BLE_MINIZ=1.RCC 
5be0: 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42  += -DFOSSIL_ENAB
5bf0: 4c 45 5f 4d 49 4e 49 5a 3d 31 0a 65 6e 64 69 66  LE_MINIZ=1.endif
5c00: 0a 0a 23 20 57 69 74 68 20 4d 69 6e 47 57 20 63  ..# With MinGW c
5c10: 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 68 61 6e 64  ommand line hand
5c20: 6c 69 6e 67 20 77 6f 72 6b 61 72 6f 75 6e 64 0a  ling workaround.
5c30: 69 66 64 65 66 20 4d 49 4e 47 57 5f 49 53 5f 33  ifdef MINGW_IS_3
5c40: 32 42 49 54 5f 4f 4e 4c 59 0a 54 43 43 20 2b 3d  2BIT_ONLY.TCC +=
5c50: 20 2d 44 42 52 4f 4b 45 4e 5f 4d 49 4e 47 57 5f   -DBROKEN_MINGW_
5c60: 43 4d 44 4c 49 4e 45 3d 31 0a 52 43 43 20 2b 3d  CMDLINE=1.RCC +=
5c70: 20 2d 44 42 52 4f 4b 45 4e 5f 4d 49 4e 47 57 5f   -DBROKEN_MINGW_
5c80: 43 4d 44 4c 49 4e 45 3d 31 0a 65 6e 64 69 66 0a  CMDLINE=1.endif.
5c90: 0a 23 20 57 69 74 68 20 48 54 54 50 53 20 73 75  .# With HTTPS su
5ca0: 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53 53  pport.ifdef FOSS
5cb0: 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 0a 54 43  IL_ENABLE_SSL.TC
5cc0: 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e  C += -DFOSSIL_EN
5cd0: 41 42 4c 45 5f 53 53 4c 3d 31 0a 52 43 43 20 2b  ABLE_SSL=1.RCC +
5ce0: 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  = -DFOSSIL_ENABL
5cf0: 45 5f 53 53 4c 3d 31 0a 65 6e 64 69 66 0a 0a 23  E_SSL=1.endif..#
5d00: 20 57 69 74 68 20 72 65 6c 61 74 69 76 65 20 70   With relative p
5d10: 61 74 68 73 20 69 6e 20 65 78 74 65 72 6e 61 6c  aths in external
5d20: 20 64 69 66 66 2f 67 64 69 66 66 0a 69 66 64 65   diff/gdiff.ifde
5d30: 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  f FOSSIL_ENABLE_
5d40: 45 58 45 43 5f 52 45 4c 5f 50 41 54 48 53 0a 54  EXEC_REL_PATHS.T
5d50: 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45  CC += -DFOSSIL_E
5d60: 4e 41 42 4c 45 5f 45 58 45 43 5f 52 45 4c 5f 50  NABLE_EXEC_REL_P
5d70: 41 54 48 53 3d 31 0a 52 43 43 20 2b 3d 20 2d 44  ATHS=1.RCC += -D
5d80: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 45 58  FOSSIL_ENABLE_EX
5d90: 45 43 5f 52 45 4c 5f 50 41 54 48 53 3d 31 0a 65  EC_REL_PATHS=1.e
5da0: 6e 64 69 66 0a 0a 23 20 57 69 74 68 20 54 48 31  ndif..# With TH1
5db0: 20 65 6d 62 65 64 64 65 64 20 64 6f 63 73 20 73   embedded docs s
5dc0: 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53  upport.ifdef FOS
5dd0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 44  SIL_ENABLE_TH1_D
5de0: 4f 43 53 0a 54 43 43 20 2b 3d 20 2d 44 46 4f 53  OCS.TCC += -DFOS
5df0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 44  SIL_ENABLE_TH1_D
5e00: 4f 43 53 3d 31 0a 52 43 43 20 2b 3d 20 2d 44 46  OCS=1.RCC += -DF
5e10: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31  OSSIL_ENABLE_TH1
5e20: 5f 44 4f 43 53 3d 31 0a 65 6e 64 69 66 0a 0a 23  _DOCS=1.endif..#
5e30: 20 57 69 74 68 20 54 48 31 20 68 6f 6f 6b 20 73   With TH1 hook s
5e40: 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53  upport.ifdef FOS
5e50: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 48  SIL_ENABLE_TH1_H
5e60: 4f 4f 4b 53 0a 54 43 43 20 2b 3d 20 2d 44 46 4f  OOKS.TCC += -DFO
5e70: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f  SSIL_ENABLE_TH1_
5e80: 48 4f 4f 4b 53 3d 31 0a 52 43 43 20 2b 3d 20 2d  HOOKS=1.RCC += -
5e90: 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54  DFOSSIL_ENABLE_T
5ea0: 48 31 5f 48 4f 4f 4b 53 3d 31 0a 65 6e 64 69 66  H1_HOOKS=1.endif
5eb0: 0a 0a 23 20 57 69 74 68 20 54 63 6c 20 73 75 70  ..# With Tcl sup
5ec0: 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53 53 49  port.ifdef FOSSI
5ed0: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 0a 54 43 43  L_ENABLE_TCL.TCC
5ee0: 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41   += -DFOSSIL_ENA
5ef0: 42 4c 45 5f 54 43 4c 3d 31 0a 52 43 43 20 2b 3d  BLE_TCL=1.RCC +=
5f00: 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45   -DFOSSIL_ENABLE
5f10: 5f 54 43 4c 3d 31 0a 23 20 45 69 74 68 65 72 20  _TCL=1.# Either 
5f20: 73 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b 65  statically linke
5f30: 64 20 6f 72 20 76 69 61 20 73 74 75 62 73 0a 69  d or via stubs.i
5f40: 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42  fdef FOSSIL_ENAB
5f50: 4c 45 5f 54 43 4c 5f 53 54 55 42 53 0a 54 43 43  LE_TCL_STUBS.TCC
5f60: 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e 41   += -DFOSSIL_ENA
5f70: 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53 3d 31 20  BLE_TCL_STUBS=1 
5f80: 2d 44 55 53 45 5f 54 43 4c 5f 53 54 55 42 53 0a  -DUSE_TCL_STUBS.
5f90: 52 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f  RCC += -DFOSSIL_
5fa0: 45 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55 42 53  ENABLE_TCL_STUBS
5fb0: 3d 31 20 2d 44 55 53 45 5f 54 43 4c 5f 53 54 55  =1 -DUSE_TCL_STU
5fc0: 42 53 0a 69 66 64 65 66 20 46 4f 53 53 49 4c 5f  BS.ifdef FOSSIL_
5fd0: 45 4e 41 42 4c 45 5f 54 43 4c 5f 50 52 49 56 41  ENABLE_TCL_PRIVA
5fe0: 54 45 5f 53 54 55 42 53 0a 54 43 43 20 2b 3d 20  TE_STUBS.TCC += 
5ff0: 2d 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  -DFOSSIL_ENABLE_
6000: 54 43 4c 5f 50 52 49 56 41 54 45 5f 53 54 55 42  TCL_PRIVATE_STUB
6010: 53 3d 31 0a 52 43 43 20 2b 3d 20 2d 44 46 4f 53  S=1.RCC += -DFOS
6020: 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 50  SIL_ENABLE_TCL_P
6030: 52 49 56 41 54 45 5f 53 54 55 42 53 3d 31 0a 65  RIVATE_STUBS=1.e
6040: 6e 64 69 66 0a 65 6c 73 65 0a 54 43 43 20 2b 3d  ndif.else.TCC +=
6050: 20 2d 44 53 54 41 54 49 43 5f 42 55 49 4c 44 0a   -DSTATIC_BUILD.
6060: 52 43 43 20 2b 3d 20 2d 44 53 54 41 54 49 43 5f  RCC += -DSTATIC_
6070: 42 55 49 4c 44 0a 65 6e 64 69 66 0a 65 6e 64 69  BUILD.endif.endi
6080: 66 0a 0a 23 20 57 69 74 68 20 4a 53 4f 4e 20 73  f..# With JSON s
6090: 75 70 70 6f 72 74 0a 69 66 64 65 66 20 46 4f 53  upport.ifdef FOS
60a0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 0a  SIL_ENABLE_JSON.
60b0: 54 43 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f  TCC += -DFOSSIL_
60c0: 45 4e 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a 52 43  ENABLE_JSON=1.RC
60d0: 43 20 2b 3d 20 2d 44 46 4f 53 53 49 4c 5f 45 4e  C += -DFOSSIL_EN
60e0: 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a 65 6e 64 69  ABLE_JSON=1.endi
60f0: 66 0a 0a 23 20 57 69 74 68 20 22 73 79 73 2f 6d  f..# With "sys/m
6100: 6d 61 6e 2e 68 22 20 73 75 70 70 6f 72 74 0a 69  man.h" support.i
6110: 66 64 65 66 20 55 53 45 5f 4d 4d 41 4e 5f 48 0a  fdef USE_MMAN_H.
6120: 54 43 43 20 2b 3d 20 2d 44 55 53 45 5f 4d 4d 41  TCC += -DUSE_MMA
6130: 4e 5f 48 3d 31 0a 52 43 43 20 2b 3d 20 2d 44 55  N_H=1.RCC += -DU
6140: 53 45 5f 4d 4d 41 4e 5f 48 3d 31 0a 65 6e 64 69  SE_MMAN_H=1.endi
6150: 66 0a 0a 23 20 57 69 74 68 20 53 51 4c 69 74 65  f..# With SQLite
6160: 20 45 6e 63 72 79 70 74 69 6f 6e 20 45 78 74 65   Encryption Exte
6170: 6e 73 69 6f 6e 20 73 75 70 70 6f 72 74 0a 69 66  nsion support.if
6180: 64 65 66 20 55 53 45 5f 53 45 45 0a 54 43 43 20  def USE_SEE.TCC 
6190: 2b 3d 20 2d 44 55 53 45 5f 53 45 45 3d 31 0a 52  += -DUSE_SEE=1.R
61a0: 43 43 20 2b 3d 20 2d 44 55 53 45 5f 53 45 45 3d  CC += -DUSE_SEE=
61b0: 31 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20 54 68  1.endif..#### Th
61c0: 65 20 6f 70 74 69 6f 6e 20 2d 73 74 61 74 69 63  e option -static
61d0: 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f   has no effect o
61e0: 6e 20 4d 69 6e 47 57 28 2d 77 36 34 29 2c 20 6f  n MinGW(-w64), o
61f0: 6e 6c 79 20 64 79 6e 61 6d 69 63 0a 23 20 20 20  nly dynamic.#   
6200: 20 65 78 65 63 75 74 61 62 6c 65 73 20 63 61 6e   executables can
6210: 20 62 65 20 62 75 69 6c 74 20 77 68 65 6e 20 6c   be built when l
6220: 69 6e 6b 69 6e 67 20 77 69 74 68 20 4d 53 56 43  inking with MSVC
6230: 52 54 2e 20 20 4f 70 65 6e 53 53 4c 0a 23 20 20  RT.  OpenSSL.#  
6240: 20 20 28 6f 70 74 69 6f 6e 61 6c 29 20 61 6e 64    (optional) and
6250: 20 7a 6c 69 62 20 28 72 65 71 75 69 72 65 64 29   zlib (required)
6260: 20 68 6f 77 65 76 65 72 20 61 72 65 20 61 6c 77   however are alw
6270: 61 79 73 20 6c 69 6e 6b 65 64 20 69 6e 0a 23 20  ays linked in.# 
6280: 20 20 20 73 74 61 74 69 63 61 6c 6c 79 2e 20 20     statically.  
6290: 54 68 65 72 65 66 6f 72 65 2c 20 74 68 65 20 46  Therefore, the F
62a0: 4f 53 53 49 4c 5f 44 59 4e 41 4d 49 43 5f 42 55  OSSIL_DYNAMIC_BU
62b0: 49 4c 44 20 6f 70 74 69 6f 6e 20 64 6f 65 73 0a  ILD option does.
62c0: 23 20 20 20 20 6e 6f 74 20 72 65 61 6c 6c 79 20  #    not really 
62d0: 61 70 70 6c 79 20 74 6f 20 4d 69 6e 47 57 20 28  apply to MinGW (
62e0: 69 2e 65 2e 20 73 69 6e 63 65 20 41 4c 4c 20 65  i.e. since ALL e
62f0: 78 74 65 72 6e 61 6c 20 6c 69 62 72 61 72 69 65  xternal librarie
6300: 73 0a 23 20 20 20 20 61 72 65 20 4e 4f 54 20 6c  s.#    are NOT l
6310: 69 6e 6b 65 64 20 64 79 6e 61 6d 69 63 61 6c 6c  inked dynamicall
6320: 79 29 2e 0a 23 0a 23 20 4c 49 42 20 3d 20 2d 73  y)..#.# LIB = -s
6330: 74 61 74 69 63 0a 0a 23 23 23 23 20 4d 69 6e 47  tatic..#### MinG
6340: 57 3a 20 49 66 20 61 76 61 69 6c 61 62 6c 65 2c  W: If available,
6350: 20 75 73 65 20 74 68 65 20 55 6e 69 63 6f 64 65   use the Unicode
6360: 20 63 61 70 61 62 6c 65 20 72 75 6e 74 69 6d 65   capable runtime
6370: 20 73 74 61 72 74 75 70 20 63 6f 64 65 2e 0a 23   startup code..#
6380: 0a 69 66 6e 64 65 66 20 4d 49 4e 47 57 5f 49 53  .ifndef MINGW_IS
6390: 5f 33 32 42 49 54 5f 4f 4e 4c 59 0a 4c 49 42 20  _32BIT_ONLY.LIB 
63a0: 2b 3d 20 2d 6d 75 6e 69 63 6f 64 65 0a 65 6e 64  += -municode.end
63b0: 69 66 0a 0a 23 23 23 23 20 53 51 4c 69 74 65 3a  if..#### SQLite:
63c0: 20 49 66 20 65 6e 61 62 6c 65 64 2c 20 75 73 65   If enabled, use
63d0: 20 74 68 65 20 73 79 73 74 65 6d 20 53 51 4c 69   the system SQLi
63e0: 74 65 20 6c 69 62 72 61 72 79 2e 0a 23 0a 69 66  te library..#.if
63f0: 64 65 66 20 55 53 45 5f 53 59 53 54 45 4d 5f 53  def USE_SYSTEM_S
6400: 51 4c 49 54 45 0a 4c 49 42 20 2b 3d 20 2d 6c 73  QLITE.LIB += -ls
6410: 71 6c 69 74 65 33 0a 65 6e 64 69 66 0a 0a 23 23  qlite3.endif..##
6420: 23 23 20 4f 70 65 6e 53 53 4c 3a 20 41 64 64 20  ## OpenSSL: Add 
6430: 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 6c 69  the necessary li
6440: 62 72 61 72 69 65 73 20 72 65 71 75 69 72 65 64  braries required
6450: 2c 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a 23 0a  , if enabled..#.
6460: 69 66 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41  ifdef FOSSIL_ENA
6470: 42 4c 45 5f 53 53 4c 0a 4c 49 42 20 2b 3d 20 2d  BLE_SSL.LIB += -
6480: 6c 73 73 6c 20 2d 6c 63 72 79 70 74 6f 20 2d 6c  lssl -lcrypto -l
6490: 67 64 69 33 32 20 2d 6c 63 72 79 70 74 33 32 0a  gdi32 -lcrypt32.
64a0: 65 6e 64 69 66 0a 0a 23 23 23 23 20 54 63 6c 3a  endif..#### Tcl:
64b0: 20 41 64 64 20 74 68 65 20 6e 65 63 65 73 73 61   Add the necessa
64c0: 72 79 20 6c 69 62 72 61 72 69 65 73 20 72 65 71  ry libraries req
64d0: 75 69 72 65 64 2c 20 69 66 20 65 6e 61 62 6c 65  uired, if enable
64e0: 64 2e 0a 23 0a 69 66 64 65 66 20 46 4f 53 53 49  d..#.ifdef FOSSI
64f0: 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 0a 4c 49 42  L_ENABLE_TCL.LIB
6500: 20 2b 3d 20 24 28 4c 49 42 54 43 4c 29 0a 65 6e   += $(LIBTCL).en
6510: 64 69 66 0a 0a 23 23 23 23 20 45 78 74 72 61 20  dif..#### Extra 
6520: 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 6c 69  arguments for li
6530: 6e 6b 69 6e 67 20 74 68 65 20 66 69 6e 69 73 68  nking the finish
6540: 65 64 20 62 69 6e 61 72 79 2e 20 20 46 6f 73 73  ed binary.  Foss
6550: 69 6c 20 6e 65 65 64 73 0a 23 20 20 20 20 74 6f  il needs.#    to
6560: 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 74 68   link against th
6570: 65 20 5a 2d 4c 69 62 20 63 6f 6d 70 72 65 73 73  e Z-Lib compress
6580: 69 6f 6e 20 6c 69 62 72 61 72 79 2e 20 20 54 68  ion library.  Th
6590: 65 72 65 20 61 72 65 20 6e 6f 0a 23 20 20 20 20  ere are no.#    
65a0: 6f 74 68 65 72 20 6d 61 6e 64 61 74 6f 72 79 20  other mandatory 
65b0: 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 23 0a  dependencies..#.
65c0: 4c 49 42 20 2b 3d 20 2d 6c 6d 69 6e 67 77 65 78  LIB += -lmingwex
65d0: 0a 0a 23 23 23 23 20 57 68 65 6e 20 6e 6f 74 20  ..#### When not 
65e0: 75 73 69 6e 67 20 74 68 65 20 6d 69 6e 69 7a 20  using the miniz 
65f0: 63 6f 6d 70 72 65 73 73 69 6f 6e 20 6c 69 62 72  compression libr
6600: 61 72 79 2c 20 7a 6c 69 62 20 69 73 20 72 65 71  ary, zlib is req
6610: 75 69 72 65 64 2e 0a 23 0a 69 66 6e 64 65 66 20  uired..#.ifndef 
6620: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49  FOSSIL_ENABLE_MI
6630: 4e 49 5a 0a 4c 49 42 20 2b 3d 20 2d 6c 7a 0a 65  NIZ.LIB += -lz.e
6640: 6e 64 69 66 0a 0a 23 23 23 23 20 54 68 65 73 65  ndif..#### These
6650: 20 6c 69 62 72 61 72 69 65 73 20 4d 55 53 54 20   libraries MUST 
6660: 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 73 61  appear in the sa
6670: 6d 65 20 6f 72 64 65 72 20 61 73 20 74 68 65 79  me order as they
6680: 20 64 6f 20 66 6f 72 20 54 63 6c 0a 23 20 20 20   do for Tcl.#   
6690: 20 6f 72 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68   or linking with
66a0: 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72   it will not wor
66b0: 6b 20 28 65 78 61 63 74 20 72 65 61 73 6f 6e 20  k (exact reason 
66c0: 75 6e 6b 6e 6f 77 6e 29 2e 0a 23 0a 69 66 64 65  unknown)..#.ifde
66d0: 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f  f FOSSIL_ENABLE_
66e0: 54 43 4c 0a 69 66 64 65 66 20 46 4f 53 53 49 4c  TCL.ifdef FOSSIL
66f0: 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f 53 54 55 42  _ENABLE_TCL_STUB
6700: 53 0a 4c 49 42 20 2b 3d 20 2d 6c 6b 65 72 6e 65  S.LIB += -lkerne
6710: 6c 33 32 20 2d 6c 77 73 32 5f 33 32 0a 65 6c 73  l32 -lws2_32.els
6720: 65 0a 4c 49 42 20 2b 3d 20 2d 6c 6e 65 74 61 70  e.LIB += -lnetap
6730: 69 33 32 20 2d 6c 6b 65 72 6e 65 6c 33 32 20 2d  i32 -lkernel32 -
6740: 6c 75 73 65 72 33 32 20 2d 6c 61 64 76 61 70 69  luser32 -ladvapi
6750: 33 32 20 2d 6c 77 73 32 5f 33 32 0a 65 6e 64 69  32 -lws2_32.endi
6760: 66 0a 65 6c 73 65 0a 4c 49 42 20 2b 3d 20 2d 6c  f.else.LIB += -l
6770: 6b 65 72 6e 65 6c 33 32 20 2d 6c 77 73 32 5f 33  kernel32 -lws2_3
6780: 32 0a 65 6e 64 69 66 0a 0a 23 23 23 23 20 4c 69  2.endif..#### Li
6790: 62 72 61 72 79 20 72 65 71 75 69 72 65 64 20 66  brary required f
67a0: 6f 72 20 44 4e 53 20 6c 6f 6f 6b 75 70 73 2e 0a  or DNS lookups..
67b0: 23 0a 4c 49 42 20 2b 3d 20 2d 6c 64 6e 73 61 70  #.LIB += -ldnsap
67c0: 69 0a 0a 23 23 23 23 20 54 63 6c 20 73 68 65 6c  i..#### Tcl shel
67d0: 6c 20 66 6f 72 20 75 73 65 20 69 6e 20 72 75 6e  l for use in run
67e0: 6e 69 6e 67 20 74 68 65 20 66 6f 73 73 69 6c 20  ning the fossil 
67f0: 74 65 73 74 20 73 75 69 74 65 2e 20 20 54 68 69  test suite.  Thi
6800: 73 20 69 73 20 6f 6e 6c 79 0a 23 20 20 20 20 75  s is only.#    u
6810: 73 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67 2e  sed for testing.
6820: 0a 23 0a 54 43 4c 53 48 20 3d 20 74 63 6c 73 68  .#.TCLSH = tclsh
6830: 0a 0a 23 23 23 23 20 4e 75 6c 6c 73 6f 66 74 20  ..#### Nullsoft 
6840: 69 6e 73 74 61 6c 6c 65 72 20 4d 61 6b 65 4e 53  installer MakeNS
6850: 49 53 20 6c 6f 63 61 74 69 6f 6e 0a 23 0a 4d 41  IS location.#.MA
6860: 4b 45 4e 53 49 53 20 3d 20 22 24 28 50 52 4f 47  KENSIS = "$(PROG
6870: 52 41 4d 46 49 4c 45 53 29 5c 4e 53 49 53 5c 4d  RAMFILES)\NSIS\M
6880: 61 6b 65 4e 53 49 53 2e 65 78 65 22 0a 0a 23 23  akeNSIS.exe"..##
6890: 23 23 20 49 6e 6e 6f 20 53 65 74 75 70 20 65 78  ## Inno Setup ex
68a0: 65 63 75 74 61 62 6c 65 20 6c 6f 63 61 74 69 6f  ecutable locatio
68b0: 6e 0a 23 0a 49 4e 4e 4f 53 45 54 55 50 20 3d 20  n.#.INNOSETUP = 
68c0: 22 24 28 50 52 4f 47 52 41 4d 46 49 4c 45 53 29  "$(PROGRAMFILES)
68d0: 5c 49 6e 6e 6f 20 53 65 74 75 70 20 35 5c 49 53  \Inno Setup 5\IS
68e0: 43 43 2e 65 78 65 22 0a 0a 23 23 23 23 20 49 6e  CC.exe"..#### In
68f0: 63 6c 75 64 65 20 61 20 63 6f 6e 66 69 67 75 72  clude a configur
6900: 61 74 69 6f 6e 20 66 69 6c 65 20 74 68 61 74 20  ation file that 
6910: 63 61 6e 20 6f 76 65 72 72 69 64 65 20 61 6e 79  can override any
6920: 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 73 65   one of these se
6930: 74 74 69 6e 67 73 2e 0a 23 0a 2d 69 6e 63 6c 75  ttings..#.-inclu
6940: 64 65 20 63 6f 6e 66 69 67 2e 77 33 32 0a 0a 23  de config.w32..#
6950: 20 53 54 4f 50 20 48 45 52 45 0a 23 20 59 6f 75   STOP HERE.# You
6960: 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6e 65 65 64   should not need
6970: 20 74 6f 20 63 68 61 6e 67 65 20 61 6e 79 74 68   to change anyth
6980: 69 6e 67 20 62 65 6c 6f 77 20 74 68 69 73 20 6c  ing below this l
6990: 69 6e 65 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ine.#-----------
69a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 58 42  -------------.XB
69d0: 43 43 20 3d 20 24 28 42 43 43 29 20 24 28 43 46  CC = $(BCC) $(CF
69e0: 4c 41 47 53 29 0a 58 54 43 43 20 3d 20 24 28 54  LAGS).XTCC = $(T
69f0: 43 43 29 20 24 28 43 46 4c 41 47 53 29 20 2d 49  CC) $(CFLAGS) -I
6a00: 2e 20 2d 49 24 28 53 52 43 44 49 52 29 0a 7d 0a  . -I$(SRCDIR).}.
6a10: 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69  writeln -nonewli
6a20: 6e 65 20 22 53 52 43 20 3d 22 0a 66 6f 72 65 61  ne "SRC =".forea
6a30: 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63  ch s [lsort $src
6a40: 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e  ] {.  writeln -n
6a50: 6f 6e 65 77 6c 69 6e 65 20 22 20 5c 5c 5c 6e 20  onewline " \\\n 
6a60: 20 5c 24 28 53 52 43 44 49 52 29 2f 24 73 2e 63   \$(SRCDIR)/$s.c
6a70: 22 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22  ".}.writeln "\n"
6a80: 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c  .writeln -nonewl
6a90: 69 6e 65 20 22 45 58 54 52 41 5f 46 49 4c 45 53  ine "EXTRA_FILES
6aa0: 20 3d 22 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c   =".foreach s [l
6ab0: 73 6f 72 74 20 24 65 78 74 72 61 5f 66 69 6c 65  sort $extra_file
6ac0: 73 5d 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d  s] {.  writeln -
6ad0: 6e 6f 6e 65 77 6c 69 6e 65 20 22 20 5c 5c 5c 6e  nonewline " \\\n
6ae0: 20 20 5c 24 28 53 52 43 44 49 52 29 2f 24 73 22    \$(SRCDIR)/$s"
6af0: 0a 7d 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22 0a  .}.writeln "\n".
6b00: 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69  writeln -nonewli
6b10: 6e 65 20 22 54 52 41 4e 53 5f 53 52 43 20 3d 22  ne "TRANS_SRC ="
6b20: 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72  .foreach s [lsor
6b30: 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74  t $src] {.  writ
6b40: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
6b50: 20 5c 5c 5c 6e 20 20 5c 24 28 4f 42 4a 44 49 52   \\\n  \$(OBJDIR
6b60: 29 2f 24 7b 73 7d 5f 2e 63 22 0a 7d 0a 77 72 69  )/${s}_.c".}.wri
6b70: 74 65 6c 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c  teln "\n".writel
6b80: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 4f 42  n -nonewline "OB
6b90: 4a 20 3d 22 0a 66 6f 72 65 61 63 68 20 73 20 5b  J =".foreach s [
6ba0: 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20  lsort $src] {.  
6bb0: 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69  writeln -nonewli
6bc0: 6e 65 20 22 20 5c 5c 5c 6e 20 5c 24 28 4f 42 4a  ne " \\\n \$(OBJ
6bd0: 44 49 52 29 2f 24 73 2e 6f 22 0a 7d 0a 77 72 69  DIR)/$s.o".}.wri
6be0: 74 65 6c 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c  teln "\n".writel
6bf0: 6e 20 22 41 50 50 4e 41 4d 45 20 20 20 20 3d 20  n "APPNAME    = 
6c00: 24 7b 6e 61 6d 65 7d 2e 65 78 65 22 0a 77 72 69  ${name}.exe".wri
6c10: 74 65 6c 6e 20 22 41 50 50 54 41 52 47 45 54 53  teln "APPTARGETS
6c20: 20 3d 22 0a 77 72 69 74 65 6c 6e 20 7b 0a 23 23   =".writeln {.##
6c30: 23 23 20 49 66 20 74 68 65 20 55 53 45 5f 57 49  ## If the USE_WI
6c40: 4e 44 4f 57 53 20 76 61 72 69 61 62 6c 65 20 65  NDOWS variable e
6c50: 78 69 73 74 73 2c 20 69 74 20 69 73 20 61 73 73  xists, it is ass
6c60: 75 6d 65 64 20 74 68 61 74 20 77 65 20 61 72 65  umed that we are
6c70: 20 62 75 69 6c 64 69 6e 67 0a 23 20 20 20 20 69   building.#    i
6c80: 6e 73 69 64 65 20 6f 66 20 61 20 57 69 6e 64 6f  nside of a Windo
6c90: 77 73 2d 73 74 79 6c 65 20 73 68 65 6c 6c 3b 20  ws-style shell; 
6ca0: 6f 74 68 65 72 77 69 73 65 2c 20 69 74 20 69 73  otherwise, it is
6cb0: 20 61 73 73 75 6d 65 64 20 74 68 61 74 20 77 65   assumed that we
6cc0: 20 61 72 65 0a 23 20 20 20 20 62 75 69 6c 64 69   are.#    buildi
6cd0: 6e 67 20 69 6e 73 69 64 65 20 6f 66 20 61 20 55  ng inside of a U
6ce0: 6e 69 78 2d 73 74 79 6c 65 20 73 68 65 6c 6c 2e  nix-style shell.
6cf0: 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20    Note that the 
6d00: 22 6d 6f 76 65 22 20 63 6f 6d 6d 61 6e 64 20 69  "move" command i
6d10: 73 0a 23 20 20 20 20 62 72 6f 6b 65 6e 20 77 68  s.#    broken wh
6d20: 65 6e 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f  en attempting to
6d30: 20 75 73 65 20 69 74 20 66 72 6f 6d 20 74 68 65   use it from the
6d40: 20 57 69 6e 64 6f 77 73 20 73 68 65 6c 6c 20 76   Windows shell v
6d50: 69 61 20 4d 69 6e 47 57 20 6d 61 6b 65 0a 23 20  ia MinGW make.# 
6d60: 20 20 20 62 65 63 61 75 73 65 20 74 68 65 20 53     because the S
6d70: 48 45 4c 4c 20 76 61 72 69 61 62 6c 65 20 69 73  HELL variable is
6d80: 20 6f 6e 6c 79 20 75 73 65 64 20 66 6f 72 20 63   only used for c
6d90: 65 72 74 61 69 6e 20 63 6f 6d 6d 61 6e 64 73 20  ertain commands 
6da0: 74 68 61 74 20 61 72 65 0a 23 20 20 20 20 72 65  that are.#    re
6db0: 63 6f 67 6e 69 7a 65 64 20 69 6e 74 65 72 6e 61  cognized interna
6dc0: 6c 6c 79 20 62 79 20 6d 61 6b 65 2e 0a 23 0a 69  lly by make..#.i
6dd0: 66 64 65 66 20 55 53 45 5f 57 49 4e 44 4f 57 53  fdef USE_WINDOWS
6de0: 0a 54 52 41 4e 53 4c 41 54 45 20 20 20 3d 20 24  .TRANSLATE   = $
6df0: 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a  (subst /,\,$(OBJ
6e00: 44 49 52 29 2f 74 72 61 6e 73 6c 61 74 65 2e 65  DIR)/translate.e
6e10: 78 65 29 0a 4d 41 4b 45 48 45 41 44 45 52 53 20  xe).MAKEHEADERS 
6e20: 3d 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28  = $(subst /,\,$(
6e30: 4f 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65 61 64  OBJDIR)/makehead
6e40: 65 72 73 2e 65 78 65 29 0a 4d 4b 49 4e 44 45 58  ers.exe).MKINDEX
6e50: 20 20 20 20 20 3d 20 24 28 73 75 62 73 74 20 2f       = $(subst /
6e60: 2c 5c 2c 24 28 4f 42 4a 44 49 52 29 2f 6d 6b 69  ,\,$(OBJDIR)/mki
6e70: 6e 64 65 78 2e 65 78 65 29 0a 4d 4b 42 55 49 4c  ndex.exe).MKBUIL
6e80: 54 49 4e 20 20 20 3d 20 24 28 73 75 62 73 74 20  TIN   = $(subst 
6e90: 2f 2c 5c 2c 24 28 4f 42 4a 44 49 52 29 2f 6d 6b  /,\,$(OBJDIR)/mk
6ea0: 62 75 69 6c 74 69 6e 2e 65 78 65 29 0a 4d 4b 56  builtin.exe).MKV
6eb0: 45 52 53 49 4f 4e 20 20 20 3d 20 24 28 73 75 62  ERSION   = $(sub
6ec0: 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a 44 49 52 29  st /,\,$(OBJDIR)
6ed0: 2f 6d 6b 76 65 72 73 69 6f 6e 2e 65 78 65 29 0a  /mkversion.exe).
6ee0: 43 4f 44 45 43 48 45 43 4b 31 20 20 3d 20 24 28  CODECHECK1  = $(
6ef0: 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a 44  subst /,\,$(OBJD
6f00: 49 52 29 2f 63 6f 64 65 63 68 65 63 6b 31 2e 65  IR)/codecheck1.e
6f10: 78 65 29 0a 43 41 54 20 20 20 20 20 20 20 20 20  xe).CAT         
6f20: 3d 20 74 79 70 65 0a 43 50 20 20 20 20 20 20 20  = type.CP       
6f30: 20 20 20 3d 20 63 6f 70 79 0a 47 52 45 50 20 20     = copy.GREP  
6f40: 20 20 20 20 20 20 3d 20 66 69 6e 64 0a 4d 56 20        = find.MV 
6f50: 20 20 20 20 20 20 20 20 20 3d 20 63 6f 70 79 0a           = copy.
6f60: 52 4d 20 20 20 20 20 20 20 20 20 20 3d 20 64 65  RM          = de
6f70: 6c 20 2f 51 0a 4d 4b 44 49 52 20 20 20 20 20 20  l /Q.MKDIR      
6f80: 20 3d 20 2d 6d 6b 64 69 72 0a 52 4d 44 49 52 20   = -mkdir.RMDIR 
6f90: 20 20 20 20 20 20 3d 20 72 6d 64 69 72 20 2f 53        = rmdir /S
6fa0: 20 2f 51 0a 65 6c 73 65 0a 54 52 41 4e 53 4c 41   /Q.else.TRANSLA
6fb0: 54 45 20 20 20 3d 20 24 28 4f 42 4a 44 49 52 29  TE   = $(OBJDIR)
6fc0: 2f 74 72 61 6e 73 6c 61 74 65 2e 65 78 65 0a 4d  /translate.exe.M
6fd0: 41 4b 45 48 45 41 44 45 52 53 20 3d 20 24 28 4f  AKEHEADERS = $(O
6fe0: 42 4a 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65  BJDIR)/makeheade
6ff0: 72 73 2e 65 78 65 0a 4d 4b 49 4e 44 45 58 20 20  rs.exe.MKINDEX  
7000: 20 20 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 6d     = $(OBJDIR)/m
7010: 6b 69 6e 64 65 78 2e 65 78 65 0a 4d 4b 42 55 49  kindex.exe.MKBUI
7020: 4c 54 49 4e 20 20 20 3d 20 24 28 4f 42 4a 44 49  LTIN   = $(OBJDI
7030: 52 29 2f 6d 6b 62 75 69 6c 74 69 6e 2e 65 78 65  R)/mkbuiltin.exe
7040: 0a 4d 4b 56 45 52 53 49 4f 4e 20 20 20 3d 20 24  .MKVERSION   = $
7050: 28 4f 42 4a 44 49 52 29 2f 6d 6b 76 65 72 73 69  (OBJDIR)/mkversi
7060: 6f 6e 2e 65 78 65 0a 43 4f 44 45 43 48 45 43 4b  on.exe.CODECHECK
7070: 31 20 20 3d 20 24 28 4f 42 4a 44 49 52 29 2f 63  1  = $(OBJDIR)/c
7080: 6f 64 65 63 68 65 63 6b 31 2e 65 78 65 0a 43 41  odecheck1.exe.CA
7090: 54 20 20 20 20 20 20 20 20 20 3d 20 63 61 74 0a  T         = cat.
70a0: 43 50 20 20 20 20 20 20 20 20 20 20 3d 20 63 70  CP          = cp
70b0: 0a 47 52 45 50 20 20 20 20 20 20 20 20 3d 20 67  .GREP        = g
70c0: 72 65 70 0a 4d 56 20 20 20 20 20 20 20 20 20 20  rep.MV          
70d0: 3d 20 6d 76 0a 52 4d 20 20 20 20 20 20 20 20 20  = mv.RM         
70e0: 20 3d 20 72 6d 20 2d 66 0a 4d 4b 44 49 52 20 20   = rm -f.MKDIR  
70f0: 20 20 20 20 20 3d 20 2d 6d 6b 64 69 72 20 2d 70       = -mkdir -p
7100: 0a 52 4d 44 49 52 20 20 20 20 20 20 20 3d 20 72  .RMDIR       = r
7110: 6d 20 2d 72 66 0a 65 6e 64 69 66 7d 0a 0a 77 72  m -rf.endif}..wr
7120: 69 74 65 6c 6e 20 7b 0a 61 6c 6c 3a 09 24 28 4f  iteln {.all:.$(O
7130: 42 4a 44 49 52 29 20 24 28 41 50 50 4e 41 4d 45  BJDIR) $(APPNAME
7140: 29 0a 0a 24 28 4f 42 4a 44 49 52 29 2f 66 6f 73  )..$(OBJDIR)/fos
7150: 73 69 6c 2e 6f 3a 09 24 28 53 52 43 44 49 52 29  sil.o:.$(SRCDIR)
7160: 2f 2e 2e 2f 77 69 6e 2f 66 6f 73 73 69 6c 2e 72  /../win/fossil.r
7170: 63 20 24 28 4f 42 4a 44 49 52 29 2f 56 45 52 53  c $(OBJDIR)/VERS
7180: 49 4f 4e 2e 68 0a 69 66 64 65 66 20 55 53 45 5f  ION.h.ifdef USE_
7190: 57 49 4e 44 4f 57 53 0a 09 24 28 43 41 54 29 20  WINDOWS..$(CAT) 
71a0: 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 53 52  $(subst /,\,$(SR
71b0: 43 44 49 52 29 5c 6d 69 6e 69 7a 2e 63 29 20 7c  CDIR)\miniz.c) |
71c0: 20 24 28 47 52 45 50 29 20 22 64 65 66 69 6e 65   $(GREP) "define
71d0: 20 4d 5a 5f 56 45 52 53 49 4f 4e 22 20 3e 20 24   MZ_VERSION" > $
71e0: 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a  (subst /,\,$(OBJ
71f0: 44 49 52 29 5c 6d 69 6e 69 7a 76 65 72 2e 68 29  DIR)\minizver.h)
7200: 0a 09 24 28 43 50 29 20 24 28 73 75 62 73 74 20  ..$(CP) $(subst 
7210: 2f 2c 5c 2c 24 28 53 52 43 44 49 52 29 5c 2e 2e  /,\,$(SRCDIR)\..
7220: 5c 77 69 6e 5c 66 6f 73 73 69 6c 2e 72 63 29 20  \win\fossil.rc) 
7230: 24 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42  $(subst /,\,$(OB
7240: 4a 44 49 52 29 29 0a 09 24 28 43 50 29 20 24 28  JDIR))..$(CP) $(
7250: 73 75 62 73 74 20 2f 2c 5c 2c 24 28 53 52 43 44  subst /,\,$(SRCD
7260: 49 52 29 5c 2e 2e 5c 77 69 6e 5c 66 6f 73 73 69  IR)\..\win\fossi
7270: 6c 2e 69 63 6f 29 20 24 28 73 75 62 73 74 20 2f  l.ico) $(subst /
7280: 2c 5c 2c 24 28 4f 42 4a 44 49 52 29 29 0a 09 24  ,\,$(OBJDIR))..$
7290: 28 43 50 29 20 24 28 73 75 62 73 74 20 2f 2c 5c  (CP) $(subst /,\
72a0: 2c 24 28 53 52 43 44 49 52 29 5c 2e 2e 5c 77 69  ,$(SRCDIR)\..\wi
72b0: 6e 5c 66 6f 73 73 69 6c 2e 65 78 65 2e 6d 61 6e  n\fossil.exe.man
72c0: 69 66 65 73 74 29 20 24 28 73 75 62 73 74 20 2f  ifest) $(subst /
72d0: 2c 5c 2c 24 28 4f 42 4a 44 49 52 29 29 0a 65 6c  ,\,$(OBJDIR)).el
72e0: 73 65 0a 09 24 28 43 41 54 29 20 24 28 53 52 43  se..$(CAT) $(SRC
72f0: 44 49 52 29 2f 6d 69 6e 69 7a 2e 63 20 7c 20 24  DIR)/miniz.c | $
7300: 28 47 52 45 50 29 20 22 64 65 66 69 6e 65 20 4d  (GREP) "define M
7310: 5a 5f 56 45 52 53 49 4f 4e 22 20 3e 20 24 28 4f  Z_VERSION" > $(O
7320: 42 4a 44 49 52 29 2f 6d 69 6e 69 7a 76 65 72 2e  BJDIR)/minizver.
7330: 68 0a 09 24 28 43 50 29 20 24 28 53 52 43 44 49  h..$(CP) $(SRCDI
7340: 52 29 2f 2e 2e 2f 77 69 6e 2f 66 6f 73 73 69 6c  R)/../win/fossil
7350: 2e 72 63 20 24 28 4f 42 4a 44 49 52 29 0a 09 24  .rc $(OBJDIR)..$
7360: 28 43 50 29 20 24 28 53 52 43 44 49 52 29 2f 2e  (CP) $(SRCDIR)/.
7370: 2e 2f 77 69 6e 2f 66 6f 73 73 69 6c 2e 69 63 6f  ./win/fossil.ico
7380: 20 24 28 4f 42 4a 44 49 52 29 0a 09 24 28 43 50   $(OBJDIR)..$(CP
7390: 29 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 77  ) $(SRCDIR)/../w
73a0: 69 6e 2f 66 6f 73 73 69 6c 2e 65 78 65 2e 6d 61  in/fossil.exe.ma
73b0: 6e 69 66 65 73 74 20 24 28 4f 42 4a 44 49 52 29  nifest $(OBJDIR)
73c0: 0a 65 6e 64 69 66 0a 09 24 28 52 43 43 29 20 24  .endif..$(RCC) $
73d0: 28 4f 42 4a 44 49 52 29 2f 66 6f 73 73 69 6c 2e  (OBJDIR)/fossil.
73e0: 72 63 20 2d 6f 20 24 28 4f 42 4a 44 49 52 29 2f  rc -o $(OBJDIR)/
73f0: 66 6f 73 73 69 6c 2e 6f 0a 0a 69 6e 73 74 61 6c  fossil.o..instal
7400: 6c 3a 09 24 28 4f 42 4a 44 49 52 29 20 24 28 41  l:.$(OBJDIR) $(A
7410: 50 50 4e 41 4d 45 29 0a 69 66 64 65 66 20 55 53  PPNAME).ifdef US
7420: 45 5f 57 49 4e 44 4f 57 53 0a 09 24 28 4d 4b 44  E_WINDOWS..$(MKD
7430: 49 52 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c  IR) $(subst /,\,
7440: 24 28 49 4e 53 54 41 4c 4c 44 49 52 29 29 0a 09  $(INSTALLDIR))..
7450: 24 28 43 50 29 20 24 28 73 75 62 73 74 20 2f 2c  $(CP) $(subst /,
7460: 5c 2c 24 28 41 50 50 4e 41 4d 45 29 29 20 24 28  \,$(APPNAME)) $(
7470: 73 75 62 73 74 20 2f 2c 5c 2c 24 28 49 4e 53 54  subst /,\,$(INST
7480: 41 4c 4c 44 49 52 29 29 0a 65 6c 73 65 0a 09 24  ALLDIR)).else..$
7490: 28 4d 4b 44 49 52 29 20 24 28 49 4e 53 54 41 4c  (MKDIR) $(INSTAL
74a0: 4c 44 49 52 29 0a 09 24 28 43 50 29 20 24 28 41  LDIR)..$(CP) $(A
74b0: 50 50 4e 41 4d 45 29 20 24 28 49 4e 53 54 41 4c  PPNAME) $(INSTAL
74c0: 4c 44 49 52 29 0a 65 6e 64 69 66 0a 0a 24 28 4f  LDIR).endif..$(O
74d0: 42 4a 44 49 52 29 3a 0a 69 66 64 65 66 20 55 53  BJDIR):.ifdef US
74e0: 45 5f 57 49 4e 44 4f 57 53 0a 09 24 28 4d 4b 44  E_WINDOWS..$(MKD
74f0: 49 52 29 20 24 28 73 75 62 73 74 20 2f 2c 5c 2c  IR) $(subst /,\,
7500: 24 28 4f 42 4a 44 49 52 29 29 0a 65 6c 73 65 0a  $(OBJDIR)).else.
7510: 09 24 28 4d 4b 44 49 52 29 20 24 28 4f 42 4a 44  .$(MKDIR) $(OBJD
7520: 49 52 29 0a 65 6e 64 69 66 0a 0a 24 28 54 52 41  IR).endif..$(TRA
7530: 4e 53 4c 41 54 45 29 3a 09 24 28 53 52 43 44 49  NSLATE):.$(SRCDI
7540: 52 29 2f 74 72 61 6e 73 6c 61 74 65 2e 63 0a 09  R)/translate.c..
7550: 24 28 58 42 43 43 29 20 2d 6f 20 24 40 20 24 28  $(XBCC) -o $@ $(
7560: 53 52 43 44 49 52 29 2f 74 72 61 6e 73 6c 61 74  SRCDIR)/translat
7570: 65 2e 63 0a 0a 24 28 4d 41 4b 45 48 45 41 44 45  e.c..$(MAKEHEADE
7580: 52 53 29 3a 09 24 28 53 52 43 44 49 52 29 2f 6d  RS):.$(SRCDIR)/m
7590: 61 6b 65 68 65 61 64 65 72 73 2e 63 0a 09 24 28  akeheaders.c..$(
75a0: 58 42 43 43 29 20 2d 6f 20 24 40 20 24 28 53 52  XBCC) -o $@ $(SR
75b0: 43 44 49 52 29 2f 6d 61 6b 65 68 65 61 64 65 72  CDIR)/makeheader
75c0: 73 2e 63 0a 0a 24 28 4d 4b 49 4e 44 45 58 29 3a  s.c..$(MKINDEX):
75d0: 09 24 28 53 52 43 44 49 52 29 2f 6d 6b 69 6e 64  .$(SRCDIR)/mkind
75e0: 65 78 2e 63 0a 09 24 28 58 42 43 43 29 20 2d 6f  ex.c..$(XBCC) -o
75f0: 20 24 40 20 24 28 53 52 43 44 49 52 29 2f 6d 6b   $@ $(SRCDIR)/mk
7600: 69 6e 64 65 78 2e 63 0a 0a 24 28 4d 4b 42 55 49  index.c..$(MKBUI
7610: 4c 54 49 4e 29 3a 09 24 28 53 52 43 44 49 52 29  LTIN):.$(SRCDIR)
7620: 2f 6d 6b 62 75 69 6c 74 69 6e 2e 63 0a 09 24 28  /mkbuiltin.c..$(
7630: 58 42 43 43 29 20 2d 6f 20 24 40 20 24 28 53 52  XBCC) -o $@ $(SR
7640: 43 44 49 52 29 2f 6d 6b 62 75 69 6c 74 69 6e 2e  CDIR)/mkbuiltin.
7650: 63 0a 0a 24 28 4d 4b 56 45 52 53 49 4f 4e 29 3a  c..$(MKVERSION):
7660: 20 24 28 53 52 43 44 49 52 29 2f 6d 6b 76 65 72   $(SRCDIR)/mkver
7670: 73 69 6f 6e 2e 63 0a 09 24 28 58 42 43 43 29 20  sion.c..$(XBCC) 
7680: 2d 6f 20 24 40 20 24 28 53 52 43 44 49 52 29 2f  -o $@ $(SRCDIR)/
7690: 6d 6b 76 65 72 73 69 6f 6e 2e 63 0a 0a 24 28 43  mkversion.c..$(C
76a0: 4f 44 45 43 48 45 43 4b 31 29 3a 09 24 28 53 52  ODECHECK1):.$(SR
76b0: 43 44 49 52 29 2f 63 6f 64 65 63 68 65 63 6b 31  CDIR)/codecheck1
76c0: 2e 63 0a 09 24 28 58 42 43 43 29 20 2d 6f 20 24  .c..$(XBCC) -o $
76d0: 40 20 24 28 53 52 43 44 49 52 29 2f 63 6f 64 65  @ $(SRCDIR)/code
76e0: 63 68 65 63 6b 31 2e 63 0a 0a 23 20 57 41 52 4e  check1.c..# WARN
76f0: 49 4e 47 2e 20 44 41 4e 47 45 52 2e 20 52 75 6e  ING. DANGER. Run
7700: 6e 69 6e 67 20 74 68 65 20 74 65 73 74 20 73 75  ning the test su
7710: 69 74 65 20 6d 6f 64 69 66 69 65 73 20 74 68 65  ite modifies the
7720: 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 65 0a   repository the.
7730: 23 20 62 75 69 6c 64 20 69 73 20 64 6f 6e 65 20  # build is done 
7740: 66 72 6f 6d 2c 20 69 2e 65 2e 20 74 68 65 20 63  from, i.e. the c
7750: 68 65 63 6b 6f 75 74 20 62 65 6c 6f 6e 67 73 20  heckout belongs 
7760: 74 6f 2e 20 44 6f 20 6e 6f 74 20 73 79 6e 63 2f  to. Do not sync/
7770: 70 75 73 68 0a 23 20 74 68 65 20 72 65 70 6f 73  push.# the repos
7780: 69 74 6f 72 79 20 61 66 74 65 72 20 72 75 6e 6e  itory after runn
7790: 69 6e 67 20 74 68 65 20 74 65 73 74 73 2e 0a 74  ing the tests..t
77a0: 65 73 74 3a 09 24 28 4f 42 4a 44 49 52 29 20 24  est:.$(OBJDIR) $
77b0: 28 41 50 50 4e 41 4d 45 29 0a 09 24 28 54 43 4c  (APPNAME)..$(TCL
77c0: 53 48 29 20 24 28 53 52 43 44 49 52 29 2f 2e 2e  SH) $(SRCDIR)/..
77d0: 2f 74 65 73 74 2f 74 65 73 74 65 72 2e 74 63 6c  /test/tester.tcl
77e0: 20 24 28 41 50 50 4e 41 4d 45 29 0a 0a 24 28 4f   $(APPNAME)..$(O
77f0: 42 4a 44 49 52 29 2f 56 45 52 53 49 4f 4e 2e 68  BJDIR)/VERSION.h
7800: 3a 09 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d  :.$(SRCDIR)/../m
7810: 61 6e 69 66 65 73 74 2e 75 75 69 64 20 24 28 53  anifest.uuid $(S
7820: 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65  RCDIR)/../manife
7830: 73 74 20 24 28 4d 4b 56 45 52 53 49 4f 4e 29 20  st $(MKVERSION) 
7840: 24 28 4f 42 4a 44 49 52 29 2f 70 68 6f 6e 79 2e  $(OBJDIR)/phony.
7850: 68 0a 09 24 28 4d 4b 56 45 52 53 49 4f 4e 29 20  h..$(MKVERSION) 
7860: 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e  $(SRCDIR)/../man
7870: 69 66 65 73 74 2e 75 75 69 64 20 24 28 53 52 43  ifest.uuid $(SRC
7880: 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65 73 74  DIR)/../manifest
7890: 20 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 56 45   $(SRCDIR)/../VE
78a0: 52 53 49 4f 4e 20 3e 24 40 0a 0a 24 28 4f 42 4a  RSION >$@..$(OBJ
78b0: 44 49 52 29 2f 70 68 6f 6e 79 2e 68 3a 0a 09 23  DIR)/phony.h:..#
78c0: 20 46 6f 72 63 65 20 72 65 62 75 69 6c 64 20 6f   Force rebuild o
78d0: 66 20 56 45 52 53 49 4f 4e 2e 68 20 65 76 65 72  f VERSION.h ever
78e0: 79 20 74 69 6d 65 20 22 6d 61 6b 65 22 20 69 73  y time "make" is
78f0: 20 72 75 6e 0a 0a 23 20 54 68 65 20 55 53 45 5f   run..# The USE_
7900: 53 59 53 54 45 4d 5f 53 51 4c 49 54 45 20 76 61  SYSTEM_SQLITE va
7910: 72 69 61 62 6c 65 20 6d 61 79 20 62 65 20 75 6e  riable may be un
7920: 64 65 66 69 6e 65 64 2c 20 73 65 74 20 74 6f 20  defined, set to 
7930: 30 20 6f 72 20 31 2e 0a 23 20 49 66 20 69 74 20  0 or 1..# If it 
7940: 69 73 20 73 65 74 20 74 6f 20 31 2c 20 74 68 65  is set to 1, the
7950: 6e 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65  n there is no ne
7960: 65 64 20 74 6f 20 62 75 69 6c 64 20 6f 72 20 6c  ed to build or l
7970: 69 6e 6b 0a 23 20 74 68 65 20 73 71 6c 69 74 65  ink.# the sqlite
7980: 33 2e 6f 20 6f 62 6a 65 63 74 2e 20 49 6e 73 74  3.o object. Inst
7990: 65 61 64 2c 20 74 68 65 20 73 79 73 74 65 6d 20  ead, the system 
79a0: 53 51 4c 69 74 65 20 77 69 6c 6c 20 62 65 20 6c  SQLite will be l
79b0: 69 6e 6b 65 64 0a 23 20 75 73 69 6e 67 20 2d 6c  inked.# using -l
79c0: 73 71 6c 69 74 65 33 2e 0a 23 0a 23 20 43 6c 6f  sqlite3..#.# Clo
79d0: 73 65 6c 79 20 72 65 6c 61 74 65 64 20 69 73 20  sely related is 
79e0: 53 51 4c 49 54 45 33 5f 4f 52 49 47 49 4e 2c 20  SQLITE3_ORIGIN, 
79f0: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 30 2f  with the same 0/
7a00: 31 20 6d 61 70 70 69 6e 67 2c 0a 23 20 70 6c 75  1 mapping,.# plu
7a10: 73 20 61 20 76 61 6c 75 65 20 6f 66 20 32 20 6d  s a value of 2 m
7a20: 65 61 6e 73 20 74 68 61 74 20 77 65 20 61 72 65  eans that we are
7a30: 20 62 75 69 6c 64 69 6e 67 20 61 20 63 6c 69 65   building a clie
7a40: 6e 74 2d 70 72 6f 76 69 64 65 64 0a 23 20 73 71  nt-provided.# sq
7a50: 6c 69 74 65 33 2e 63 2e 0a 53 51 4c 49 54 45 33  lite3.c..SQLITE3
7a60: 5f 4f 42 4a 2e 30 20 3d 20 24 28 4f 42 4a 44 49  _OBJ.0 = $(OBJDI
7a70: 52 29 2f 73 71 6c 69 74 65 33 2e 6f 0a 53 51 4c  R)/sqlite3.o.SQL
7a80: 49 54 45 33 5f 4f 42 4a 2e 31 20 3d 0a 23 20 53  ITE3_OBJ.1 =.# S
7a90: 51 4c 49 54 45 33 5f 4f 42 4a 2e 32 20 69 73 20  QLITE3_OBJ.2 is 
7aa0: 73 65 74 20 62 79 20 74 68 65 20 63 6f 6e 66 69  set by the confi
7ab0: 67 75 72 65 20 70 72 6f 63 65 73 73 0a 53 51 4c  gure process.SQL
7ac0: 49 54 45 33 5f 4f 42 4a 2e 20 20 3d 20 24 28 53  ITE3_OBJ.  = $(S
7ad0: 51 4c 49 54 45 33 5f 4f 42 4a 2e 30 29 0a 0a 23  QLITE3_OBJ.0)..#
7ae0: 20 54 68 65 20 46 4f 53 53 49 4c 5f 45 4e 41 42   The FOSSIL_ENAB
7af0: 4c 45 5f 4d 49 4e 49 5a 20 76 61 72 69 61 62 6c  LE_MINIZ variabl
7b00: 65 20 6d 61 79 20 62 65 20 75 6e 64 65 66 69 6e  e may be undefin
7b10: 65 64 2c 20 73 65 74 20 74 6f 20 30 2c 20 6f 72  ed, set to 0, or
7b20: 0a 23 20 73 65 74 20 74 6f 20 31 2e 20 20 49 66  .# set to 1.  If
7b30: 20 69 74 20 69 73 20 73 65 74 20 74 6f 20 31 2c   it is set to 1,
7b40: 20 74 68 65 20 6d 69 6e 69 7a 20 6c 69 62 72 61   the miniz libra
7b50: 72 79 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74  ry included in t
7b60: 68 65 0a 23 20 73 6f 75 72 63 65 20 74 72 65 65  he.# source tree
7b70: 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 3b   should be used;
7b80: 20 6f 74 68 65 72 77 69 73 65 2c 20 69 74 20 73   otherwise, it s
7b90: 68 6f 75 6c 64 20 6e 6f 74 2e 0a 4d 49 4e 49 5a  hould not..MINIZ
7ba0: 5f 4f 42 4a 2e 30 20 3d 0a 4d 49 4e 49 5a 5f 4f  _OBJ.0 =.MINIZ_O
7bb0: 42 4a 2e 31 20 3d 20 24 28 4f 42 4a 44 49 52 29  BJ.1 = $(OBJDIR)
7bc0: 2f 6d 69 6e 69 7a 2e 6f 0a 4d 49 4e 49 5a 5f 4f  /miniz.o.MINIZ_O
7bd0: 42 4a 2e 20 20 3d 20 24 28 4d 49 4e 49 5a 5f 4f  BJ.  = $(MINIZ_O
7be0: 42 4a 2e 30 29 0a 0a 23 20 54 68 65 20 55 53 45  BJ.0)..# The USE
7bf0: 5f 53 45 45 20 76 61 72 69 61 62 6c 65 20 6d 61  _SEE variable ma
7c00: 79 20 62 65 20 75 6e 64 65 66 69 6e 65 64 2c 20  y be undefined, 
7c10: 30 20 6f 72 20 31 2e 20 20 49 66 20 75 6e 64 65  0 or 1.  If unde
7c20: 66 69 6e 65 64 20 6f 72 0a 23 20 30 2c 20 6f 72  fined or.# 0, or
7c30: 64 69 6e 61 72 79 20 53 51 4c 69 74 65 20 69 73  dinary SQLite is
7c40: 20 75 73 65 64 2e 20 20 49 66 20 31 2c 20 74 68   used.  If 1, th
7c50: 65 6e 20 73 71 6c 69 74 65 33 2d 73 65 65 2e 63  en sqlite3-see.c
7c60: 20 28 6e 6f 74 20 70 61 72 74 20 6f 66 0a 23 20   (not part of.# 
7c70: 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 29  the source tree)
7c80: 20 69 73 20 75 73 65 64 20 61 6e 64 20 65 78 74   is used and ext
7c90: 72 61 20 66 6c 61 67 73 20 61 72 65 20 70 72 6f  ra flags are pro
7ca0: 76 69 64 65 64 20 74 6f 20 65 6e 61 62 6c 65 0a  vided to enable.
7cb0: 23 20 74 68 65 20 53 51 4c 69 74 65 20 45 6e 63  # the SQLite Enc
7cc0: 72 79 70 74 69 6f 6e 20 45 78 74 65 6e 73 69 6f  ryption Extensio
7cd0: 6e 2e 0a 53 51 4c 49 54 45 33 5f 53 52 43 2e 30  n..SQLITE3_SRC.0
7ce0: 20 3d 20 24 28 53 52 43 44 49 52 29 2f 73 71 6c   = $(SRCDIR)/sql
7cf0: 69 74 65 33 2e 63 0a 53 51 4c 49 54 45 33 5f 53  ite3.c.SQLITE3_S
7d00: 52 43 2e 31 20 3d 20 24 28 53 52 43 44 49 52 29  RC.1 = $(SRCDIR)
7d10: 2f 73 71 6c 69 74 65 33 2d 73 65 65 2e 63 0a 23  /sqlite3-see.c.#
7d20: 20 53 51 4c 49 54 45 33 5f 53 52 43 2e 32 20 69   SQLITE3_SRC.2 i
7d30: 73 20 73 65 74 20 62 79 20 74 6f 70 2d 6c 65 76  s set by top-lev
7d40: 65 6c 20 63 6f 6e 66 69 67 75 72 65 2f 6d 61 6b  el configure/mak
7d50: 65 66 69 6c 65 20 70 72 6f 63 65 73 73 2e 0a 53  efile process..S
7d60: 51 4c 49 54 45 33 5f 53 52 43 2e 20 3d 20 24 28  QLITE3_SRC. = $(
7d70: 53 52 43 44 49 52 29 2f 73 71 6c 69 74 65 33 2e  SRCDIR)/sqlite3.
7d80: 63 0a 53 51 4c 49 54 45 33 5f 53 52 43 20 3d 20  c.SQLITE3_SRC = 
7d90: 24 28 53 52 43 44 49 52 29 2f 24 28 53 51 4c 49  $(SRCDIR)/$(SQLI
7da0: 54 45 33 5f 53 52 43 2e 24 28 53 51 4c 49 54 45  TE3_SRC.$(SQLITE
7db0: 33 5f 4f 52 49 47 49 4e 29 29 0a 53 51 4c 49 54  3_ORIGIN)).SQLIT
7dc0: 45 33 5f 53 48 45 4c 4c 5f 53 52 43 2e 30 20 3d  E3_SHELL_SRC.0 =
7dd0: 20 24 28 53 52 43 44 49 52 29 2f 73 68 65 6c 6c   $(SRCDIR)/shell
7de0: 2e 63 0a 53 51 4c 49 54 45 33 5f 53 48 45 4c 4c  .c.SQLITE3_SHELL
7df0: 5f 53 52 43 2e 31 20 3d 20 24 28 53 52 43 44 49  _SRC.1 = $(SRCDI
7e00: 52 29 2f 73 68 65 6c 6c 2d 73 65 65 2e 63 0a 23  R)/shell-see.c.#
7e10: 20 53 51 4c 49 54 45 33 5f 53 48 45 4c 4c 5f 53   SQLITE3_SHELL_S
7e20: 52 43 2e 32 20 63 6f 6d 65 73 20 66 72 6f 6d 20  RC.2 comes from 
7e30: 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20 70 72  the configure pr
7e40: 6f 63 65 73 73 0a 53 51 4c 49 54 45 33 5f 53 48  ocess.SQLITE3_SH
7e50: 45 4c 4c 5f 53 52 43 2e 20 3d 20 24 28 53 52 43  ELL_SRC. = $(SRC
7e60: 44 49 52 29 2f 73 68 65 6c 6c 2e 63 0a 53 51 4c  DIR)/shell.c.SQL
7e70: 49 54 45 33 5f 53 48 45 4c 4c 5f 53 52 43 20 3d  ITE3_SHELL_SRC =
7e80: 20 24 28 53 51 4c 49 54 45 33 5f 53 48 45 4c 4c   $(SQLITE3_SHELL
7e90: 5f 53 52 43 2e 24 28 53 51 4c 49 54 45 33 5f 4f  _SRC.$(SQLITE3_O
7ea0: 52 49 47 49 4e 29 29 0a 53 45 45 5f 46 4c 41 47  RIGIN)).SEE_FLAG
7eb0: 53 2e 30 20 3d 0a 53 45 45 5f 46 4c 41 47 53 2e  S.0 =.SEE_FLAGS.
7ec0: 31 20 3d 20 2d 44 53 51 4c 49 54 45 5f 48 41 53  1 = -DSQLITE_HAS
7ed0: 5f 43 4f 44 45 43 20 2d 44 53 51 4c 49 54 45 5f  _CODEC -DSQLITE_
7ee0: 53 48 45 4c 4c 5f 44 42 4b 45 59 5f 50 52 4f 43  SHELL_DBKEY_PROC
7ef0: 3d 66 6f 73 73 69 6c 5f 6b 65 79 0a 53 45 45 5f  =fossil_key.SEE_
7f00: 46 4c 41 47 53 2e 20 3d 0a 53 45 45 5f 46 4c 41  FLAGS. =.SEE_FLA
7f10: 47 53 20 3d 20 24 28 53 45 45 5f 46 4c 41 47 53  GS = $(SEE_FLAGS
7f20: 2e 24 28 55 53 45 5f 53 45 45 29 29 0a 7d 0a 0a  .$(USE_SEE)).}..
7f30: 77 72 69 74 65 6c 6e 20 5b 73 74 72 69 6e 67 20  writeln [string 
7f40: 6d 61 70 20 5b 6c 69 73 74 20 3c 3c 3c 4e 45 58  map [list <<<NEX
7f50: 54 5f 4c 49 4e 45 3e 3e 3e 20 5c 5c 5d 20 7b 0a  T_LINE>>> \\] {.
7f60: 45 58 54 52 41 4f 42 4a 20 3d 20 3c 3c 3c 4e 45  EXTRAOBJ = <<<NE
7f70: 58 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24 28 53 51  XT_LINE>>>. $(SQ
7f80: 4c 49 54 45 33 5f 4f 42 4a 2e 24 28 53 51 4c 49  LITE3_OBJ.$(SQLI
7f90: 54 45 33 5f 4f 52 49 47 49 4e 29 29 20 3c 3c 3c  TE3_ORIGIN)) <<<
7fa0: 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24 28  NEXT_LINE>>>. $(
7fb0: 4d 49 4e 49 5a 5f 4f 42 4a 2e 24 28 46 4f 53 53  MINIZ_OBJ.$(FOSS
7fc0: 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49 4e 49 5a 29  IL_ENABLE_MINIZ)
7fd0: 29 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e  ) <<<NEXT_LINE>>
7fe0: 3e 0a 20 24 28 4f 42 4a 44 49 52 29 2f 73 68 65  >. $(OBJDIR)/she
7ff0: 6c 6c 2e 6f 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e  ll.o <<<NEXT_LIN
8000: 45 3e 3e 3e 0a 20 24 28 4f 42 4a 44 49 52 29 2f  E>>>. $(OBJDIR)/
8010: 74 68 2e 6f 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e  th.o <<<NEXT_LIN
8020: 45 3e 3e 3e 0a 20 24 28 4f 42 4a 44 49 52 29 2f  E>>>. $(OBJDIR)/
8030: 74 68 5f 6c 61 6e 67 2e 6f 20 3c 3c 3c 4e 45 58  th_lang.o <<<NEX
8040: 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24 28 4f 42 4a  T_LINE>>>. $(OBJ
8050: 44 49 52 29 2f 74 68 5f 74 63 6c 2e 6f 20 3c 3c  DIR)/th_tcl.o <<
8060: 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 0a 20 24  <NEXT_LINE>>>. $
8070: 28 4f 42 4a 44 49 52 29 2f 63 73 6f 6e 5f 61 6d  (OBJDIR)/cson_am
8080: 61 6c 67 61 6d 61 74 69 6f 6e 2e 6f 0a 7d 5d 0a  algamation.o.}].
8090: 0a 77 72 69 74 65 6c 6e 20 7b 0a 24 28 5a 4c 49  .writeln {.$(ZLI
80a0: 42 44 49 52 29 2f 69 6e 66 66 61 73 38 36 2e 6f  BDIR)/inffas86.o
80b0: 3a 0a 09 24 28 54 43 43 29 20 2d 63 20 2d 6f 20  :..$(TCC) -c -o 
80c0: 24 40 20 2d 44 41 53 4d 49 4e 46 20 2d 49 24 28  $@ -DASMINF -I$(
80d0: 5a 4c 49 42 44 49 52 29 20 2d 4f 33 20 24 28 5a  ZLIBDIR) -O3 $(Z
80e0: 4c 49 42 44 49 52 29 2f 63 6f 6e 74 72 69 62 2f  LIBDIR)/contrib/
80f0: 69 6e 66 6c 61 74 65 38 36 2f 69 6e 66 66 61 73  inflate86/inffas
8100: 38 36 2e 63 0a 0a 24 28 5a 4c 49 42 44 49 52 29  86.c..$(ZLIBDIR)
8110: 2f 6d 61 74 63 68 2e 6f 3a 0a 09 24 28 54 43 43  /match.o:..$(TCC
8120: 29 20 2d 63 20 2d 6f 20 24 40 20 2d 44 41 53 4d  ) -c -o $@ -DASM
8130: 56 20 24 28 5a 4c 49 42 44 49 52 29 2f 63 6f 6e  V $(ZLIBDIR)/con
8140: 74 72 69 62 2f 61 73 6d 36 38 36 2f 6d 61 74 63  trib/asm686/matc
8150: 68 2e 53 0a 0a 7a 6c 69 62 3a 09 24 28 5a 4c 49  h.S..zlib:.$(ZLI
8160: 42 54 41 52 47 45 54 53 29 0a 09 24 28 4d 41 4b  BTARGETS)..$(MAK
8170: 45 29 20 2d 43 20 24 28 5a 4c 49 42 44 49 52 29  E) -C $(ZLIBDIR)
8180: 20 50 52 45 46 49 58 3d 24 28 50 52 45 46 49 58   PREFIX=$(PREFIX
8190: 29 20 43 43 3d 24 28 50 52 45 46 49 58 29 24 28  ) CC=$(PREFIX)$(
81a0: 54 43 43 45 58 45 29 20 24 28 5a 4c 49 42 43 4f  TCCEXE) $(ZLIBCO
81b0: 4e 46 49 47 29 20 2d 66 20 77 69 6e 33 32 2f 4d  NFIG) -f win32/M
81c0: 61 6b 65 66 69 6c 65 2e 67 63 63 20 6c 69 62 7a  akefile.gcc libz
81d0: 2e 61 0a 0a 63 6c 65 61 6e 2d 7a 6c 69 62 3a 0a  .a..clean-zlib:.
81e0: 09 24 28 4d 41 4b 45 29 20 2d 43 20 24 28 5a 4c  .$(MAKE) -C $(ZL
81f0: 49 42 44 49 52 29 20 50 52 45 46 49 58 3d 24 28  IBDIR) PREFIX=$(
8200: 50 52 45 46 49 58 29 20 43 43 3d 24 28 50 52 45  PREFIX) CC=$(PRE
8210: 46 49 58 29 24 28 54 43 43 45 58 45 29 20 2d 66  FIX)$(TCCEXE) -f
8220: 20 77 69 6e 33 32 2f 4d 61 6b 65 66 69 6c 65 2e   win32/Makefile.
8230: 67 63 63 20 63 6c 65 61 6e 0a 0a 69 66 64 65 66  gcc clean..ifdef
8240: 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d   FOSSIL_ENABLE_M
8250: 49 4e 49 5a 0a 42 4c 44 54 41 52 47 45 54 53 20  INIZ.BLDTARGETS 
8260: 3d 0a 65 6c 73 65 0a 42 4c 44 54 41 52 47 45 54  =.else.BLDTARGET
8270: 53 20 3d 20 7a 6c 69 62 0a 65 6e 64 69 66 0a 0a  S = zlib.endif..
8280: 6f 70 65 6e 73 73 6c 3a 09 24 28 42 4c 44 54 41  openssl:.$(BLDTA
8290: 52 47 45 54 53 29 0a 09 63 64 20 24 28 4f 50 45  RGETS)..cd $(OPE
82a0: 4e 53 53 4c 4c 49 42 44 49 52 29 3b 2e 2f 43 6f  NSSLLIBDIR);./Co
82b0: 6e 66 69 67 75 72 65 20 2d 2d 63 72 6f 73 73 2d  nfigure --cross-
82c0: 63 6f 6d 70 69 6c 65 2d 70 72 65 66 69 78 3d 24  compile-prefix=$
82d0: 28 50 52 45 46 49 58 29 20 24 28 53 53 4c 43 4f  (PREFIX) $(SSLCO
82e0: 4e 46 49 47 29 0a 09 73 65 64 20 2d 69 20 2d 65  NFIG)..sed -i -e
82f0: 20 27 73 2f 5e 50 45 52 4c 3d 43 3a 5c 5c 2e 2a   's/^PERL=C:\\.*
8300: 24 24 2f 50 45 52 4c 3d 70 65 72 6c 2e 65 78 65  $$/PERL=perl.exe
8310: 2f 69 27 20 24 28 4f 50 45 4e 53 53 4c 4c 49 42  /i' $(OPENSSLLIB
8320: 44 49 52 29 2f 4d 61 6b 65 66 69 6c 65 0a 09 24  DIR)/Makefile..$
8330: 28 4d 41 4b 45 29 20 2d 43 20 24 28 4f 50 45 4e  (MAKE) -C $(OPEN
8340: 53 53 4c 4c 49 42 44 49 52 29 20 50 52 45 46 49  SSLLIBDIR) PREFI
8350: 58 3d 24 28 50 52 45 46 49 58 29 20 43 43 3d 24  X=$(PREFIX) CC=$
8360: 28 50 52 45 46 49 58 29 24 28 54 43 43 45 58 45  (PREFIX)$(TCCEXE
8370: 29 20 62 75 69 6c 64 5f 6c 69 62 73 0a 0a 63 6c  ) build_libs..cl
8380: 65 61 6e 2d 6f 70 65 6e 73 73 6c 3a 0a 09 24 28  ean-openssl:..$(
8390: 4d 41 4b 45 29 20 2d 43 20 24 28 4f 50 45 4e 53  MAKE) -C $(OPENS
83a0: 53 4c 4c 49 42 44 49 52 29 20 50 52 45 46 49 58  SLLIBDIR) PREFIX
83b0: 3d 24 28 50 52 45 46 49 58 29 20 43 43 3d 24 28  =$(PREFIX) CC=$(
83c0: 50 52 45 46 49 58 29 24 28 54 43 43 45 58 45 29  PREFIX)$(TCCEXE)
83d0: 20 63 6c 65 61 6e 0a 0a 74 63 6c 3a 0a 09 63 64   clean..tcl:..cd
83e0: 20 24 28 54 43 4c 53 52 43 44 49 52 29 2f 77 69   $(TCLSRCDIR)/wi
83f0: 6e 3b 2e 2f 63 6f 6e 66 69 67 75 72 65 0a 09 24  n;./configure..$
8400: 28 4d 41 4b 45 29 20 2d 43 20 24 28 54 43 4c 53  (MAKE) -C $(TCLS
8410: 52 43 44 49 52 29 2f 77 69 6e 20 50 52 45 46 49  RCDIR)/win PREFI
8420: 58 3d 24 28 50 52 45 46 49 58 29 20 43 43 3d 24  X=$(PREFIX) CC=$
8430: 28 50 52 45 46 49 58 29 24 28 54 43 43 45 58 45  (PREFIX)$(TCCEXE
8440: 29 20 24 28 54 43 4c 54 41 52 47 45 54 29 0a 0a  ) $(TCLTARGET)..
8450: 63 6c 65 61 6e 2d 74 63 6c 3a 0a 09 24 28 4d 41  clean-tcl:..$(MA
8460: 4b 45 29 20 2d 43 20 24 28 54 43 4c 53 52 43 44  KE) -C $(TCLSRCD
8470: 49 52 29 2f 77 69 6e 20 50 52 45 46 49 58 3d 24  IR)/win PREFIX=$
8480: 28 50 52 45 46 49 58 29 20 43 43 3d 24 28 50 52  (PREFIX) CC=$(PR
8490: 45 46 49 58 29 24 28 54 43 43 45 58 45 29 20 64  EFIX)$(TCCEXE) d
84a0: 69 73 74 63 6c 65 61 6e 0a 0a 41 50 50 54 41 52  istclean..APPTAR
84b0: 47 45 54 53 20 2b 3d 20 24 28 42 4c 44 54 41 52  GETS += $(BLDTAR
84c0: 47 45 54 53 29 0a 0a 69 66 64 65 66 20 46 4f 53  GETS)..ifdef FOS
84d0: 53 49 4c 5f 42 55 49 4c 44 5f 53 53 4c 0a 41 50  SIL_BUILD_SSL.AP
84e0: 50 54 41 52 47 45 54 53 20 2b 3d 20 6f 70 65 6e  PTARGETS += open
84f0: 73 73 6c 0a 65 6e 64 69 66 0a 0a 24 28 41 50 50  ssl.endif..$(APP
8500: 4e 41 4d 45 29 3a 09 24 28 41 50 50 54 41 52 47  NAME):.$(APPTARG
8510: 45 54 53 29 20 24 28 4f 42 4a 44 49 52 29 2f 68  ETS) $(OBJDIR)/h
8520: 65 61 64 65 72 73 20 24 28 43 4f 44 45 43 48 45  eaders $(CODECHE
8530: 43 4b 31 29 20 24 28 45 58 54 52 41 4f 42 4a 29  CK1) $(EXTRAOBJ)
8540: 20 24 28 4f 42 4a 29 20 24 28 4f 42 4a 44 49 52   $(OBJ) $(OBJDIR
8550: 29 2f 66 6f 73 73 69 6c 2e 6f 0a 09 24 28 43 4f  )/fossil.o..$(CO
8560: 44 45 43 48 45 43 4b 31 29 20 24 28 54 52 41 4e  DECHECK1) $(TRAN
8570: 53 5f 53 52 43 29 0a 09 24 28 54 43 43 29 20 2d  S_SRC)..$(TCC) -
8580: 6f 20 24 40 20 24 28 45 58 54 52 41 4f 42 4a 29  o $@ $(EXTRAOBJ)
8590: 20 24 28 4f 42 4a 29 20 24 28 4f 42 4a 44 49 52   $(OBJ) $(OBJDIR
85a0: 29 2f 66 6f 73 73 69 6c 2e 6f 20 24 28 4c 49 42  )/fossil.o $(LIB
85b0: 29 0a 0a 23 20 54 68 69 73 20 72 75 6c 65 20 70  )..# This rule p
85c0: 72 65 76 65 6e 74 73 20 6d 61 6b 65 20 66 72 6f  revents make fro
85d0: 6d 20 75 73 69 6e 67 20 69 74 73 20 64 65 66 61  m using its defa
85e0: 75 6c 74 20 72 75 6c 65 73 20 74 6f 20 74 72 79  ult rules to try
85f0: 20 62 75 69 6c 64 0a 23 20 61 6e 20 65 78 65 63   build.# an exec
8600: 75 74 61 62 6c 65 20 6e 61 6d 65 64 20 22 6d 61  utable named "ma
8610: 6e 69 66 65 73 74 22 20 6f 75 74 20 6f 66 20 74  nifest" out of t
8620: 68 65 20 66 69 6c 65 20 6e 61 6d 65 64 20 22 6d  he file named "m
8630: 61 6e 69 66 65 73 74 2e 63 22 0a 23 0a 24 28 53  anifest.c".#.$(S
8640: 52 43 44 49 52 29 2f 2e 2e 2f 6d 61 6e 69 66 65  RCDIR)/../manife
8650: 73 74 3a 0a 09 23 20 6e 6f 6f 70 0a 0a 63 6c 65  st:..# noop..cle
8660: 61 6e 3a 0a 69 66 64 65 66 20 55 53 45 5f 57 49  an:.ifdef USE_WI
8670: 4e 44 4f 57 53 0a 09 24 28 52 4d 29 20 24 28 73  NDOWS..$(RM) $(s
8680: 75 62 73 74 20 2f 2c 5c 2c 24 28 41 50 50 4e 41  ubst /,\,$(APPNA
8690: 4d 45 29 29 0a 09 24 28 52 4d 44 49 52 29 20 24  ME))..$(RMDIR) $
86a0: 28 73 75 62 73 74 20 2f 2c 5c 2c 24 28 4f 42 4a  (subst /,\,$(OBJ
86b0: 44 49 52 29 29 0a 65 6c 73 65 0a 09 24 28 52 4d  DIR)).else..$(RM
86c0: 29 20 24 28 41 50 50 4e 41 4d 45 29 0a 09 24 28  ) $(APPNAME)..$(
86d0: 52 4d 44 49 52 29 20 24 28 4f 42 4a 44 49 52 29  RMDIR) $(OBJDIR)
86e0: 0a 65 6e 64 69 66 0a 0a 73 65 74 75 70 3a 20 24  .endif..setup: $
86f0: 28 4f 42 4a 44 49 52 29 20 24 28 41 50 50 4e 41  (OBJDIR) $(APPNA
8700: 4d 45 29 0a 09 24 28 4d 41 4b 45 4e 53 49 53 29  ME)..$(MAKENSIS)
8710: 20 2e 2f 73 65 74 75 70 2f 66 6f 73 73 69 6c 2e   ./setup/fossil.
8720: 6e 73 69 0a 0a 69 6e 6e 6f 73 65 74 75 70 3a 20  nsi..innosetup: 
8730: 24 28 4f 42 4a 44 49 52 29 20 24 28 41 50 50 4e  $(OBJDIR) $(APPN
8740: 41 4d 45 29 0a 09 24 28 49 4e 4e 4f 53 45 54 55  AME)..$(INNOSETU
8750: 50 29 20 2e 2f 73 65 74 75 70 2f 66 6f 73 73 69  P) ./setup/fossi
8760: 6c 2e 69 73 73 20 2d 44 41 70 70 56 65 72 73 69  l.iss -DAppVersi
8770: 6f 6e 3d 24 28 73 68 65 6c 6c 20 24 28 43 41 54  on=$(shell $(CAT
8780: 29 20 2e 2f 56 45 52 53 49 4f 4e 29 0a 7d 0a 0a  ) ./VERSION).}..
8790: 73 65 74 20 6d 68 61 72 67 73 20 7b 7d 0a 66 6f  set mhargs {}.fo
87a0: 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20 24  reach s [lsort $
87b0: 73 72 63 5d 20 7b 0a 20 20 69 66 20 7b 5b 73 74  src] {.  if {[st
87c0: 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 6d 68 61  ring length $mha
87d0: 72 67 73 5d 20 3e 20 30 7d 20 7b 61 70 70 65 6e  rgs] > 0} {appen
87e0: 64 20 6d 68 61 72 67 73 20 22 20 5c 5c 5c 6e 5c  d mhargs " \\\n\
87f0: 74 5c 74 22 7d 0a 20 20 61 70 70 65 6e 64 20 6d  t\t"}.  append m
8800: 68 61 72 67 73 20 22 5c 24 28 4f 42 4a 44 49 52  hargs "\$(OBJDIR
8810: 29 2f 24 7b 73 7d 5f 2e 63 3a 5c 24 28 4f 42 4a  )/${s}_.c:\$(OBJ
8820: 44 49 52 29 2f 24 73 2e 68 22 0a 20 20 73 65 74  DIR)/$s.h".  set
8830: 20 65 78 74 72 61 5f 68 28 24 73 29 20 7b 20 7d   extra_h($s) { }
8840: 0a 7d 0a 61 70 70 65 6e 64 20 6d 68 61 72 67 73  .}.append mhargs
8850: 20 22 20 5c 5c 5c 6e 5c 74 5c 74 5c 24 28 53 52   " \\\n\t\t\$(SR
8860: 43 44 49 52 29 2f 73 71 6c 69 74 65 33 2e 68 22  CDIR)/sqlite3.h"
8870: 0a 61 70 70 65 6e 64 20 6d 68 61 72 67 73 20 22  .append mhargs "
8880: 20 5c 5c 5c 6e 5c 74 5c 74 5c 24 28 53 52 43 44   \\\n\t\t\$(SRCD
8890: 49 52 29 2f 74 68 2e 68 22 0a 61 70 70 65 6e 64  IR)/th.h".append
88a0: 20 6d 68 61 72 67 73 20 22 20 5c 5c 5c 6e 5c 74   mhargs " \\\n\t
88b0: 5c 74 5c 24 28 4f 42 4a 44 49 52 29 2f 56 45 52  \t\$(OBJDIR)/VER
88c0: 53 49 4f 4e 2e 68 22 0a 77 72 69 74 65 6c 6e 20  SION.h".writeln 
88d0: 22 5c 24 28 4f 42 4a 44 49 52 29 2f 70 61 67 65  "\$(OBJDIR)/page
88e0: 5f 69 6e 64 65 78 2e 68 3a 20 5c 24 28 54 52 41  _index.h: \$(TRA
88f0: 4e 53 5f 53 52 43 29 20 5c 24 28 4d 4b 49 4e 44  NS_SRC) \$(MKIND
8900: 45 58 29 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74  EX)".writeln "\t
8910: 5c 24 28 4d 4b 49 4e 44 45 58 29 20 5c 24 28 54  \$(MKINDEX) \$(T
8920: 52 41 4e 53 5f 53 52 43 29 20 3e 5c 24 40 5c 6e  RANS_SRC) >\$@\n
8930: 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f  "..writeln "\$(O
8940: 42 4a 44 49 52 29 2f 62 75 69 6c 74 69 6e 5f 64  BJDIR)/builtin_d
8950: 61 74 61 2e 68 3a 5c 74 5c 24 28 4d 4b 42 55 49  ata.h:\t\$(MKBUI
8960: 4c 54 49 4e 29 20 5c 24 28 45 58 54 52 41 5f 46  LTIN) \$(EXTRA_F
8970: 49 4c 45 53 29 22 0a 77 72 69 74 65 6c 6e 20 22  ILES)".writeln "
8980: 5c 74 5c 24 28 4d 4b 42 55 49 4c 54 49 4e 29 20  \t\$(MKBUILTIN) 
8990: 2d 2d 70 72 65 66 69 78 20 5c 24 28 53 52 43 44  --prefix \$(SRCD
89a0: 49 52 29 2f 20 5c 24 28 45 58 54 52 41 5f 46 49  IR)/ \$(EXTRA_FI
89b0: 4c 45 53 29 20 3e 5c 24 40 5c 6e 22 0a 0a 77 72  LES) >\$@\n"..wr
89c0: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
89d0: 29 2f 68 65 61 64 65 72 73 3a 5c 74 5c 24 28 4f  )/headers:\t\$(O
89e0: 42 4a 44 49 52 29 2f 70 61 67 65 5f 69 6e 64 65  BJDIR)/page_inde
89f0: 78 2e 68 20 5c 24 28 4f 42 4a 44 49 52 29 2f 62  x.h \$(OBJDIR)/b
8a00: 75 69 6c 74 69 6e 5f 64 61 74 61 2e 68 20 5c 24  uiltin_data.h \$
8a10: 28 4d 41 4b 45 48 45 41 44 45 52 53 29 20 5c 24  (MAKEHEADERS) \$
8a20: 28 4f 42 4a 44 49 52 29 2f 56 45 52 53 49 4f 4e  (OBJDIR)/VERSION
8a30: 2e 68 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c  .h".writeln "\t\
8a40: 24 28 4d 41 4b 45 48 45 41 44 45 52 53 29 20 24  $(MAKEHEADERS) $
8a50: 6d 68 61 72 67 73 22 0a 77 72 69 74 65 6c 6e 20  mhargs".writeln 
8a60: 22 5c 74 65 63 68 6f 20 44 6f 6e 65 20 3e 5c 24  "\techo Done >\$
8a70: 28 4f 42 4a 44 49 52 29 2f 68 65 61 64 65 72 73  (OBJDIR)/headers
8a80: 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28  \n".writeln "\$(
8a90: 4f 42 4a 44 49 52 29 2f 68 65 61 64 65 72 73 3a  OBJDIR)/headers:
8aa0: 20 4d 61 6b 65 66 69 6c 65 5c 6e 22 0a 77 72 69   Makefile\n".wri
8ab0: 74 65 6c 6e 20 22 4d 61 6b 65 66 69 6c 65 3a 5c  teln "Makefile:\
8ac0: 6e 22 0a 73 65 74 20 65 78 74 72 61 5f 68 28 6d  n".set extra_h(m
8ad0: 61 69 6e 29 20 22 20 5c 24 28 4f 42 4a 44 49 52  ain) " \$(OBJDIR
8ae0: 29 2f 70 61 67 65 5f 69 6e 64 65 78 2e 68 20 22  )/page_index.h "
8af0: 0a 73 65 74 20 65 78 74 72 61 5f 68 28 62 75 69  .set extra_h(bui
8b00: 6c 74 69 6e 29 20 22 20 5c 24 28 4f 42 4a 44 49  ltin) " \$(OBJDI
8b10: 52 29 2f 62 75 69 6c 74 69 6e 5f 64 61 74 61 2e  R)/builtin_data.
8b20: 68 20 22 0a 0a 66 6f 72 65 61 63 68 20 73 20 5b  h "..foreach s [
8b30: 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20  lsort $src] {.  
8b40: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
8b50: 49 52 29 2f 24 7b 73 7d 5f 2e 63 3a 5c 74 5c 24  IR)/${s}_.c:\t\$
8b60: 28 53 52 43 44 49 52 29 2f 24 73 2e 63 20 5c 24  (SRCDIR)/$s.c \$
8b70: 28 54 52 41 4e 53 4c 41 54 45 29 22 0a 20 20 77  (TRANSLATE)".  w
8b80: 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 54 52 41  riteln "\t\$(TRA
8b90: 4e 53 4c 41 54 45 29 20 5c 24 28 53 52 43 44 49  NSLATE) \$(SRCDI
8ba0: 52 29 2f 24 73 2e 63 20 3e 5c 24 40 5c 6e 22 0a  R)/$s.c >\$@\n".
8bb0: 20 20 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42    writeln "\$(OB
8bc0: 4a 44 49 52 29 2f 24 73 2e 6f 3a 5c 74 5c 24 28  JDIR)/$s.o:\t\$(
8bd0: 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 20  OBJDIR)/${s}_.c 
8be0: 5c 24 28 4f 42 4a 44 49 52 29 2f 24 73 2e 68 24  \$(OBJDIR)/$s.h$
8bf0: 65 78 74 72 61 5f 68 28 24 73 29 5c 24 28 53 52  extra_h($s)\$(SR
8c00: 43 44 49 52 29 2f 63 6f 6e 66 69 67 2e 68 22 0a  CDIR)/config.h".
8c10: 20 20 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28    writeln "\t\$(
8c20: 58 54 43 43 29 20 2d 6f 20 5c 24 28 4f 42 4a 44  XTCC) -o \$(OBJD
8c30: 49 52 29 2f 24 73 2e 6f 20 2d 63 20 5c 24 28 4f  IR)/$s.o -c \$(O
8c40: 42 4a 44 49 52 29 2f 24 7b 73 7d 5f 2e 63 5c 6e  BJDIR)/${s}_.c\n
8c50: 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 24 28  ".  writeln "\$(
8c60: 4f 42 4a 44 49 52 29 2f 24 7b 73 7d 2e 68 3a 5c  OBJDIR)/${s}.h:\
8c70: 74 5c 24 28 4f 42 4a 44 49 52 29 2f 68 65 61 64  t\$(OBJDIR)/head
8c80: 65 72 73 5c 6e 22 0a 7d 0a 0a 77 72 69 74 65 6c  ers\n".}..writel
8c90: 6e 20 7b 4d 49 4e 47 57 5f 4f 50 54 49 4f 4e 53  n {MINGW_OPTIONS
8ca0: 20 3d 20 2d 44 5f 48 41 56 45 5f 5f 4d 49 4e 47   = -D_HAVE__MING
8cb0: 57 5f 48 0a 7d 0a 0a 73 65 74 20 53 51 4c 49 54  W_H.}..set SQLIT
8cc0: 45 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20  E_WIN32_OPTIONS 
8cd0: 24 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 0a  $SQLITE_OPTIONS.
8ce0: 6c 61 70 70 65 6e 64 20 53 51 4c 49 54 45 5f 57  lappend SQLITE_W
8cf0: 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 2d 44 53  IN32_OPTIONS -DS
8d00: 51 4c 49 54 45 5f 57 49 4e 33 32 5f 4e 4f 5f 41  QLITE_WIN32_NO_A
8d10: 4e 53 49 0a 0a 73 65 74 20 4d 49 4e 47 57 5f 53  NSI..set MINGW_S
8d20: 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 20 24 53  QLITE_OPTIONS $S
8d30: 51 4c 49 54 45 5f 57 49 4e 33 32 5f 4f 50 54 49  QLITE_WIN32_OPTI
8d40: 4f 4e 53 0a 6c 61 70 70 65 6e 64 20 4d 49 4e 47  ONS.lappend MING
8d50: 57 5f 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  W_SQLITE_OPTIONS
8d60: 20 7b 24 28 4d 49 4e 47 57 5f 4f 50 54 49 4f 4e   {$(MINGW_OPTION
8d70: 53 29 7d 0a 6c 61 70 70 65 6e 64 20 4d 49 4e 47  S)}.lappend MING
8d80: 57 5f 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  W_SQLITE_OPTIONS
8d90: 20 2d 44 53 51 4c 49 54 45 5f 55 53 45 5f 4d 41   -DSQLITE_USE_MA
8da0: 4c 4c 4f 43 5f 48 0a 6c 61 70 70 65 6e 64 20 4d  LLOC_H.lappend M
8db0: 49 4e 47 57 5f 53 51 4c 49 54 45 5f 4f 50 54 49  INGW_SQLITE_OPTI
8dc0: 4f 4e 53 20 2d 44 53 51 4c 49 54 45 5f 55 53 45  ONS -DSQLITE_USE
8dd0: 5f 4d 53 49 5a 45 0a 0a 73 65 74 20 4d 49 4e 49  _MSIZE..set MINI
8de0: 5a 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20  Z_WIN32_OPTIONS 
8df0: 24 4d 49 4e 49 5a 5f 4f 50 54 49 4f 4e 53 0a 0a  $MINIZ_OPTIONS..
8e00: 73 65 74 20 6a 20 22 20 5c 5c 5c 6e 20 20 20 20  set j " \\\n    
8e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 0a 77               ".w
8e20: 72 69 74 65 6c 6e 20 22 53 51 4c 49 54 45 5f 4f  riteln "SQLITE_O
8e30: 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e 20 24  PTIONS = [join $
8e40: 4d 49 4e 47 57 5f 53 51 4c 49 54 45 5f 4f 50 54  MINGW_SQLITE_OPT
8e50: 49 4f 4e 53 20 24 6a 5d 5c 6e 22 0a 73 65 74 20  IONS $j]\n".set 
8e60: 6a 20 22 20 5c 5c 5c 6e 20 20 20 20 20 20 20 20  j " \\\n        
8e70: 20 20 20 20 20 20 20 20 22 0a 77 72 69 74 65 6c          ".writel
8e80: 6e 20 22 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53  n "SHELL_OPTIONS
8e90: 20 3d 20 5b 6a 6f 69 6e 20 24 53 48 45 4c 4c 5f   = [join $SHELL_
8ea0: 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 24 6a  WIN32_OPTIONS $j
8eb0: 5d 5c 6e 22 0a 73 65 74 20 6a 20 22 20 5c 5c 5c  ]\n".set j " \\\
8ec0: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n               
8ed0: 20 22 0a 77 72 69 74 65 6c 6e 20 22 4d 49 4e 49   ".writeln "MINI
8ee0: 5a 5f 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69  Z_OPTIONS = [joi
8ef0: 6e 20 24 4d 49 4e 49 5a 5f 57 49 4e 33 32 5f 4f  n $MINIZ_WIN32_O
8f00: 50 54 49 4f 4e 53 20 24 6a 5d 5c 6e 22 0a 0a 77  PTIONS $j]\n"..w
8f10: 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49  riteln "\$(OBJDI
8f20: 52 29 2f 73 71 6c 69 74 65 33 2e 6f 3a 5c 74 5c  R)/sqlite3.o:\t\
8f30: 24 28 53 51 4c 49 54 45 33 5f 53 52 43 29 20 5c  $(SQLITE3_SRC) \
8f40: 24 28 53 52 43 44 49 52 29 2f 2e 2e 2f 77 69 6e  $(SRCDIR)/../win
8f50: 2f 4d 61 6b 65 66 69 6c 65 2e 6d 69 6e 67 77 22  /Makefile.mingw"
8f60: 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58  .writeln "\t\$(X
8f70: 54 43 43 29 20 5c 24 28 53 51 4c 49 54 45 5f 4f  TCC) \$(SQLITE_O
8f80: 50 54 49 4f 4e 53 29 20 5c 24 28 53 51 4c 49 54  PTIONS) \$(SQLIT
8f90: 45 5f 43 46 4c 41 47 53 29 20 5c 24 28 53 45 45  E_CFLAGS) \$(SEE
8fa0: 5f 46 4c 41 47 53 29 20 5c 5c 22 0a 77 72 69 74  _FLAGS) \\".writ
8fb0: 65 6c 6e 20 22 5c 74 5c 74 2d 63 20 5c 24 28 53  eln "\t\t-c \$(S
8fc0: 51 4c 49 54 45 33 5f 53 52 43 29 20 2d 6f 20 5c  QLITE3_SRC) -o \
8fd0: 24 40 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22  $@\n"..writeln "
8fe0: 5c 24 28 4f 42 4a 44 49 52 29 2f 63 73 6f 6e 5f  \$(OBJDIR)/cson_
8ff0: 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 6f 3a 5c  amalgamation.o:\
9000: 74 5c 24 28 53 52 43 44 49 52 29 2f 63 73 6f 6e  t\$(SRCDIR)/cson
9010: 5f 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e 63 22  _amalgamation.c"
9020: 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58  .writeln "\t\$(X
9030: 54 43 43 29 20 2d 63 20 5c 24 28 53 52 43 44 49  TCC) -c \$(SRCDI
9040: 52 29 2f 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61  R)/cson_amalgama
9050: 74 69 6f 6e 2e 63 20 2d 6f 20 5c 24 40 5c 6e 22  tion.c -o \$@\n"
9060: 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a  .writeln "\$(OBJ
9070: 44 49 52 29 2f 6a 73 6f 6e 2e 6f 20 5c 24 28 4f  DIR)/json.o \$(O
9080: 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 61 72 74 69  BJDIR)/json_arti
9090: 66 61 63 74 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  fact.o \$(OBJDIR
90a0: 29 2f 6a 73 6f 6e 5f 62 72 61 6e 63 68 2e 6f 20  )/json_branch.o 
90b0: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
90c0: 63 6f 6e 66 69 67 2e 6f 20 5c 24 28 4f 42 4a 44  config.o \$(OBJD
90d0: 49 52 29 2f 6a 73 6f 6e 5f 64 69 66 66 2e 6f 20  IR)/json_diff.o 
90e0: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
90f0: 64 69 72 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  dir.o \$(OBJDIR)
9100: 2f 6a 73 6f 73 5f 66 69 6e 66 6f 2e 6f 20 5c 24  /jsos_finfo.o \$
9110: 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 6c 6f  (OBJDIR)/json_lo
9120: 67 69 6e 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  gin.o \$(OBJDIR)
9130: 2f 6a 73 6f 6e 5f 71 75 65 72 79 2e 6f 20 5c 24  /json_query.o \$
9140: 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f 72 65  (OBJDIR)/json_re
9150: 70 6f 72 74 2e 6f 20 5c 24 28 4f 42 4a 44 49 52  port.o \$(OBJDIR
9160: 29 2f 6a 73 6f 6e 5f 73 74 61 74 75 73 2e 6f 20  )/json_status.o 
9170: 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e 5f  \$(OBJDIR)/json_
9180: 74 61 67 2e 6f 20 5c 24 28 4f 42 4a 44 49 52 29  tag.o \$(OBJDIR)
9190: 2f 6a 73 6f 6e 5f 74 69 6d 65 6c 69 6e 65 2e 6f  /json_timeline.o
91a0: 20 5c 24 28 4f 42 4a 44 49 52 29 2f 6a 73 6f 6e   \$(OBJDIR)/json
91b0: 5f 75 73 65 72 2e 6f 20 5c 24 28 4f 42 4a 44 49  _user.o \$(OBJDI
91c0: 52 29 2f 6a 73 6f 6e 5f 77 69 6b 69 2e 6f 20 3a  R)/json_wiki.o :
91d0: 20 5c 24 28 53 52 43 44 49 52 29 2f 6a 73 6f 6e   \$(SRCDIR)/json
91e0: 5f 64 65 74 61 69 6c 2e 68 5c 6e 22 0a 0a 77 72  _detail.h\n"..wr
91f0: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
9200: 29 2f 73 68 65 6c 6c 2e 6f 3a 5c 74 5c 24 28 53  )/shell.o:\t\$(S
9210: 51 4c 49 54 45 33 5f 53 48 45 4c 4c 5f 53 52 43  QLITE3_SHELL_SRC
9220: 29 20 5c 24 28 53 52 43 44 49 52 29 2f 73 71 6c  ) \$(SRCDIR)/sql
9230: 69 74 65 33 2e 68 20 5c 24 28 53 52 43 44 49 52  ite3.h \$(SRCDIR
9240: 29 2f 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69 6c  )/../win/Makefil
9250: 65 2e 6d 69 6e 67 77 22 0a 77 72 69 74 65 6c 6e  e.mingw".writeln
9260: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 5c 24 28   "\t\$(XTCC) \$(
9270: 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 29 20 5c  SHELL_OPTIONS) \
9280: 24 28 53 48 45 4c 4c 5f 43 46 4c 41 47 53 29 20  $(SHELL_CFLAGS) 
9290: 5c 24 28 53 45 45 5f 46 4c 41 47 53 29 20 2d 63  \$(SEE_FLAGS) -c
92a0: 20 5c 24 28 53 51 4c 49 54 45 33 5f 53 48 45 4c   \$(SQLITE3_SHEL
92b0: 4c 5f 53 52 43 29 20 2d 6f 20 5c 24 40 5c 6e 22  L_SRC) -o \$@\n"
92c0: 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42  ..writeln "\$(OB
92d0: 4a 44 49 52 29 2f 74 68 2e 6f 3a 5c 74 5c 24 28  JDIR)/th.o:\t\$(
92e0: 53 52 43 44 49 52 29 2f 74 68 2e 63 22 0a 77 72  SRCDIR)/th.c".wr
92f0: 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58 54 43 43  iteln "\t\$(XTCC
9300: 29 20 2d 63 20 5c 24 28 53 52 43 44 49 52 29 2f  ) -c \$(SRCDIR)/
9310: 74 68 2e 63 20 2d 6f 20 5c 24 40 5c 6e 22 0a 0a  th.c -o \$@\n"..
9320: 77 72 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44  writeln "\$(OBJD
9330: 49 52 29 2f 74 68 5f 6c 61 6e 67 2e 6f 3a 5c 74  IR)/th_lang.o:\t
9340: 5c 24 28 53 52 43 44 49 52 29 2f 74 68 5f 6c 61  \$(SRCDIR)/th_la
9350: 6e 67 2e 63 22 0a 77 72 69 74 65 6c 6e 20 22 5c  ng.c".writeln "\
9360: 74 5c 24 28 58 54 43 43 29 20 2d 63 20 5c 24 28  t\$(XTCC) -c \$(
9370: 53 52 43 44 49 52 29 2f 74 68 5f 6c 61 6e 67 2e  SRCDIR)/th_lang.
9380: 63 20 2d 6f 20 5c 24 40 5c 6e 22 0a 0a 77 72 69  c -o \$@\n"..wri
9390: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
93a0: 2f 74 68 5f 74 63 6c 2e 6f 3a 5c 74 5c 24 28 53  /th_tcl.o:\t\$(S
93b0: 52 43 44 49 52 29 2f 74 68 5f 74 63 6c 2e 63 22  RCDIR)/th_tcl.c"
93c0: 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 58  .writeln "\t\$(X
93d0: 54 43 43 29 20 2d 63 20 5c 24 28 53 52 43 44 49  TCC) -c \$(SRCDI
93e0: 52 29 2f 74 68 5f 74 63 6c 2e 63 20 2d 6f 20 5c  R)/th_tcl.c -o \
93f0: 24 40 5c 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22  $@\n"..writeln "
9400: 5c 24 28 4f 42 4a 44 49 52 29 2f 6d 69 6e 69 7a  \$(OBJDIR)/miniz
9410: 2e 6f 3a 5c 74 5c 24 28 53 52 43 44 49 52 29 2f  .o:\t\$(SRCDIR)/
9420: 6d 69 6e 69 7a 2e 63 22 0a 77 72 69 74 65 6c 6e  miniz.c".writeln
9430: 20 22 5c 74 5c 24 28 58 54 43 43 29 20 5c 24 28   "\t\$(XTCC) \$(
9440: 4d 49 4e 49 5a 5f 4f 50 54 49 4f 4e 53 29 20 2d  MINIZ_OPTIONS) -
9450: 63 20 5c 24 28 53 52 43 44 49 52 29 2f 6d 69 6e  c \$(SRCDIR)/min
9460: 69 7a 2e 63 20 2d 6f 20 5c 24 40 5c 6e 22 0a 0a  iz.c -o \$@\n"..
9470: 63 6c 6f 73 65 20 24 6f 75 74 70 75 74 5f 66 69  close $output_fi
9480: 6c 65 0a 23 0a 23 20 45 6e 64 20 6f 66 20 74 68  le.#.# End of th
9490: 65 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 6d  e win/Makefile.m
94a0: 69 6e 67 77 20 6f 75 74 70 75 74 0a 23 23 23 23  ingw output.####
94b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
94c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
94d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
94e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
94f0: 23 23 23 23 23 23 23 23 23 23 0a 23 23 23 23 23  ##########.#####
9500: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9510: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9520: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9530: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9540: 23 23 23 23 23 23 23 23 23 0a 23 23 23 23 23 23  #########.######
9550: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9560: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9570: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9580: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9590: 23 23 23 23 23 23 23 23 0a 23 20 42 65 67 69 6e  ########.# Begin
95a0: 20 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 64 6d   win/Makefile.dm
95b0: 63 20 6f 75 74 70 75 74 0a 23 0a 70 75 74 73 20  c output.#.puts 
95c0: 22 62 75 69 6c 64 69 6e 67 20 2e 2e 2f 77 69 6e  "building ../win
95d0: 2f 4d 61 6b 65 66 69 6c 65 2e 64 6d 63 22 0a 73  /Makefile.dmc".s
95e0: 65 74 20 6f 75 74 70 75 74 5f 66 69 6c 65 20 5b  et output_file [
95f0: 6f 70 65 6e 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65  open ../win/Make
9600: 66 69 6c 65 2e 64 6d 63 20 77 5d 0a 66 63 6f 6e  file.dmc w].fcon
9610: 66 69 67 75 72 65 20 24 6f 75 74 70 75 74 5f 66  figure $output_f
9620: 69 6c 65 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e  ile -translation
9630: 20 62 69 6e 61 72 79 0a 0a 77 72 69 74 65 6c 6e   binary..writeln
9640: 20 7b 23 0a 23 23 23 23 23 23 23 23 23 23 23 23   {#.############
9650: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9660: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9670: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9680: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9690: 23 23 0a 23 20 57 41 52 4e 49 4e 47 3a 20 44 4f  ##.# WARNING: DO
96a0: 20 4e 4f 54 20 45 44 49 54 2c 20 41 55 54 4f 4d   NOT EDIT, AUTOM
96b0: 41 54 49 43 41 4c 4c 59 20 47 45 4e 45 52 41 54  ATICALLY GENERAT
96c0: 45 44 20 46 49 4c 45 20 28 53 45 45 20 22 73 72  ED FILE (SEE "sr
96d0: 63 2f 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 29  c/makemake.tcl")
96e0: 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  .###############
96f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9700: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9710: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
9720: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
9730: 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73  #.# This file is
9740: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67   automatically g
9750: 65 6e 65 72 61 74 65 64 2e 20 20 49 6e 73 74 65  enerated.  Inste
9760: 61 64 20 6f 66 20 65 64 69 74 69 6e 67 20 74 68  ad of editing th
9770: 69 73 0a 23 20 66 69 6c 65 2c 20 65 64 69 74 20  is.# file, edit 
9780: 22 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74  "makemake.tcl" t
9790: 68 65 6e 20 72 75 6e 20 22 74 63 6c 73 68 20 6d  hen run "tclsh m
97a0: 61 6b 65 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74  akemake.tcl".# t
97b0: 6f 20 72 65 67 65 6e 65 72 61 74 65 20 74 68 69  o regenerate thi
97c0: 73 20 66 69 6c 65 2e 0a 23 0a 42 20 20 20 20 20  s file..#.B     
97d0: 20 3d 20 2e 2e 0a 53 52 43 44 49 52 20 3d 20 24   = ...SRCDIR = $
97e0: 42 5c 73 72 63 0a 4f 42 4a 44 49 52 20 3d 20 2e  B\src.OBJDIR = .
97f0: 0a 4f 20 20 20 20 20 20 3d 20 2e 6f 62 6a 0a 45  .O      = .obj.E
9800: 20 20 20 20 20 20 3d 20 2e 65 78 65 0a 0a 0a 23        = .exe...#
9810: 20 4d 61 79 62 65 20 44 4d 44 49 52 2c 20 53 53   Maybe DMDIR, SS
9820: 4c 20 6f 72 20 49 4e 43 4c 20 6e 65 65 64 73 20  L or INCL needs 
9830: 61 64 6a 75 73 74 6d 65 6e 74 0a 44 4d 44 49 52  adjustment.DMDIR
9840: 20 20 3d 20 63 3a 5c 44 4d 0a 49 4e 43 4c 20 20    = c:\DM.INCL  
9850: 20 3d 20 2d 49 2e 20 2d 49 24 28 53 52 43 44 49   = -I. -I$(SRCDI
9860: 52 29 20 2d 49 24 42 5c 77 69 6e 5c 69 6e 63 6c  R) -I$B\win\incl
9870: 75 64 65 20 2d 49 24 28 44 4d 44 49 52 29 5c 65  ude -I$(DMDIR)\e
9880: 78 74 72 61 5c 69 6e 63 6c 75 64 65 0a 0a 23 53  xtra\include..#S
9890: 53 4c 20 20 20 3d 20 20 2d 44 46 4f 53 53 49 4c  SL   =  -DFOSSIL
98a0: 5f 45 4e 41 42 4c 45 5f 53 53 4c 3d 31 0a 53 53  _ENABLE_SSL=1.SS
98b0: 4c 20 20 20 20 3d 0a 0a 43 46 4c 41 47 53 20 3d  L    =..CFLAGS =
98c0: 20 2d 6f 0a 42 43 43 20 20 20 20 3d 20 24 28 44   -o.BCC    = $(D
98d0: 4d 44 49 52 29 5c 62 69 6e 5c 64 6d 63 20 24 28  MDIR)\bin\dmc $(
98e0: 43 46 4c 41 47 53 29 0a 54 43 43 20 20 20 20 3d  CFLAGS).TCC    =
98f0: 20 24 28 44 4d 44 49 52 29 5c 62 69 6e 5c 64 6d   $(DMDIR)\bin\dm
9900: 63 20 24 28 43 46 4c 41 47 53 29 20 24 28 44 4d  c $(CFLAGS) $(DM
9910: 43 44 45 46 29 20 24 28 53 53 4c 29 20 24 28 49  CDEF) $(SSL) $(I
9920: 4e 43 4c 29 0a 4c 49 42 53 20 20 20 3d 20 24 28  NCL).LIBS   = $(
9930: 44 4d 44 49 52 29 5c 65 78 74 72 61 5c 6c 69 62  DMDIR)\extra\lib
9940: 5c 20 7a 6c 69 62 20 77 73 6f 63 6b 33 32 20 61  \ zlib wsock32 a
9950: 64 76 61 70 69 33 32 20 64 6e 73 61 70 69 0a 7d  dvapi32 dnsapi.}
9960: 0a 77 72 69 74 65 6c 6e 20 22 53 51 4c 49 54 45  .writeln "SQLITE
9970: 5f 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e  _OPTIONS = [join
9980: 20 24 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53   $SQLITE_OPTIONS
9990: 20 7b 20 7d 5d 5c 6e 22 0a 77 72 69 74 65 6c 6e   { }]\n".writeln
99a0: 20 22 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 20   "SHELL_OPTIONS 
99b0: 3d 20 5b 6a 6f 69 6e 20 24 53 48 45 4c 4c 5f 57  = [join $SHELL_W
99c0: 49 4e 33 32 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d  IN32_OPTIONS { }
99d0: 5d 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f  ]\n".writeln -no
99e0: 6e 65 77 6c 69 6e 65 20 22 53 52 43 20 20 20 3d  newline "SRC   =
99f0: 22 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f  ".foreach s [lso
9a00: 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72 69  rt $src] {.  wri
9a10: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
9a20: 22 20 24 7b 73 7d 5f 2e 63 22 0a 7d 0a 77 72 69  " ${s}_.c".}.wri
9a30: 74 65 6c 6e 20 22 5c 6e 22 0a 77 72 69 74 65 6c  teln "\n".writel
9a40: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 4f 42  n -nonewline "OB
9a50: 4a 20 20 20 3d 20 22 0a 66 6f 72 65 61 63 68 20  J   = ".foreach 
9a60: 73 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d 20 7b  s [lsort $src] {
9a70: 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65  .  writeln -none
9a80: 77 6c 69 6e 65 20 22 5c 24 28 4f 42 4a 44 49 52  wline "\$(OBJDIR
9a90: 29 5c 5c 24 73 5c 24 4f 20 22 0a 7d 0a 77 72 69  )\\$s\$O ".}.wri
9aa0: 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52 29  teln "\$(OBJDIR)
9ab0: 5c 5c 73 68 65 6c 6c 5c 24 4f 20 5c 24 28 4f 42  \\shell\$O \$(OB
9ac0: 4a 44 49 52 29 5c 5c 73 71 6c 69 74 65 33 5c 24  JDIR)\\sqlite3\$
9ad0: 4f 20 5c 24 28 4f 42 4a 44 49 52 29 5c 5c 74 68  O \$(OBJDIR)\\th
9ae0: 5c 24 4f 20 5c 24 28 4f 42 4a 44 49 52 29 5c 5c  \$O \$(OBJDIR)\\
9af0: 74 68 5f 6c 61 6e 67 5c 24 4f 22 0a 77 72 69 74  th_lang\$O".writ
9b00: 65 6c 6e 20 7b 0a 0a 52 43 3d 24 28 44 4d 44 49  eln {..RC=$(DMDI
9b10: 52 29 5c 62 69 6e 5c 72 63 63 0a 52 43 46 4c 41  R)\bin\rcc.RCFLA
9b20: 47 53 3d 2d 33 32 20 2d 77 31 20 2d 49 24 28 53  GS=-32 -w1 -I$(S
9b30: 52 43 44 49 52 29 20 2f 44 5f 5f 44 4d 43 5f 5f  RCDIR) /D__DMC__
9b40: 0a 0a 41 50 50 4e 41 4d 45 20 3d 20 24 28 4f 42  ..APPNAME = $(OB
9b50: 4a 44 49 52 29 5c 66 6f 73 73 69 6c 24 28 45 29  JDIR)\fossil$(E)
9b60: 0a 0a 61 6c 6c 3a 20 24 28 41 50 50 4e 41 4d 45  ..all: $(APPNAME
9b70: 29 0a 0a 24 28 41 50 50 4e 41 4d 45 29 20 3a 20  )..$(APPNAME) : 
9b80: 74 72 61 6e 73 6c 61 74 65 24 45 20 6d 6b 69 6e  translate$E mkin
9b90: 64 65 78 24 45 20 63 6f 64 65 63 68 65 63 6b 31  dex$E codecheck1
9ba0: 24 45 20 68 65 61 64 65 72 73 20 20 24 28 4f 42  $E headers  $(OB
9bb0: 4a 29 20 24 28 4f 42 4a 44 49 52 29 5c 6c 69 6e  J) $(OBJDIR)\lin
9bc0: 6b 0a 09 63 64 20 24 28 4f 42 4a 44 49 52 29 0a  k..cd $(OBJDIR).
9bd0: 09 63 6f 64 65 63 68 65 63 6b 31 24 45 20 24 28  .codecheck1$E $(
9be0: 53 52 43 29 0a 09 24 28 44 4d 44 49 52 29 5c 62  SRC)..$(DMDIR)\b
9bf0: 69 6e 5c 6c 69 6e 6b 20 40 6c 69 6e 6b 0a 0a 24  in\link @link..$
9c00: 28 4f 42 4a 44 49 52 29 5c 66 6f 73 73 69 6c 2e  (OBJDIR)\fossil.
9c10: 72 65 73 3a 09 24 42 5c 77 69 6e 5c 66 6f 73 73  res:.$B\win\foss
9c20: 69 6c 2e 72 63 0a 09 24 28 52 43 29 20 24 28 52  il.rc..$(RC) $(R
9c30: 43 46 4c 41 47 53 29 20 2d 6f 24 40 20 24 2a 2a  CFLAGS) -o$@ $**
9c40: 0a 0a 24 28 4f 42 4a 44 49 52 29 5c 6c 69 6e 6b  ..$(OBJDIR)\link
9c50: 3a 20 24 42 5c 77 69 6e 5c 4d 61 6b 65 66 69 6c  : $B\win\Makefil
9c60: 65 2e 64 6d 63 20 24 28 4f 42 4a 44 49 52 29 5c  e.dmc $(OBJDIR)\
9c70: 66 6f 73 73 69 6c 2e 72 65 73 7d 0a 77 72 69 74  fossil.res}.writ
9c80: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
9c90: 5c 74 2b 65 63 68 6f 20 22 0a 66 6f 72 65 61 63  \t+echo ".foreac
9ca0: 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63 5d  h s [lsort $src]
9cb0: 20 7b 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f   {.  writeln -no
9cc0: 6e 65 77 6c 69 6e 65 20 22 24 73 20 22 0a 7d 0a  newline "$s ".}.
9cd0: 77 72 69 74 65 6c 6e 20 22 73 68 65 6c 6c 20 73  writeln "shell s
9ce0: 71 6c 69 74 65 33 20 74 68 20 74 68 5f 6c 61 6e  qlite3 th th_lan
9cf0: 67 20 3e 20 5c 24 40 22 0a 77 72 69 74 65 6c 6e  g > \$@".writeln
9d00: 20 22 5c 74 2b 65 63 68 6f 20 66 6f 73 73 69 6c   "\t+echo fossil
9d10: 20 3e 3e 20 5c 24 40 22 0a 77 72 69 74 65 6c 6e   >> \$@".writeln
9d20: 20 22 5c 74 2b 65 63 68 6f 20 66 6f 73 73 69 6c   "\t+echo fossil
9d30: 20 3e 3e 20 5c 24 40 22 0a 77 72 69 74 65 6c 6e   >> \$@".writeln
9d40: 20 22 5c 74 2b 65 63 68 6f 20 5c 24 28 4c 49 42   "\t+echo \$(LIB
9d50: 53 29 20 3e 3e 20 5c 24 40 22 0a 77 72 69 74 65  S) >> \$@".write
9d60: 6c 6e 20 22 5c 74 2b 65 63 68 6f 2e 20 3e 3e 20  ln "\t+echo. >> 
9d70: 5c 24 40 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74  \$@".writeln "\t
9d80: 2b 65 63 68 6f 20 66 6f 73 73 69 6c 20 3e 3e 20  +echo fossil >> 
9d90: 5c 24 40 22 0a 0a 77 72 69 74 65 6c 6e 20 7b 0a  \$@"..writeln {.
9da0: 74 72 61 6e 73 6c 61 74 65 24 45 3a 20 24 28 53  translate$E: $(S
9db0: 52 43 44 49 52 29 5c 74 72 61 6e 73 6c 61 74 65  RCDIR)\translate
9dc0: 2e 63 0a 09 24 28 42 43 43 29 20 2d 6f 24 40 20  .c..$(BCC) -o$@ 
9dd0: 24 2a 2a 0a 0a 6d 61 6b 65 68 65 61 64 65 72 73  $**..makeheaders
9de0: 24 45 3a 20 24 28 53 52 43 44 49 52 29 5c 6d 61  $E: $(SRCDIR)\ma
9df0: 6b 65 68 65 61 64 65 72 73 2e 63 0a 09 24 28 42  keheaders.c..$(B
9e00: 43 43 29 20 2d 6f 24 40 20 24 2a 2a 0a 0a 6d 6b  CC) -o$@ $**..mk
9e10: 69 6e 64 65 78 24 45 3a 20 24 28 53 52 43 44 49  index$E: $(SRCDI
9e20: 52 29 5c 6d 6b 69 6e 64 65 78 2e 63 0a 09 24 28  R)\mkindex.c..$(
9e30: 42 43 43 29 20 2d 6f 24 40 20 24 2a 2a 0a 0a 6d  BCC) -o$@ $**..m
9e40: 6b 62 75 69 6c 74 69 6e 24 45 3a 20 24 28 53 52  kbuiltin$E: $(SR
9e50: 43 44 49 52 29 5c 6d 6b 62 75 69 6c 74 69 6e 2e  CDIR)\mkbuiltin.
9e60: 63 0a 09 24 28 42 43 43 29 20 2d 6f 24 40 20 24  c..$(BCC) -o$@ $
9e70: 2a 2a 0a 0a 6d 6b 76 65 72 73 69 6f 6e 24 45 3a  **..mkversion$E:
9e80: 20 24 28 53 52 43 44 49 52 29 5c 6d 6b 76 65 72   $(SRCDIR)\mkver
9e90: 73 69 6f 6e 2e 63 0a 09 24 28 42 43 43 29 20 2d  sion.c..$(BCC) -
9ea0: 6f 24 40 20 24 2a 2a 0a 0a 63 6f 64 65 63 68 65  o$@ $**..codeche
9eb0: 63 6b 31 24 45 3a 20 24 28 53 52 43 44 49 52 29  ck1$E: $(SRCDIR)
9ec0: 5c 63 6f 64 65 63 68 65 63 6b 31 2e 63 0a 09 24  \codecheck1.c..$
9ed0: 28 42 43 43 29 20 2d 6f 24 40 20 24 2a 2a 0a 0a  (BCC) -o$@ $**..
9ee0: 24 28 4f 42 4a 44 49 52 29 5c 73 68 65 6c 6c 24  $(OBJDIR)\shell$
9ef0: 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 73 68  O : $(SRCDIR)\sh
9f00: 65 6c 6c 2e 63 0a 09 24 28 54 43 43 29 20 2d 6f  ell.c..$(TCC) -o
9f10: 24 40 20 2d 63 20 24 28 53 48 45 4c 4c 5f 4f 50  $@ -c $(SHELL_OP
9f20: 54 49 4f 4e 53 29 20 24 28 53 51 4c 49 54 45 5f  TIONS) $(SQLITE_
9f30: 4f 50 54 49 4f 4e 53 29 20 24 28 53 48 45 4c 4c  OPTIONS) $(SHELL
9f40: 5f 43 46 4c 41 47 53 29 20 24 2a 2a 0a 0a 24 28  _CFLAGS) $**..$(
9f50: 4f 42 4a 44 49 52 29 5c 73 71 6c 69 74 65 33 24  OBJDIR)\sqlite3$
9f60: 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 73 71  O : $(SRCDIR)\sq
9f70: 6c 69 74 65 33 2e 63 0a 09 24 28 54 43 43 29 20  lite3.c..$(TCC) 
9f80: 2d 6f 24 40 20 2d 63 20 24 28 53 51 4c 49 54 45  -o$@ -c $(SQLITE
9f90: 5f 4f 50 54 49 4f 4e 53 29 20 24 28 53 51 4c 49  _OPTIONS) $(SQLI
9fa0: 54 45 5f 43 46 4c 41 47 53 29 20 24 2a 2a 0a 0a  TE_CFLAGS) $**..
9fb0: 24 28 4f 42 4a 44 49 52 29 5c 74 68 24 4f 20 3a  $(OBJDIR)\th$O :
9fc0: 20 24 28 53 52 43 44 49 52 29 5c 74 68 2e 63 0a   $(SRCDIR)\th.c.
9fd0: 09 24 28 54 43 43 29 20 2d 6f 24 40 20 2d 63 20  .$(TCC) -o$@ -c 
9fe0: 24 2a 2a 0a 0a 24 28 4f 42 4a 44 49 52 29 5c 74  $**..$(OBJDIR)\t
9ff0: 68 5f 6c 61 6e 67 24 4f 20 3a 20 24 28 53 52 43  h_lang$O : $(SRC
a000: 44 49 52 29 5c 74 68 5f 6c 61 6e 67 2e 63 0a 09  DIR)\th_lang.c..
a010: 24 28 54 43 43 29 20 2d 6f 24 40 20 2d 63 20 24  $(TCC) -o$@ -c $
a020: 2a 2a 0a 0a 24 28 4f 42 4a 44 49 52 29 5c 63 73  **..$(OBJDIR)\cs
a030: 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e  on_amalgamation.
a040: 68 20 3a 20 24 28 53 52 43 44 49 52 29 5c 63 73  h : $(SRCDIR)\cs
a050: 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 2e  on_amalgamation.
a060: 68 0a 09 63 70 20 24 40 20 24 40 0a 0a 56 45 52  h..cp $@ $@..VER
a070: 53 49 4f 4e 2e 68 20 3a 20 6d 6b 76 65 72 73 69  SION.h : mkversi
a080: 6f 6e 24 45 20 24 42 5c 6d 61 6e 69 66 65 73 74  on$E $B\manifest
a090: 2e 75 75 69 64 20 24 42 5c 6d 61 6e 69 66 65 73  .uuid $B\manifes
a0a0: 74 20 24 42 5c 56 45 52 53 49 4f 4e 0a 09 2b 24  t $B\VERSION..+$
a0b0: 2a 2a 20 3e 20 24 40 0a 0a 70 61 67 65 5f 69 6e  ** > $@..page_in
a0c0: 64 65 78 2e 68 3a 20 6d 6b 69 6e 64 65 78 24 45  dex.h: mkindex$E
a0d0: 20 24 28 53 52 43 29 0a 09 2b 24 2a 2a 20 3e 20   $(SRC)..+$** > 
a0e0: 24 40 0a 0a 62 75 69 6c 74 69 6e 5f 64 61 74 61  $@..builtin_data
a0f0: 2e 68 3a 09 6d 6b 62 75 69 6c 74 69 6e 24 45 20  .h:.mkbuiltin$E 
a100: 24 28 45 58 54 52 41 5f 46 49 4c 45 53 29 0a 09  $(EXTRA_FILES)..
a110: 6d 6b 62 75 69 6c 74 69 6e 24 45 20 2d 2d 70 72  mkbuiltin$E --pr
a120: 65 66 69 78 20 24 28 53 52 43 44 49 52 29 2f 20  efix $(SRCDIR)/ 
a130: 24 28 45 58 54 52 41 5f 46 49 4c 45 53 29 20 3e  $(EXTRA_FILES) >
a140: 20 24 40 0a 0a 63 6c 65 61 6e 3a 0a 09 2d 64 65   $@..clean:..-de
a150: 6c 20 24 28 4f 42 4a 44 49 52 29 5c 2a 2e 6f 62  l $(OBJDIR)\*.ob
a160: 6a 0a 09 2d 64 65 6c 20 2a 2e 6f 62 6a 20 2a 5f  j..-del *.obj *_
a170: 2e 63 20 2a 2e 68 20 2a 2e 6d 61 70 0a 0a 72 65  .c *.h *.map..re
a180: 61 6c 63 6c 65 61 6e 3a 0a 09 2d 64 65 6c 20 24  alclean:..-del $
a190: 28 41 50 50 4e 41 4d 45 29 20 74 72 61 6e 73 6c  (APPNAME) transl
a1a0: 61 74 65 24 45 20 6d 6b 69 6e 64 65 78 24 45 20  ate$E mkindex$E 
a1b0: 6d 61 6b 65 68 65 61 64 65 72 73 24 45 20 6d 6b  makeheaders$E mk
a1c0: 76 65 72 73 69 6f 6e 24 45 20 63 6f 64 65 63 68  version$E codech
a1d0: 65 63 6b 31 24 45 20 6d 6b 62 75 69 6c 74 69 6e  eck1$E mkbuiltin
a1e0: 24 45 0a 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73  $E..$(OBJDIR)\js
a1f0: 6f 6e 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29  on$O : $(SRCDIR)
a200: 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24  \json_detail.h.$
a210: 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 61 72  (OBJDIR)\json_ar
a220: 74 69 66 61 63 74 24 4f 20 3a 20 24 28 53 52 43  tifact$O : $(SRC
a230: 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c  DIR)\json_detail
a240: 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f  .h.$(OBJDIR)\jso
a250: 6e 5f 62 72 61 6e 63 68 24 4f 20 3a 20 24 28 53  n_branch$O : $(S
a260: 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61  RCDIR)\json_deta
a270: 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c 6a  il.h.$(OBJDIR)\j
a280: 73 6f 6e 5f 63 6f 6e 66 69 67 24 4f 20 3a 20 24  son_config$O : $
a290: 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65  (SRCDIR)\json_de
a2a0: 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29  tail.h.$(OBJDIR)
a2b0: 5c 6a 73 6f 6e 5f 64 69 66 66 24 4f 20 3a 20 24  \json_diff$O : $
a2c0: 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65  (SRCDIR)\json_de
a2d0: 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29  tail.h.$(OBJDIR)
a2e0: 5c 6a 73 6f 6e 5f 64 69 72 24 4f 20 3a 20 24 28  \json_dir$O : $(
a2f0: 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74  SRCDIR)\json_det
a300: 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29 5c  ail.h.$(OBJDIR)\
a310: 6a 73 6f 6e 5f 66 69 6e 66 6f 24 4f 20 3a 20 24  json_finfo$O : $
a320: 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65  (SRCDIR)\json_de
a330: 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52 29  tail.h.$(OBJDIR)
a340: 5c 6a 73 6f 6e 5f 6c 6f 67 69 6e 24 4f 20 3a 20  \json_login$O : 
a350: 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(SRCDIR)\json_d
a360: 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49 52  etail.h.$(OBJDIR
a370: 29 5c 6a 73 6f 6e 5f 71 75 65 72 79 24 4f 20 3a  )\json_query$O :
a380: 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f   $(SRCDIR)\json_
a390: 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a 44 49  detail.h.$(OBJDI
a3a0: 52 29 5c 6a 73 6f 6e 5f 72 65 70 6f 72 74 24 4f  R)\json_report$O
a3b0: 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a 73 6f   : $(SRCDIR)\jso
a3c0: 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42 4a  n_detail.h.$(OBJ
a3d0: 44 49 52 29 5c 6a 73 6f 6e 5f 73 74 61 74 75 73  DIR)\json_status
a3e0: 24 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a  $O : $(SRCDIR)\j
a3f0: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f  son_detail.h.$(O
a400: 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 74 61 67 24  BJDIR)\json_tag$
a410: 4f 20 3a 20 24 28 53 52 43 44 49 52 29 5c 6a 73  O : $(SRCDIR)\js
a420: 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a 24 28 4f 42  on_detail.h.$(OB
a430: 4a 44 49 52 29 5c 6a 73 6f 6e 5f 74 69 6d 65 6c  JDIR)\json_timel
a440: 69 6e 65 24 4f 20 3a 20 24 28 53 52 43 44 49 52  ine$O : $(SRCDIR
a450: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
a460: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 75  $(OBJDIR)\json_u
a470: 73 65 72 24 4f 20 3a 20 24 28 53 52 43 44 49 52  ser$O : $(SRCDIR
a480: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
a490: 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 77  $(OBJDIR)\json_w
a4a0: 69 6b 69 24 4f 20 3a 20 24 28 53 52 43 44 49 52  iki$O : $(SRCDIR
a4b0: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 0a  )\json_detail.h.
a4c0: 0a 7d 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73  .}.foreach s [ls
a4d0: 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 77 72  ort $src] {.  wr
a4e0: 69 74 65 6c 6e 20 22 5c 24 28 4f 42 4a 44 49 52  iteln "\$(OBJDIR
a4f0: 29 5c 5c 24 73 5c 24 4f 20 3a 20 24 7b 73 7d 5f  )\\$s\$O : ${s}_
a500: 2e 63 20 24 7b 73 7d 2e 68 22 0a 20 20 77 72 69  .c ${s}.h".  wri
a510: 74 65 6c 6e 20 22 5c 74 5c 24 28 54 43 43 29 20  teln "\t\$(TCC) 
a520: 2d 6f 5c 24 40 20 2d 63 20 24 7b 73 7d 5f 2e 63  -o\$@ -c ${s}_.c
a530: 5c 6e 22 0a 20 20 77 72 69 74 65 6c 6e 20 22 24  \n".  writeln "$
a540: 7b 73 7d 5f 2e 63 20 3a 20 5c 24 28 53 52 43 44  {s}_.c : \$(SRCD
a550: 49 52 29 5c 5c 24 73 2e 63 22 0a 20 20 77 72 69  IR)\\$s.c".  wri
a560: 74 65 6c 6e 20 22 5c 74 2b 74 72 61 6e 73 6c 61  teln "\t+transla
a570: 74 65 5c 24 45 20 5c 24 2a 2a 20 3e 20 5c 24 40  te\$E \$** > \$@
a580: 5c 6e 22 0a 7d 0a 0a 77 72 69 74 65 6c 6e 20 2d  \n".}..writeln -
a590: 6e 6f 6e 65 77 6c 69 6e 65 20 22 68 65 61 64 65  nonewline "heade
a5a0: 72 73 3a 20 6d 61 6b 65 68 65 61 64 65 72 73 5c  rs: makeheaders\
a5b0: 24 45 20 70 61 67 65 5f 69 6e 64 65 78 2e 68 20  $E page_index.h 
a5c0: 62 75 69 6c 74 69 6e 5f 64 61 74 61 2e 68 20 56  builtin_data.h V
a5d0: 45 52 53 49 4f 4e 2e 68 5c 6e 5c 74 20 2b 6d 61  ERSION.h\n\t +ma
a5e0: 6b 65 68 65 61 64 65 72 73 5c 24 45 20 22 0a 66  keheaders\$E ".f
a5f0: 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20  oreach s [lsort 
a600: 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74 65 6c  $src] {.  writel
a610: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 24 7b  n -nonewline "${
a620: 73 7d 5f 2e 63 3a 24 73 2e 68 20 22 0a 7d 0a 77  s}_.c:$s.h ".}.w
a630: 72 69 74 65 6c 6e 20 22 5c 24 28 53 52 43 44 49  riteln "\$(SRCDI
a640: 52 29 5c 5c 73 71 6c 69 74 65 33 2e 68 20 5c 24  R)\\sqlite3.h \$
a650: 28 53 52 43 44 49 52 29 5c 5c 74 68 2e 68 20 56  (SRCDIR)\\th.h V
a660: 45 52 53 49 4f 4e 2e 68 20 5c 24 28 53 52 43 44  ERSION.h \$(SRCD
a670: 49 52 29 5c 5c 63 73 6f 6e 5f 61 6d 61 6c 67 61  IR)\\cson_amalga
a680: 6d 61 74 69 6f 6e 2e 68 22 0a 77 72 69 74 65 6c  mation.h".writel
a690: 6e 20 22 5c 74 40 63 6f 70 79 20 2f 59 20 6e 75  n "\t@copy /Y nu
a6a0: 6c 3a 20 68 65 61 64 65 72 73 22 0a 0a 63 6c 6f  l: headers"..clo
a6b0: 73 65 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 0a  se $output_file.
a6c0: 23 0a 23 20 45 6e 64 20 6f 66 20 74 68 65 20 77  #.# End of the w
a6d0: 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e 64 6d 63 20  in/Makefile.dmc 
a6e0: 6f 75 74 70 75 74 0a 23 23 23 23 23 23 23 23 23  output.#########
a6f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a700: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a710: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a720: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a730: 23 23 23 23 23 0a 23 23 23 23 23 23 23 23 23 23  #####.##########
a740: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a750: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a760: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a770: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a780: 23 23 23 23 0a 23 23 23 23 23 23 23 23 23 23 23  ####.###########
a790: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a7a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a7b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a7c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a7d0: 23 23 23 0a 23 20 42 65 67 69 6e 20 77 69 6e 2f  ###.# Begin win/
a7e0: 4d 61 6b 65 66 69 6c 65 2e 6d 73 63 20 6f 75 74  Makefile.msc out
a7f0: 70 75 74 0a 23 0a 70 75 74 73 20 22 62 75 69 6c  put.#.puts "buil
a800: 64 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61 6b 65  ding ../win/Make
a810: 66 69 6c 65 2e 6d 73 63 22 0a 73 65 74 20 6f 75  file.msc".set ou
a820: 74 70 75 74 5f 66 69 6c 65 20 5b 6f 70 65 6e 20  tput_file [open 
a830: 2e 2e 2f 77 69 6e 2f 4d 61 6b 65 66 69 6c 65 2e  ../win/Makefile.
a840: 6d 73 63 20 77 5d 0a 66 63 6f 6e 66 69 67 75 72  msc w].fconfigur
a850: 65 20 24 6f 75 74 70 75 74 5f 66 69 6c 65 20 2d  e $output_file -
a860: 74 72 61 6e 73 6c 61 74 69 6f 6e 20 62 69 6e 61  translation bina
a870: 72 79 0a 0a 77 72 69 74 65 6c 6e 20 7b 23 0a 23  ry..writeln {#.#
a880: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a890: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a8a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a8b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a8c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20  #############.# 
a8d0: 57 41 52 4e 49 4e 47 3a 20 44 4f 20 4e 4f 54 20  WARNING: DO NOT 
a8e0: 45 44 49 54 2c 20 41 55 54 4f 4d 41 54 49 43 41  EDIT, AUTOMATICA
a8f0: 4c 4c 59 20 47 45 4e 45 52 41 54 45 44 20 46 49  LLY GENERATED FI
a900: 4c 45 20 28 53 45 45 20 22 73 72 63 2f 6d 61 6b  LE (SEE "src/mak
a910: 65 6d 61 6b 65 2e 74 63 6c 22 29 0a 23 23 23 23  emake.tcl").####
a920: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a930: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a940: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a950: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a960: 23 23 23 23 23 23 23 23 23 23 0a 23 0a 23 0a 23  ##########.#.#.#
a970: 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 61 75   This file is au
a980: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
a990: 72 61 74 65 64 2e 20 20 49 6e 73 74 65 61 64 20  rated.  Instead 
a9a0: 6f 66 20 65 64 69 74 69 6e 67 20 74 68 69 73 0a  of editing this.
a9b0: 23 20 66 69 6c 65 2c 20 65 64 69 74 20 22 6d 61  # file, edit "ma
a9c0: 6b 65 6d 61 6b 65 2e 74 63 6c 22 20 74 68 65 6e  kemake.tcl" then
a9d0: 20 72 75 6e 20 22 74 63 6c 73 68 20 6d 61 6b 65   run "tclsh make
a9e0: 6d 61 6b 65 2e 74 63 6c 22 0a 23 20 74 6f 20 72  make.tcl".# to r
a9f0: 65 67 65 6e 65 72 61 74 65 20 74 68 69 73 20 66  egenerate this f
aa00: 69 6c 65 2e 0a 23 0a 42 20 20 20 20 20 20 20 3d  ile..#.B       =
aa10: 20 2e 2e 0a 53 52 43 44 49 52 20 20 3d 20 24 28   ...SRCDIR  = $(
aa20: 42 29 5c 73 72 63 0a 54 20 20 20 20 20 20 20 3d  B)\src.T       =
aa30: 20 2e 0a 4f 42 4a 44 49 52 20 20 3d 20 24 28 54   ..OBJDIR  = $(T
aa40: 29 0a 4f 58 20 20 20 20 20 20 3d 20 24 28 4f 42  ).OX      = $(OB
aa50: 4a 44 49 52 29 0a 4f 20 20 20 20 20 20 20 3d 20  JDIR).O       = 
aa60: 2e 6f 62 6a 0a 45 20 20 20 20 20 20 20 3d 20 2e  .obj.E       = .
aa70: 65 78 65 0a 50 20 20 20 20 20 20 20 3d 20 2e 70  exe.P       = .p
aa80: 64 62 0a 44 42 47 4f 50 54 53 20 3d 20 2f 4f 64  db.DBGOPTS = /Od
aa90: 0a 0a 49 4e 53 54 41 4c 4c 44 49 52 20 3d 20 2e  ..INSTALLDIR = .
aaa0: 0a 21 69 66 64 65 66 20 44 45 53 54 44 49 52 0a  .!ifdef DESTDIR.
aab0: 49 4e 53 54 41 4c 4c 44 49 52 20 3d 20 24 28 44  INSTALLDIR = $(D
aac0: 45 53 54 44 49 52 29 5c 24 28 49 4e 53 54 41 4c  ESTDIR)\$(INSTAL
aad0: 4c 44 49 52 29 0a 21 65 6e 64 69 66 0a 0a 23 20  LDIR).!endif..# 
aae0: 57 68 65 6e 20 62 75 69 6c 64 69 6e 67 20 6f 75  When building ou
aaf0: 74 20 6f 66 20 73 6f 75 72 63 65 2c 20 74 68 69  t of source, thi
ab00: 73 20 4d 61 6b 65 66 69 6c 65 20 6e 65 65 64 73  s Makefile needs
ab10: 20 74 6f 20 6b 6e 6f 77 20 74 68 65 20 70 61 74   to know the pat
ab20: 68 20 74 6f 20 74 68 65 20 62 61 73 65 0a 23 20  h to the base.# 
ab30: 74 6f 70 2d 6c 65 76 65 6c 20 64 69 72 65 63 74  top-level direct
ab40: 6f 72 79 20 66 6f 72 20 74 68 69 73 20 70 72 6f  ory for this pro
ab50: 6a 65 63 74 2e 20 50 61 73 73 20 69 74 20 6f 6e  ject. Pass it on
ab60: 20 4e 4d 41 4b 45 20 63 6f 6d 6d 61 6e 64 20 6c   NMAKE command l
ab70: 69 6e 65 20 76 69 61 20 6d 61 6b 65 0a 23 20 76  ine via make.# v
ab80: 61 72 69 61 62 6c 65 20 42 3a 0a 23 20 20 20 4e  ariable B:.#   N
ab90: 4d 41 4b 45 20 2f 66 20 22 70 61 74 68 5c 74 6f  MAKE /f "path\to
aba0: 5c 74 68 69 73 5c 4d 61 6b 65 66 69 6c 65 22 20  \this\Makefile" 
abb0: 42 3d 22 70 61 74 68 2f 74 6f 2f 66 6f 73 73 69  B="path/to/fossi
abc0: 6c 2f 72 6f 6f 74 22 0a 23 0a 23 20 4e 4f 54 45  l/root".#.# NOTE
abd0: 3a 20 4d 61 6b 65 20 73 75 72 65 20 42 20 70 61  : Make sure B pa
abe0: 74 68 20 68 61 73 20 6e 6f 20 74 72 61 69 6c 69  th has no traili
abf0: 6e 67 20 62 61 63 6b 73 6c 61 73 68 2c 20 55 4e  ng backslash, UN
ac00: 49 58 2d 73 74 79 6c 65 20 70 61 74 68 20 69 73  IX-style path is
ac10: 20 4f 4b 20 74 6f 6f 2e 0a 23 0a 21 69 66 20 21   OK too..#.!if !
ac20: 65 78 69 73 74 28 22 24 28 42 29 5c 2e 66 6f 73  exist("$(B)\.fos
ac30: 73 69 6c 2d 73 65 74 74 69 6e 67 73 22 29 0a 21  sil-settings").!
ac40: 65 72 72 6f 72 20 50 6c 65 61 73 65 20 73 70 65  error Please spe
ac50: 63 69 66 79 20 70 61 74 68 20 74 6f 20 70 72 6f  cify path to pro
ac60: 6a 65 63 74 20 62 61 73 65 20 64 69 72 65 63 74  ject base direct
ac70: 6f 72 79 3a 20 42 3d 22 70 61 74 68 2f 74 6f 2f  ory: B="path/to/
ac80: 66 6f 73 73 69 6c 22 0a 21 65 6e 64 69 66 0a 0a  fossil".!endif..
ac90: 23 20 50 65 72 6c 20 69 73 20 6f 6e 6c 79 20 6e  # Perl is only n
aca0: 65 63 65 73 73 61 72 79 20 69 66 20 4f 70 65 6e  ecessary if Open
acb0: 53 53 4c 20 73 75 70 70 6f 72 74 20 69 73 20 65  SSL support is e
acc0: 6e 61 62 6c 65 64 20 61 6e 64 20 69 74 20 69 73  nabled and it is
acd0: 20 62 75 69 6c 74 20 66 72 6f 6d 0a 23 20 73 6f   built from.# so
ace0: 75 72 63 65 20 63 6f 64 65 2e 20 20 54 68 65 20  urce code.  The 
acf0: 50 45 52 4c 44 49 52 20 65 6e 76 69 72 6f 6e 6d  PERLDIR environm
ad00: 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 69 66  ent variable, if
ad10: 20 69 74 20 65 78 69 73 74 73 2c 20 73 68 6f 75   it exists, shou
ad20: 6c 64 20 70 6f 69 6e 74 0a 23 20 74 6f 20 74 68  ld point.# to th
ad30: 65 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74  e directory cont
ad40: 61 69 6e 69 6e 67 20 74 68 65 20 6d 61 69 6e 20  aining the main 
ad50: 50 65 72 6c 20 65 78 65 63 75 74 61 62 6c 65 20  Perl executable 
ad60: 73 70 65 63 69 66 69 65 64 20 68 65 72 65 20 28  specified here (
ad70: 69 2e 65 2e 0a 23 20 22 70 65 72 6c 2e 65 78 65  i.e..# "perl.exe
ad80: 22 29 2e 0a 50 45 52 4c 20 20 20 20 3d 20 70 65  ")..PERL    = pe
ad90: 72 6c 2e 65 78 65 0a 0a 23 20 45 6e 61 62 6c 65  rl.exe..# Enable
ada0: 20 75 73 65 20 6f 66 20 61 76 61 69 6c 61 62 6c   use of availabl
adb0: 65 20 63 6f 6d 70 69 6c 65 72 20 6f 70 74 69 6d  e compiler optim
adc0: 69 7a 61 74 69 6f 6e 73 3f 0a 21 69 66 6e 64 65  izations?.!ifnde
add0: 66 20 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 53 0a  f OPTIMIZATIONS.
ade0: 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 53 20 3d 20  OPTIMIZATIONS = 
adf0: 32 0a 21 65 6e 64 69 66 0a 0a 23 20 45 6e 61 62  2.!endif..# Enab
ae00: 6c 65 20 64 65 62 75 67 67 69 6e 67 20 73 79 6d  le debugging sym
ae10: 62 6f 6c 73 3f 0a 21 69 66 6e 64 65 66 20 44 45  bols?.!ifndef DE
ae20: 42 55 47 0a 44 45 42 55 47 20 3d 20 30 0a 21 65  BUG.DEBUG = 0.!e
ae30: 6e 64 69 66 0a 21 69 66 64 65 66 20 46 4f 53 53  ndif.!ifdef FOSS
ae40: 49 4c 5f 44 45 42 55 47 0a 44 45 42 55 47 20 3d  IL_DEBUG.DEBUG =
ae50: 20 31 0a 21 65 6e 64 69 66 0a 0a 23 20 42 75 69   1.!endif..# Bui
ae60: 6c 64 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 6c  ld the OpenSSL l
ae70: 69 62 72 61 72 69 65 73 3f 0a 21 69 66 6e 64 65  ibraries?.!ifnde
ae80: 66 20 46 4f 53 53 49 4c 5f 42 55 49 4c 44 5f 53  f FOSSIL_BUILD_S
ae90: 53 4c 0a 46 4f 53 53 49 4c 5f 42 55 49 4c 44 5f  SL.FOSSIL_BUILD_
aea0: 53 53 4c 20 3d 20 30 0a 21 65 6e 64 69 66 0a 0a  SSL = 0.!endif..
aeb0: 23 20 42 75 69 6c 64 20 74 68 65 20 69 6e 63 6c  # Build the incl
aec0: 75 64 65 64 20 7a 6c 69 62 20 6c 69 62 72 61 72  uded zlib librar
aed0: 79 3f 0a 21 69 66 6e 64 65 66 20 46 4f 53 53 49  y?.!ifndef FOSSI
aee0: 4c 5f 42 55 49 4c 44 5f 5a 4c 49 42 0a 46 4f 53  L_BUILD_ZLIB.FOS
aef0: 53 49 4c 5f 42 55 49 4c 44 5f 5a 4c 49 42 20 3d  SIL_BUILD_ZLIB =
af00: 20 31 0a 21 65 6e 64 69 66 0a 0a 23 20 4c 69 6e   1.!endif..# Lin
af10: 6b 20 65 76 65 72 79 74 68 69 6e 67 20 65 78 63  k everything exc
af20: 65 70 74 20 53 51 4c 69 74 65 20 64 79 6e 61 6d  ept SQLite dynam
af30: 69 63 61 6c 6c 79 3f 0a 21 69 66 6e 64 65 66 20  ically?.!ifndef 
af40: 46 4f 53 53 49 4c 5f 44 59 4e 41 4d 49 43 5f 42  FOSSIL_DYNAMIC_B
af50: 55 49 4c 44 0a 46 4f 53 53 49 4c 5f 44 59 4e 41  UILD.FOSSIL_DYNA
af60: 4d 49 43 5f 42 55 49 4c 44 20 3d 20 30 0a 21 65  MIC_BUILD = 0.!e
af70: 6e 64 69 66 0a 0a 23 20 45 6e 61 62 6c 65 20 72  ndif..# Enable r
af80: 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 69 6e  elative paths in
af90: 20 65 78 74 65 72 6e 61 6c 20 64 69 66 66 2f 67   external diff/g
afa0: 64 69 66 66 3f 0a 21 69 66 6e 64 65 66 20 46 4f  diff?.!ifndef FO
afb0: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 45 58 45 43  SSIL_ENABLE_EXEC
afc0: 5f 52 45 4c 5f 50 41 54 48 53 0a 46 4f 53 53 49  _REL_PATHS.FOSSI
afd0: 4c 5f 45 4e 41 42 4c 45 5f 45 58 45 43 5f 52 45  L_ENABLE_EXEC_RE
afe0: 4c 5f 50 41 54 48 53 20 3d 20 30 0a 21 65 6e 64  L_PATHS = 0.!end
aff0: 69 66 0a 0a 23 20 45 6e 61 62 6c 65 20 74 68 65  if..# Enable the
b000: 20 4a 53 4f 4e 20 41 50 49 3f 0a 21 69 66 6e 64   JSON API?.!ifnd
b010: 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45  ef FOSSIL_ENABLE
b020: 5f 4a 53 4f 4e 0a 46 4f 53 53 49 4c 5f 45 4e 41  _JSON.FOSSIL_ENA
b030: 42 4c 45 5f 4a 53 4f 4e 20 3d 20 30 0a 21 65 6e  BLE_JSON = 0.!en
b040: 64 69 66 0a 0a 23 20 45 6e 61 62 6c 65 20 75 73  dif..# Enable us
b050: 65 20 6f 66 20 6d 69 6e 69 7a 20 69 6e 73 74 65  e of miniz inste
b060: 61 64 20 6f 66 20 7a 6c 69 62 3f 0a 21 69 66 6e  ad of zlib?.!ifn
b070: 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  def FOSSIL_ENABL
b080: 45 5f 4d 49 4e 49 5a 0a 46 4f 53 53 49 4c 5f 45  E_MINIZ.FOSSIL_E
b090: 4e 41 42 4c 45 5f 4d 49 4e 49 5a 20 3d 20 30 0a  NABLE_MINIZ = 0.
b0a0: 21 65 6e 64 69 66 0a 0a 23 20 45 6e 61 62 6c 65  !endif..# Enable
b0b0: 20 4f 70 65 6e 53 53 4c 20 73 75 70 70 6f 72 74   OpenSSL support
b0c0: 3f 0a 21 69 66 6e 64 65 66 20 46 4f 53 53 49 4c  ?.!ifndef FOSSIL
b0d0: 5f 45 4e 41 42 4c 45 5f 53 53 4c 0a 46 4f 53 53  _ENABLE_SSL.FOSS
b0e0: 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 20 3d 20  IL_ENABLE_SSL = 
b0f0: 30 0a 21 65 6e 64 69 66 0a 0a 23 20 45 6e 61 62  0.!endif..# Enab
b100: 6c 65 20 74 68 65 20 54 63 6c 20 69 6e 74 65 67  le the Tcl integ
b110: 72 61 74 69 6f 6e 20 73 75 62 73 79 73 74 65 6d  ration subsystem
b120: 3f 0a 21 69 66 6e 64 65 66 20 46 4f 53 53 49 4c  ?.!ifndef FOSSIL
b130: 5f 45 4e 41 42 4c 45 5f 54 43 4c 0a 46 4f 53 53  _ENABLE_TCL.FOSS
b140: 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 20 3d 20  IL_ENABLE_TCL = 
b150: 30 0a 21 65 6e 64 69 66 0a 0a 23 20 45 6e 61 62  0.!endif..# Enab
b160: 6c 65 20 54 48 31 20 73 63 72 69 70 74 73 20 69  le TH1 scripts i
b170: 6e 20 65 6d 62 65 64 64 65 64 20 64 6f 63 75 6d  n embedded docum
b180: 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 3f 0a  entation files?.
b190: 21 69 66 6e 64 65 66 20 46 4f 53 53 49 4c 5f 45  !ifndef FOSSIL_E
b1a0: 4e 41 42 4c 45 5f 54 48 31 5f 44 4f 43 53 0a 46  NABLE_TH1_DOCS.F
b1b0: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31  OSSIL_ENABLE_TH1
b1c0: 5f 44 4f 43 53 20 3d 20 30 0a 21 65 6e 64 69 66  _DOCS = 0.!endif
b1d0: 0a 0a 23 20 45 6e 61 62 6c 65 20 54 48 31 20 68  ..# Enable TH1 h
b1e0: 6f 6f 6b 73 20 66 6f 72 20 63 6f 6d 6d 61 6e 64  ooks for command
b1f0: 73 20 61 6e 64 20 77 65 62 20 70 61 67 65 73 3f  s and web pages?
b200: 0a 21 69 66 6e 64 65 66 20 46 4f 53 53 49 4c 5f  .!ifndef FOSSIL_
b210: 45 4e 41 42 4c 45 5f 54 48 31 5f 48 4f 4f 4b 53  ENABLE_TH1_HOOKS
b220: 0a 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54  .FOSSIL_ENABLE_T
b230: 48 31 5f 48 4f 4f 4b 53 20 3d 20 30 0a 21 65 6e  H1_HOOKS = 0.!en
b240: 64 69 66 0a 0a 23 20 45 6e 61 62 6c 65 20 73 75  dif..# Enable su
b250: 70 70 6f 72 74 20 66 6f 72 20 57 69 6e 64 6f 77  pport for Window
b260: 73 20 58 50 20 77 69 74 68 20 56 69 73 75 61 6c  s XP with Visual
b270: 20 53 74 75 64 69 6f 20 32 30 31 78 3f 0a 21 69   Studio 201x?.!i
b280: 66 6e 64 65 66 20 46 4f 53 53 49 4c 5f 45 4e 41  fndef FOSSIL_ENA
b290: 42 4c 45 5f 57 49 4e 58 50 0a 46 4f 53 53 49 4c  BLE_WINXP.FOSSIL
b2a0: 5f 45 4e 41 42 4c 45 5f 57 49 4e 58 50 20 3d 20  _ENABLE_WINXP = 
b2b0: 30 0a 21 65 6e 64 69 66 0a 0a 23 20 45 6e 61 62  0.!endif..# Enab
b2c0: 6c 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  le support for t
b2d0: 68 65 20 53 51 4c 69 74 65 20 45 6e 63 72 79 70  he SQLite Encryp
b2e0: 74 69 6f 6e 20 45 78 74 65 6e 73 69 6f 6e 3f 0a  tion Extension?.
b2f0: 21 69 66 6e 64 65 66 20 55 53 45 5f 53 45 45 0a  !ifndef USE_SEE.
b300: 55 53 45 5f 53 45 45 20 3d 20 30 0a 21 65 6e 64  USE_SEE = 0.!end
b310: 69 66 0a 0a 21 69 66 20 24 28 46 4f 53 53 49 4c  if..!if $(FOSSIL
b320: 5f 45 4e 41 42 4c 45 5f 53 53 4c 29 21 3d 30 0a  _ENABLE_SSL)!=0.
b330: 53 53 4c 44 49 52 20 20 20 20 3d 20 24 28 42 29  SSLDIR    = $(B)
b340: 5c 63 6f 6d 70 61 74 5c 6f 70 65 6e 73 73 6c 0a  \compat\openssl.
b350: 53 53 4c 49 4e 43 44 49 52 20 3d 20 24 28 53 53  SSLINCDIR = $(SS
b360: 4c 44 49 52 29 5c 69 6e 63 6c 75 64 65 0a 21 69  LDIR)\include.!i
b370: 66 20 24 28 46 4f 53 53 49 4c 5f 44 59 4e 41 4d  f $(FOSSIL_DYNAM
b380: 49 43 5f 42 55 49 4c 44 29 21 3d 30 0a 53 53 4c  IC_BUILD)!=0.SSL
b390: 4c 49 42 44 49 52 20 3d 20 24 28 53 53 4c 44 49  LIBDIR = $(SSLDI
b3a0: 52 29 0a 21 65 6c 73 65 0a 53 53 4c 4c 49 42 44  R).!else.SSLLIBD
b3b0: 49 52 20 3d 20 24 28 53 53 4c 44 49 52 29 0a 21  IR = $(SSLDIR).!
b3c0: 65 6e 64 69 66 0a 53 53 4c 4c 46 4c 41 47 53 20  endif.SSLLFLAGS 
b3d0: 3d 20 2f 6e 6f 6c 6f 67 6f 20 2f 6f 70 74 3a 72  = /nologo /opt:r
b3e0: 65 66 20 2f 64 65 62 75 67 0a 53 53 4c 4c 49 42  ef /debug.SSLLIB
b3f0: 20 20 20 20 3d 20 6c 69 62 73 73 6c 2e 6c 69 62      = libssl.lib
b400: 20 6c 69 62 63 72 79 70 74 6f 2e 6c 69 62 20 75   libcrypto.lib u
b410: 73 65 72 33 32 2e 6c 69 62 20 67 64 69 33 32 2e  ser32.lib gdi32.
b420: 6c 69 62 20 63 72 79 70 74 33 32 2e 6c 69 62 0a  lib crypt32.lib.
b430: 21 69 66 20 22 24 28 50 4c 41 54 46 4f 52 4d 29  !if "$(PLATFORM)
b440: 22 3d 3d 22 61 6d 64 36 34 22 20 7c 7c 20 22 24  "=="amd64" || "$
b450: 28 50 4c 41 54 46 4f 52 4d 29 22 3d 3d 22 78 36  (PLATFORM)"=="x6
b460: 34 22 0a 21 6d 65 73 73 61 67 65 20 55 73 69 6e  4".!message Usin
b470: 67 20 27 78 36 34 27 20 70 6c 61 74 66 6f 72 6d  g 'x64' platform
b480: 20 66 6f 72 20 4f 70 65 6e 53 53 4c 2e 2e 2e 0a   for OpenSSL....
b490: 53 53 4c 43 4f 4e 46 49 47 20 3d 20 56 43 2d 57  SSLCONFIG = VC-W
b4a0: 49 4e 36 34 41 20 6e 6f 2d 61 73 6d 20 6e 6f 2d  IN64A no-asm no-
b4b0: 73 73 6c 33 20 6e 6f 2d 77 65 61 6b 2d 73 73 6c  ssl3 no-weak-ssl
b4c0: 2d 63 69 70 68 65 72 73 0a 21 69 66 20 24 28 46  -ciphers.!if $(F
b4d0: 4f 53 53 49 4c 5f 44 59 4e 41 4d 49 43 5f 42 55  OSSIL_DYNAMIC_BU
b4e0: 49 4c 44 29 21 3d 30 0a 53 53 4c 43 4f 4e 46 49  ILD)!=0.SSLCONFI
b4f0: 47 20 3d 20 24 28 53 53 4c 43 4f 4e 46 49 47 29  G = $(SSLCONFIG)
b500: 20 73 68 61 72 65 64 0a 21 65 6c 73 65 0a 53 53   shared.!else.SS
b510: 4c 43 4f 4e 46 49 47 20 3d 20 24 28 53 53 4c 43  LCONFIG = $(SSLC
b520: 4f 4e 46 49 47 29 20 6e 6f 2d 73 68 61 72 65 64  ONFIG) no-shared
b530: 0a 21 65 6e 64 69 66 0a 21 65 6c 73 65 69 66 20  .!endif.!elseif 
b540: 22 24 28 50 4c 41 54 46 4f 52 4d 29 22 3d 3d 22  "$(PLATFORM)"=="
b550: 69 61 36 34 22 0a 21 6d 65 73 73 61 67 65 20 55  ia64".!message U
b560: 73 69 6e 67 20 27 69 61 36 34 27 20 70 6c 61 74  sing 'ia64' plat
b570: 66 6f 72 6d 20 66 6f 72 20 4f 70 65 6e 53 53 4c  form for OpenSSL
b580: 2e 2e 2e 0a 53 53 4c 43 4f 4e 46 49 47 20 3d 20  ....SSLCONFIG = 
b590: 56 43 2d 57 49 4e 36 34 49 20 6e 6f 2d 61 73 6d  VC-WIN64I no-asm
b5a0: 20 6e 6f 2d 73 73 6c 33 20 6e 6f 2d 77 65 61 6b   no-ssl3 no-weak
b5b0: 2d 73 73 6c 2d 63 69 70 68 65 72 73 0a 21 69 66  -ssl-ciphers.!if
b5c0: 20 24 28 46 4f 53 53 49 4c 5f 44 59 4e 41 4d 49   $(FOSSIL_DYNAMI
b5d0: 43 5f 42 55 49 4c 44 29 21 3d 30 0a 53 53 4c 43  C_BUILD)!=0.SSLC
b5e0: 4f 4e 46 49 47 20 3d 20 24 28 53 53 4c 43 4f 4e  ONFIG = $(SSLCON
b5f0: 46 49 47 29 20 73 68 61 72 65 64 0a 21 65 6c 73  FIG) shared.!els
b600: 65 0a 53 53 4c 43 4f 4e 46 49 47 20 3d 20 24 28  e.SSLCONFIG = $(
b610: 53 53 4c 43 4f 4e 46 49 47 29 20 6e 6f 2d 73 68  SSLCONFIG) no-sh
b620: 61 72 65 64 0a 21 65 6e 64 69 66 0a 21 65 6c 73  ared.!endif.!els
b630: 65 0a 21 6d 65 73 73 61 67 65 20 41 73 73 75 6d  e.!message Assum
b640: 69 6e 67 20 27 78 38 36 27 20 70 6c 61 74 66 6f  ing 'x86' platfo
b650: 72 6d 20 66 6f 72 20 4f 70 65 6e 53 53 4c 2e 2e  rm for OpenSSL..
b660: 2e 0a 53 53 4c 43 4f 4e 46 49 47 20 3d 20 56 43  ..SSLCONFIG = VC
b670: 2d 57 49 4e 33 32 20 6e 6f 2d 61 73 6d 20 6e 6f  -WIN32 no-asm no
b680: 2d 73 73 6c 33 20 6e 6f 2d 77 65 61 6b 2d 73 73  -ssl3 no-weak-ss
b690: 6c 2d 63 69 70 68 65 72 73 0a 21 69 66 20 24 28  l-ciphers.!if $(
b6a0: 46 4f 53 53 49 4c 5f 44 59 4e 41 4d 49 43 5f 42  FOSSIL_DYNAMIC_B
b6b0: 55 49 4c 44 29 21 3d 30 0a 53 53 4c 43 4f 4e 46  UILD)!=0.SSLCONF
b6c0: 49 47 20 3d 20 24 28 53 53 4c 43 4f 4e 46 49 47  IG = $(SSLCONFIG
b6d0: 29 20 73 68 61 72 65 64 0a 21 65 6c 73 65 0a 53  ) shared.!else.S
b6e0: 53 4c 43 4f 4e 46 49 47 20 3d 20 24 28 53 53 4c  SLCONFIG = $(SSL
b6f0: 43 4f 4e 46 49 47 29 20 6e 6f 2d 73 68 61 72 65  CONFIG) no-share
b700: 64 0a 21 65 6e 64 69 66 0a 21 65 6e 64 69 66 0a  d.!endif.!endif.
b710: 21 65 6e 64 69 66 0a 0a 21 69 66 20 24 28 46 4f  !endif..!if $(FO
b720: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 29  SSIL_ENABLE_TCL)
b730: 21 3d 30 0a 54 43 4c 44 49 52 20 20 20 20 3d 20  !=0.TCLDIR    = 
b740: 24 28 42 29 5c 63 6f 6d 70 61 74 5c 74 63 6c 2d  $(B)\compat\tcl-
b750: 38 2e 36 0a 54 43 4c 53 52 43 44 49 52 20 3d 20  8.6.TCLSRCDIR = 
b760: 24 28 54 43 4c 44 49 52 29 0a 54 43 4c 49 4e 43  $(TCLDIR).TCLINC
b770: 44 49 52 20 3d 20 24 28 54 43 4c 53 52 43 44 49  DIR = $(TCLSRCDI
b780: 52 29 5c 67 65 6e 65 72 69 63 0a 21 65 6e 64 69  R)\generic.!endi
b790: 66 0a 0a 23 20 7a 6c 69 62 20 6f 70 74 69 6f 6e  f..# zlib option
b7a0: 73 0a 5a 49 4e 43 44 49 52 20 20 20 3d 20 24 28  s.ZINCDIR   = $(
b7b0: 42 29 5c 63 6f 6d 70 61 74 5c 7a 6c 69 62 0a 5a  B)\compat\zlib.Z
b7c0: 4c 49 42 44 49 52 20 20 20 3d 20 24 28 42 29 5c  LIBDIR   = $(B)\
b7d0: 63 6f 6d 70 61 74 5c 7a 6c 69 62 0a 0a 21 69 66  compat\zlib..!if
b7e0: 20 24 28 46 4f 53 53 49 4c 5f 44 59 4e 41 4d 49   $(FOSSIL_DYNAMI
b7f0: 43 5f 42 55 49 4c 44 29 21 3d 30 0a 5a 4c 49 42  C_BUILD)!=0.ZLIB
b800: 20 20 20 20 20 20 3d 20 7a 64 6c 6c 2e 6c 69 62        = zdll.lib
b810: 0a 21 65 6c 73 65 0a 5a 4c 49 42 20 20 20 20 20  .!else.ZLIB     
b820: 20 3d 20 7a 6c 69 62 2e 6c 69 62 0a 21 65 6e 64   = zlib.lib.!end
b830: 69 66 0a 0a 49 4e 43 4c 20 20 20 20 20 20 3d 20  if..INCL      = 
b840: 2f 49 2e 20 2f 49 22 24 28 4f 58 29 22 20 2f 49  /I. /I"$(OX)" /I
b850: 22 24 28 53 52 43 44 49 52 29 22 20 2f 49 22 24  "$(SRCDIR)" /I"$
b860: 28 42 29 5c 77 69 6e 5c 69 6e 63 6c 75 64 65 22  (B)\win\include"
b870: 0a 0a 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 45  ..!if $(FOSSIL_E
b880: 4e 41 42 4c 45 5f 4d 49 4e 49 5a 29 3d 3d 30 0a  NABLE_MINIZ)==0.
b890: 49 4e 43 4c 20 20 20 20 20 20 3d 20 24 28 49 4e  INCL      = $(IN
b8a0: 43 4c 29 20 2f 49 22 24 28 5a 49 4e 43 44 49 52  CL) /I"$(ZINCDIR
b8b0: 29 22 0a 21 65 6e 64 69 66 0a 0a 21 69 66 20 24  )".!endif..!if $
b8c0: 28 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53  (FOSSIL_ENABLE_S
b8d0: 53 4c 29 21 3d 30 0a 49 4e 43 4c 20 20 20 20 20  SL)!=0.INCL     
b8e0: 20 3d 20 24 28 49 4e 43 4c 29 20 2f 49 22 24 28   = $(INCL) /I"$(
b8f0: 53 53 4c 49 4e 43 44 49 52 29 22 0a 21 65 6e 64  SSLINCDIR)".!end
b900: 69 66 0a 0a 21 69 66 20 24 28 46 4f 53 53 49 4c  if..!if $(FOSSIL
b910: 5f 45 4e 41 42 4c 45 5f 54 43 4c 29 21 3d 30 0a  _ENABLE_TCL)!=0.
b920: 49 4e 43 4c 20 20 20 20 20 20 3d 20 24 28 49 4e  INCL      = $(IN
b930: 43 4c 29 20 2f 49 22 24 28 54 43 4c 49 4e 43 44  CL) /I"$(TCLINCD
b940: 49 52 29 22 0a 21 65 6e 64 69 66 0a 0a 43 46 4c  IR)".!endif..CFL
b950: 41 47 53 20 20 20 20 3d 20 2f 6e 6f 6c 6f 67 6f  AGS    = /nologo
b960: 0a 4c 44 46 4c 41 47 53 20 20 20 3d 0a 0a 43 46  .LDFLAGS   =..CF
b970: 4c 41 47 53 20 20 20 20 3d 20 24 28 43 46 4c 41  LAGS    = $(CFLA
b980: 47 53 29 20 2f 44 5f 43 52 54 5f 53 45 43 55 52  GS) /D_CRT_SECUR
b990: 45 5f 4e 4f 5f 44 45 50 52 45 43 41 54 45 20 2f  E_NO_DEPRECATE /
b9a0: 44 5f 43 52 54 5f 53 45 43 55 52 45 5f 4e 4f 5f  D_CRT_SECURE_NO_
b9b0: 57 41 52 4e 49 4e 47 53 0a 43 46 4c 41 47 53 20  WARNINGS.CFLAGS 
b9c0: 20 20 20 3d 20 24 28 43 46 4c 41 47 53 29 20 2f     = $(CFLAGS) /
b9d0: 44 5f 43 52 54 5f 4e 4f 4e 53 54 44 43 5f 4e 4f  D_CRT_NONSTDC_NO
b9e0: 5f 44 45 50 52 45 43 41 54 45 20 2f 44 5f 43 52  _DEPRECATE /D_CR
b9f0: 54 5f 4e 4f 4e 53 54 44 43 5f 4e 4f 5f 57 41 52  T_NONSTDC_NO_WAR
ba00: 4e 49 4e 47 53 0a 0a 21 69 66 20 24 28 46 4f 53  NINGS..!if $(FOS
ba10: 53 49 4c 5f 44 59 4e 41 4d 49 43 5f 42 55 49 4c  SIL_DYNAMIC_BUIL
ba20: 44 29 21 3d 30 0a 4c 44 46 4c 41 47 53 20 20 20  D)!=0.LDFLAGS   
ba30: 3d 20 24 28 4c 44 46 4c 41 47 53 29 20 2f 4d 41  = $(LDFLAGS) /MA
ba40: 4e 49 46 45 53 54 0a 21 65 6c 73 65 0a 4c 44 46  NIFEST.!else.LDF
ba50: 4c 41 47 53 20 20 20 3d 20 24 28 4c 44 46 4c 41  LAGS   = $(LDFLA
ba60: 47 53 29 20 2f 4e 4f 44 45 46 41 55 4c 54 4c 49  GS) /NODEFAULTLI
ba70: 42 3a 6d 73 76 63 72 74 20 2f 4d 41 4e 49 46 45  B:msvcrt /MANIFE
ba80: 53 54 3a 4e 4f 0a 21 65 6e 64 69 66 0a 0a 21 69  ST:NO.!endif..!i
ba90: 66 20 24 28 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  f $(FOSSIL_ENABL
baa0: 45 5f 57 49 4e 58 50 29 21 3d 30 0a 58 50 43 46  E_WINXP)!=0.XPCF
bab0: 4c 41 47 53 20 20 3d 20 24 28 58 50 43 46 4c 41  LAGS  = $(XPCFLA
bac0: 47 53 29 20 2f 44 5f 57 49 4e 33 32 5f 57 49 4e  GS) /D_WIN32_WIN
bad0: 4e 54 3d 30 78 30 35 30 31 20 2f 44 5f 55 53 49  NT=0x0501 /D_USI
bae0: 4e 47 5f 56 31 31 30 5f 53 44 4b 37 31 5f 3d 31  NG_V110_SDK71_=1
baf0: 0a 43 46 4c 41 47 53 20 20 20 20 3d 20 24 28 43  .CFLAGS    = $(C
bb00: 46 4c 41 47 53 29 20 24 28 58 50 43 46 4c 41 47  FLAGS) $(XPCFLAG
bb10: 53 29 0a 21 69 66 20 22 24 28 50 4c 41 54 46 4f  S).!if "$(PLATFO
bb20: 52 4d 29 22 3d 3d 22 61 6d 64 36 34 22 20 7c 7c  RM)"=="amd64" ||
bb30: 20 22 24 28 50 4c 41 54 46 4f 52 4d 29 22 3d 3d   "$(PLATFORM)"==
bb40: 22 78 36 34 22 0a 58 50 4c 44 46 4c 41 47 53 20  "x64".XPLDFLAGS 
bb50: 3d 20 24 28 58 50 4c 44 46 4c 41 47 53 29 20 2f  = $(XPLDFLAGS) /
bb60: 53 55 42 53 59 53 54 45 4d 3a 43 4f 4e 53 4f 4c  SUBSYSTEM:CONSOL
bb70: 45 2c 35 2e 30 32 0a 21 65 6c 73 65 0a 58 50 4c  E,5.02.!else.XPL
bb80: 44 46 4c 41 47 53 20 3d 20 24 28 58 50 4c 44 46  DFLAGS = $(XPLDF
bb90: 4c 41 47 53 29 20 2f 53 55 42 53 59 53 54 45 4d  LAGS) /SUBSYSTEM
bba0: 3a 43 4f 4e 53 4f 4c 45 2c 35 2e 30 31 0a 21 65  :CONSOLE,5.01.!e
bbb0: 6e 64 69 66 0a 4c 44 46 4c 41 47 53 20 20 20 3d  ndif.LDFLAGS   =
bbc0: 20 24 28 4c 44 46 4c 41 47 53 29 20 24 28 58 50   $(LDFLAGS) $(XP
bbd0: 4c 44 46 4c 41 47 53 29 0a 21 65 6e 64 69 66 0a  LDFLAGS).!endif.
bbe0: 0a 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 44 59  .!if $(FOSSIL_DY
bbf0: 4e 41 4d 49 43 5f 42 55 49 4c 44 29 21 3d 30 0a  NAMIC_BUILD)!=0.
bc00: 21 69 66 20 24 28 44 45 42 55 47 29 21 3d 30 0a  !if $(DEBUG)!=0.
bc10: 43 52 54 46 4c 41 47 53 20 3d 20 2f 4d 44 64 0a  CRTFLAGS = /MDd.
bc20: 21 65 6c 73 65 0a 43 52 54 46 4c 41 47 53 20 3d  !else.CRTFLAGS =
bc30: 20 2f 4d 44 0a 21 65 6e 64 69 66 0a 21 65 6c 73   /MD.!endif.!els
bc40: 65 0a 21 69 66 20 24 28 44 45 42 55 47 29 21 3d  e.!if $(DEBUG)!=
bc50: 30 0a 43 52 54 46 4c 41 47 53 20 3d 20 2f 4d 54  0.CRTFLAGS = /MT
bc60: 64 0a 21 65 6c 73 65 0a 43 52 54 46 4c 41 47 53  d.!else.CRTFLAGS
bc70: 20 3d 20 2f 4d 54 0a 21 65 6e 64 69 66 0a 21 65   = /MT.!endif.!e
bc80: 6e 64 69 66 0a 0a 21 69 66 20 24 28 4f 50 54 49  ndif..!if $(OPTI
bc90: 4d 49 5a 41 54 49 4f 4e 53 29 3e 33 0a 52 45 4c  MIZATIONS)>3.REL
bca0: 4f 50 54 53 20 3d 20 2f 4f 73 0a 21 65 6c 73 65  OPTS = /Os.!else
bcb0: 69 66 20 24 28 4f 50 54 49 4d 49 5a 41 54 49 4f  if $(OPTIMIZATIO
bcc0: 4e 53 29 3e 32 0a 52 45 4c 4f 50 54 53 20 3d 20  NS)>2.RELOPTS = 
bcd0: 2f 4f 78 0a 21 65 6c 73 65 69 66 20 24 28 4f 50  /Ox.!elseif $(OP
bce0: 54 49 4d 49 5a 41 54 49 4f 4e 53 29 3e 31 0a 52  TIMIZATIONS)>1.R
bcf0: 45 4c 4f 50 54 53 20 3d 20 2f 4f 32 0a 21 65 6c  ELOPTS = /O2.!el
bd00: 73 65 69 66 20 24 28 4f 50 54 49 4d 49 5a 41 54  seif $(OPTIMIZAT
bd10: 49 4f 4e 53 29 3e 30 0a 52 45 4c 4f 50 54 53 20  IONS)>0.RELOPTS 
bd20: 3d 20 2f 4f 31 0a 21 65 6c 73 65 0a 52 45 4c 4f  = /O1.!else.RELO
bd30: 50 54 53 20 3d 0a 21 65 6e 64 69 66 0a 0a 21 69  PTS =.!endif..!i
bd40: 66 20 24 28 44 45 42 55 47 29 21 3d 30 0a 43 46  f $(DEBUG)!=0.CF
bd50: 4c 41 47 53 20 20 20 20 3d 20 24 28 43 46 4c 41  LAGS    = $(CFLA
bd60: 47 53 29 20 2f 5a 69 20 24 28 43 52 54 46 4c 41  GS) /Zi $(CRTFLA
bd70: 47 53 29 20 24 28 44 42 47 4f 50 54 53 29 20 2f  GS) $(DBGOPTS) /
bd80: 44 46 4f 53 53 49 4c 5f 44 45 42 55 47 20 2f 44  DFOSSIL_DEBUG /D
bd90: 54 48 5f 4d 45 4d 44 45 42 55 47 0a 4c 44 46 4c  TH_MEMDEBUG.LDFL
bda0: 41 47 53 20 20 20 3d 20 24 28 4c 44 46 4c 41 47  AGS   = $(LDFLAG
bdb0: 53 29 20 2f 44 45 42 55 47 0a 21 65 6c 73 65 0a  S) /DEBUG.!else.
bdc0: 43 46 4c 41 47 53 20 20 20 20 3d 20 24 28 43 46  CFLAGS    = $(CF
bdd0: 4c 41 47 53 29 20 24 28 43 52 54 46 4c 41 47 53  LAGS) $(CRTFLAGS
bde0: 29 20 24 28 52 45 4c 4f 50 54 53 29 0a 21 65 6e  ) $(RELOPTS).!en
bdf0: 64 69 66 0a 0a 42 43 43 20 20 20 20 20 20 20 3d  dif..BCC       =
be00: 20 24 28 43 43 29 20 24 28 43 46 4c 41 47 53 29   $(CC) $(CFLAGS)
be10: 0a 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 43  .TCC       = $(C
be20: 43 29 20 2f 63 20 24 28 43 46 4c 41 47 53 29 20  C) /c $(CFLAGS) 
be30: 24 28 4d 53 43 44 45 46 29 20 24 28 49 4e 43 4c  $(MSCDEF) $(INCL
be40: 29 0a 52 43 43 20 20 20 20 20 20 20 3d 20 24 28  ).RCC       = $(
be50: 52 43 29 20 2f 44 5f 57 49 4e 33 32 20 2f 44 5f  RC) /D_WIN32 /D_
be60: 4d 53 43 5f 56 45 52 20 24 28 4d 53 43 44 45 46  MSC_VER $(MSCDEF
be70: 29 20 24 28 49 4e 43 4c 29 0a 4d 54 43 20 20 20  ) $(INCL).MTC   
be80: 20 20 20 20 3d 20 6d 74 0a 4c 49 42 53 20 20 20      = mt.LIBS   
be90: 20 20 20 3d 20 77 73 32 5f 33 32 2e 6c 69 62 20     = ws2_32.lib 
bea0: 61 64 76 61 70 69 33 32 2e 6c 69 62 20 64 6e 73  advapi32.lib dns
beb0: 61 70 69 2e 6c 69 62 0a 4c 49 42 44 49 52 20 20  api.lib.LIBDIR  
bec0: 20 20 3d 0a 0a 21 69 66 20 24 28 46 4f 53 53 49    =..!if $(FOSSI
bed0: 4c 5f 44 59 4e 41 4d 49 43 5f 42 55 49 4c 44 29  L_DYNAMIC_BUILD)
bee0: 21 3d 30 0a 54 43 43 20 20 20 20 20 20 20 3d 20  !=0.TCC       = 
bef0: 24 28 54 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f  $(TCC) /DFOSSIL_
bf00: 44 59 4e 41 4d 49 43 5f 42 55 49 4c 44 3d 31 0a  DYNAMIC_BUILD=1.
bf10: 52 43 43 20 20 20 20 20 20 20 3d 20 24 28 52 43  RCC       = $(RC
bf20: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 44 59 4e 41  C) /DFOSSIL_DYNA
bf30: 4d 49 43 5f 42 55 49 4c 44 3d 31 0a 21 65 6e 64  MIC_BUILD=1.!end
bf40: 69 66 0a 0a 21 69 66 20 24 28 46 4f 53 53 49 4c  if..!if $(FOSSIL
bf50: 5f 45 4e 41 42 4c 45 5f 4d 49 4e 49 5a 29 3d 3d  _ENABLE_MINIZ)==
bf60: 30 0a 4c 49 42 53 20 20 20 20 20 20 3d 20 24 28  0.LIBS      = $(
bf70: 4c 49 42 53 29 20 24 28 5a 4c 49 42 29 0a 4c 49  LIBS) $(ZLIB).LI
bf80: 42 44 49 52 20 20 20 20 3d 20 24 28 4c 49 42 44  BDIR    = $(LIBD
bf90: 49 52 29 20 2f 4c 49 42 50 41 54 48 3a 22 24 28  IR) /LIBPATH:"$(
bfa0: 5a 4c 49 42 44 49 52 29 22 0a 21 65 6e 64 69 66  ZLIBDIR)".!endif
bfb0: 0a 0a 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 45  ..!if $(FOSSIL_E
bfc0: 4e 41 42 4c 45 5f 4d 49 4e 49 5a 29 21 3d 30 0a  NABLE_MINIZ)!=0.
bfd0: 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 54 43  TCC       = $(TC
bfe0: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42  C) /DFOSSIL_ENAB
bff0: 4c 45 5f 4d 49 4e 49 5a 3d 31 0a 52 43 43 20 20  LE_MINIZ=1.RCC  
c000: 20 20 20 20 20 3d 20 24 28 52 43 43 29 20 2f 44       = $(RCC) /D
c010: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49  FOSSIL_ENABLE_MI
c020: 4e 49 5a 3d 31 0a 21 65 6e 64 69 66 0a 0a 21 69  NIZ=1.!endif..!i
c030: 66 20 24 28 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  f $(FOSSIL_ENABL
c040: 45 5f 4a 53 4f 4e 29 21 3d 30 0a 54 43 43 20 20  E_JSON)!=0.TCC  
c050: 20 20 20 20 20 3d 20 24 28 54 43 43 29 20 2f 44       = $(TCC) /D
c060: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4a 53  FOSSIL_ENABLE_JS
c070: 4f 4e 3d 31 0a 52 43 43 20 20 20 20 20 20 20 3d  ON=1.RCC       =
c080: 20 24 28 52 43 43 29 20 2f 44 46 4f 53 53 49 4c   $(RCC) /DFOSSIL
c090: 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 3d 31 0a 21  _ENABLE_JSON=1.!
c0a0: 65 6e 64 69 66 0a 0a 21 69 66 20 24 28 46 4f 53  endif..!if $(FOS
c0b0: 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 29 21  SIL_ENABLE_SSL)!
c0c0: 3d 30 0a 54 43 43 20 20 20 20 20 20 20 3d 20 24  =0.TCC       = $
c0d0: 28 54 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45  (TCC) /DFOSSIL_E
c0e0: 4e 41 42 4c 45 5f 53 53 4c 3d 31 0a 52 43 43 20  NABLE_SSL=1.RCC 
c0f0: 20 20 20 20 20 20 3d 20 24 28 52 43 43 29 20 2f        = $(RCC) /
c100: 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53  DFOSSIL_ENABLE_S
c110: 53 4c 3d 31 0a 4c 49 42 53 20 20 20 20 20 20 3d  SL=1.LIBS      =
c120: 20 24 28 4c 49 42 53 29 20 24 28 53 53 4c 4c 49   $(LIBS) $(SSLLI
c130: 42 29 0a 4c 49 42 44 49 52 20 20 20 20 3d 20 24  B).LIBDIR    = $
c140: 28 4c 49 42 44 49 52 29 20 2f 4c 49 42 50 41 54  (LIBDIR) /LIBPAT
c150: 48 3a 22 24 28 53 53 4c 4c 49 42 44 49 52 29 22  H:"$(SSLLIBDIR)"
c160: 0a 21 65 6e 64 69 66 0a 0a 21 69 66 20 24 28 46  .!endif..!if $(F
c170: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 45 58 45  OSSIL_ENABLE_EXE
c180: 43 5f 52 45 4c 5f 50 41 54 48 53 29 21 3d 30 0a  C_REL_PATHS)!=0.
c190: 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 54 43  TCC       = $(TC
c1a0: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42  C) /DFOSSIL_ENAB
c1b0: 4c 45 5f 45 58 45 43 5f 52 45 4c 5f 50 41 54 48  LE_EXEC_REL_PATH
c1c0: 53 3d 31 0a 52 43 43 20 20 20 20 20 20 20 3d 20  S=1.RCC       = 
c1d0: 24 28 52 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f  $(RCC) /DFOSSIL_
c1e0: 45 4e 41 42 4c 45 5f 45 58 45 43 5f 52 45 4c 5f  ENABLE_EXEC_REL_
c1f0: 50 41 54 48 53 3d 31 0a 21 65 6e 64 69 66 0a 0a  PATHS=1.!endif..
c200: 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 45 4e 41  !if $(FOSSIL_ENA
c210: 42 4c 45 5f 54 48 31 5f 44 4f 43 53 29 21 3d 30  BLE_TH1_DOCS)!=0
c220: 0a 54 43 43 20 20 20 20 20 20 20 3d 20 24 28 54  .TCC       = $(T
c230: 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41  CC) /DFOSSIL_ENA
c240: 42 4c 45 5f 54 48 31 5f 44 4f 43 53 3d 31 0a 52  BLE_TH1_DOCS=1.R
c250: 43 43 20 20 20 20 20 20 20 3d 20 24 28 52 43 43  CC       = $(RCC
c260: 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42 4c  ) /DFOSSIL_ENABL
c270: 45 5f 54 48 31 5f 44 4f 43 53 3d 31 0a 21 65 6e  E_TH1_DOCS=1.!en
c280: 64 69 66 0a 0a 21 69 66 20 24 28 46 4f 53 53 49  dif..!if $(FOSSI
c290: 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 48 4f 4f  L_ENABLE_TH1_HOO
c2a0: 4b 53 29 21 3d 30 0a 54 43 43 20 20 20 20 20 20  KS)!=0.TCC      
c2b0: 20 3d 20 24 28 54 43 43 29 20 2f 44 46 4f 53 53   = $(TCC) /DFOSS
c2c0: 49 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 48 4f  IL_ENABLE_TH1_HO
c2d0: 4f 4b 53 3d 31 0a 52 43 43 20 20 20 20 20 20 20  OKS=1.RCC       
c2e0: 3d 20 24 28 52 43 43 29 20 2f 44 46 4f 53 53 49  = $(RCC) /DFOSSI
c2f0: 4c 5f 45 4e 41 42 4c 45 5f 54 48 31 5f 48 4f 4f  L_ENABLE_TH1_HOO
c300: 4b 53 3d 31 0a 21 65 6e 64 69 66 0a 0a 21 69 66  KS=1.!endif..!if
c310: 20 24 28 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45   $(FOSSIL_ENABLE
c320: 5f 54 43 4c 29 21 3d 30 0a 54 43 43 20 20 20 20  _TCL)!=0.TCC    
c330: 20 20 20 3d 20 24 28 54 43 43 29 20 2f 44 46 4f     = $(TCC) /DFO
c340: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 3d  SSIL_ENABLE_TCL=
c350: 31 0a 52 43 43 20 20 20 20 20 20 20 3d 20 24 28  1.RCC       = $(
c360: 52 43 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e  RCC) /DFOSSIL_EN
c370: 41 42 4c 45 5f 54 43 4c 3d 31 0a 54 43 43 20 20  ABLE_TCL=1.TCC  
c380: 20 20 20 20 20 3d 20 24 28 54 43 43 29 20 2f 44       = $(TCC) /D
c390: 46 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43  FOSSIL_ENABLE_TC
c3a0: 4c 5f 53 54 55 42 53 3d 31 0a 52 43 43 20 20 20  L_STUBS=1.RCC   
c3b0: 20 20 20 20 3d 20 24 28 52 43 43 29 20 2f 44 46      = $(RCC) /DF
c3c0: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c  OSSIL_ENABLE_TCL
c3d0: 5f 53 54 55 42 53 3d 31 0a 54 43 43 20 20 20 20  _STUBS=1.TCC    
c3e0: 20 20 20 3d 20 24 28 54 43 43 29 20 2f 44 46 4f     = $(TCC) /DFO
c3f0: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 54 43 4c 5f  SSIL_ENABLE_TCL_
c400: 50 52 49 56 41 54 45 5f 53 54 55 42 53 3d 31 0a  PRIVATE_STUBS=1.
c410: 52 43 43 20 20 20 20 20 20 20 3d 20 24 28 52 43  RCC       = $(RC
c420: 43 29 20 2f 44 46 4f 53 53 49 4c 5f 45 4e 41 42  C) /DFOSSIL_ENAB
c430: 4c 45 5f 54 43 4c 5f 50 52 49 56 41 54 45 5f 53  LE_TCL_PRIVATE_S
c440: 54 55 42 53 3d 31 0a 54 43 43 20 20 20 20 20 20  TUBS=1.TCC      
c450: 20 3d 20 24 28 54 43 43 29 20 2f 44 55 53 45 5f   = $(TCC) /DUSE_
c460: 54 43 4c 5f 53 54 55 42 53 3d 31 0a 52 43 43 20  TCL_STUBS=1.RCC 
c470: 20 20 20 20 20 20 3d 20 24 28 52 43 43 29 20 2f        = $(RCC) /
c480: 44 55 53 45 5f 54 43 4c 5f 53 54 55 42 53 3d 31  DUSE_TCL_STUBS=1
c490: 0a 21 65 6e 64 69 66 0a 0a 21 69 66 20 24 28 55  .!endif..!if $(U
c4a0: 53 45 5f 53 45 45 29 21 3d 30 0a 54 43 43 20 20  SE_SEE)!=0.TCC  
c4b0: 20 20 20 20 20 3d 20 24 28 54 43 43 29 20 2f 44       = $(TCC) /D
c4c0: 55 53 45 5f 53 45 45 3d 31 0a 52 43 43 20 20 20  USE_SEE=1.RCC   
c4d0: 20 20 20 20 3d 20 24 28 52 43 43 29 20 2f 44 55      = $(RCC) /DU
c4e0: 53 45 5f 53 45 45 3d 31 0a 21 65 6e 64 69 66 0a  SE_SEE=1.!endif.
c4f0: 7d 0a 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5b  }.regsub -all {[
c500: 2d 5d 44 7d 20 5b 6a 6f 69 6e 20 24 53 51 4c 49  -]D} [join $SQLI
c510: 54 45 5f 57 49 4e 33 32 5f 4f 50 54 49 4f 4e 53  TE_WIN32_OPTIONS
c520: 20 7b 20 7d 5d 20 7b 2f 44 7d 20 4d 53 43 5f 53   { }] {/D} MSC_S
c530: 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53 0a 73 65  QLITE_OPTIONS.se
c540: 74 20 6a 20 22 20 5c 5c 5c 6e 20 20 20 20 20 20  t j " \\\n      
c550: 20 20 20 20 20 20 20 20 20 20 20 22 0a 77 72 69             ".wri
c560: 74 65 6c 6e 20 22 53 51 4c 49 54 45 5f 4f 50 54  teln "SQLITE_OPT
c570: 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e 20 24 4d 53  IONS = [join $MS
c580: 43 5f 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  C_SQLITE_OPTIONS
c590: 20 24 6a 5d 5c 6e 22 0a 0a 72 65 67 73 75 62 20   $j]\n"..regsub 
c5a0: 2d 61 6c 6c 20 7b 5b 2d 5d 44 7d 20 5b 6a 6f 69  -all {[-]D} [joi
c5b0: 6e 20 24 53 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f  n $SHELL_WIN32_O
c5c0: 50 54 49 4f 4e 53 20 7b 20 7d 5d 20 7b 2f 44 7d  PTIONS { }] {/D}
c5d0: 20 4d 53 43 5f 53 48 45 4c 4c 5f 4f 50 54 49 4f   MSC_SHELL_OPTIO
c5e0: 4e 53 0a 73 65 74 20 6a 20 22 20 5c 5c 5c 6e 20  NS.set j " \\\n 
c5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22                 "
c600: 0a 77 72 69 74 65 6c 6e 20 22 53 48 45 4c 4c 5f  .writeln "SHELL_
c610: 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69 6e 20  OPTIONS = [join 
c620: 24 4d 53 43 5f 53 48 45 4c 4c 5f 4f 50 54 49 4f  $MSC_SHELL_OPTIO
c630: 4e 53 20 24 6a 5d 5c 6e 22 0a 0a 72 65 67 73 75  NS $j]\n"..regsu
c640: 62 20 2d 61 6c 6c 20 7b 5b 2d 5d 44 7d 20 5b 6a  b -all {[-]D} [j
c650: 6f 69 6e 20 24 4d 49 4e 49 5a 5f 57 49 4e 33 32  oin $MINIZ_WIN32
c660: 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d 5d 20 7b 2f  _OPTIONS { }] {/
c670: 44 7d 20 4d 53 43 5f 4d 49 4e 49 5a 5f 4f 50 54  D} MSC_MINIZ_OPT
c680: 49 4f 4e 53 0a 73 65 74 20 6a 20 22 20 5c 5c 5c  IONS.set j " \\\
c690: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n               
c6a0: 20 22 0a 77 72 69 74 65 6c 6e 20 22 4d 49 4e 49   ".writeln "MINI
c6b0: 5a 5f 4f 50 54 49 4f 4e 53 20 3d 20 5b 6a 6f 69  Z_OPTIONS = [joi
c6c0: 6e 20 24 4d 53 43 5f 4d 49 4e 49 5a 5f 4f 50 54  n $MSC_MINIZ_OPT
c6d0: 49 4f 4e 53 20 24 6a 5d 5c 6e 22 0a 0a 77 72 69  IONS $j]\n"..wri
c6e0: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
c6f0: 22 53 52 43 20 20 20 3d 20 22 0a 73 65 74 20 69  "SRC   = ".set i
c700: 20 30 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 73   0.foreach s [ls
c710: 6f 72 74 20 24 73 72 63 5d 20 7b 0a 20 20 69 66  ort $src] {.  if
c720: 20 7b 24 69 20 3e 20 30 7d 20 7b 0a 20 20 20 20   {$i > 0} {.    
c730: 77 72 69 74 65 6c 6e 20 22 20 5c 5c 22 0a 20 20  writeln " \\".  
c740: 20 20 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e 65 77    writeln -nonew
c750: 6c 69 6e 65 20 22 20 20 20 20 20 20 20 20 22 0a  line "        ".
c760: 20 20 7d 0a 20 20 77 72 69 74 65 6c 6e 20 2d 6e    }.  writeln -n
c770: 6f 6e 65 77 6c 69 6e 65 20 22 5c 22 5c 24 28 4f  onewline "\"\$(O
c780: 58 29 5c 5c 24 7b 73 7d 5f 2e 63 5c 22 22 3b 20  X)\\${s}_.c\""; 
c790: 69 6e 63 72 20 69 0a 7d 0a 77 72 69 74 65 6c 6e  incr i.}.writeln
c7a0: 20 22 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 2d 6e   "\n".writeln -n
c7b0: 6f 6e 65 77 6c 69 6e 65 20 22 45 58 54 52 41 5f  onewline "EXTRA_
c7c0: 46 49 4c 45 53 20 20 20 3d 20 22 0a 73 65 74 20  FILES   = ".set 
c7d0: 69 20 30 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c  i 0.foreach s [l
c7e0: 73 6f 72 74 20 24 65 78 74 72 61 5f 66 69 6c 65  sort $extra_file
c7f0: 73 5d 20 7b 0a 20 20 69 66 20 7b 24 69 20 3e 20  s] {.  if {$i > 
c800: 30 7d 20 7b 0a 20 20 20 20 77 72 69 74 65 6c 6e  0} {.    writeln
c810: 20 22 20 5c 5c 22 0a 20 20 20 20 77 72 69 74 65   " \\".    write
c820: 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 20  ln -nonewline " 
c830: 20 20 20 20 20 20 20 22 0a 20 20 7d 0a 20 20 73         ".  }.  s
c840: 65 74 20 73 20 5b 72 65 67 73 75 62 20 2d 61 6c  et s [regsub -al
c850: 6c 20 2f 20 24 73 20 5c 5c 5d 0a 20 20 77 72 69  l / $s \\].  wri
c860: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
c870: 22 5c 22 5c 24 28 53 52 43 44 49 52 29 5c 5c 24  "\"\$(SRCDIR)\\$
c880: 7b 73 7d 5c 22 22 3b 20 69 6e 63 72 20 69 0a 7d  {s}\""; incr i.}
c890: 0a 77 72 69 74 65 6c 6e 20 22 5c 6e 22 0a 73 65  .writeln "\n".se
c8a0: 74 20 41 64 64 69 74 69 6f 6e 61 6c 4f 62 6a 20  t AdditionalObj 
c8b0: 5b 6c 69 73 74 20 73 68 65 6c 6c 20 73 71 6c 69  [list shell sqli
c8c0: 74 65 33 20 74 68 20 74 68 5f 6c 61 6e 67 20 74  te3 th th_lang t
c8d0: 68 5f 74 63 6c 20 63 73 6f 6e 5f 61 6d 61 6c 67  h_tcl cson_amalg
c8e0: 61 6d 61 74 69 6f 6e 5d 0a 77 72 69 74 65 6c 6e  amation].writeln
c8f0: 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 4f 42 4a   -nonewline "OBJ
c900: 20 20 20 3d 20 22 0a 73 65 74 20 69 20 30 0a 66     = ".set i 0.f
c910: 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20  oreach s [lsort 
c920: 5b 63 6f 6e 63 61 74 20 24 73 72 63 20 24 41 64  [concat $src $Ad
c930: 64 69 74 69 6f 6e 61 6c 4f 62 6a 5d 5d 20 7b 0a  ditionalObj]] {.
c940: 20 20 69 66 20 7b 24 69 20 3e 20 30 7d 20 7b 0a    if {$i > 0} {.
c950: 20 20 20 20 77 72 69 74 65 6c 6e 20 22 20 5c 5c      writeln " \\
c960: 22 0a 20 20 20 20 77 72 69 74 65 6c 6e 20 2d 6e  ".    writeln -n
c970: 6f 6e 65 77 6c 69 6e 65 20 22 20 20 20 20 20 20  onewline "      
c980: 20 20 22 0a 20 20 7d 0a 20 20 77 72 69 74 65 6c    ".  }.  writel
c990: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 5c 22  n -nonewline "\"
c9a0: 5c 24 28 4f 58 29 5c 5c 24 73 5c 24 4f 5c 22 22  \$(OX)\\$s\$O\""
c9b0: 3b 20 69 6e 63 72 20 69 0a 7d 0a 69 66 20 7b 24  ; incr i.}.if {$
c9c0: 69 20 3e 20 30 7d 20 7b 0a 20 20 77 72 69 74 65  i > 0} {.  write
c9d0: 6c 6e 20 22 20 5c 5c 22 0a 7d 0a 77 72 69 74 65  ln " \\".}.write
c9e0: 6c 6e 20 22 21 69 66 20 5c 24 28 46 4f 53 53 49  ln "!if \$(FOSSI
c9f0: 4c 5f 45 4e 41 42 4c 45 5f 4d 49 4e 49 5a 29 21  L_ENABLE_MINIZ)!
ca00: 3d 30 22 0a 77 72 69 74 65 6c 6e 20 2d 6e 6f 6e  =0".writeln -non
ca10: 65 77 6c 69 6e 65 20 22 20 20 20 20 20 20 20 20  ewline "        
ca20: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 22 5c 24 28  ".writeln "\"\$(
ca30: 4f 58 29 5c 5c 6d 69 6e 69 7a 5c 24 4f 5c 22 20  OX)\\miniz\$O\" 
ca40: 5c 5c 22 3b 20 69 6e 63 72 20 69 0a 77 72 69 74  \\"; incr i.writ
ca50: 65 6c 6e 20 22 21 65 6e 64 69 66 22 0a 77 72 69  eln "!endif".wri
ca60: 74 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20  teln -nonewline 
ca70: 22 20 20 20 20 20 20 20 20 5c 22 5c 24 28 4f 58  "        \"\$(OX
ca80: 29 5c 5c 66 6f 73 73 69 6c 2e 72 65 73 5c 22 5c  )\\fossil.res\"\
ca90: 6e 5c 6e 22 0a 77 72 69 74 65 6c 6e 20 5b 73 74  n\n".writeln [st
caa0: 72 69 6e 67 20 6d 61 70 20 5b 6c 69 73 74 20 3c  ring map [list <
cab0: 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e 20 5c  <<NEXT_LINE>>> \
cac0: 5c 5d 20 7b 0a 21 69 66 6e 64 65 66 20 42 41 53  \] {.!ifndef BAS
cad0: 45 41 50 50 4e 41 4d 45 0a 42 41 53 45 41 50 50  EAPPNAME.BASEAPP
cae0: 4e 41 4d 45 20 3d 20 66 6f 73 73 69 6c 0a 21 65  NAME = fossil.!e
caf0: 6e 64 69 66 0a 0a 41 50 50 4e 41 4d 45 20 20 20  ndif..APPNAME   
cb00: 20 20 3d 20 24 28 4f 58 29 5c 24 28 42 41 53 45    = $(OX)\$(BASE
cb10: 41 50 50 4e 41 4d 45 29 24 28 45 29 0a 50 44 42  APPNAME)$(E).PDB
cb20: 4e 41 4d 45 20 20 20 20 20 3d 20 24 28 4f 58 29  NAME     = $(OX)
cb30: 5c 24 28 42 41 53 45 41 50 50 4e 41 4d 45 29 24  \$(BASEAPPNAME)$
cb40: 28 50 29 0a 41 50 50 54 41 52 47 45 54 53 20 20  (P).APPTARGETS  
cb50: 3d 0a 0a 61 6c 6c 3a 20 22 24 28 4f 58 29 22 20  =..all: "$(OX)" 
cb60: 22 24 28 41 50 50 4e 41 4d 45 29 22 0a 0a 24 28  "$(APPNAME)"..$(
cb70: 42 41 53 45 41 50 50 4e 41 4d 45 29 3a 20 22 24  BASEAPPNAME): "$
cb80: 28 41 50 50 4e 41 4d 45 29 22 0a 0a 24 28 42 41  (APPNAME)"..$(BA
cb90: 53 45 41 50 50 4e 41 4d 45 29 24 28 45 29 3a 20  SEAPPNAME)$(E): 
cba0: 22 24 28 41 50 50 4e 41 4d 45 29 22 0a 0a 69 6e  "$(APPNAME)"..in
cbb0: 73 74 61 6c 6c 3a 20 22 24 28 41 50 50 4e 41 4d  stall: "$(APPNAM
cbc0: 45 29 22 0a 09 65 63 68 6f 20 46 20 7c 20 78 63  E)"..echo F | xc
cbd0: 6f 70 79 20 2f 59 20 22 24 28 41 50 50 4e 41 4d  opy /Y "$(APPNAM
cbe0: 45 29 22 20 22 24 28 49 4e 53 54 41 4c 4c 44 49  E)" "$(INSTALLDI
cbf0: 52 29 22 5c 2a 0a 21 69 66 20 24 28 44 45 42 55  R)"\*.!if $(DEBU
cc00: 47 29 21 3d 30 0a 09 65 63 68 6f 20 46 20 7c 20  G)!=0..echo F | 
cc10: 78 63 6f 70 79 20 2f 59 20 22 24 28 50 44 42 4e  xcopy /Y "$(PDBN
cc20: 41 4d 45 29 22 20 22 24 28 49 4e 53 54 41 4c 4c  AME)" "$(INSTALL
cc30: 44 49 52 29 22 5c 2a 0a 21 65 6e 64 69 66 0a 0a  DIR)"\*.!endif..
cc40: 24 28 4f 58 29 3a 0a 09 40 2d 6d 6b 64 69 72 20  $(OX):..@-mkdir 
cc50: 24 40 0a 0a 7a 6c 69 62 3a 0a 09 40 65 63 68 6f  $@..zlib:..@echo
cc60: 20 42 75 69 6c 64 69 6e 67 20 7a 6c 69 62 20 66   Building zlib f
cc70: 72 6f 6d 20 22 24 28 5a 4c 49 42 44 49 52 29 22  rom "$(ZLIBDIR)"
cc80: 2e 2e 2e 0a 21 69 66 20 24 28 46 4f 53 53 49 4c  ....!if $(FOSSIL
cc90: 5f 45 4e 41 42 4c 45 5f 57 49 4e 58 50 29 21 3d  _ENABLE_WINXP)!=
cca0: 30 0a 09 40 70 75 73 68 64 20 22 24 28 5a 4c 49  0..@pushd "$(ZLI
ccb0: 42 44 49 52 29 22 20 26 26 20 24 28 4d 41 4b 45  BDIR)" && $(MAKE
ccc0: 29 20 2f 66 20 77 69 6e 33 32 5c 4d 61 6b 65 66  ) /f win32\Makef
ccd0: 69 6c 65 2e 6d 73 63 20 24 28 5a 4c 49 42 29 20  ile.msc $(ZLIB) 
cce0: 22 43 43 3d 63 6c 20 24 28 58 50 43 46 4c 41 47  "CC=cl $(XPCFLAG
ccf0: 53 29 22 20 22 4c 44 3d 6c 69 6e 6b 20 24 28 58  S)" "LD=link $(X
cd00: 50 4c 44 46 4c 41 47 53 29 22 20 26 26 20 70 6f  PLDFLAGS)" && po
cd10: 70 64 0a 21 65 6c 73 65 0a 09 40 70 75 73 68 64  pd.!else..@pushd
cd20: 20 22 24 28 5a 4c 49 42 44 49 52 29 22 20 26 26   "$(ZLIBDIR)" &&
cd30: 20 24 28 4d 41 4b 45 29 20 2f 66 20 77 69 6e 33   $(MAKE) /f win3
cd40: 32 5c 4d 61 6b 65 66 69 6c 65 2e 6d 73 63 20 24  2\Makefile.msc $
cd50: 28 5a 4c 49 42 29 20 26 26 20 70 6f 70 64 0a 21  (ZLIB) && popd.!
cd60: 65 6e 64 69 66 0a 0a 63 6c 65 61 6e 2d 7a 6c 69  endif..clean-zli
cd70: 62 3a 0a 09 40 70 75 73 68 64 20 22 24 28 5a 4c  b:..@pushd "$(ZL
cd80: 49 42 44 49 52 29 22 20 26 26 20 24 28 4d 41 4b  IBDIR)" && $(MAK
cd90: 45 29 20 2f 66 20 77 69 6e 33 32 5c 4d 61 6b 65  E) /f win32\Make
cda0: 66 69 6c 65 2e 6d 73 63 20 63 6c 65 61 6e 20 26  file.msc clean &
cdb0: 26 20 70 6f 70 64 0a 0a 21 69 66 20 24 28 46 4f  & popd..!if $(FO
cdc0: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 53 53 4c 29  SSIL_ENABLE_SSL)
cdd0: 21 3d 30 0a 6f 70 65 6e 73 73 6c 3a 0a 09 40 65  !=0.openssl:..@e
cde0: 63 68 6f 20 42 75 69 6c 64 69 6e 67 20 4f 70 65  cho Building Ope
cdf0: 6e 53 53 4c 20 66 72 6f 6d 20 22 24 28 53 53 4c  nSSL from "$(SSL
ce00: 44 49 52 29 22 2e 2e 2e 0a 21 69 66 64 65 66 20  DIR)"....!ifdef 
ce10: 50 45 52 4c 44 49 52 0a 09 40 70 75 73 68 64 20  PERLDIR..@pushd 
ce20: 22 24 28 53 53 4c 44 49 52 29 22 20 26 26 20 22  "$(SSLDIR)" && "
ce30: 24 28 50 45 52 4c 44 49 52 29 5c 24 28 50 45 52  $(PERLDIR)\$(PER
ce40: 4c 29 22 20 43 6f 6e 66 69 67 75 72 65 20 24 28  L)" Configure $(
ce50: 53 53 4c 43 4f 4e 46 49 47 29 20 26 26 20 70 6f  SSLCONFIG) && po
ce60: 70 64 0a 21 65 6c 73 65 0a 09 40 70 75 73 68 64  pd.!else..@pushd
ce70: 20 22 24 28 53 53 4c 44 49 52 29 22 20 26 26 20   "$(SSLDIR)" && 
ce80: 22 24 28 50 45 52 4c 29 22 20 43 6f 6e 66 69 67  "$(PERL)" Config
ce90: 75 72 65 20 24 28 53 53 4c 43 4f 4e 46 49 47 29  ure $(SSLCONFIG)
cea0: 20 26 26 20 70 6f 70 64 0a 21 65 6e 64 69 66 0a   && popd.!endif.
ceb0: 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 45 4e 41  !if $(FOSSIL_ENA
cec0: 42 4c 45 5f 57 49 4e 58 50 29 21 3d 30 0a 09 40  BLE_WINXP)!=0..@
ced0: 70 75 73 68 64 20 22 24 28 53 53 4c 44 49 52 29  pushd "$(SSLDIR)
cee0: 22 20 26 26 20 24 28 4d 41 4b 45 29 20 22 43 43  " && $(MAKE) "CC
cef0: 3d 63 6c 20 24 28 58 50 43 46 4c 41 47 53 29 22  =cl $(XPCFLAGS)"
cf00: 20 22 4c 46 4c 41 47 53 3d 24 28 58 50 4c 44 46   "LFLAGS=$(XPLDF
cf10: 4c 41 47 53 29 22 20 26 26 20 70 6f 70 64 0a 21  LAGS)" && popd.!
cf20: 65 6c 73 65 0a 09 40 70 75 73 68 64 20 22 24 28  else..@pushd "$(
cf30: 53 53 4c 44 49 52 29 22 20 26 26 20 24 28 4d 41  SSLDIR)" && $(MA
cf40: 4b 45 29 20 26 26 20 70 6f 70 64 0a 21 65 6e 64  KE) && popd.!end
cf50: 69 66 0a 0a 63 6c 65 61 6e 2d 6f 70 65 6e 73 73  if..clean-openss
cf60: 6c 3a 0a 09 40 70 75 73 68 64 20 22 24 28 53 53  l:..@pushd "$(SS
cf70: 4c 44 49 52 29 22 20 26 26 20 24 28 4d 41 4b 45  LDIR)" && $(MAKE
cf80: 29 20 63 6c 65 61 6e 20 26 26 20 70 6f 70 64 0a  ) clean && popd.
cf90: 21 65 6e 64 69 66 0a 0a 21 69 66 20 24 28 46 4f  !endif..!if $(FO
cfa0: 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49 4e 49  SSIL_ENABLE_MINI
cfb0: 5a 29 3d 3d 30 0a 21 69 66 20 24 28 46 4f 53 53  Z)==0.!if $(FOSS
cfc0: 49 4c 5f 42 55 49 4c 44 5f 5a 4c 49 42 29 21 3d  IL_BUILD_ZLIB)!=
cfd0: 30 0a 41 50 50 54 41 52 47 45 54 53 20 3d 20 24  0.APPTARGETS = $
cfe0: 28 41 50 50 54 41 52 47 45 54 53 29 20 7a 6c 69  (APPTARGETS) zli
cff0: 62 0a 21 65 6e 64 69 66 0a 21 65 6e 64 69 66 0a  b.!endif.!endif.
d000: 0a 21 69 66 20 24 28 46 4f 53 53 49 4c 5f 45 4e  .!if $(FOSSIL_EN
d010: 41 42 4c 45 5f 53 53 4c 29 21 3d 30 0a 21 69 66  ABLE_SSL)!=0.!if
d020: 20 24 28 46 4f 53 53 49 4c 5f 42 55 49 4c 44 5f   $(FOSSIL_BUILD_
d030: 53 53 4c 29 21 3d 30 0a 41 50 50 54 41 52 47 45  SSL)!=0.APPTARGE
d040: 54 53 20 3d 20 24 28 41 50 50 54 41 52 47 45 54  TS = $(APPTARGET
d050: 53 29 20 6f 70 65 6e 73 73 6c 0a 21 65 6e 64 69  S) openssl.!endi
d060: 66 0a 21 65 6e 64 69 66 0a 0a 22 24 28 41 50 50  f.!endif.."$(APP
d070: 4e 41 4d 45 29 22 20 3a 20 24 28 41 50 50 54 41  NAME)" : $(APPTA
d080: 52 47 45 54 53 29 20 22 24 28 4f 42 4a 44 49 52  RGETS) "$(OBJDIR
d090: 29 5c 74 72 61 6e 73 6c 61 74 65 24 45 22 20 22  )\translate$E" "
d0a0: 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 69 6e 64 65  $(OBJDIR)\mkinde
d0b0: 78 24 45 22 20 22 24 28 4f 42 4a 44 49 52 29 5c  x$E" "$(OBJDIR)\
d0c0: 63 6f 64 65 63 68 65 63 6b 31 24 45 22 20 22 24  codecheck1$E" "$
d0d0: 28 4f 58 29 5c 68 65 61 64 65 72 73 22 20 24 28  (OX)\headers" $(
d0e0: 4f 42 4a 29 20 22 24 28 4f 58 29 5c 6c 69 6e 6b  OBJ) "$(OX)\link
d0f0: 6f 70 74 73 22 0a 09 22 24 28 4f 42 4a 44 49 52  opts".."$(OBJDIR
d100: 29 5c 63 6f 64 65 63 68 65 63 6b 31 24 45 22 20  )\codecheck1$E" 
d110: 24 28 53 52 43 29 0a 09 6c 69 6e 6b 20 24 28 4c  $(SRC)..link $(L
d120: 44 46 4c 41 47 53 29 20 2f 4f 55 54 3a 24 40 20  DFLAGS) /OUT:$@ 
d130: 2f 50 44 42 3a 24 28 40 44 29 5c 20 24 28 4c 49  /PDB:$(@D)\ $(LI
d140: 42 44 49 52 29 20 57 73 65 74 61 72 67 76 2e 6f  BDIR) Wsetargv.o
d150: 62 6a 20 22 24 28 4f 58 29 5c 66 6f 73 73 69 6c  bj "$(OX)\fossil
d160: 2e 72 65 73 22 20 40 22 24 28 4f 58 29 5c 6c 69  .res" @"$(OX)\li
d170: 6e 6b 6f 70 74 73 22 0a 09 69 66 20 65 78 69 73  nkopts"..if exis
d180: 74 20 22 24 28 42 29 5c 77 69 6e 5c 66 6f 73 73  t "$(B)\win\foss
d190: 69 6c 2e 65 78 65 2e 6d 61 6e 69 66 65 73 74 22  il.exe.manifest"
d1a0: 20 3c 3c 3c 4e 45 58 54 5f 4c 49 4e 45 3e 3e 3e   <<<NEXT_LINE>>>
d1b0: 0a 09 09 24 28 4d 54 43 29 20 2d 6e 6f 6c 6f 67  ...$(MTC) -nolog
d1c0: 6f 20 2d 6d 61 6e 69 66 65 73 74 20 22 24 28 42  o -manifest "$(B
d1d0: 29 5c 77 69 6e 5c 66 6f 73 73 69 6c 2e 65 78 65  )\win\fossil.exe
d1e0: 2e 6d 61 6e 69 66 65 73 74 22 20 2d 6f 75 74 70  .manifest" -outp
d1f0: 75 74 72 65 73 6f 75 72 63 65 3a 24 40 3b 31 0a  utresource:$@;1.
d200: 0a 22 24 28 4f 58 29 5c 6c 69 6e 6b 6f 70 74 73  ."$(OX)\linkopts
d210: 22 3a 20 22 24 28 42 29 5c 77 69 6e 5c 4d 61 6b  ": "$(B)\win\Mak
d220: 65 66 69 6c 65 2e 6d 73 63 22 7d 5d 0a 73 65 74  efile.msc"}].set
d230: 20 72 65 64 69 72 20 7b 3e 7d 0a 66 6f 72 65 61   redir {>}.forea
d240: 63 68 20 73 20 5b 6c 73 6f 72 74 20 5b 63 6f 6e  ch s [lsort [con
d250: 63 61 74 20 24 73 72 63 20 24 41 64 64 69 74 69  cat $src $Additi
d260: 6f 6e 61 6c 4f 62 6a 5d 5d 20 7b 0a 20 20 77 72  onalObj]] {.  wr
d270: 69 74 65 6c 6e 20 22 5c 74 65 63 68 6f 20 5c 22  iteln "\techo \"
d280: 5c 24 28 4f 58 29 5c 5c 24 73 2e 6f 62 6a 5c 22  \$(OX)\\$s.obj\"
d290: 20 24 72 65 64 69 72 20 5c 24 40 22 0a 20 20 73   $redir \$@".  s
d2a0: 65 74 20 72 65 64 69 72 20 7b 3e 3e 7d 0a 7d 0a  et redir {>>}.}.
d2b0: 73 65 74 20 72 65 64 69 72 20 7b 3e 3e 7d 0a 77  set redir {>>}.w
d2c0: 72 69 74 65 6c 6e 20 22 21 69 66 20 5c 24 28 46  riteln "!if \$(F
d2d0: 4f 53 53 49 4c 5f 45 4e 41 42 4c 45 5f 4d 49 4e  OSSIL_ENABLE_MIN
d2e0: 49 5a 29 21 3d 30 22 0a 77 72 69 74 65 6c 6e 20  IZ)!=0".writeln 
d2f0: 22 5c 74 65 63 68 6f 20 5c 22 5c 24 28 4f 58 29  "\techo \"\$(OX)
d300: 5c 5c 6d 69 6e 69 7a 2e 6f 62 6a 5c 22 20 24 72  \\miniz.obj\" $r
d310: 65 64 69 72 20 5c 24 40 22 0a 77 72 69 74 65 6c  edir \$@".writel
d320: 6e 20 22 21 65 6e 64 69 66 22 0a 77 72 69 74 65  n "!endif".write
d330: 6c 6e 20 22 5c 74 65 63 68 6f 20 5c 24 28 4c 49  ln "\techo \$(LI
d340: 42 53 29 20 24 72 65 64 69 72 20 5c 24 40 22 0a  BS) $redir \$@".
d350: 77 72 69 74 65 6c 6e 20 7b 0a 22 24 28 4f 42 4a  writeln {."$(OBJ
d360: 44 49 52 29 5c 74 72 61 6e 73 6c 61 74 65 24 45  DIR)\translate$E
d370: 22 3a 20 22 24 28 53 52 43 44 49 52 29 5c 74 72  ": "$(SRCDIR)\tr
d380: 61 6e 73 6c 61 74 65 2e 63 22 0a 09 24 28 42 43  anslate.c"..$(BC
d390: 43 29 20 2f 46 65 24 40 20 2f 46 6f 24 28 40 44  C) /Fe$@ /Fo$(@D
d3a0: 29 5c 20 2f 46 64 24 28 40 44 29 5c 20 24 2a 2a  )\ /Fd$(@D)\ $**
d3b0: 0a 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6d 61 6b  .."$(OBJDIR)\mak
d3c0: 65 68 65 61 64 65 72 73 24 45 22 3a 20 22 24 28  eheaders$E": "$(
d3d0: 53 52 43 44 49 52 29 5c 6d 61 6b 65 68 65 61 64  SRCDIR)\makehead
d3e0: 65 72 73 2e 63 22 0a 09 24 28 42 43 43 29 20 2f  ers.c"..$(BCC) /
d3f0: 46 65 24 40 20 2f 46 6f 24 28 40 44 29 5c 20 2f  Fe$@ /Fo$(@D)\ /
d400: 46 64 24 28 40 44 29 5c 20 24 2a 2a 0a 0a 22 24  Fd$(@D)\ $**.."$
d410: 28 4f 42 4a 44 49 52 29 5c 6d 6b 69 6e 64 65 78  (OBJDIR)\mkindex
d420: 24 45 22 3a 20 22 24 28 53 52 43 44 49 52 29 5c  $E": "$(SRCDIR)\
d430: 6d 6b 69 6e 64 65 78 2e 63 22 0a 09 24 28 42 43  mkindex.c"..$(BC
d440: 43 29 20 2f 46 65 24 40 20 2f 46 6f 24 28 40 44  C) /Fe$@ /Fo$(@D
d450: 29 5c 20 2f 46 64 24 28 40 44 29 5c 20 24 2a 2a  )\ /Fd$(@D)\ $**
d460: 0a 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 62  .."$(OBJDIR)\mkb
d470: 75 69 6c 74 69 6e 24 45 22 3a 20 22 24 28 53 52  uiltin$E": "$(SR
d480: 43 44 49 52 29 5c 6d 6b 62 75 69 6c 74 69 6e 2e  CDIR)\mkbuiltin.
d490: 63 22 0a 09 24 28 42 43 43 29 20 2f 46 65 24 40  c"..$(BCC) /Fe$@
d4a0: 20 2f 46 6f 24 28 40 44 29 5c 20 2f 46 64 24 28   /Fo$(@D)\ /Fd$(
d4b0: 40 44 29 5c 20 24 2a 2a 0a 0a 22 24 28 4f 42 4a  @D)\ $**.."$(OBJ
d4c0: 44 49 52 29 5c 6d 6b 76 65 72 73 69 6f 6e 24 45  DIR)\mkversion$E
d4d0: 22 3a 20 22 24 28 53 52 43 44 49 52 29 5c 6d 6b  ": "$(SRCDIR)\mk
d4e0: 76 65 72 73 69 6f 6e 2e 63 22 0a 09 24 28 42 43  version.c"..$(BC
d4f0: 43 29 20 2f 46 65 24 40 20 2f 46 6f 24 28 40 44  C) /Fe$@ /Fo$(@D
d500: 29 5c 20 2f 46 64 24 28 40 44 29 5c 20 24 2a 2a  )\ /Fd$(@D)\ $**
d510: 0a 0a 22 24 28 4f 42 4a 44 49 52 29 5c 63 6f 64  .."$(OBJDIR)\cod
d520: 65 63 68 65 63 6b 31 24 45 22 3a 20 22 24 28 53  echeck1$E": "$(S
d530: 52 43 44 49 52 29 5c 63 6f 64 65 63 68 65 63 6b  RCDIR)\codecheck
d540: 31 2e 63 22 0a 09 24 28 42 43 43 29 20 2f 46 65  1.c"..$(BCC) /Fe
d550: 24 40 20 2f 46 6f 24 28 40 44 29 5c 20 2f 46 64  $@ /Fo$(@D)\ /Fd
d560: 24 28 40 44 29 5c 20 24 2a 2a 0a 0a 21 69 66 20  $(@D)\ $**..!if 
d570: 24 28 55 53 45 5f 53 45 45 29 21 3d 30 0a 53 45  $(USE_SEE)!=0.SE
d580: 45 5f 46 4c 41 47 53 20 3d 20 2f 44 53 51 4c 49  E_FLAGS = /DSQLI
d590: 54 45 5f 48 41 53 5f 43 4f 44 45 43 3d 31 20 2f  TE_HAS_CODEC=1 /
d5a0: 44 53 51 4c 49 54 45 5f 53 48 45 4c 4c 5f 44 42  DSQLITE_SHELL_DB
d5b0: 4b 45 59 5f 50 52 4f 43 3d 66 6f 73 73 69 6c 5f  KEY_PROC=fossil_
d5c0: 6b 65 79 0a 53 51 4c 49 54 45 33 5f 53 48 45 4c  key.SQLITE3_SHEL
d5d0: 4c 5f 53 52 43 20 3d 20 24 28 53 52 43 44 49 52  L_SRC = $(SRCDIR
d5e0: 29 5c 73 68 65 6c 6c 2d 73 65 65 2e 63 0a 53 51  )\shell-see.c.SQ
d5f0: 4c 49 54 45 33 5f 53 52 43 20 3d 20 24 28 53 52  LITE3_SRC = $(SR
d600: 43 44 49 52 29 5c 73 71 6c 69 74 65 33 2d 73 65  CDIR)\sqlite3-se
d610: 65 2e 63 0a 21 65 6c 73 65 0a 53 45 45 5f 46 4c  e.c.!else.SEE_FL
d620: 41 47 53 20 3d 0a 53 51 4c 49 54 45 33 5f 53 48  AGS =.SQLITE3_SH
d630: 45 4c 4c 5f 53 52 43 20 3d 20 24 28 53 52 43 44  ELL_SRC = $(SRCD
d640: 49 52 29 5c 73 68 65 6c 6c 2e 63 0a 53 51 4c 49  IR)\shell.c.SQLI
d650: 54 45 33 5f 53 52 43 20 3d 20 24 28 53 52 43 44  TE3_SRC = $(SRCD
d660: 49 52 29 5c 73 71 6c 69 74 65 33 2e 63 0a 21 65  IR)\sqlite3.c.!e
d670: 6e 64 69 66 0a 0a 22 24 28 4f 58 29 5c 73 68 65  ndif.."$(OX)\she
d680: 6c 6c 24 4f 22 20 3a 20 22 24 28 53 51 4c 49 54  ll$O" : "$(SQLIT
d690: 45 33 5f 53 48 45 4c 4c 5f 53 52 43 29 22 20 22  E3_SHELL_SRC)" "
d6a0: 24 28 42 29 5c 77 69 6e 5c 4d 61 6b 65 66 69 6c  $(B)\win\Makefil
d6b0: 65 2e 6d 73 63 22 0a 09 24 28 54 43 43 29 20 2f  e.msc"..$(TCC) /
d6c0: 46 6f 24 40 20 2f 46 64 24 28 40 44 29 5c 20 24  Fo$@ /Fd$(@D)\ $
d6d0: 28 53 48 45 4c 4c 5f 4f 50 54 49 4f 4e 53 29 20  (SHELL_OPTIONS) 
d6e0: 24 28 53 51 4c 49 54 45 5f 4f 50 54 49 4f 4e 53  $(SQLITE_OPTIONS
d6f0: 29 20 24 28 53 48 45 4c 4c 5f 43 46 4c 41 47 53  ) $(SHELL_CFLAGS
d700: 29 20 24 28 53 45 45 5f 46 4c 41 47 53 29 20 2d  ) $(SEE_FLAGS) -
d710: 63 20 22 24 28 53 51 4c 49 54 45 33 5f 53 48 45  c "$(SQLITE3_SHE
d720: 4c 4c 5f 53 52 43 29 22 0a 0a 22 24 28 4f 58 29  LL_SRC)".."$(OX)
d730: 5c 73 71 6c 69 74 65 33 24 4f 22 20 3a 20 22 24  \sqlite3$O" : "$
d740: 28 53 51 4c 49 54 45 33 5f 53 52 43 29 22 20 22  (SQLITE3_SRC)" "
d750: 24 28 42 29 5c 77 69 6e 5c 4d 61 6b 65 66 69 6c  $(B)\win\Makefil
d760: 65 2e 6d 73 63 22 0a 09 24 28 54 43 43 29 20 2f  e.msc"..$(TCC) /
d770: 46 6f 24 40 20 2f 46 64 24 28 40 44 29 5c 20 2d  Fo$@ /Fd$(@D)\ -
d780: 63 20 24 28 53 51 4c 49 54 45 5f 4f 50 54 49 4f  c $(SQLITE_OPTIO
d790: 4e 53 29 20 24 28 53 51 4c 49 54 45 5f 43 46 4c  NS) $(SQLITE_CFL
d7a0: 41 47 53 29 20 24 28 53 45 45 5f 46 4c 41 47 53  AGS) $(SEE_FLAGS
d7b0: 29 20 22 24 28 53 51 4c 49 54 45 33 5f 53 52 43  ) "$(SQLITE3_SRC
d7c0: 29 22 0a 0a 22 24 28 4f 58 29 5c 74 68 24 4f 22  )".."$(OX)\th$O"
d7d0: 20 3a 20 22 24 28 53 52 43 44 49 52 29 5c 74 68   : "$(SRCDIR)\th
d7e0: 2e 63 22 0a 09 24 28 54 43 43 29 20 2f 46 6f 24  .c"..$(TCC) /Fo$
d7f0: 40 20 2f 46 64 24 28 40 44 29 5c 20 2d 63 20 24  @ /Fd$(@D)\ -c $
d800: 2a 2a 0a 0a 22 24 28 4f 58 29 5c 74 68 5f 6c 61  **.."$(OX)\th_la
d810: 6e 67 24 4f 22 20 3a 20 22 24 28 53 52 43 44 49  ng$O" : "$(SRCDI
d820: 52 29 5c 74 68 5f 6c 61 6e 67 2e 63 22 0a 09 24  R)\th_lang.c"..$
d830: 28 54 43 43 29 20 2f 46 6f 24 40 20 2f 46 64 24  (TCC) /Fo$@ /Fd$
d840: 28 40 44 29 5c 20 2d 63 20 24 2a 2a 0a 0a 22 24  (@D)\ -c $**.."$
d850: 28 4f 58 29 5c 74 68 5f 74 63 6c 24 4f 22 20 3a  (OX)\th_tcl$O" :
d860: 20 22 24 28 53 52 43 44 49 52 29 5c 74 68 5f 74   "$(SRCDIR)\th_t
d870: 63 6c 2e 63 22 0a 09 24 28 54 43 43 29 20 2f 46  cl.c"..$(TCC) /F
d880: 6f 24 40 20 2f 46 64 24 28 40 44 29 5c 20 2d 63  o$@ /Fd$(@D)\ -c
d890: 20 24 2a 2a 0a 0a 22 24 28 4f 58 29 5c 6d 69 6e   $**.."$(OX)\min
d8a0: 69 7a 24 4f 22 20 3a 20 22 24 28 53 52 43 44 49  iz$O" : "$(SRCDI
d8b0: 52 29 5c 6d 69 6e 69 7a 2e 63 22 0a 09 24 28 54  R)\miniz.c"..$(T
d8c0: 43 43 29 20 2f 46 6f 24 40 20 2f 46 64 24 28 40  CC) /Fo$@ /Fd$(@
d8d0: 44 29 5c 20 2d 63 20 24 28 4d 49 4e 49 5a 5f 4f  D)\ -c $(MINIZ_O
d8e0: 50 54 49 4f 4e 53 29 20 24 2a 2a 0a 0a 22 24 28  PTIONS) $**.."$(
d8f0: 4f 58 29 5c 56 45 52 53 49 4f 4e 2e 68 22 20 3a  OX)\VERSION.h" :
d900: 20 22 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 76 65   "$(OBJDIR)\mkve
d910: 72 73 69 6f 6e 24 45 22 20 22 24 28 42 29 5c 6d  rsion$E" "$(B)\m
d920: 61 6e 69 66 65 73 74 2e 75 75 69 64 22 20 22 24  anifest.uuid" "$
d930: 28 42 29 5c 6d 61 6e 69 66 65 73 74 22 20 22 24  (B)\manifest" "$
d940: 28 42 29 5c 56 45 52 53 49 4f 4e 22 20 22 24 28  (B)\VERSION" "$(
d950: 42 29 5c 70 68 6f 6e 79 2e 68 22 0a 09 22 24 28  B)\phony.h".."$(
d960: 4f 42 4a 44 49 52 29 5c 6d 6b 76 65 72 73 69 6f  OBJDIR)\mkversio
d970: 6e 24 45 22 20 22 24 28 42 29 5c 6d 61 6e 69 66  n$E" "$(B)\manif
d980: 65 73 74 2e 75 75 69 64 22 20 22 24 28 42 29 5c  est.uuid" "$(B)\
d990: 6d 61 6e 69 66 65 73 74 22 20 22 24 28 42 29 5c  manifest" "$(B)\
d9a0: 56 45 52 53 49 4f 4e 22 20 3e 20 24 40 0a 0a 22  VERSION" > $@.."
d9b0: 24 28 42 29 5c 70 68 6f 6e 79 2e 68 22 20 3a 0a  $(B)\phony.h" :.
d9c0: 09 72 65 6d 20 46 6f 72 63 65 20 72 65 62 75 69  .rem Force rebui
d9d0: 6c 64 20 6f 66 20 56 45 52 53 49 4f 4e 2e 68 20  ld of VERSION.h 
d9e0: 77 68 65 6e 65 76 65 72 20 6e 6d 61 6b 65 20 69  whenever nmake i
d9f0: 73 20 72 75 6e 0a 0a 22 24 28 4f 58 29 5c 63 73  s run.."$(OX)\cs
da00: 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 24  on_amalgamation$
da10: 4f 22 20 3a 20 22 24 28 53 52 43 44 49 52 29 5c  O" : "$(SRCDIR)\
da20: 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f  cson_amalgamatio
da30: 6e 2e 63 22 0a 09 24 28 54 43 43 29 20 2f 46 6f  n.c"..$(TCC) /Fo
da40: 24 40 20 2f 46 64 24 28 40 44 29 5c 20 2d 63 20  $@ /Fd$(@D)\ -c 
da50: 24 2a 2a 0a 0a 22 24 28 4f 58 29 5c 70 61 67 65  $**.."$(OX)\page
da60: 5f 69 6e 64 65 78 2e 68 22 3a 20 22 24 28 4f 42  _index.h": "$(OB
da70: 4a 44 49 52 29 5c 6d 6b 69 6e 64 65 78 24 45 22  JDIR)\mkindex$E"
da80: 20 24 28 53 52 43 29 0a 09 24 2a 2a 20 3e 20 24   $(SRC)..$** > $
da90: 40 0a 0a 22 24 28 4f 58 29 5c 62 75 69 6c 74 69  @.."$(OX)\builti
daa0: 6e 5f 64 61 74 61 2e 68 22 3a 09 22 24 28 4f 42  n_data.h":."$(OB
dab0: 4a 44 49 52 29 5c 6d 6b 62 75 69 6c 74 69 6e 24  JDIR)\mkbuiltin$
dac0: 45 22 20 22 24 28 4f 58 29 5c 62 75 69 6c 74 69  E" "$(OX)\builti
dad0: 6e 5f 64 61 74 61 2e 72 65 73 6c 69 73 74 22 0a  n_data.reslist".
dae0: 09 22 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 62 75  ."$(OBJDIR)\mkbu
daf0: 69 6c 74 69 6e 24 45 22 20 2d 2d 70 72 65 66 69  iltin$E" --prefi
db00: 78 20 22 24 28 53 52 43 44 49 52 29 2f 22 20 2d  x "$(SRCDIR)/" -
db10: 2d 72 65 73 6c 69 73 74 20 22 24 28 4f 58 29 5c  -reslist "$(OX)\
db20: 62 75 69 6c 74 69 6e 5f 64 61 74 61 2e 72 65 73  builtin_data.res
db30: 6c 69 73 74 22 20 3e 20 24 40 0a 0a 63 6c 65 61  list" > $@..clea
db40: 6e 78 3a 0a 09 2d 64 65 6c 20 22 24 28 4f 58 29  nx:..-del "$(OX)
db50: 5c 2a 2e 6f 62 6a 22 20 32 3e 4e 55 4c 0a 09 2d  \*.obj" 2>NUL..-
db60: 64 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c 2a  del "$(OBJDIR)\*
db70: 2e 6f 62 6a 22 20 32 3e 4e 55 4c 0a 09 2d 64 65  .obj" 2>NUL..-de
db80: 6c 20 22 24 28 4f 58 29 5c 2a 5f 2e 63 22 20 32  l "$(OX)\*_.c" 2
db90: 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28 4f 58  >NUL..-del "$(OX
dba0: 29 5c 2a 2e 68 22 20 32 3e 4e 55 4c 0a 09 2d 64  )\*.h" 2>NUL..-d
dbb0: 65 6c 20 22 24 28 4f 58 29 5c 2a 2e 69 6c 6b 22  el "$(OX)\*.ilk"
dbc0: 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28   2>NUL..-del "$(
dbd0: 4f 58 29 5c 2a 2e 6d 61 70 22 20 32 3e 4e 55 4c  OX)\*.map" 2>NUL
dbe0: 0a 09 2d 64 65 6c 20 22 24 28 4f 58 29 5c 2a 2e  ..-del "$(OX)\*.
dbf0: 72 65 73 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c  res" 2>NUL..-del
dc00: 20 22 24 28 4f 58 29 5c 2a 2e 72 65 73 6c 69 73   "$(OX)\*.reslis
dc10: 74 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22  t" 2>NUL..-del "
dc20: 24 28 4f 58 29 5c 68 65 61 64 65 72 73 22 20 32  $(OX)\headers" 2
dc30: 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28 4f 58  >NUL..-del "$(OX
dc40: 29 5c 6c 69 6e 6b 6f 70 74 73 22 20 32 3e 4e 55  )\linkopts" 2>NU
dc50: 4c 0a 09 2d 64 65 6c 20 22 24 28 4f 58 29 5c 76  L..-del "$(OX)\v
dc60: 63 2a 2e 70 64 62 22 20 32 3e 4e 55 4c 0a 0a 63  c*.pdb" 2>NUL..c
dc70: 6c 65 61 6e 3a 20 63 6c 65 61 6e 78 0a 09 2d 64  lean: cleanx..-d
dc80: 65 6c 20 22 24 28 41 50 50 4e 41 4d 45 29 22 20  el "$(APPNAME)" 
dc90: 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28 50  2>NUL..-del "$(P
dca0: 44 42 4e 41 4d 45 29 22 20 32 3e 4e 55 4c 0a 09  DBNAME)" 2>NUL..
dcb0: 2d 64 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c  -del "$(OBJDIR)\
dcc0: 74 72 61 6e 73 6c 61 74 65 24 45 22 20 32 3e 4e  translate$E" 2>N
dcd0: 55 4c 0a 09 2d 64 65 6c 20 22 24 28 4f 42 4a 44  UL..-del "$(OBJD
dce0: 49 52 29 5c 74 72 61 6e 73 6c 61 74 65 24 50 22  IR)\translate$P"
dcf0: 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28   2>NUL..-del "$(
dd00: 4f 42 4a 44 49 52 29 5c 6d 6b 69 6e 64 65 78 24  OBJDIR)\mkindex$
dd10: 45 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22  E" 2>NUL..-del "
dd20: 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 69 6e 64 65  $(OBJDIR)\mkinde
dd30: 78 24 50 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c  x$P" 2>NUL..-del
dd40: 20 22 24 28 4f 42 4a 44 49 52 29 5c 6d 61 6b 65   "$(OBJDIR)\make
dd50: 68 65 61 64 65 72 73 24 45 22 20 32 3e 4e 55 4c  headers$E" 2>NUL
dd60: 0a 09 2d 64 65 6c 20 22 24 28 4f 42 4a 44 49 52  ..-del "$(OBJDIR
dd70: 29 5c 6d 61 6b 65 68 65 61 64 65 72 73 24 50 22  )\makeheaders$P"
dd80: 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28   2>NUL..-del "$(
dd90: 4f 42 4a 44 49 52 29 5c 6d 6b 76 65 72 73 69 6f  OBJDIR)\mkversio
dda0: 6e 24 45 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c  n$E" 2>NUL..-del
ddb0: 20 22 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 76 65   "$(OBJDIR)\mkve
ddc0: 72 73 69 6f 6e 24 50 22 20 32 3e 4e 55 4c 0a 09  rsion$P" 2>NUL..
ddd0: 2d 64 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c  -del "$(OBJDIR)\
dde0: 6d 6b 63 73 73 24 45 22 20 32 3e 4e 55 4c 0a 09  mkcss$E" 2>NUL..
ddf0: 2d 64 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c  -del "$(OBJDIR)\
de00: 6d 6b 63 73 73 24 50 22 20 32 3e 4e 55 4c 0a 09  mkcss$P" 2>NUL..
de10: 2d 64 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c  -del "$(OBJDIR)\
de20: 63 6f 64 65 63 68 65 63 6b 31 24 45 22 20 32 3e  codecheck1$E" 2>
de30: 4e 55 4c 0a 09 2d 64 65 6c 20 22 24 28 4f 42 4a  NUL..-del "$(OBJ
de40: 44 49 52 29 5c 63 6f 64 65 63 68 65 63 6b 31 24  DIR)\codecheck1$
de50: 50 22 20 32 3e 4e 55 4c 0a 09 2d 64 65 6c 20 22  P" 2>NUL..-del "
de60: 24 28 4f 42 4a 44 49 52 29 5c 6d 6b 62 75 69 6c  $(OBJDIR)\mkbuil
de70: 74 69 6e 24 45 22 20 32 3e 4e 55 4c 0a 09 2d 64  tin$E" 2>NUL..-d
de80: 65 6c 20 22 24 28 4f 42 4a 44 49 52 29 5c 6d 6b  el "$(OBJDIR)\mk
de90: 62 75 69 6c 74 69 6e 24 50 22 20 32 3e 4e 55 4c  builtin$P" 2>NUL
dea0: 0a 0a 72 65 61 6c 63 6c 65 61 6e 3a 20 63 6c 65  ..realclean: cle
deb0: 61 6e 0a 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a  an.."$(OBJDIR)\j
dec0: 73 6f 6e 24 4f 22 20 3a 20 22 24 28 53 52 43 44  son$O" : "$(SRCD
ded0: 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e  IR)\json_detail.
dee0: 68 22 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a 73  h"."$(OBJDIR)\js
def0: 6f 6e 5f 61 72 74 69 66 61 63 74 24 4f 22 20 3a  on_artifact$O" :
df00: 20 22 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e   "$(SRCDIR)\json
df10: 5f 64 65 74 61 69 6c 2e 68 22 0a 22 24 28 4f 42  _detail.h"."$(OB
df20: 4a 44 49 52 29 5c 6a 73 6f 6e 5f 62 72 61 6e 63  JDIR)\json_branc
df30: 68 24 4f 22 20 3a 20 22 24 28 53 52 43 44 49 52  h$O" : "$(SRCDIR
df40: 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 22  )\json_detail.h"
df50: 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e  ."$(OBJDIR)\json
df60: 5f 63 6f 6e 66 69 67 24 4f 22 20 3a 20 22 24 28  _config$O" : "$(
df70: 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74  SRCDIR)\json_det
df80: 61 69 6c 2e 68 22 0a 22 24 28 4f 42 4a 44 49 52  ail.h"."$(OBJDIR
df90: 29 5c 6a 73 6f 6e 5f 64 69 66 66 24 4f 22 20 3a  )\json_diff$O" :
dfa0: 20 22 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e   "$(SRCDIR)\json
dfb0: 5f 64 65 74 61 69 6c 2e 68 22 0a 22 24 28 4f 42  _detail.h"."$(OB
dfc0: 4a 44 49 52 29 5c 6a 73 6f 6e 5f 64 69 72 24 4f  JDIR)\json_dir$O
dfd0: 22 20 3a 20 22 24 28 53 52 43 44 49 52 29 5c 6a  " : "$(SRCDIR)\j
dfe0: 73 6f 6e 5f 64 65 74 61 69 6c 2e 68 22 0a 22 24  son_detail.h"."$
dff0: 28 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 66 69  (OBJDIR)\json_fi
e000: 6e 66 6f 24 4f 22 20 3a 20 22 24 28 53 52 43 44  nfo$O" : "$(SRCD
e010: 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e  IR)\json_detail.
e020: 68 22 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a 73  h"."$(OBJDIR)\js
e030: 6f 6e 5f 6c 6f 67 69 6e 24 4f 22 20 3a 20 22 24  on_login$O" : "$
e040: 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65  (SRCDIR)\json_de
e050: 74 61 69 6c 2e 68 22 0a 22 24 28 4f 42 4a 44 49  tail.h"."$(OBJDI
e060: 52 29 5c 6a 73 6f 6e 5f 71 75 65 72 79 24 4f 22  R)\json_query$O"
e070: 20 3a 20 22 24 28 53 52 43 44 49 52 29 5c 6a 73   : "$(SRCDIR)\js
e080: 6f 6e 5f 64 65 74 61 69 6c 2e 68 22 0a 22 24 28  on_detail.h"."$(
e090: 4f 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 72 65 70  OBJDIR)\json_rep
e0a0: 6f 72 74 24 4f 22 20 3a 20 22 24 28 53 52 43 44  ort$O" : "$(SRCD
e0b0: 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c 2e  IR)\json_detail.
e0c0: 68 22 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a 73  h"."$(OBJDIR)\js
e0d0: 6f 6e 5f 73 74 61 74 75 73 24 4f 22 20 3a 20 22  on_status$O" : "
e0e0: 24 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64  $(SRCDIR)\json_d
e0f0: 65 74 61 69 6c 2e 68 22 0a 22 24 28 4f 42 4a 44  etail.h"."$(OBJD
e100: 49 52 29 5c 6a 73 6f 6e 5f 74 61 67 24 4f 22 20  IR)\json_tag$O" 
e110: 3a 20 22 24 28 53 52 43 44 49 52 29 5c 6a 73 6f  : "$(SRCDIR)\jso
e120: 6e 5f 64 65 74 61 69 6c 2e 68 22 0a 22 24 28 4f  n_detail.h"."$(O
e130: 42 4a 44 49 52 29 5c 6a 73 6f 6e 5f 74 69 6d 65  BJDIR)\json_time
e140: 6c 69 6e 65 24 4f 22 20 3a 20 22 24 28 53 52 43  line$O" : "$(SRC
e150: 44 49 52 29 5c 6a 73 6f 6e 5f 64 65 74 61 69 6c  DIR)\json_detail
e160: 2e 68 22 0a 22 24 28 4f 42 4a 44 49 52 29 5c 6a  .h"."$(OBJDIR)\j
e170: 73 6f 6e 5f 75 73 65 72 24 4f 22 20 3a 20 22 24  son_user$O" : "$
e180: 28 53 52 43 44 49 52 29 5c 6a 73 6f 6e 5f 64 65  (SRCDIR)\json_de
e190: 74 61 69 6c 2e 68 22 0a 22 24 28 4f 42 4a 44 49  tail.h"."$(OBJDI
e1a0: 52 29 5c 6a 73 6f 6e 5f 77 69 6b 69 24 4f 22 20  R)\json_wiki$O" 
e1b0: 3a 20 22 24 28 53 52 43 44 49 52 29 5c 6a 73 6f  : "$(SRCDIR)\jso
e1c0: 6e 5f 64 65 74 61 69 6c 2e 68 22 0a 7d 0a 0a 77  n_detail.h".}..w
e1d0: 72 69 74 65 6c 6e 20 7b 22 24 28 4f 58 29 5c 62  riteln {"$(OX)\b
e1e0: 75 69 6c 74 69 6e 5f 64 61 74 61 2e 72 65 73 6c  uiltin_data.resl
e1f0: 69 73 74 22 3a 20 24 28 45 58 54 52 41 5f 46 49  ist": $(EXTRA_FI
e200: 4c 45 53 29 20 22 24 28 42 29 5c 77 69 6e 5c 4d  LES) "$(B)\win\M
e210: 61 6b 65 66 69 6c 65 2e 6d 73 63 22 7d 0a 73 65  akefile.msc"}.se
e220: 74 20 72 65 64 69 72 20 7b 3e 7d 0a 66 6f 72 65  t redir {>}.fore
e230: 61 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 65 78  ach s [lsort $ex
e240: 74 72 61 5f 66 69 6c 65 73 5d 20 7b 0a 20 20 77  tra_files] {.  w
e250: 72 69 74 65 6c 6e 20 22 5c 74 65 63 68 6f 20 5c  riteln "\techo \
e260: 22 5c 24 28 53 52 43 44 49 52 29 5c 5c 24 7b 73  "\$(SRCDIR)\\${s
e270: 7d 5c 22 20 24 72 65 64 69 72 20 5c 24 40 22 0a  }\" $redir \$@".
e280: 20 20 73 65 74 20 72 65 64 69 72 20 7b 3e 3e 7d    set redir {>>}
e290: 0a 7d 0a 0a 77 72 69 74 65 6c 6e 20 22 22 0a 66  .}..writeln "".f
e2a0: 6f 72 65 61 63 68 20 73 20 5b 6c 73 6f 72 74 20  oreach s [lsort 
e2b0: 24 73 72 63 5d 20 7b 0a 20 20 77 72 69 74 65 6c  $src] {.  writel
e2c0: 6e 20 22 5c 22 5c 24 28 4f 58 29 5c 5c 24 73 5c  n "\"\$(OX)\\$s\
e2d0: 24 4f 5c 22 20 3a 20 5c 22 5c 24 28 4f 58 29 5c  $O\" : \"\$(OX)\
e2e0: 5c 24 7b 73 7d 5f 2e 63 5c 22 20 5c 22 5c 24 28  \${s}_.c\" \"\$(
e2f0: 4f 58 29 5c 5c 24 7b 73 7d 2e 68 5c 22 22 0a 20  OX)\\${s}.h\"". 
e300: 20 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 54   writeln "\t\$(T
e310: 43 43 29 20 2f 46 6f 5c 24 40 20 2f 46 64 5c 24  CC) /Fo\$@ /Fd\$
e320: 28 40 44 29 5c 5c 20 2d 63 20 5c 22 5c 24 28 4f  (@D)\\ -c \"\$(O
e330: 58 29 5c 5c 24 7b 73 7d 5f 2e 63 5c 22 5c 6e 22  X)\\${s}_.c\"\n"
e340: 0a 20 20 77 72 69 74 65 6c 6e 20 22 5c 22 5c 24  .  writeln "\"\$
e350: 28 4f 58 29 5c 5c 24 7b 73 7d 5f 2e 63 5c 22 20  (OX)\\${s}_.c\" 
e360: 3a 20 5c 22 5c 24 28 53 52 43 44 49 52 29 5c 5c  : \"\$(SRCDIR)\\
e370: 24 73 2e 63 5c 22 22 0a 20 20 77 72 69 74 65 6c  $s.c\"".  writel
e380: 6e 20 22 5c 74 5c 22 5c 24 28 4f 42 4a 44 49 52  n "\t\"\$(OBJDIR
e390: 29 5c 5c 74 72 61 6e 73 6c 61 74 65 5c 24 45 5c  )\\translate\$E\
e3a0: 22 20 5c 24 2a 2a 20 3e 20 5c 24 40 5c 6e 22 0a  " \$** > \$@\n".
e3b0: 7d 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 22 5c 24  }..writeln "\"\$
e3c0: 28 4f 58 29 5c 5c 66 6f 73 73 69 6c 2e 72 65 73  (OX)\\fossil.res
e3d0: 5c 22 20 3a 20 5c 22 5c 24 28 42 29 5c 5c 77 69  \" : \"\$(B)\\wi
e3e0: 6e 5c 5c 66 6f 73 73 69 6c 2e 72 63 5c 22 22 0a  n\\fossil.rc\"".
e3f0: 77 72 69 74 65 6c 6e 20 22 5c 74 5c 24 28 52 43  writeln "\t\$(RC
e400: 43 29 20 2f 66 6f 20 5c 24 40 20 5c 24 2a 2a 5c  C) /fo \$@ \$**\
e410: 6e 22 0a 0a 77 72 69 74 65 6c 6e 20 22 5c 22 5c  n"..writeln "\"\
e420: 24 28 4f 58 29 5c 5c 68 65 61 64 65 72 73 5c 22  $(OX)\\headers\"
e430: 3a 20 5c 22 5c 24 28 4f 42 4a 44 49 52 29 5c 5c  : \"\$(OBJDIR)\\
e440: 6d 61 6b 65 68 65 61 64 65 72 73 5c 24 45 5c 22  makeheaders\$E\"
e450: 20 5c 22 5c 24 28 4f 58 29 5c 5c 70 61 67 65 5f   \"\$(OX)\\page_
e460: 69 6e 64 65 78 2e 68 5c 22 20 5c 22 5c 24 28 4f  index.h\" \"\$(O
e470: 58 29 5c 5c 62 75 69 6c 74 69 6e 5f 64 61 74 61  X)\\builtin_data
e480: 2e 68 5c 22 20 5c 22 5c 24 28 4f 58 29 5c 5c 56  .h\" \"\$(OX)\\V
e490: 45 52 53 49 4f 4e 2e 68 5c 22 22 0a 77 72 69 74  ERSION.h\"".writ
e4a0: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
e4b0: 5c 74 5c 22 5c 24 28 4f 42 4a 44 49 52 29 5c 5c  \t\"\$(OBJDIR)\\
e4c0: 6d 61 6b 65 68 65 61 64 65 72 73 5c 24 45 5c 22  makeheaders\$E\"
e4d0: 20 22 0a 73 65 74 20 69 20 30 0a 66 6f 72 65 61   ".set i 0.forea
e4e0: 63 68 20 73 20 5b 6c 73 6f 72 74 20 24 73 72 63  ch s [lsort $src
e4f0: 5d 20 7b 0a 20 20 69 66 20 7b 24 69 20 3e 20 30  ] {.  if {$i > 0
e500: 7d 20 7b 0a 20 20 20 20 77 72 69 74 65 6c 6e 20  } {.    writeln 
e510: 22 20 5c 5c 22 0a 20 20 20 20 77 72 69 74 65 6c  " \\".    writel
e520: 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 5c 74  n -nonewline "\t
e530: 5c 74 5c 74 22 0a 20 20 7d 0a 20 20 77 72 69 74  \t\t".  }.  writ
e540: 65 6c 6e 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22  eln -nonewline "
e550: 5c 22 5c 24 28 4f 58 29 5c 5c 24 7b 73 7d 5f 2e  \"\$(OX)\\${s}_.
e560: 63 5c 22 3a 5c 22 5c 24 28 4f 58 29 5c 5c 24 73  c\":\"\$(OX)\\$s
e570: 2e 68 5c 22 22 3b 20 69 6e 63 72 20 69 0a 7d 0a  .h\""; incr i.}.
e580: 77 72 69 74 65 6c 6e 20 22 20 5c 5c 5c 6e 5c 74  writeln " \\\n\t
e590: 5c 74 5c 74 5c 22 5c 24 28 53 52 43 44 49 52 29  \t\t\"\$(SRCDIR)
e5a0: 5c 5c 73 71 6c 69 74 65 33 2e 68 5c 22 20 5c 5c  \\sqlite3.h\" \\
e5b0: 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 74 5c  ".writeln "\t\t\
e5c0: 74 5c 22 5c 24 28 53 52 43 44 49 52 29 5c 5c 74  t\"\$(SRCDIR)\\t
e5d0: 68 2e 68 5c 22 20 5c 5c 22 0a 77 72 69 74 65 6c  h.h\" \\".writel
e5e0: 6e 20 22 5c 74 5c 74 5c 74 5c 22 5c 24 28 4f 58  n "\t\t\t\"\$(OX
e5f0: 29 5c 5c 56 45 52 53 49 4f 4e 2e 68 5c 22 20 5c  )\\VERSION.h\" \
e600: 5c 22 0a 77 72 69 74 65 6c 6e 20 22 5c 74 5c 74  \".writeln "\t\t
e610: 5c 74 5c 22 5c 24 28 53 52 43 44 49 52 29 5c 5c  \t\"\$(SRCDIR)\\
e620: 63 73 6f 6e 5f 61 6d 61 6c 67 61 6d 61 74 69 6f  cson_amalgamatio
e630: 6e 2e 68 5c 22 22 0a 77 72 69 74 65 6c 6e 20 22  n.h\"".writeln "
e640: 5c 74 40 63 6f 70 79 20 2f 59 20 6e 75 6c 3a 20  \t@copy /Y nul: 
e650: 24 40 22 0a 0a 0a 63 6c 6f 73 65 20 24 6f 75 74  $@"...close $out
e660: 70 75 74 5f 66 69 6c 65 0a 23 0a 23 20 45 6e 64  put_file.#.# End
e670: 20 6f 66 20 74 68 65 20 77 69 6e 2f 4d 61 6b 65   of the win/Make
e680: 66 69 6c 65 2e 6d 73 63 20 6f 75 74 70 75 74 0a  file.msc output.
e690: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e6a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e6b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e6c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e6d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23  ##############.#
e6e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e6f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e700: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e710: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e720: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23  #############.##
e730: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e740: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e750: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e760: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e770: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 42  ############.# B
e780: 65 67 69 6e 20 77 69 6e 2f 4d 61 6b 65 66 69 6c  egin win/Makefil
e790: 65 2e 50 65 6c 6c 65 73 43 47 4d 61 6b 65 20 6f  e.PellesCGMake o
e7a0: 75 74 70 75 74 0a 23 0a 70 75 74 73 20 22 62 75  utput.#.puts "bu
e7b0: 69 6c 64 69 6e 67 20 2e 2e 2f 77 69 6e 2f 4d 61  ilding ../win/Ma
e7c0: 6b 65 66 69 6c 65 2e 50 65 6c 6c 65 73 43 47 4d  kefile.PellesCGM
e7d0: 61 6b 65 22 0a 73 65 74 20 6f 75 74 70 75 74 5f  ake".set output_
e7e0: 66 69 6c 65 20 5b 6f 70 65 6e 20 2e 2e 2f 77 69  file [open ../wi
e7f0: 6e 2f 4d 61 6b 65 66 69 6c 65 2e 50 65 6c 6c 65  n/Makefile.Pelle
e800: 73 43 47 4d 61 6b 65 20 77 5d 0a 66 63 6f 6e 66  sCGMake w].fconf
e810: 69 67 75 72 65 20 24 6f 75 74 70 75 74 5f 66 69  igure $output_fi
e820: 6c 65 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e 20  le -translation 
e830: 62 69 6e 61 72 79 0a 0a 77 72 69 74 65 6c 6e 20  binary..writeln 
e840: 5b 73 74 72 69 6e 67 20 6d 61 70 20 5b 6c 69 73  [string map [lis
e850: 74 20 5c 0a 20 20 20 20 3c 3c 3c 53 51 4c 49 54  t \.    <<<SQLIT
e860: 45 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 20 5b 6a 6f  E_OPTIONS>>> [jo
e870: 69 6e 20 24 53 51 4c 49 54 45 5f 57 49 4e 33 32  in $SQLITE_WIN32
e880: 5f 4f 50 54 49 4f 4e 53 20 7b 20 7d 5d 20 5c 0a  _OPTIONS { }] \.
e890: 20 20 20 20 3c 3c 3c 53 48 45 4c 4c 5f 4f 50 54      <<<SHELL_OPT
e8a0: 49 4f 4e 53 3e 3e 3e 20 5b 6a 6f 69 6e 20 24 53  IONS>>> [join $S
e8b0: 48 45 4c 4c 5f 57 49 4e 33 32 5f 4f 50 54 49 4f  HELL_WIN32_OPTIO
e8c0: 4e 53 20 7b 20 7d 5d 5d 20 7b 23 0a 23 23 23 23  NS { }]] {#.####
e8d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e8e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e8f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e900: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e910: 23 23 23 23 23 23 23 23 23 23 0a 23 20 57 41 52  ##########.# WAR
e920: 4e 49 4e 47 3a 20 44 4f 20 4e 4f 54 20 45 44 49  NING: DO NOT EDI
e930: 54 2c 20 41 55 54 4f 4d 41 54 49 43 41 4c 4c 59  T, AUTOMATICALLY
e940: 20 47 45 4e 45 52 41 54 45 44 20 46 49 4c 45 20   GENERATED FILE 
e950: 28 53 45 45 20 22 73 72 63 2f 6d 61 6b 65 6d 61  (SEE "src/makema
e960: 6b 65 2e 74 63 6c 22 29 0a 23 23 23 23 23 23 23  ke.tcl").#######
e970: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e980: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e990: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e9a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
e9b0: 23 23 23 23 23 23 23 0a 23 0a 23 20 54 68 69 73  #######.#.# This
e9c0: 20 66 69 6c 65 20 69 73 20 61 75 74 6f 6d 61 74   file is automat
e9d0: 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64  ically generated
e9e0: 2e 20 20 49 6e 73 74 65 61 64 20 6f 66 20 65 64  .  Instead of ed
e9f0: 69 74 69 6e 67 20 74 68 69 73 0a 23 20 66 69 6c  iting this.# fil
ea00: 65 2c 20 65 64 69 74 20 22 6d 61 6b 65 6d 61 6b  e, edit "makemak
ea10: 65 2e 74 63 6c 22 20 74 68 65 6e 20 72 75 6e 20  e.tcl" then run 
ea20: 22 74 63 6c 73 68 20 6d 61 6b 65 6d 61 6b 65 2e  "tclsh makemake.
ea30: 74 63 6c 22 0a 23 20 74 6f 20 72 65 67 65 6e 65  tcl".# to regene
ea40: 72 61 74 65 20 74 68 69 73 20 66 69 6c 65 2e 0a  rate this file..
ea50: 23 0a 23 20 48 6f 77 54 6f 0a 23 20 2d 2d 2d 2d  #.# HowTo.# ----
ea60: 2d 0a 23 0a 23 20 54 68 69 73 20 69 73 20 61 20  -.#.# This is a 
ea70: 4d 61 6b 65 66 69 6c 65 20 74 6f 20 63 6f 6d 70  Makefile to comp
ea80: 69 6c 65 20 66 6f 73 73 69 6c 20 77 69 74 68 20  ile fossil with 
ea90: 50 65 6c 6c 65 73 43 20 66 72 6f 6d 0a 23 20 20  PellesC from.#  
eaa0: 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6d 6f 72 67  http://www.smorg
eab0: 61 73 62 6f 72 64 65 74 2e 63 6f 6d 2f 70 65 6c  asbordet.com/pel
eac0: 6c 65 73 63 2f 69 6e 64 65 78 2e 68 74 6d 0a 23  lesc/index.htm.#
ead0: 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20   In addition to 
eae0: 74 68 65 20 43 6f 6d 70 69 6c 65 72 20 65 6e 76  the Compiler env
eaf0: 72 69 6f 6e 6d 65 6e 74 2c 20 79 6f 75 20 6e 65  rionment, you ne
eb00: 65 64 0a 23 20 20 67 6d 61 6b 65 20 66 72 6f 6d  ed.#  gmake from
eb10: 20 68 74 74 70 3a 2f 2f 73 6f 75 72 63 65 66 6f   http://sourcefo
eb20: 72 67 65 2e 6e 65 74 2f 70 72 6f 6a 65 63 74 73  rge.net/projects
eb30: 2f 75 6e 78 75 74 69 6c 73 2f 2c 20 50 65 6c 6c  /unxutils/, Pell
eb40: 65 73 20 6d 61 6b 65 20 76 65 72 73 69 6f 6e 0a  es make version.
eb50: 23 20 20 20 20 20 20 20 20 63 6f 75 6c 64 6e 27  #        couldn'
eb60: 74 20 68 61 6e 64 6c 65 20 74 68 65 20 63 6f 6d  t handle the com
eb70: 70 6c 65 78 20 64 65 70 65 6e 64 65 6e 63 69 65  plex dependencie
eb80: 73 20 69 6e 20 74 68 69 73 20 62 75 69 6c 64 0a  s in this build.
eb90: 23 20 20 7a 6c 69 62 20 73 6f 75 72 63 65 73 0a  #  zlib sources.
eba0: 23 20 54 68 65 6e 20 79 6f 75 20 64 6f 0a 23 20  # Then you do.# 
ebb0: 31 2e 20 63 72 65 61 74 65 20 61 20 64 69 72 65  1. create a dire
ebc0: 63 74 6f 72 79 20 50 65 6c 6c 65 73 43 20 69 6e  ctory PellesC in
ebd0: 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f   the project roo
ebe0: 74 20 64 69 72 65 63 74 6f 72 79 0a 23 20 32 2e  t directory.# 2.
ebf0: 20 43 68 61 6e 67 65 20 74 68 65 20 76 61 72 69   Change the vari
ec00: 61 62 6c 65 73 20 50 65 6c 6c 65 73 43 44 69 72  ables PellesCDir
ec10: 2f 5a 4c 49 42 53 52 43 44 49 52 20 74 6f 20 74  /ZLIBSRCDIR to t
ec20: 68 65 20 70 61 74 68 20 6f 66 20 79 6f 75 72 20  he path of your 
ec30: 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 23 20 33  installation.# 3
ec40: 2e 20 6f 70 65 6e 20 61 20 64 6f 73 20 70 72 6f  . open a dos pro
ec50: 6d 70 74 20 77 69 6e 64 6f 77 20 61 6e 64 20 63  mpt window and c
ec60: 68 61 6e 67 65 20 77 6f 72 6b 69 6e 67 20 64 69  hange working di
ec70: 72 65 63 74 6f 72 79 20 69 6e 74 6f 20 50 65 6c  rectory into Pel
ec80: 6c 65 73 43 20 28 73 74 65 70 20 31 29 0a 23 20  lesC (step 1).# 
ec90: 34 2e 20 72 75 6e 20 67 6d 61 6b 65 20 2d 66 20  4. run gmake -f 
eca0: 2e 2e 5c 77 69 6e 5c 4d 61 6b 65 66 69 6c 65 2e  ..\win\Makefile.
ecb0: 50 65 6c 6c 65 73 43 47 4d 61 6b 65 0a 23 0a 23  PellesCGMake.#.#
ecc0: 20 74 68 69 73 20 66 69 6c 65 20 69 73 20 74 65   this file is te
ecd0: 73 74 65 64 20 77 69 74 68 0a 23 20 20 20 50 65  sted with.#   Pe
ece0: 6c 6c 65 73 43 20 20 20 20 20 20 20 20 20 35 2e  llesC         5.
ecf0: 30 30 2e 31 33 0a 23 20 20 20 67 6d 61 6b 65 20  00.13.#   gmake 
ed00: 20 20 20 20 20 20 20 20 20 20 33 2e 38 30 0a 23            3.80.#
ed10: 20 20 20 7a 6c 69 62 20 73 6f 75 72 63 65 73 20     zlib sources 
ed20: 20 20 20 31 2e 32 2e 35 0a 23 20 20 20 57 69 6e     1.2.5.#   Win
ed30: 64 6f 77 73 20 58 50 20 53 50 20 32 0a 23 20 61  dows XP SP 2.# a
ed40: 6e 64 0a 23 20 20 20 50 65 6c 6c 65 73 43 20 20  nd.#   PellesC  
ed50: 20 20 20 20 20 20 20 36 2e 30 30 2e 34 0a 23 20         6.00.4.# 
ed60: 20 20 67 6d 61 6b 65 20 20 20 20 20 20 20 20 20    gmake         
ed70: 20 20 33 2e 38 30 0a 23 20 20 20 7a 6c 69 62 20    3.80.#   zlib 
ed80: 73 6f 75 72 63 65 73 20 20 20 20 31 2e 32 2e 35  sources    1.2.5
ed90: 0a 23 20 20 20 57 69 6e 64 6f 77 73 20 37 20 48  .#   Windows 7 H
eda0: 6f 6d 65 20 50 72 65 6d 69 75 6d 0a 23 0a 0a 23  ome Premium.#..#
edb0: 0a 50 65 6c 6c 65 73 43 44 69 72 3d 63 3a 5c 50  .PellesCDir=c:\P
edc0: 72 6f 67 72 61 6d 6d 65 5c 50 65 6c 6c 65 73 43  rogramme\PellesC
edd0: 0a 0a 23 20 53 65 6c 65 63 74 20 62 65 74 77 65  ..# Select betwe
ede0: 65 6e 20 33 32 2f 36 34 20 62 69 74 20 63 6f 64  en 32/64 bit cod
edf0: 65 2c 20 64 65 66 61 75 6c 74 20 69 73 20 33 32  e, default is 32
ee00: 20 62 69 74 0a 23 54 41 52 47 45 54 56 45 52 53   bit.#TARGETVERS
ee10: 49 4f 4e 3d 36 34 0a 0a 69 66 65 71 20 28 24 28  ION=64..ifeq ($(
ee20: 54 41 52 47 45 54 56 45 52 53 49 4f 4e 29 2c 36  TARGETVERSION),6
ee30: 34 29 0a 23 20 36 34 20 62 69 74 20 76 65 72 73  4).# 64 bit vers
ee40: 69 6f 6e 0a 54 41 52 47 45 54 4d 41 43 48 49 4e  ion.TARGETMACHIN
ee50: 45 5f 43 43 3d 61 6d 64 36 34 0a 54 41 52 47 45  E_CC=amd64.TARGE
ee60: 54 4d 41 43 48 49 4e 45 5f 4c 4e 3d 61 6d 64 36  TMACHINE_LN=amd6
ee70: 34 0a 54 41 52 47 45 54 45 58 54 45 4e 44 3d 36  4.TARGETEXTEND=6
ee80: 34 0a 65 6c 73 65 0a 23 20 33 32 20 62 69 74 20  4.else.# 32 bit 
ee90: 76 65 72 73 69 6f 6e 0a 54 41 52 47 45 54 4d 41  version.TARGETMA
eea0: 43 48 49 4e 45 5f 43 43 3d 78 38 36 0a 54 41 52  CHINE_CC=x86.TAR
eeb0: 47 45 54 4d 41 43 48 49 4e 45 5f 4c 4e 3d 69 78  GETMACHINE_LN=ix
eec0: 38 36 0a 54 41 52 47 45 54 45 58 54 45 4e 44 3d  86.TARGETEXTEND=
eed0: 0a 65 6e 64 69 66 0a 0a 23 20 64 65 66 69 6e 65  .endif..# define
eee0: 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 69 72   the project dir
eef0: 65 63 74 6f 72 69 65 73 0a 42 3d 2e 2e 0a 53 52  ectories.B=...SR
ef00: 43 44 49 52 3d 24 28 42 29 2f 73 72 63 2f 0a 57  CDIR=$(B)/src/.W
ef10: 49 4e 44 49 52 3d 24 28 42 29 2f 77 69 6e 2f 0a  INDIR=$(B)/win/.
ef20: 5a 4c 49 42 53 52 43 44 49 52 3d 2e 2e 2f 2e 2e  ZLIBSRCDIR=../..
ef30: 2f 7a 6c 69 62 2f 0a 0a 23 20 64 65 66 69 6e 65  /zlib/..# define
ef40: 20 6c 69 6e 6b 65 72 20 63 6f 6d 6d 61 6e 64 20   linker command 
ef50: 61 6e 64 20 6f 70 74 69 6f 6e 73 0a 4c 49 4e 4b  and options.LINK
ef60: 3d 24 28 50 65 6c 6c 65 73 43 44 69 72 29 2f 62  =$(PellesCDir)/b
ef70: 69 6e 2f 70 6f 6c 69 6e 6b 2e 65 78 65 0a 4c 49  in/polink.exe.LI
ef80: 4e 4b 46 4c 41 47 53 3d 2d 73 75 62 73 79 73 74  NKFLAGS=-subsyst
ef90: 65 6d 3a 63 6f 6e 73 6f 6c 65 20 2d 6d 61 63 68  em:console -mach
efa0: 69 6e 65 3a 24 28 54 41 52 47 45 54 4d 41 43 48  ine:$(TARGETMACH
efb0: 49 4e 45 5f 4c 4e 29 20 2f 4c 49 42 50 41 54 48  INE_LN) /LIBPATH
efc0: 3a 24 28 50 65 6c 6c 65 73 43 44 69 72 29 5c 6c  :$(PellesCDir)\l
efd0: 69 62 5c 77 69 6e 24 28 54 41 52 47 45 54 45 58  ib\win$(TARGETEX
efe0: 54 45 4e 44 29 20 2f 4c 49 42 50 41 54 48 3a 24  TEND) /LIBPATH:$
eff0: 28 50 65 6c 6c 65 73 43 44 69 72 29 5c 6c 69 62  (PellesCDir)\lib
f000: 20 6b 65 72 6e 65 6c 33 32 2e 6c 69 62 20 61 64   kernel32.lib ad
f010: 76 61 70 69 33 32 2e 6c 69 62 20 64 65 6c 61 79  vapi32.lib delay
f020: 69 6d 70 24 28 54 41 52 47 45 54 45 58 54 45 4e  imp$(TARGETEXTEN
f030: 44 29 2e 6c 69 62 20 57 73 6f 63 6b 33 32 2e 6c  D).lib Wsock32.l
f040: 69 62 20 64 6e 73 61 70 69 2e 6c 69 62 20 43 72  ib dnsapi.lib Cr
f050: 74 6d 74 24 28 54 41 52 47 45 54 45 58 54 45 4e  tmt$(TARGETEXTEN
f060: 44 29 2e 6c 69 62 0a 0a 23 20 64 65 66 69 6e 65  D).lib..# define
f070: 20 73 74 61 6e 64 61 72 64 20 43 2d 63 6f 6d 70   standard C-comp
f080: 69 6c 65 72 20 61 6e 64 20 66 6c 61 67 73 2c 20  iler and flags, 
f090: 75 73 65 64 20 74 6f 20 63 6f 6d 70 69 6c 65 0a  used to compile.
f0a0: 23 20 74 68 65 20 66 6f 73 73 69 6c 20 62 69 6e  # the fossil bin
f0b0: 61 72 79 2e 20 53 6f 6d 65 20 73 70 65 63 69 61  ary. Some specia
f0c0: 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f  l definitions fo
f0d0: 6c 6c 6f 77 20 66 6f 72 0a 23 20 73 70 65 63 69  llow for.# speci
f0e0: 61 6c 20 66 69 6c 65 73 20 66 6f 6c 6c 6f 77 0a  al files follow.
f0f0: 43 43 3d 24 28 50 65 6c 6c 65 73 43 44 69 72 29  CC=$(PellesCDir)
f100: 5c 62 69 6e 5c 70 6f 63 63 2e 65 78 65 0a 44 45  \bin\pocc.exe.DE
f110: 46 49 4e 45 53 3d 2d 44 5f 70 67 6d 70 74 72 3d  FINES=-D_pgmptr=
f120: 67 2e 61 72 67 76 5b 30 5d 0a 43 43 46 4c 41 47  g.argv[0].CCFLAG
f130: 53 3d 2d 54 24 28 54 41 52 47 45 54 4d 41 43 48  S=-T$(TARGETMACH
f140: 49 4e 45 5f 43 43 29 2d 63 6f 66 66 20 2d 4f 74  INE_CC)-coff -Ot
f150: 20 2d 57 32 20 2d 47 64 20 2d 47 6f 20 2d 5a 65   -W2 -Gd -Go -Ze
f160: 20 2d 4d 54 20 24 28 44 45 46 49 4e 45 53 29 0a   -MT $(DEFINES).
f170: 49 4e 43 4c 55 44 45 3d 2f 49 20 24 28 50 65 6c  INCLUDE=/I $(Pel
f180: 6c 65 73 43 44 69 72 29 5c 49 6e 63 6c 75 64 65  lesCDir)\Include
f190: 5c 57 69 6e 20 2f 49 20 24 28 50 65 6c 6c 65 73  \Win /I $(Pelles
f1a0: 43 44 69 72 29 5c 49 6e 63 6c 75 64 65 20 2f 49  CDir)\Include /I
f1b0: 20 24 28 5a 4c 49 42 53 52 43 44 49 52 29 20 2f   $(ZLIBSRCDIR) /
f1c0: 49 20 24 28 53 52 43 44 49 52 29 0a 0a 23 20 64  I $(SRCDIR)..# d
f1d0: 65 66 69 6e 65 20 63 6f 6d 6d 61 6e 64 73 20 66  efine commands f
f1e0: 6f 72 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20  or building the 
f1f0: 77 69 6e 64 6f 77 73 20 72 65 73 6f 75 72 63 65  windows resource
f200: 20 66 69 6c 65 73 0a 52 45 53 4f 55 52 43 45 3d   files.RESOURCE=
f210: 66 6f 73 73 69 6c 2e 72 65 73 0a 52 43 3d 24 28  fossil.res.RC=$(
f220: 50 65 6c 6c 65 73 43 44 69 72 29 5c 62 69 6e 5c  PellesCDir)\bin\
f230: 70 6f 72 63 2e 65 78 65 0a 52 43 46 4c 41 47 53  porc.exe.RCFLAGS
f240: 3d 24 28 49 4e 43 4c 55 44 45 29 20 2d 44 5f 5f  =$(INCLUDE) -D__
f250: 50 4f 43 43 5f 5f 3d 31 20 2d 44 5f 4d 5f 58 24  POCC__=1 -D_M_X$
f260: 28 54 41 52 47 45 54 56 45 52 53 49 4f 4e 29 0a  (TARGETVERSION).
f270: 0a 23 20 64 65 66 69 6e 65 20 74 68 65 20 73 70  .# define the sp
f280: 65 63 69 61 6c 20 75 74 69 6c 69 74 69 65 73 20  ecial utilities 
f290: 66 69 6c 65 73 2c 20 6e 65 65 64 65 64 20 74 6f  files, needed to
f2a0: 20 67 65 6e 65 72 61 74 65 0a 23 20 74 68 65 20   generate.# the 
f2b0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  automatically ge
f2c0: 6e 65 72 61 74 65 64 20 73 6f 75 72 63 65 20 66  nerated source f
f2d0: 69 6c 65 73 0a 55 54 49 4c 53 3d 74 72 61 6e 73  iles.UTILS=trans
f2e0: 6c 61 74 65 2e 65 78 65 20 6d 6b 69 6e 64 65 78  late.exe mkindex
f2f0: 2e 65 78 65 20 6d 61 6b 65 68 65 61 64 65 72 73  .exe makeheaders
f300: 2e 65 78 65 20 6d 6b 62 75 69 6c 74 69 6e 2e 65  .exe mkbuiltin.e
f310: 78 65 0a 55 54 49 4c 53 5f 4f 42 4a 3d 24 28 55  xe.UTILS_OBJ=$(U
f320: 54 49 4c 53 3a 2e 65 78 65 3d 2e 6f 62 6a 29 0a  TILS:.exe=.obj).
f330: 55 54 49 4c 53 5f 53 52 43 3d 24 28 66 6f 72 65  UTILS_SRC=$(fore
f340: 61 63 68 20 75 66 2c 24 28 55 54 49 4c 53 29 2c  ach uf,$(UTILS),
f350: 24 28 53 52 43 44 49 52 29 24 28 75 66 3a 2e 65  $(SRCDIR)$(uf:.e
f360: 78 65 3d 2e 63 29 29 0a 0a 23 20 64 65 66 69 6e  xe=.c))..# defin
f370: 65 20 74 68 65 20 53 51 4c 69 74 65 20 66 69 6c  e the SQLite fil
f380: 65 73 2c 20 77 68 69 63 68 20 6e 65 65 64 20 73  es, which need s
f390: 70 65 63 69 61 6c 20 66 6c 61 67 73 20 6f 6e 20  pecial flags on 
f3a0: 63 6f 6d 70 69 6c 65 0a 53 51 4c 49 54 45 53 52  compile.SQLITESR
f3b0: 43 3d 73 71 6c 69 74 65 33 2e 63 0a 4f 52 49 47  C=sqlite3.c.ORIG
f3c0: 53 51 4c 49 54 45 53 52 43 3d 24 28 66 6f 72 65  SQLITESRC=$(fore
f3d0: 61 63 68 20 73 66 2c 24 28 53 51 4c 49 54 45 53  ach sf,$(SQLITES
f3e0: 52 43 29 2c 24 28 53 52 43 44 49 52 29 24 28 73  RC),$(SRCDIR)$(s
f3f0: 66 29 29 0a 53 51 4c 49 54 45 4f 42 4a 3d 24 28  f)).SQLITEOBJ=$(
f400: 66 6f 72 65 61 63 68 20 73 66 2c 24 28 53 51 4c  foreach sf,$(SQL
f410: 49 54 45 53 52 43 29 2c 24 28 73 66 3a 2e 63 3d  ITESRC),$(sf:.c=
f420: 2e 6f 62 6a 29 29 0a 53 51 4c 49 54 45 44 45 46  .obj)).SQLITEDEF
f430: 49 4e 45 53 3d 3c 3c 3c 53 51 4c 49 54 45 5f 4f  INES=<<<SQLITE_O
f440: 50 54 49 4f 4e 53 3e 3e 3e 0a 0a 23 20 64 65 66  PTIONS>>>..# def
f450: 69 6e 65 20 74 68 65 20 53 51 4c 69 74 65 20 73  ine the SQLite s
f460: 68 65 6c 6c 20 66 69 6c 65 73 2c 20 77 68 69 63  hell files, whic
f470: 68 20 6e 65 65 64 20 73 70 65 63 69 61 6c 20 66  h need special f
f480: 6c 61 67 73 20 6f 6e 20 63 6f 6d 70 69 6c 65 0a  lags on compile.
f490: 53 51 4c 49 54 45 53 48 45 4c 4c 53 52 43 3d 73  SQLITESHELLSRC=s
f4a0: 68 65 6c 6c 2e 63 0a 4f 52 49 47 53 51 4c 49 54  hell.c.ORIGSQLIT
f4b0: 45 53 48 45 4c 4c 53 52 43 3d 24 28 66 6f 72 65  ESHELLSRC=$(fore
f4c0: 61 63 68 20 73 66 2c 24 28 53 51 4c 49 54 45 53  ach sf,$(SQLITES
f4d0: 48 45 4c 4c 53 52 43 29 2c 24 28 53 52 43 44 49  HELLSRC),$(SRCDI
f4e0: 52 29 24 28 73 66 29 29 0a 53 51 4c 49 54 45 53  R)$(sf)).SQLITES
f4f0: 48 45 4c 4c 4f 42 4a 3d 24 28 66 6f 72 65 61 63  HELLOBJ=$(foreac
f500: 68 20 73 66 2c 24 28 53 51 4c 49 54 45 53 48 45  h sf,$(SQLITESHE
f510: 4c 4c 53 52 43 29 2c 24 28 73 66 3a 2e 63 3d 2e  LLSRC),$(sf:.c=.
f520: 6f 62 6a 29 29 0a 53 51 4c 49 54 45 53 48 45 4c  obj)).SQLITESHEL
f530: 4c 44 45 46 49 4e 45 53 3d 3c 3c 3c 53 48 45 4c  LDEFINES=<<<SHEL
f540: 4c 5f 4f 50 54 49 4f 4e 53 3e 3e 3e 0a 0a 23 20  L_OPTIONS>>>..# 
f550: 64 65 66 69 6e 65 20 74 68 65 20 74 68 20 73 63  define the th sc
f560: 72 69 70 74 69 6e 67 20 66 69 6c 65 73 2c 20 77  ripting files, w
f570: 68 69 63 68 20 6e 65 65 64 20 73 70 65 63 69 61  hich need specia
f580: 6c 20 66 6c 61 67 73 20 6f 6e 20 63 6f 6d 70 69  l flags on compi
f590: 6c 65 0a 54 48 53 52 43 3d 74 68 2e 63 20 74 68  le.THSRC=th.c th
f5a0: 5f 6c 61 6e 67 2e 63 0a 4f 52 49 47 54 48 53 52  _lang.c.ORIGTHSR
f5b0: 43 3d 24 28 66 6f 72 65 61 63 68 20 73 66 2c 24  C=$(foreach sf,$
f5c0: 28 54 48 53 52 43 29 2c 24 28 53 52 43 44 49 52  (THSRC),$(SRCDIR
f5d0: 29 24 28 73 66 29 29 0a 54 48 4f 42 4a 3d 24 28  )$(sf)).THOBJ=$(
f5e0: 66 6f 72 65 61 63 68 20 73 66 2c 24 28 54 48 53  foreach sf,$(THS
f5f0: 52 43 29 2c 24 28 73 66 3a 2e 63 3d 2e 6f 62 6a  RC),$(sf:.c=.obj
f600: 29 29 0a 0a 23 20 64 65 66 69 6e 65 20 74 68 65  ))..# define the
f610: 20 7a 6c 69 62 20 66 69 6c 65 73 2c 20 6e 65 65   zlib files, nee
f620: 64 65 64 20 62 79 20 74 68 69 73 20 63 6f 6d 70  ded by this comp
f630: 69 6c 65 0a 5a 4c 49 42 53 52 43 3d 61 64 6c 65  ile.ZLIBSRC=adle
f640: 72 33 32 2e 63 20 63 6f 6d 70 72 65 73 73 2e 63  r32.c compress.c
f650: 20 63 72 63 33 32 2e 63 20 64 65 66 6c 61 74 65   crc32.c deflate
f660: 2e 63 20 67 7a 63 6c 6f 73 65 2e 63 20 67 7a 6c  .c gzclose.c gzl
f670: 69 62 2e 63 20 67 7a 72 65 61 64 2e 63 20 67 7a  ib.c gzread.c gz
f680: 77 72 69 74 65 2e 63 20 69 6e 66 62 61 63 6b 2e  write.c infback.
f690: 63 20 69 6e 66 66 61 73 74 2e 63 20 69 6e 66 6c  c inffast.c infl
f6a0: 61 74 65 2e 63 20 69 6e 66 74 72 65 65 73 2e 63  ate.c inftrees.c
f6b0: 20 74 72 65 65 73 2e 63 20 75 6e 63 6f 6d 70 72   trees.c uncompr
f6c0: 2e 63 20 7a 75 74 69 6c 2e 63 0a 4f 52 49 47 5a  .c zutil.c.ORIGZ
f6d0: 4c 49 42 53 52 43 3d 24 28 66 6f 72 65 61 63 68  LIBSRC=$(foreach
f6e0: 20 73 66 2c 24 28 5a 4c 49 42 53 52 43 29 2c 24   sf,$(ZLIBSRC),$
f6f0: 28 5a 4c 49 42 53 52 43 44 49 52 29 24 28 73 66  (ZLIBSRCDIR)$(sf
f700: 29 29 0a 5a 4c 49 42 4f 42 4a 3d 24 28 66 6f 72  )).ZLIBOBJ=$(for
f710: 65 61 63 68 20 73 66 2c 24 28 5a 4c 49 42 53 52  each sf,$(ZLIBSR
f720: 43 29 2c 24 28 73 66 3a 2e 63 3d 2e 6f 62 6a 29  C),$(sf:.c=.obj)
f730: 29 0a 0a 23 20 64 65 66 69 6e 65 20 61 6c 6c 20  )..# define all 
f740: 66 6f 73 73 69 6c 20 73 6f 75 72 63 65 73 2c 20  fossil sources, 
f750: 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61  using the standa
f760: 72 64 20 63 6f 6d 70 69 6c 65 20 61 6e 64 0a 23  rd compile and.#
f770: 20 73 6f 75 72 63 65 20 67 65 6e 65 72 61 74 69   source generati
f780: 6f 6e 2e 20 54 68 65 73 65 20 61 72 65 20 61 6c  on. These are al
f790: 6c 20 66 69 6c 65 73 20 69 6e 20 53 52 43 44 49  l files in SRCDI
f7a0: 52 2c 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74  R, which are not
f7b0: 0a 23 20 6d 65 6e 74 69 6f 6e 65 64 20 61 73 20  .# mentioned as 
f7c0: 73 70 65 63 69 61 6c 20 66 69 6c 65 73 20 61 62  special files ab
f7d0: 6f 76 65 3a 0a 4f 52 49 47 53 52 43 3d 24 28 66  ove:.ORIGSRC=$(f
f7e0: 69 6c 74 65 72 2d 6f 75 74 20 24 28 55 54 49 4c  ilter-out $(UTIL
f7f0: 53 5f 53 52 43 29 20 24 28 4f 52 49 47 54 48 53  S_SRC) $(ORIGTHS
f800: 52 43 29 20 24 28 4f 52 49 47 53 51 4c 49 54 45  RC) $(ORIGSQLITE
f810: 53 52 43 29 20 24 28 4f 52 49 47 53 51 4c 49 54  SRC) $(ORIGSQLIT
f820: 45 53 48 45 4c 4c 53 52 43 29 2c 24 28 77 69 6c  ESHELLSRC),$(wil
f830: 64 63 61 72 64 20 24 28 53 52 43 44 49 52 29 2a  dcard $(SRCDIR)*
f840: 2e 63 29 29 0a 53 52 43 3d 24 28 73 75 62 73 74  .c)).SRC=$(subst
f850: 20 24 28 53 52 43 44 49 52 29 2c 2c 24 28 4f 52   $(SRCDIR),,$(OR
f860: 49 47 53 52 43 29 29 0a 54 52 41 4e 53 4c 41 54  IGSRC)).TRANSLAT
f870: 45 44 53 52 43 3d 24 28 53 52 43 3a 2e 63 3d 5f  EDSRC=$(SRC:.c=_
f880: 2e 63 29 0a 54 52 41 4e 53 4c 41 54 45 44 4f 42  .c).TRANSLATEDOB
f890: 4a 3d 24 28 54 52 41 4e 53 4c 41 54 45 44 53 52  J=$(TRANSLATEDSR
f8a0: 43 3a 2e 63 3d 2e 6f 62 6a 29 0a 0a 23 20 6d 61  C:.c=.obj)..# ma
f8b0: 69 6e 20 74 61 72 67 65 74 20 66 69 6c 65 20 69  in target file i
f8c0: 73 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f  s the applicatio
f8d0: 6e 0a 41 50 50 4c 49 43 41 54 49 4f 4e 3d 66 6f  n.APPLICATION=fo
f8e0: 73 73 69 6c 2e 65 78 65 0a 0a 23 20 64 65 66 69  ssil.exe..# defi
f8f0: 6e 65 20 74 68 65 20 73 74 61 6e 64 61 72 64 20  ne the standard 
f900: 6d 61 6b 65 20 74 61 72 67 65 74 0a 2e 50 48 4f  make target..PHO
f910: 4e 59 3a 09 64 65 66 61 75 6c 74 0a 64 65 66 61  NY:.default.defa
f920: 75 6c 74 3a 09 70 61 67 65 5f 69 6e 64 65 78 2e  ult:.page_index.
f930: 68 20 62 75 69 6c 74 69 6e 5f 64 61 74 61 2e 68  h builtin_data.h
f940: 20 68 65 61 64 65 72 73 20 24 28 41 50 50 4c 49   headers $(APPLI
f950: 43 41 54 49 4f 4e 29 0a 0a 23 20 73 79 6d 62 6f  CATION)..# symbo
f960: 6c 69 63 20 74 61 72 67 65 74 20 74 6f 20 67 65  lic target to ge
f970: 6e 65 72 61 74 65 20 74 68 65 20 73 6f 75 72 63  nerate the sourc
f980: 65 20 67 65 6e 65 72 61 74 65 20 75 74 69 6c 73  e generate utils
f990: 0a 2e 50 48 4f 4e 59 3a 09 75 74 69 6c 73 0a 75  ..PHONY:.utils.u
f9a0: 74 69 6c 73 3a 09 24 28 55 54 49 4c 53 29 0a 0a  tils:.$(UTILS)..
f9b0: 23 20 6c 69 6e 6b 20 75 74 69 6c 73 0a 24 28 55  # link utils.$(U
f9c0: 54 49 4c 53 29 20 76 65 72 73 69 6f 6e 2e 65 78  TILS) version.ex
f9d0: 65 3a 09 25 2e 65 78 65 3a 09 25 2e 6f 62 6a 0a  e:.%.exe:.%.obj.
f9e0: 09 24 28 4c 49 4e 4b 29 20 24 28 4c 49 4e 4b 46  .$(LINK) $(LINKF
f9f0: 4c 41 47 53 29 20 2d 6f 75 74 3a 22 24 40 22 20  LAGS) -out:"$@" 
fa00: 24 3c 0a 0a 23 20 63 6f 6d 70 69 6c 69 6e 67 20  $<..# compiling 
fa10: 73 74 61 6e 64 61 72 64 20 66 6f 73 73 69 6c 20  standard fossil 
fa20: 75 74 69 6c 73 0a 24 28 55 54 49 4c 53 5f 4f 42  utils.$(UTILS_OB
fa30: 4a 29 3a 09 25 2e 6f 62 6a 3a 09 24 28 53 52 43  J):.%.obj:.$(SRC
fa40: 44 49 52 29 25 2e 63 0a 09 24 28 43 43 29 20 24  DIR)%.c..$(CC) $
fa50: 28 43 43 46 4c 41 47 53 29 20 24 28 49 4e 43 4c  (CCFLAGS) $(INCL
fa60: 55 44 45 29 20 22 24 3c 22 20 2d 46 6f 22 24 40  UDE) "$<" -Fo"$@
fa70: 22 0a 0a 23 20 63 6f 6d 70 69 6c 65 20 73 70 65  "..# compile spe
fa80: 63 69 61 6c 20 77 69 6e 64 6f 77 73 20 75 74 69  cial windows uti
fa90: 6c 73 0a 76 65 72 73 69 6f 6e 2e 6f 62 6a 3a 09  ls.version.obj:.
faa0: 24 28 53 52 43 44 49 52 29 6d 6b 76 65 72 73 69  $(SRCDIR)mkversi
fab0: 6f 6e 2e 63 0a 09 24 28 43 43 29 20 24 28 43 43  on.c..$(CC) $(CC
fac0: 46 4c 41 47 53 29 20 24 28 49 4e 43 4c 55 44 45  FLAGS) $(INCLUDE
fad0: 29 20 22 24 3c 22 20 2d 46 6f 22 24 40 22 0a 0a  ) "$<" -Fo"$@"..
fae0: 23 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 74  # generate the t
faf0: 72 61 6e 73 6c 61 74 65 64 20 63 2d 73 6f 75 72  ranslated c-sour
fb00: 63 65 20 66 69 6c 65 73 0a 24 28 54 52 41 4e 53  ce files.$(TRANS
fb10: 4c 41 54 45 44 53 52 43 29 3a 09 25 5f 2e 63 3a  LATEDSRC):.%_.c:
fb20: 09 24 28 53 52 43 44 49 52 29 25 2e 63 20 74 72  .$(SRCDIR)%.c tr
fb30: 61 6e 73 6c 61 74 65 2e 65 78 65 0a 09 74 72 61  anslate.exe..tra
fb40: 6e 73 6c 61 74 65 2e 65 78 65 20 24 3c 20 3e 24  nslate.exe $< >$
fb50: 40 0a 0a 23 20 67 65 6e 65 72 61 74 65 20 74 68  @..# generate th
fb60: 65 20 69 6e 64 65 78 20 73 6f 75 72 63 65 2c 20  e index source, 
fb70: 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 77  containing all w
fb80: 65 62 20 72 65 66 65 72 65 6e 63 65 73 2c 2e 2e  eb references,..
fb90: 0a 70 61 67 65 5f 69 6e 64 65 78 2e 68 3a 09 24  .page_index.h:.$
fba0: 28 54 52 41 4e 53 4c 41 54 45 44 53 52 43 29 20  (TRANSLATEDSRC) 
fbb0: 6d 6b 69 6e 64 65 78 2e 65 78 65 0a 09 6d 6b 69  mkindex.exe..mki
fbc0: 6e 64 65 78 2e 65 78 65 20 24 28 54 52 41 4e 53  ndex.exe $(TRANS
fbd0: 4c 41 54 45 44 53 52 43 29 20 3e 24 40 0a 0a 62  LATEDSRC) >$@..b
fbe0: 75 69 6c 74 69 6e 5f 64 61 74 61 2e 68 3a 09 24  uiltin_data.h:.$
fbf0: 28 45 58 54 52 41 5f 46 49 4c 45 53 29 20 6d 6b  (EXTRA_FILES) mk
fc00: 62 75 69 6c 74 69 6e 2e 65 78 65 0a 09 6d 6b 62  builtin.exe..mkb
fc10: 75 69 6c 74 69 6e 2e 65 78 65 20 2d 2d 70 72 65  uiltin.exe --pre
fc20: 66 69 78 20 24 28 53 52 43 44 49 52 29 2f 20 24  fix $(SRCDIR)/ $
fc30: 28 45 58 54 52 41 5f 46 49 4c 45 53 29 20 3e 24  (EXTRA_FILES) >$
fc40: 40 0a 0a 23 20 65 78 74 72 61 63 74 69 6e 67 20  @..# extracting 
fc50: 76 65 72 73 69 6f 6e 20 69 6e 66 6f 20 66 72 6f  version info fro
fc60: 6d 20 6d 61 6e 69 66 65 73 74 0a 56 45 52 53 49  m manifest.VERSI
fc70: 4f 4e 2e 68 3a 09 76 65 72 73 69 6f 6e 2e 65 78  ON.h:.version.ex
fc80: 65 20 2e 2e 5c 6d 61 6e 69 66 65 73 74 2e 75 75  e ..\manifest.uu
fc90: 69 64 20 2e 2e 5c 6d 61 6e 69 66 65 73 74 20 2e  id ..\manifest .
fca0: 2e 5c 56 45 52 53 49 4f 4e 0a 09 76 65 72 73 69  .\VERSION..versi
fcb0: 6f 6e 2e 65 78 65 20 2e 2e 5c 6d 61 6e 69 66 65  on.exe ..\manife
fcc0: 73 74 2e 75 75 69 64 20 2e 2e 5c 6d 61 6e 69 66  st.uuid ..\manif
fcd0: 65 73 74 20 2e 2e 5c 56 45 52 53 49 4f 4e 20 20  est ..\VERSION  
fce0: 3e 24 40 0a 0a 23 20 67 65 6e 65 72 61 74 65 20  >$@..# generate 
fcf0: 74 68 65 20 73 69 6d 70 6c 69 66 69 65 64 20 68  the simplified h
fd00: 65 61 64 65 72 73 0a 68 65 61 64 65 72 73 3a 20  eaders.headers: 
fd10: 6d 61 6b 65 68 65 61 64 65 72 73 2e 65 78 65 20  makeheaders.exe 
fd20: 70 61 67 65 5f 69 6e 64 65 78 2e 68 20 62 75 69  page_index.h bui
fd30: 6c 74 69 6e 5f 64 61 74 61 2e 68 20 56 45 52 53  ltin_data.h VERS
fd40: 49 4f 4e 2e 68 20 2e 2e 2f 73 72 63 2f 73 71 6c  ION.h ../src/sql
fd50: 69 74 65 33 2e 68 20 2e 2e 2f 73 72 63 2f 74 68  ite3.h ../src/th
fd60: 2e 68 0a 09 6d 61 6b 65 68 65 61 64 65 72 73 2e  .h..makeheaders.
fd70: 65 78 65 20 24 28 66 6f 72 65 61 63 68 20 74 73  exe $(foreach ts
fd80: 2c 24 28 54 52 41 4e 53 4c 41 54 45 44 53 52 43  ,$(TRANSLATEDSRC
fd90: 29 2c 24 28 74 73 29 3a 24 28 74 73 3a 5f 2e 63  ),$(ts):$(ts:_.c
fda0: 3d 2e 68 29 29 20 2e 2e 2f 73 72 63 2f 73 71 6c  =.h)) ../src/sql
fdb0: 69 74 65 33 2e 68 20 2e 2e 2f 73 72 63 2f 74 68  ite3.h ../src/th
fdc0: 2e 68 20 56 45 52 53 49 4f 4e 2e 68 0a 09 65 63  .h VERSION.h..ec
fdd0: 68 6f 20 44 6f 6e 65 20 3e 24 40 0a 0a 23 20 63  ho Done >$@..# c
fde0: 6f 6d 70 69 6c 65 20 43 20 73 6f 75 72 63 65 73  ompile C sources
fdf0: 20 77 69 74 68 20 72 65 6c 65 76 61 6e 74 20 6f   with relevant o
fe00: 70 74 69 6f 6e 73 0a 0a 24 28 54 52 41 4e 53 4c  ptions..$(TRANSL
fe10: 41 54 45 44 4f 42 4a 29 3a 09 25 5f 2e 6f 62 6a  ATEDOBJ):.%_.obj
fe20: 3a 09 25 5f 2e 63 20 25 2e 68 0a 09 24 28 43 43  :.%_.c %.h..$(CC
fe30: 29 20 24 28 43 43 46 4c 41 47 53 29 20 24 28 49  ) $(CCFLAGS) $(I
fe40: 4e 43 4c 55 44 45 29 20 22 24 3c 22 20 2d 46 6f  NCLUDE) "$<" -Fo
fe50: 22 24 40 22 0a 0a 24 28 53 51 4c 49 54 45 4f 42  "$@"..$(SQLITEOB
fe60: 4a 29 3a 09 25 2e 6f 62 6a 3a 09 24 28 53 52 43  J):.%.obj:.$(SRC
fe70: 44 49 52 29 25 2e 63 20 24 28 53 52 43 44 49 52  DIR)%.c $(SRCDIR
fe80: 29 25 2e 68 0a 09 24 28 43 43 29 20 24 28 43 43  )%.h..$(CC) $(CC
fe90: 46 4c 41 47 53 29 20 24 28 53 51 4c 49 54 45 44  FLAGS) $(SQLITED
fea0: 45 46 49 4e 45 53 29 20 24 28 49 4e 43 4c 55 44  EFINES) $(INCLUD
feb0: 45 29 20 22 24 3c 22 20 2d 46 6f 22 24 40 22 0a  E) "$<" -Fo"$@".
fec0: 0a 24 28 53 51 4c 49 54 45 53 48 45 4c 4c 4f 42  .$(SQLITESHELLOB
fed0: 4a 29 3a 09 25 2e 6f 62 6a 3a 09 24 28 53 52 43  J):.%.obj:.$(SRC
fee0: 44 49 52 29 25 2e 63 0a 09 24 28 43 43 29 20 24  DIR)%.c..$(CC) $
fef0: 28 43 43 46 4c 41 47 53 29 20 24 28 53 51 4c 49  (CCFLAGS) $(SQLI
ff00: 54 45 53 48 45 4c 4c 44 45 46 49 4e 45 53 29 20  TESHELLDEFINES) 
ff10: 24 28 49 4e 43 4c 55 44 45 29 20 22 24 3c 22 20  $(INCLUDE) "$<" 
ff20: 2d 46 6f 22 24 40 22 0a 0a 24 28 54 48 4f 42 4a  -Fo"$@"..$(THOBJ
ff30: 29 3a 09 25 2e 6f 62 6a 3a 09 24 28 53 52 43 44  ):.%.obj:.$(SRCD
ff40: 49 52 29 25 2e 63 20 24 28 53 52 43 44 49 52 29  IR)%.c $(SRCDIR)
ff50: 74 68 2e 68 0a 09 24 28 43 43 29 20 24 28 43 43  th.h..$(CC) $(CC
ff60: 46 4c 41 47 53 29 20 24 28 49 4e 43 4c 55 44 45  FLAGS) $(INCLUDE
ff70: 29 20 22 24 3c 22 20 2d 46 6f 22 24 40 22 0a 0a  ) "$<" -Fo"$@"..
ff80: 24 28 5a 4c 49 42 4f 42 4a 29 3a 09 25 2e 6f 62  $(ZLIBOBJ):.%.ob
ff90: 6a 3a 09 24 28 5a 4c 49 42 53 52 43 44 49 52 29  j:.$(ZLIBSRCDIR)
ffa0: 25 2e 63 0a 09 24 28 43 43 29 20 24 28 43 43 46  %.c..$(CC) $(CCF
ffb0: 4c 41 47 53 29 20 24 28 49 4e 43 4c 55 44 45 29  LAGS) $(INCLUDE)
ffc0: 20 22 24 3c 22 20 2d 46 6f 22 24 40 22 0a 0a 23   "$<" -Fo"$@"..#
ffd0: 20 63 72 65 61 74 65 20 74 68 65 20 77 69 6e 64   create the wind
ffe0: 6f 77 73 20 72 65 73 6f 75 72 63 65 20 77 69 74  ows resource wit
fff0: 68 20 69 63 6f 6e 20 61 6e 64 20 76 65 72 73 69  h icon and versi
10000 6f 6e 20 69 6e 66 6f 0a 24 28 52 45 53 4f 55 52  on info.$(RESOUR
10010 43 45 29 3a 09 25 2e 72 65 73 3a 09 2e 2e 2f 77  CE):.%.res:.../w
10020 69 6e 2f 25 2e 72 63 20 2e 2e 2f 77 69 6e 2f 2a  in/%.rc ../win/*
10030 2e 69 63 6f 0a 09 24 28 52 43 29 20 24 28 52 43  .ico..$(RC) $(RC
10040 46 4c 41 47 53 29 20 24 3c 20 2d 46 6f 22 24 40  FLAGS) $< -Fo"$@
10050 22 0a 0a 23 20 6c 69 6e 6b 20 74 68 65 20 61 70  "..# link the ap
10060 70 6c 69 63 61 74 69 6f 6e 0a 24 28 41 50 50 4c  plication.$(APPL
10070 49 43 41 54 49 4f 4e 29 3a 09 24 28 54 52 41 4e  ICATION):.$(TRAN
10080 53 4c 41 54 45 44 4f 42 4a 29 20 24 28 53 51 4c  SLATEDOBJ) $(SQL
10090 49 54 45 4f 42 4a 29 20 24 28 53 51 4c 49 54 45  ITEOBJ) $(SQLITE
100a0 53 48 45 4c 4c 4f 42 4a 29 20 24 28 54 48 4f 42  SHELLOBJ) $(THOB
100b0 4a 29 20 24 28 5a 4c 49 42 4f 42 4a 29 20 68 65  J) $(ZLIBOBJ) he
100c0 61 64 65 72 73 20 24 28 52 45 53 4f 55 52 43 45  aders $(RESOURCE
100d0 29 0a 09 24 28 4c 49 4e 4b 29 20 24 28 4c 49 4e  )..$(LINK) $(LIN
100e0 4b 46 4c 41 47 53 29 20 2d 6f 75 74 3a 22 24 40  KFLAGS) -out:"$@
100f0 22 20 24 28 54 52 41 4e 53 4c 41 54 45 44 4f 42  " $(TRANSLATEDOB
10100 4a 29 20 24 28 53 51 4c 49 54 45 4f 42 4a 29 20  J) $(SQLITEOBJ) 
10110 24 28 53 51 4c 49 54 45 53 48 45 4c 4c 4f 42 4a  $(SQLITESHELLOBJ
10120 29 20 24 28 54 48 4f 42 4a 29 20 24 28 5a 4c 49  ) $(THOBJ) $(ZLI
10130 42 4f 42 4a 29 20 24 28 52 45 53 4f 55 52 43 45  BOBJ) $(RESOURCE
10140 29 0a 0a 23 20 63 6c 65 61 6e 75 70 0a 0a 2e 50  )..# cleanup...P
10150 48 4f 4e 59 3a 20 63 6c 65 61 6e 0a 63 6c 65 61  HONY: clean.clea
10160 6e 3a 0a 09 2d 64 65 6c 20 2f 46 20 24 28 54 52  n:..-del /F $(TR
10170 41 4e 53 4c 41 54 45 44 4f 42 4a 29 20 24 28 53  ANSLATEDOBJ) $(S
10180 51 4c 49 54 45 4f 42 4a 29 20 24 28 54 48 4f 42  QLITEOBJ) $(THOB
10190 4a 29 20 24 28 5a 4c 49 42 4f 42 4a 29 20 24 28  J) $(ZLIBOBJ) $(
101a0 55 54 49 4c 53 5f 4f 42 4a 29 20 76 65 72 73 69  UTILS_OBJ) versi
101b0 6f 6e 2e 6f 62 6a 0a 09 2d 64 65 6c 20 2f 46 20  on.obj..-del /F 
101c0 24 28 54 52 41 4e 53 4c 41 54 45 44 53 52 43 29  $(TRANSLATEDSRC)
101d0 0a 09 2d 64 65 6c 20 2f 46 20 2a 2e 68 20 68 65  ..-del /F *.h he
101e0 61 64 65 72 73 0a 09 2d 64 65 6c 20 2f 46 20 24  aders..-del /F $
101f0 28 52 45 53 4f 55 52 43 45 29 0a 0a 2e 50 48 4f  (RESOURCE)...PHO
10200 4e 59 3a 20 63 6c 6f 62 62 65 72 0a 63 6c 6f 62  NY: clobber.clob
10210 62 65 72 3a 20 63 6c 65 61 6e 0a 09 2d 64 65 6c  ber: clean..-del
10220 20 2f 46 20 2a 2e 65 78 65 0a 7d 5d 0a            /F *.exe.}].