12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #
- # Run this Tcl script to generate the dynload.html file.
- #
- set rcsid {$Id: dynload.tcl,v 1.1 2001/02/11 16:58:22 drh Exp $}
- puts {<html>
- <head>
- <title>How to build a dynamically loaded Tcl extension for SQLite</title>
- </head>
- <body bgcolor=white>
- <h1 align=center>
- How To Build A Dynamically Loaded Tcl Extension
- </h1>}
- puts {<p>
- <i>This note was contributed by
- <a href="bsaunder@tampabay.rr.com.nospam">Bill Saunders</a>. Thanks, Bill!</i>
- <p>
- To compile the SQLite Tcl extension into a dynamically loaded module
- I did the following:
- </p>
- <ol>
- <li><p>Do a standard compile
- (I had a dir called bld at the same level as sqlite ie
- /root/bld
- /root/sqlite
- I followed the directions and did a standard build in the bld
- directory)</p></li>
- <li><p>
- Now do the following in the bld directory
- <blockquote><pre>
- gcc -shared -I. -lgdbm ../sqlite/src/tclsqlite.c libsqlite.a -o sqlite.so
- </pre></blockquote></p></li>
- <li><p>
- This should produce the file sqlite.so in the bld directory</p></li>
- <li><p>
- Create a pkgIndex.tcl file that contains this line
- <blockquote><pre>
- package ifneeded sqlite 1.0 [list load [file join $dir sqlite.so]]
- </pre></blockquote></p></li>
- <li><p>
- To use this put sqlite.so and pkgIndex.tcl in the same directory</p></li>
- <li><p>
- From that directory start wish</p></li>
- <li><p>
- Execute the following tcl command (tells tcl where to fine loadable
- modules)
- <blockquote><pre>
- lappend auto_path [exec pwd]
- </pre></blockquote></p></li>
- <li><p>
- Load the package
- <blockquote><pre>
- package require sqlite
- </pre></blockquote></p></li>
- <li><p>
- Have fun....</p></li>
- </ul>
- </body></html>}
|