From e12c6f259020d11df3672c4fb7939792ec904059 Mon Sep 17 00:00:00 2001
From: drh <>
Date: Sat, 1 Aug 2026 15:08:48 +0000
Subject: [PATCH] Updates to build instructions, especially on Windows. Fix a
harmless compiler working in debug builds on Windows.
FossilOrigin-Name: be245e136a550faa7c84694156c40dc9778f50b00016892c29a2314bef14b6b7
---
README.md | 4 ++--
doc/compile-for-unix.md | 12 +++++++++++-
doc/compile-for-windows.md | 40 ++++++++++++++++++++++++--------------
manifest | 18 ++++++++---------
manifest.uuid | 2 +-
src/func.c | 2 +-
6 files changed, 49 insertions(+), 29 deletions(-)
diff --git a/README.md b/README.md
index 990befcd2d..04011a9b99 100644
--- a/README.md
+++ b/README.md
@@ -113,7 +113,7 @@ For example:
make sqldiff ;# The "sqldiff" command-line tool
#### Targets below require tcl-dev ####
make tclextension-install ;# Install the SQLite TCL extension
- make devtest ;# Run development tests
+ make test ;# Run development tests
make releasetest ;# Run full release tests
make sqlite3_analyzer ;# Builds the "sqlite3_analyzer" tool
@@ -177,7 +177,7 @@ file:
make sqldiff.exe
#### Targets below require TCL development libraries ####
make tclextension-install
- make devtest
+ make test
make releasetest
make sqlite3_analyzer.exe
diff --git a/doc/compile-for-unix.md b/doc/compile-for-unix.md
index e3777618c5..636dded3ef 100644
--- a/doc/compile-for-unix.md
+++ b/doc/compile-for-unix.md
@@ -1,5 +1,15 @@
# Notes On Compiling SQLite On All Kinds Of Unix
+## Executive Summary
+
+ 1. Get a tarball of the canonical SQLite source tree and unpack it
+ 2. Run: `./configure`
+ 3. Run commands like:
+ - `make sqlite3.c`
+
- `make sqlite3`
+
+## Details
+
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
@@ -77,7 +87,7 @@ guidance on building for Windows.
for the following targets:
- `make tclextension-install`
-
- `make devtest`
+
- `make test`
- `make releasetest`
- `make sqlite3_analyzer`
diff --git a/doc/compile-for-windows.md b/doc/compile-for-windows.md
index 30536d5fd8..c5e3752c5d 100644
--- a/doc/compile-for-windows.md
+++ b/doc/compile-for-windows.md
@@ -1,7 +1,19 @@
# Notes On Compiling SQLite On Windows 11
+## Executive Summary
+
+ 1. Install Microsoft Visual Studio
+ 2. Get a "Native Tools Command Prompt"
+ 3. Get a tarball of the canonical SQLite source tree and unpack it
+ 4. Run commands like:
+ - `make sqlite3.c`
+
- `make sqlite3.exe`
+
- `make sqlite3.dll`
+
+## Details For Standard 64-bit Builds On Either x64 Or ARM
+
Below are step-by-step instructions on how to build SQLite from
-canonical source on a new Windows 11 PC, as of 2025-10-31.
+canonical source on a new Windows 11 PC, as of 2026-08-01.
See [](./compile-for-unix.md) for a similar guide for unix-like
systems, including MacOS.
@@ -70,25 +82,24 @@ systems, including MacOS.
4. Download the SQLite source tree and unpack it. CD into the
toplevel directory of the source tree.
- 5. Run the "`Makefile.msc`" makefile with an appropriate target.
- Examples:
+ 5. The source tree contains the "`make.bat`" batch script that
+ simulations the behavior of Unix-style "make" using "`nmake`".
+ So the build process for Windows is the same as for Unix:
- - `nmake /f makefile.msc`
-
- `nmake /f makefile.msc sqlite3.c`
-
- `nmake /f makefile.msc sqlite3.exe`
-
- `nmake /f makefile.msc sqldiff.exe`
-
- `nmake /f makefile.msc sqlite3_rsync.exe`
+
- `make sqlite3.c`
+
- `make sqlite3.exe`
+
- `make sqldiff.exe`
+
- `make sqlite3_rsync.exe`
- No TCL is required for the nmake targets above. But for the ones
+
No TCL is required for the make 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=<dir>" option on the
nmake command line to tell nmake where your TCL is installed.
- - `nmake /f makefile.msc tclextension-install`
-
- `nmake /f makefile.msc devtest`
-
- `nmake /f makefile.msc releasetest`
-
- `nmake /f makefile.msc sqlite3_analyzer.exe`
+
- `make tclextension-install`
+
- `make test`
+
- `make releasetest`
It is not required that you run the "tclextension-install" target prior to
@@ -102,9 +113,8 @@ systems, including MacOS.
7. For a debugging build of the CLI, where the ".treetrace" and ".wheretrace"
commands work, add the DEBUG=3 argument to nmake. Like this:
- - `nmake /f makefile.msc DEBUG=3 clean sqlite3.exe`
+
- `make DEBUG=3 clean sqlite3`
-
## 32-bit Builds
diff --git a/manifest b/manifest
index 3bfdb7d009..178940f0b7 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C The\suse\sof\ssqlite3_set_clientdata()\sto\slimit\srecursion\sin\s[4687e04d948b787c]\nis\sincorrect.\s\sFixed\shere.
-D 2026-07-31T22:45:45.106
+C Updates\sto\sbuild\sinstructions,\sespecially\son\sWindows.\s\sFix\sa\sharmless\ncompiler\sworking\sin\sdebug\sbuilds\son\sWindows.
+D 2026-08-01T15:08:48.942
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -8,7 +8,7 @@ F LICENSE.md 6bc480fc673fb4acbc4094e77edb326267dd460162d7723c7f30bee2d3d9e97d
F Makefile.in 5fda086f33b144da08119255da1d2557f983d0764a13707f05acf0159fd89ba5
F Makefile.linux-generic bd3e3cacd369821a6241d4ea1967395c962dfe3057e38cb0a435cee0e8b789d0
F Makefile.msc 4f25c07ccb10cd4fb04eaefba912296664b26cf65152d51974f24272fcf4aa6d
-F README.md f00091ffb5c6379b783afb57ca5f443a5742e119082f37c407f64a5e16c56346
+F README.md 8a7487de00e6d6d360cec15cc114cbb397207e1b975901683561506401c6d48c
F VERSION 99cf3be5f13d091183e4314b7fc2e0c0e69accfbe64608b45a313338bbdd7b62
F art/icon-243x273.gif 9750b734f82fdb3dc43127753d5e6fbf3b62c9f4e136c2fbf573b2f57ea87af5
F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d87031
@@ -57,8 +57,8 @@ F autosetup/teaish/tester.tcl 1799514c2652db49561b3386c5242b94534d1663f2cfac861a
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
-F doc/compile-for-unix.md ebd6e461c71d43291e7e8c6487c9c2716bd997053556ec757509011e77e25581
-F doc/compile-for-windows.md 36601c95fa4070eebfe757684271d17a7c4a586912ba706d0b5e7817e1df54ad
+F doc/compile-for-unix.md e729dff2f54ce7afbb0a8bb6813dcbc8720b3838133c5c7449e39962e6fe5c62
+F doc/compile-for-windows.md 19f87b5b2bd980e0f91c31b2c9d3375e60b4d7901c9bf0c5d060f7cb48334706
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
F doc/jsonb.md acd77fc3a709f51242655ad7803510c886aa8304202fa9cf2abc5f5c4e9d7ae5
F doc/lemon.html 2085fda0a90a94fe92159a79dccc5c30d5a2313524887a31659cd66162f17233
@@ -696,7 +696,7 @@ F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
F src/expr.c 43c750797e82d5686c0f198d759f77d9c9166038837d7574d75d71649e09a335
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
-F src/func.c 208b4d073a1e823df8d0e19d0529093c09a9984851dcfda9808445541cefe6d0
+F src/func.c d833ab92ed95e84af60247e7d752cda33234d8979173442079d54d96e9853dd9
F src/global.c 7eea537ac0c113ac55cb2dd4d8fc2a6a91ae478be34231b4efaffc46817fee85
F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@ -2218,8 +2218,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 180e75e07630b4fa7abdd28ad889e27031071555078989c40a8c10a1d2905338
-R 8d2d0a9b939ec4258bc739ddc737c04c
+P bf44a08adc94b8c7c69921a1292d56bec0cbd9f3ac772e31d8ea5866e9f46063
+R c754dcf7739c1f4243cfe1763468ec65
U drh
-Z 050ff26189eb4a838917e6b965cbb5aa
+Z e200f72878b5b96a81f656ca3cb9100b
# Remove this line to create a well-formed Fossil manifest.
diff --git a/manifest.uuid b/manifest.uuid
index 5382e23a37..54c97868c1 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-bf44a08adc94b8c7c69921a1292d56bec0cbd9f3ac772e31d8ea5866e9f46063
+be245e136a550faa7c84694156c40dc9778f50b00016892c29a2314bef14b6b7
diff --git a/src/func.c b/src/func.c
index 689c462034..3e47641828 100644
--- a/src/func.c
+++ b/src/func.c
@@ -2996,7 +2996,7 @@ static void percentSort(
}
}while( i0 && iLt0 && iLtiLt+1 );
assert( a[iLt]==rPivot );
assert( a[iLt-1]<=rPivot );
--
2.47.3