1This package contains: 2 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-like 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 11 12WHY USE THIS PACKAGE? 13===================== 14 15The canonical make system for SQLite requires TCL as part of the build 16process. Various TCL scripts are used to generate parts of the code and 17TCL is used to run tests. But some people would prefer to build SQLite 18using only generic tools and without having to install TCL. The purpose 19of this package is to provide that capability. 20 21This package contains a pre-build SQLite amalgamation file "sqlite3.c" 22(and its associated header file "sqlite3.h"). Because the 23amalgamation has been pre-built, no TCL is required for the code 24generate (the configure script itself is written in TCL but it can use 25the embedded copy of JimTCL). 26 27REASONS TO USE THE CANONICAL BUILD SYSTEM RATHER THAN THIS PACKAGE 28================================================================== 29 30 * the canonical build system allows you to run tests to verify that 31 the build worked 32 * the canonical build system supports more compile-time options 33 * the canonical build system works for any arbitrary check-in to 34 the SQLite source tree 35 36Step-by-step instructions on how to build using the canonical make 37system for SQLite can be found at: 38 39 https://sqlite.org/src/doc/trunk/doc/compile-for-unix.md 40 https://sqlite.org/src/doc/trunk/doc/compile-for-windows.md 41 42 43SUMMARY OF HOW TO BUILD USING THIS PACKAGE 44========================================== 45 46 Unix: ./configure; make 47 Windows: nmake /f Makefile.msc 48 49BUILDING ON POSIX 50================= 51 52The configure script follows common conventions, making it easy 53to use for anyone who has configured a software tree before. 54It supports a number of build-time flags, the full list of which 55can be seen by running: 56 57 ./configure --help 58 59The default value for the CFLAGS variable (options passed to the C 60compiler) includes debugging symbols in the build, resulting in larger 61binaries than are necessary. Override it on the configure command 62line like this: 63 64 $ CFLAGS="-Os" ./configure 65 66to produce a smaller installation footprint. 67 68Many SQLite compilation parameters can be defined by passing flags 69to the configure script. Others may be passed on in the CFLAGS. For 70example: 71 72 $ CFLAGS="-Os -DSQLITE_OMIT_DEPRECATED" ./configure 73 74 75BUILDING WITH MICROSOFT VISUAL C++ 76================================== 77 78To compile for Windows using Microsoft Visual C++: 79 80 $ nmake /f Makefile.msc 81 82Using Microsoft Visual C++ 2005 (or later) is recommended. Several Windows 83platform variants may be built by adding additional macros to the NMAKE 84command line. 85 86 87Other preprocessor defines 88-------------------------- 89 90Additionally, preprocessor defines may be specified by using the OPTS macro 91on the NMAKE command line. However, not all possible preprocessor defines 92may be specified in this manner as some require the amalgamation to be built 93with them enabled (see http://sqlite.org/compile.html). For example, the 94following will work: 95 96 "OPTS=-DSQLITE_ENABLE_STAT4=1 -DSQLITE_OMIT_JSON=1" 97 98However, the following will not compile unless the amalgamation was built 99with it enabled: 100 101 "OPTS=-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1" 102