71 lines
1.6 KiB
Tcl
71 lines
1.6 KiB
Tcl
#
|
|
# 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>}
|