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.
+See the companion document ([](./compile-for-windows.md>)) for
+guidance on building for Windows.
1. Install a C-compiler. GCC or Clang both work fine. If you are
reading this document, you've probably already done that.
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.
+ See also the [](./tcl-extension-testing.md) document that contains
+ more details on compiling Tcl for use with SQLite.
<ol type="a">
<li>Get the TCL source archive, perhaps from
<https://www.tcl.tk/software/tcltk/download.html>
<li> `make sqldiff`
<li> `make sqlite3_rsync`
</ul>
- <p>None of the targets above require TCL. TCL is only needed
+ <p>None of the targets above require TCL. TCL is needed
for the following targets:
<ul>
<li> `make tclextension-install`
# Notes On Compiling SQLite On Windows 11
-Here are step-by-step instructions on how to build SQLite from
-canonical source on a new Windows 11 PC, as of 2024-10-09:
+Below are step-by-step instructions on how to build SQLite from
+canonical source on a new Windows 11 PC, as of 2024-10-09.
+See [](./compile-for-unix.md) for a similar guide for unix-like
+systems, including MacOS.
1. Install Microsoft Visual Studio. The free "community edition"
will work fine. Do a standard install for C++ development.
"tclsh90.exe" command-line tool as part of the build process, and
the "tcl90.lib" and "tclstub.lib" libraries in order to run tests.
This document assumes you are working with TCL version 9.0.
- See versions of this document from prior to 2024-10-10 for
- instructions on how to build using TCL version 8.6.
+ See [](./tcl-extension-testing.md#windows) for guidance on how
+ to compile TCL version 8.6 for use with SQLite.
<ol type="a">
<li>Get the TCL source archive, perhaps from
<https://www.tcl.tk/software/tcltk/download.html>
* Also compile "wish" to go with each "tclsh".
+<a id="unix"></a>
## 2.0 Testing On Unix-like Systems (Including Mac)
+See also the [](./compile-for-unix.md) document which provides another
+perspective on how to compile SQLite on unix-like systems.
+
### 2.1 Setup
<ol type="1">
<li value="29"> `rm -rf $TCLBUILD`
</ol>
+<a id="windows"></a>
## 3.0 Testing On Windows
+See also the [](./compile-for-windows.md) document which provides another
+perspective on how to compile SQLite on Windows.
+
### 3.1 Setup for Windows
<ol type="1">
-C In\sthe\sdoc/tcl-extension-testing.md\sdocument,\sprovide\senhanced\sexplanation\sfor\nwhy\sthe\stcl\slibrary\sneeds\sto\sbe\scopied\sinto\sthe\sinstall\sdirectory.
-D 2025-01-08T12:25:33.217
+C Cross-link\sand\sotherwise\simprove\sthe\svarious\show-to-compile\sdocuments.\nNo\scode\schanges.
+D 2025-01-08T12:51:28.347
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
-F doc/compile-for-unix.md 7d6a5770611ea0643de456b385581923dac7c0a7c3758825dda810d12fc3e5b2
-F doc/compile-for-windows.md 791f1754fcd669b0a8fdcdc0fdd56eff8c148add7457e8bf4863b46829966fc1
+F doc/compile-for-unix.md c9dce1ddd4bf0d25efccc5c63eb047e78c01ce06a6ff29c73e0a8af4a0f4adbc
+F doc/compile-for-windows.md 31cddda1d5f34027f1f2b7484d580e7558f22a9875884805b6fdc84d56cab848
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
F doc/jsonb.md 5fab4b8613aa9153fbeb6259297bd4697988af8b3d23900deba588fa7841456b
F doc/lemon.html 8b266ff711d2ec7f867c3dca37634963f48a630329908cc282beebfa8c708706
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
-F doc/tcl-extension-testing.md 45dfc22b414d0b928f9c45aef2c8ae0a2f1d31b38c5582fe6283258a86d7e45f
+F doc/tcl-extension-testing.md 864875c3b672db79e7d42348dd726f9a4fbd852b1d8e5efcf09fe3d1ff6bf2a2
F doc/testrunner.md 15583cf8c7d8a1c3378fd5d4319ca769a14c4d950a5df9b015d01d5be290dc69
F doc/trusted-schema.md 33625008620e879c7bcfbbfa079587612c434fa094d338b08242288d358c3e8a
F doc/vdbesort-memory.md 4da2639c14cd24a31e0af694b1a8dd37eaf277aff3867e9a8cc14046bc49df56
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 32b8b078d16b8931afa56e587cf840412c65b68da0bc6fd6280ac773295116cf
-R 52cb466101bde28f58c7d46df96d4072
+P cff70c859fff37f886fd622b7335a73836ff8cf15e6cb7aabcff449a7e427fa8
+R 9e488272febec3d17c3861ccb9f3e0b0
U drh
-Z cbebb7dddd96cd0f0ae4da260aa15c99
+Z 5539a934602dd195ca384aa9f37e29a3
# Remove this line to create a well-formed Fossil manifest.
-cff70c859fff37f886fd622b7335a73836ff8cf15e6cb7aabcff449a7e427fa8
+5e6ede92afae77ce6023f3b294dc565651631c7976d898d800988f1b3ff2e83f