/ Hex Artifact Content
Login

Artifact 02eb8273aa78cfa9070dd4501dca937fb22b466c:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 54 63 6c  #.# Run this Tcl
0010: 20 73 63 72 69 70 74 20 74 6f 20 67 65 6e 65 72   script to gener
0020: 61 74 65 20 74 68 65 20 64 79 6e 6c 6f 61 64 2e  ate the dynload.
0030: 68 74 6d 6c 20 66 69 6c 65 2e 0a 23 0a 73 65 74  html file..#.set
0040: 20 72 63 73 69 64 20 7b 24 49 64 3a 20 64 79 6e   rcsid {$Id: dyn
0050: 6c 6f 61 64 2e 74 63 6c 2c 76 20 31 2e 31 20 32  load.tcl,v 1.1 2
0060: 30 30 31 2f 30 32 2f 31 31 20 31 36 3a 35 38 3a  001/02/11 16:58:
0070: 32 32 20 64 72 68 20 45 78 70 20 24 7d 0a 0a 70  22 drh Exp $}..p
0080: 75 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61  uts {<html>.<hea
0090: 64 3e 0a 20 20 3c 74 69 74 6c 65 3e 48 6f 77 20  d>.  <title>How 
00a0: 74 6f 20 62 75 69 6c 64 20 61 20 64 79 6e 61 6d  to build a dynam
00b0: 69 63 61 6c 6c 79 20 6c 6f 61 64 65 64 20 54 63  ically loaded Tc
00c0: 6c 20 65 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20  l extension for 
00d0: 53 51 4c 69 74 65 3c 2f 74 69 74 6c 65 3e 0a 3c  SQLite</title>.<
00e0: 2f 68 65 61 64 3e 0a 3c 62 6f 64 79 20 62 67 63  /head>.<body bgc
00f0: 6f 6c 6f 72 3d 77 68 69 74 65 3e 0a 3c 68 31 20  olor=white>.<h1 
0100: 61 6c 69 67 6e 3d 63 65 6e 74 65 72 3e 0a 48 6f  align=center>.Ho
0110: 77 20 54 6f 20 42 75 69 6c 64 20 41 20 44 79 6e  w To Build A Dyn
0120: 61 6d 69 63 61 6c 6c 79 20 4c 6f 61 64 65 64 20  amically Loaded 
0130: 54 63 6c 20 45 78 74 65 6e 73 69 6f 6e 0a 3c 2f  Tcl Extension.</
0140: 68 31 3e 7d 0a 70 75 74 73 20 7b 3c 70 3e 0a 3c  h1>}.puts {<p>.<
0150: 69 3e 54 68 69 73 20 6e 6f 74 65 20 77 61 73 20  i>This note was 
0160: 63 6f 6e 74 72 69 62 75 74 65 64 20 62 79 20 0a  contributed by .
0170: 3c 61 20 68 72 65 66 3d 22 62 73 61 75 6e 64 65  <a href="bsaunde
0180: 72 40 74 61 6d 70 61 62 61 79 2e 72 72 2e 63 6f  r@tampabay.rr.co
0190: 6d 2e 6e 6f 73 70 61 6d 22 3e 42 69 6c 6c 20 53  m.nospam">Bill S
01a0: 61 75 6e 64 65 72 73 3c 2f 61 3e 2e 20 20 54 68  aunders</a>.  Th
01b0: 61 6e 6b 73 2c 20 42 69 6c 6c 21 3c 2f 69 3e 0a  anks, Bill!</i>.
01c0: 0a 3c 70 3e 0a 54 6f 20 63 6f 6d 70 69 6c 65 20  .<p>.To compile 
01d0: 74 68 65 20 53 51 4c 69 74 65 20 54 63 6c 20 65  the SQLite Tcl e
01e0: 78 74 65 6e 73 69 6f 6e 20 69 6e 74 6f 20 61 20  xtension into a 
01f0: 64 79 6e 61 6d 69 63 61 6c 6c 79 20 6c 6f 61 64  dynamically load
0200: 65 64 20 6d 6f 64 75 6c 65 20 0a 49 20 64 69 64  ed module .I did
0210: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a   the following:.
0220: 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 3c  </p>..<ol>.<li><
0230: 70 3e 44 6f 20 61 20 73 74 61 6e 64 61 72 64 20  p>Do a standard 
0240: 63 6f 6d 70 69 6c 65 0a 28 49 20 68 61 64 20 61  compile.(I had a
0250: 20 64 69 72 20 63 61 6c 6c 65 64 20 62 6c 64 20   dir called bld 
0260: 61 74 20 74 68 65 20 73 61 6d 65 20 6c 65 76 65  at the same leve
0270: 6c 20 61 73 20 73 71 6c 69 74 65 20 20 69 65 0a  l as sqlite  ie.
0280: 20 20 20 20 20 20 20 20 2f 72 6f 6f 74 2f 62 6c          /root/bl
0290: 64 0a 20 20 20 20 20 20 20 20 2f 72 6f 6f 74 2f  d.        /root/
02a0: 73 71 6c 69 74 65 0a 49 20 66 6f 6c 6c 6f 77 65  sqlite.I followe
02b0: 64 20 74 68 65 20 64 69 72 65 63 74 69 6f 6e 73  d the directions
02c0: 20 61 6e 64 20 64 69 64 20 61 20 73 74 61 6e 64   and did a stand
02d0: 61 72 64 20 62 75 69 6c 64 20 69 6e 20 74 68 65  ard build in the
02e0: 20 62 6c 64 0a 64 69 72 65 63 74 6f 72 79 29 3c   bld.directory)<
02f0: 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70  /p></li>..<li><p
0300: 3e 0a 4e 6f 77 20 64 6f 20 74 68 65 20 66 6f 6c  >.Now do the fol
0310: 6c 6f 77 69 6e 67 20 69 6e 20 74 68 65 20 62 6c  lowing in the bl
0320: 64 20 64 69 72 65 63 74 6f 72 79 0a 3c 62 6c 6f  d directory.<blo
0330: 63 6b 71 75 6f 74 65 3e 3c 70 72 65 3e 0a 67 63  ckquote><pre>.gc
0340: 63 20 2d 73 68 61 72 65 64 20 2d 49 2e 20 2d 6c  c -shared -I. -l
0350: 67 64 62 6d 20 2e 2e 2f 73 71 6c 69 74 65 2f 73  gdbm ../sqlite/s
0360: 72 63 2f 74 63 6c 73 71 6c 69 74 65 2e 63 20 6c  rc/tclsqlite.c l
0370: 69 62 73 71 6c 69 74 65 2e 61 20 2d 6f 20 73 71  ibsqlite.a -o sq
0380: 6c 69 74 65 2e 73 6f 0a 3c 2f 70 72 65 3e 3c 2f  lite.so.</pre></
0390: 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c 2f 70 3e 3c  blockquote></p><
03a0: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 54 68  /li>..<li><p>.Th
03b0: 69 73 20 73 68 6f 75 6c 64 20 70 72 6f 64 75 63  is should produc
03c0: 65 20 74 68 65 20 66 69 6c 65 20 73 71 6c 69 74  e the file sqlit
03d0: 65 2e 73 6f 20 69 6e 20 74 68 65 20 62 6c 64 20  e.so in the bld 
03e0: 64 69 72 65 63 74 6f 72 79 3c 2f 70 3e 3c 2f 6c  directory</p></l
03f0: 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 43 72 65 61  i>..<li><p>.Crea
0400: 74 65 20 61 20 70 6b 67 49 6e 64 65 78 2e 74 63  te a pkgIndex.tc
0410: 6c 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74  l file that cont
0420: 61 69 6e 73 20 74 68 69 73 20 6c 69 6e 65 0a 0a  ains this line..
0430: 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c 70 72 65  <blockquote><pre
0440: 3e 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64  >.package ifneed
0450: 65 64 20 73 71 6c 69 74 65 20 31 2e 30 20 5b 6c  ed sqlite 1.0 [l
0460: 69 73 74 20 6c 6f 61 64 20 5b 66 69 6c 65 20 6a  ist load [file j
0470: 6f 69 6e 20 24 64 69 72 20 73 71 6c 69 74 65 2e  oin $dir sqlite.
0480: 73 6f 5d 5d 0a 3c 2f 70 72 65 3e 3c 2f 62 6c 6f  so]].</pre></blo
0490: 63 6b 71 75 6f 74 65 3e 3c 2f 70 3e 3c 2f 6c 69  ckquote></p></li
04a0: 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 54 6f 20 75 73  >..<li><p>.To us
04b0: 65 20 74 68 69 73 20 70 75 74 20 73 71 6c 69 74  e this put sqlit
04c0: 65 2e 73 6f 20 61 6e 64 20 70 6b 67 49 6e 64 65  e.so and pkgInde
04d0: 78 2e 74 63 6c 20 69 6e 20 74 68 65 20 73 61 6d  x.tcl in the sam
04e0: 65 20 64 69 72 65 63 74 6f 72 79 3c 2f 70 3e 3c  e directory</p><
04f0: 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 46 72  /li>..<li><p>.Fr
0500: 6f 6d 20 74 68 61 74 20 64 69 72 65 63 74 6f 72  om that director
0510: 79 20 73 74 61 72 74 20 77 69 73 68 3c 2f 70 3e  y start wish</p>
0520: 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 45  </li>..<li><p>.E
0530: 78 65 63 75 74 65 20 74 68 65 20 66 6f 6c 6c 6f  xecute the follo
0540: 77 69 6e 67 20 74 63 6c 20 63 6f 6d 6d 61 6e 64  wing tcl command
0550: 20 28 74 65 6c 6c 73 20 74 63 6c 20 77 68 65 72   (tells tcl wher
0560: 65 20 74 6f 20 66 69 6e 65 20 6c 6f 61 64 61 62  e to fine loadab
0570: 6c 65 0a 6d 6f 64 75 6c 65 73 29 0a 3c 62 6c 6f  le.modules).<blo
0580: 63 6b 71 75 6f 74 65 3e 3c 70 72 65 3e 0a 6c 61  ckquote><pre>.la
0590: 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74 68 20  ppend auto_path 
05a0: 5b 65 78 65 63 20 70 77 64 5d 0a 3c 2f 70 72 65  [exec pwd].</pre
05b0: 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c 2f  ></blockquote></
05c0: 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e  p></li>..<li><p>
05d0: 0a 4c 6f 61 64 20 74 68 65 20 70 61 63 6b 61 67  .Load the packag
05e0: 65 20 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c  e .<blockquote><
05f0: 70 72 65 3e 0a 70 61 63 6b 61 67 65 20 72 65 71  pre>.package req
0600: 75 69 72 65 20 73 71 6c 69 74 65 0a 3c 2f 70 72  uire sqlite.</pr
0610: 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c  e></blockquote><
0620: 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70  /p></li>..<li><p
0630: 3e 0a 48 61 76 65 20 66 75 6e 2e 2e 2e 2e 3c 2f  >.Have fun....</
0640: 70 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c  p></li>.</ul>..<
0650: 2f 62 6f 64 79 3e 3c 2f 68 74 6d 6c 3e 7d 0a     /body></html>}.