1. Install a C-compiler. GCC or Clang both work fine. If you are
reading this document, you've probably already done that.
- 2. Install TCL9 development libraries. In this note, we'll do a
- private install in the $HOME/local directory, but you can make
- adjustments to install TCL9 wherever you like.
- <p>
- This document assumes you are working with <b>TCL version 9.0</b>.
+ 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>
<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.
+ first one on your PATH or if you are building without TCL.
6. Run the "`Makefile`" makefile with an appropriate target.
Examples:
<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`
7. For a debugging build of the CLI, where the ".treetrace" and ".wheretrace"
- commands work, add the the --enable-debug argument to configure.
+ commands work, add the the --with-debug argument to configure.
a 32-bit build.) The subsequent steps will not work in a vanilla
DOS prompt. Nor will they work in PowerShell.
- 3. Install TCL development libraries. This note assumes that you will
+ 3. *(Optional):* Install TCL development libraries.
+ This note assumes that you will
install the TCL development libraries in the "`c:\Tcl`" directory.
Make adjustments
if you want TCL installed somewhere else. SQLite needs both the
"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 <b>TCL version 9.0</b>.
+ 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.
<ol type="a">
making this change.
</ol>
+ As of 2024-10-25, TCL is not longer required for many
+ common build targets, such as "sqlite3.c" or the "sqlite3.exe"
+ 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. Set the TCLDIR environment variable to point to your TCL installation.
- Like this:
- <ul>
- <li> `set TCLDIR=c:\Tcl`
- </ul>
-
- If you install TCL in the "`c:\Tcl`" directory (as recommended
- in step 3 above), then this step is optional because
- "`c:\Tcl`" is the default value for TCLDIR. You can also skip this
- step by specifying "`TCLDIR=c:\Tcl`" as an argument to the nmake
- commands in step 6 below.
-
- 6. Run the "`Makefile.msc`" makefile with an appropriate target.
+ 5. Run the "`Makefile.msc`" makefile with an appropriate target.
Examples:
<ul>
<li> `nmake /f makefile.msc`
<li> `nmake /f makefile.msc sqlite3.exe`
<li> `nmake /f makefile.msc sqldiff.exe`
<li> `nmake /f makefile.msc sqlite3_rsync.exe`
+ </ul>
+ <p>No TCL is required for the nmake targets above. But for the ones
+ that follow, you will need a TCL installation, as described in step 3
+ above. If you install TCL in some directory other than C:\\Tcl, then
+ you will also need to add the "TCLDIR=<i><dir></i>" option on the
+ nmake command line to tell nmake where your TCL is installed.
+ <ul>
<li> `nmake /f makefile.msc tclextension-install`
<li> `nmake /f makefile.msc devtest`
<li> `nmake /f makefile.msc releasetest`
-C Rework\sthe\sconfigure+make\ssystem\sto\suse\sautosetup\srather\sthan\sautoconf.\nAutosetup\sruns\sfaster\sand\sis\seasier\sto\smaintain,\sand\sit\sallows\sfor\scommon\ntargets\s(such\sas\s"sqlite3"\sand\s"sqlite3.c")\sto\sbe\sbuilt\swithin\shaving\sto\ninstall\s"tclsh".
-D 2024-10-25T14:39:26.067
+C Update\sthe\scompile-for-*.md\sdocuments.
+D 2024-10-25T15:28:00.541
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md b6e6c1baf38e4339bd3f1e0e5e5bfd0a9a93d133360691b2785c2d4b2f2dcec2
F Makefile.in 5a95c68b70be1448a6f226c09c1df5e338cc496e70987173fcfdca9ad94cb5a4
-F Makefile.linux-generic 8df0e6ee5e4671f844caf27f88d2be7421e904639f7a0ffdce0e2cd4ea11e8c0 w Makefile.linux-gcc
+F Makefile.linux-generic 8df0e6ee5e4671f844caf27f88d2be7421e904639f7a0ffdce0e2cd4ea11e8c0
F Makefile.msc 28318970f86f601ac79b5e6a514a52fb33a1526d0e0e915b4edc2f41846c1d4a
F README.md c3c0f19532ce28f6297a71870f3c7b424729f0e6d9ab889616d3587dd2332159
F VERSION 8dc0c3df15fd5ff0622f88fc483533fce990b1cbb2f5fb9fdfb4dbd71eef2889
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
-F doc/compile-for-unix.md 343fe9334260d8695c36b465f55221f0187c8e7abaaa4d5afb4d564ed1d22dc1
-F doc/compile-for-windows.md 90f97b9e6bbf27470e825711064bca409d26355f8f31416631a1722bcddf0612
+F doc/compile-for-unix.md 7d6a5770611ea0643de456b385581923dac7c0a7c3758825dda810d12fc3e5b2
+F doc/compile-for-windows.md 17e1491897a117ff0247531a61671b26d487bc1dad25c3894c04ad4fca936a7f
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
F doc/jsonb.md 5fab4b8613aa9153fbeb6259297bd4697988af8b3d23900deba588fa7841456b
F doc/lemon.html 8b266ff711d2ec7f867c3dca37634963f48a630329908cc282beebfa8c708706
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 5a8e3915eec06dbec7e32d1b87c6a6d5eb618d9d1d9bac13f6e1e7f22bbf8180 1baf4b948854cb4f7c509395df4520a04c16c10cf9e4b67e73e26118636b3204
-R cfabe0d6dd87d1c992c8a8166f7db7ca
-T +closed 1baf4b948854cb4f7c509395df4520a04c16c10cf9e4b67e73e26118636b3204
+P d8c0e0184226bdae9785199d486200e49db7973d78502d09db7a7e34ab0af941
+R 4d14b0cf75d6af0603108fd77389184c
U drh
-Z 0cfc0d1870ba6f8facd3d6e724075303
+Z 668ae18c27501de00efe113f6d944d91
# Remove this line to create a well-formed Fossil manifest.
-d8c0e0184226bdae9785199d486200e49db7973d78502d09db7a7e34ab0af941
+c4da7fa279274e5a6fe214b5c22f17bcf9b40299aeeab5bfbdae2ba0b2de6af0