Snapshot of upstream SQLite 3.38.2
[sqlcipher.git] / autoconf / README.txt
blobccf5e235ac934f9ecae8654e8cb606d108df9672
1 This package contains:
3  * the SQLite library amalgamation source code file: sqlite3.c
4  * the sqlite3.h and sqlite3ext.h header files that define the C-language
5    interface to the sqlite3.c library file
6  * the shell.c file used to build the sqlite3 command-line shell program
7  * autoconf/automake installation infrastucture for building on POSIX
8    compliant systems
9  * a Makefile.msc, sqlite3.rc, and Replace.cs for building with Microsoft
10    Visual C++ on Windows
12 SUMMARY OF HOW TO BUILD
13 =======================
15   Unix:      ./configure; make
16   Windows:   nmake /f Makefile.msc
18 BUILDING ON POSIX
19 =================
21 The generic installation instructions for autoconf/automake are found
22 in the INSTALL file.
24 The following SQLite specific boolean options are supported:
26   --enable-readline           use readline in shell tool   [default=yes]
27   --enable-threadsafe         build a thread-safe library  [default=yes]
28   --enable-dynamic-extensions support loadable extensions  [default=yes]
30 The default value for the CFLAGS variable (options passed to the C
31 compiler) includes debugging symbols in the build, resulting in larger
32 binaries than are necessary. Override it on the configure command
33 line like this:
35   $ CFLAGS="-Os" ./configure
37 to produce a smaller installation footprint.
39 Other SQLite compilation parameters can also be set using CFLAGS. For
40 example:
42   $ CFLAGS="-Os -DSQLITE_THREADSAFE=0" ./configure
45 BUILDING WITH MICROSOFT VISUAL C++
46 ==================================
48 To compile for Windows using Microsoft Visual C++:
50   $ nmake /f Makefile.msc
52 Using Microsoft Visual C++ 2005 (or later) is recommended.  Several Windows
53 platform variants may be built by adding additional macros to the NMAKE
54 command line.
56 Building for WinRT 8.0
57 ----------------------
59   FOR_WINRT=1
61 Using Microsoft Visual C++ 2012 (or later) is required.  When using the
62 above, something like the following macro will need to be added to the
63 NMAKE command line as well:
65   "NSDKLIBPATH=%WindowsSdkDir%\..\8.0\lib\win8\um\x86"
67 Building for WinRT 8.1
68 ----------------------
70   FOR_WINRT=1
72 Using Microsoft Visual C++ 2013 (or later) is required.  When using the
73 above, something like the following macro will need to be added to the
74 NMAKE command line as well:
76   "NSDKLIBPATH=%WindowsSdkDir%\..\8.1\lib\winv6.3\um\x86"
78 Building for UWP 10.0
79 ---------------------
81   FOR_WINRT=1 FOR_UWP=1
83 Using Microsoft Visual C++ 2015 (or later) is required.  When using the
84 above, something like the following macros will need to be added to the
85 NMAKE command line as well:
87   "NSDKLIBPATH=%WindowsSdkDir%\..\10\lib\10.0.10586.0\um\x86"
88   "PSDKLIBPATH=%WindowsSdkDir%\..\10\lib\10.0.10586.0\um\x86"
89   "NUCRTLIBPATH=%UniversalCRTSdkDir%\..\10\lib\10.0.10586.0\ucrt\x86"
91 Building for the Windows 10 SDK
92 -------------------------------
94   FOR_WIN10=1
96 Using Microsoft Visual C++ 2015 (or later) is required.  When using the
97 above, no other macros should be needed on the NMAKE command line.
99 Other preprocessor defines
100 --------------------------
102 Additionally, preprocessor defines may be specified by using the OPTS macro
103 on the NMAKE command line.  However, not all possible preprocessor defines
104 may be specified in this manner as some require the amalgamation to be built
105 with them enabled (see http://www.sqlite.org/compile.html). For example, the
106 following will work:
108   "OPTS=-DSQLITE_ENABLE_STAT4=1 -DSQLITE_OMIT_JSON=1"
110 However, the following will not compile unless the amalgamation was built
111 with it enabled:
113   "OPTS=-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1"