mirror of
https://github.com/sqlite/sqlite.git
synced 2024-11-28 16:09:31 +01:00
5460d5da8e
FossilOrigin-Name: c4da7fa279274e5a6fe214b5c22f17bcf9b40299aeeab5bfbdae2ba0b2de6af0
67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
# Notes On Compiling SQLite On All Kinds Of Unix
|
|
|
|
Here are step-by-step instructions on how to build SQLite from
|
|
canonical source on any modern machine that isn't Windows. These
|
|
notes are tested (on 2024-10-11) on Ubuntu and on MacOS, but they
|
|
are general and should work on most any modern unix platform.
|
|
|
|
1. Install a C-compiler. GCC or Clang both work fine. If you are
|
|
reading this document, you've probably already done that.
|
|
|
|
2. *(Optional):* Install TCL development libraries. In this note,
|
|
we'll do a private install in the $HOME/local directory,
|
|
but you can make adjustments to install TCL wherever you like.
|
|
This document assumes you are working with TCL version 9.0.
|
|
<ol type="a">
|
|
<li>Get the TCL source archive, perhaps from
|
|
<https://www.tcl.tk/software/tcltk/download.html>
|
|
or <https://sqlite.org/tmp/tcl9.0.0.tar.gz>.
|
|
<li>Untar the source archive. CD into the "unix/" subfolder
|
|
of the source tree.
|
|
<li>Run: `mkdir $HOME/local`
|
|
<li>Run: `./configure --prefix=$HOME/local`
|
|
<li>Run: `make install`
|
|
</ol>
|
|
<p>
|
|
As of 2024-10-25, TCL is not longer required for many
|
|
common build targets, such as "sqlite3.c" or the "sqlite3"
|
|
command-line tool. So you can skip this step if that is all
|
|
you want to build. TCL is still required to run "make test"
|
|
and similar, or to build the TCL extension, of course.
|
|
|
|
4. Download the SQLite source tree and unpack it. CD into the
|
|
toplevel directory of the source tree.
|
|
|
|
5. Run: `./configure --enable-all --with-tclsh=$HOME/local/bin/tclsh9.0`
|
|
|
|
You do not need to use --with-tclsh if the tclsh you want to use is the
|
|
first one on your PATH or if you are building without TCL.
|
|
|
|
6. Run the "`Makefile`" makefile with an appropriate target.
|
|
Examples:
|
|
<ul>
|
|
<li> `make sqlite3.c`
|
|
<li> `make sqlite3`
|
|
<li> `make sqldiff`
|
|
<li> `make sqlite3_rsync`
|
|
</ul>
|
|
<p>None of the targets above require TCL. TCL is only needed
|
|
for the following targets:
|
|
<ul>
|
|
<li> `make tclextension-install`
|
|
<li> `make devtest`
|
|
<li> `make releasetest`
|
|
<li> `make sqlite3_analyzer`
|
|
</ul>
|
|
|
|
It is not required that you run the "tclextension-install" target prior to
|
|
running tests. However, the tests will run more smoothly if you do.
|
|
The version of SQLite used for the TCL extension does *not* need to
|
|
correspond to the version of SQLite under test. So you can install the
|
|
SQLite TCL extension once, and then use it to test many different versions
|
|
of SQLite.
|
|
|
|
|
|
7. For a debugging build of the CLI, where the ".treetrace" and ".wheretrace"
|
|
commands work, add the the --with-debug argument to configure.
|