Small. Fast. Reliable.
Choose any three.
*** 5,11 ****
  amalgamated C code file so if you do not have a header file handy
  you can extract one from the C code.
  
! To compile core SQLite library into an object file or DLL or shared
  library, just hand the sqlite3.c code file to your C compiler.  On
  Linux or Mac OS-X you just say:
  
--- 5,11 ----
  amalgamated C code file so if you do not have a header file handy
  you can extract one from the C code.
  
! To compile the core SQLite library into an object file or DLL or shared
  library, just hand the sqlite3.c code file to your C compiler.  On
  Linux or Mac OS-X you just say:
  
***************
*** 13,25 ****
  
  The "sqlite3" command-line tool is really a separate program that uses
  the SQLite library to access an SQLite database.  To compile the
! the command-line tool, get a copy of its source file (named "shell.c")
  and type:
  
      gcc shell.c sqlite3.c
  
! You'll probably need to add some system libraries like "-ldl" or
! "-lpthreads" to that last line, but you get the idea.  You might also
  select various compile-time options by defining C preprocessor macros
  using the -D command-line switch to gcc.  The available compile-time
  options are described separately.
--- 13,26 ----
  
  The "sqlite3" command-line tool is really a separate program that uses
  the SQLite library to access an SQLite database.  To compile the
! the command-line tool, get a copy of its source file
! ({link: rlog?f=sqlite/src/shell.c shell.c})
  and type:
  
      gcc shell.c sqlite3.c
  
! You will probably need to add some system libraries like "-ldl" or
! "-lpthreads" to that last line in order to get it to work.  You might also
  select various compile-time options by defining C preprocessor macros
  using the -D command-line switch to gcc.  The available compile-time
  options are described separately.
***************
*** 31,37 ****
  2: Download eclipse CDT plugin for c/c++ (version 3.1.1)
  3: Download mingw (used MinGW-3.1.0-1.exe).
  4: Create a new project (managed make c++ project).
! 5: Add all the .c files from sqlite source to the eclipse project created in the above step (you can copy all the .c files from explorer and paste into eclipse project).
  6: Build the project (right click on the project and build).
  7: Make sure you have make.exe available on windows.
  
--- 32,39 ----
  2: Download eclipse CDT plugin for c/c++ (version 3.1.1)
  3: Download mingw (used MinGW-3.1.0-1.exe).
  4: Create a new project (managed make c++ project).
! 5: Add all the .c files from sqlite source to the eclipse project created in the above step (you can copy
! all the .c files from explorer and paste into eclipse project).
  6: Build the project (right click on the project and build).
  7: Make sure you have make.exe available on windows.
  
***************
*** 46,54 ****
  
  (see also the MacOSX command line instructions below)
  
! If the "configure" script does not work for you, then you might have to compile manually.  Fortunately, this is easy to do.  First download the preprocessed source code from http://www.sqlite.org/sqlite_source.zip. This archive contains a set of C source and header files that are ready to be passed to a C compiler.  To build the library, just compile all of the files.
! 
! Note that the files "shell.c" and "tclsqlite.c" are special and do not belong in the SQLite library proper.  "shell.c" is used to build the "sqlite" shell program and "tclsqlite.c" is the TCL bindings for SQLite.  You may want to omit both of these files when you build the library.
  
  For example, I was able to compile SQLite for HPUX as follows:
  
--- 48,61 ----
  
  (see also the MacOSX command line instructions below)
  
! If the "configure" script does not work for you, then you might have to compile manually.  Fortunately,
! this is easy to do.  First download the preprocessed source code from http://www.sqlite.org/
! sqlite_source.zip. This archive contains a set of C source and header files that are ready to be passed to
! a C compiler.  To build the library, just compile all of the files.
! 
! Note that the files "shell.c" and "tclsqlite.c" are special and do not belong in the SQLite library proper.
! "shell.c" is used to build the "sqlite" shell program and "tclsqlite.c" is the TCL bindings for SQLite.  You
! may want to omit both of these files when you build the library.
  
  For example, I was able to compile SQLite for HPUX as follows:
  
***************
*** 69,79 ****
  
  1. Temporary files are not removed upon database close (journal file).
  
! 2. Files created by sqlite automatically will be correctly created only if lfn is enabled. Otherwise, lacking the journal file, the database will be open read-only.
  
  My diffs are fixing both problems, and make sqlite work very well on djgpp.
  
! To avoid overload of this page, I have attached patches to sqlite development tickets. Each patch applies for a certain sqlite version, as follows:
  
  For sqlite 2.8.6: diff attached at http://www.sqlite.org/cvstrac/tktview?tn=524
  
--- 76,88 ----
  
  1. Temporary files are not removed upon database close (journal file).
  
! 2. Files created by sqlite automatically will be correctly created only if lfn is enabled. Otherwise, lacking
! the journal file, the database will be open read-only.
  
  My diffs are fixing both problems, and make sqlite work very well on djgpp.
  
! To avoid overload of this page, I have attached patches to sqlite development tickets. Each patch
! applies for a certain sqlite version, as follows:
  
  For sqlite 2.8.6: diff attached at http://www.sqlite.org/cvstrac/tktview?tn=524
  
***************
*** 103,111 ****
  
  It will also do no harm to incorporate it in the main sqlite distribution.
  
! I'm sorry it has not been evident until now, so i am explicitly including the following copyright disclaimer, as required by sqlite author:
  
! *The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights this code under copyright law.*
  
  alex <alexbodn@012.net.il>
  
--- 112,124 ----
  
  It will also do no harm to incorporate it in the main sqlite distribution.
  
! I'm sorry it has not been evident until now, so i am explicitly including the following copyright
! disclaimer, as required by sqlite author:
  
! *The author or authors of this code dedicate any and all copyright interest in this code to the public
! domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs
! and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all
! present and future rights this code under copyright law.*
  
  alex <alexbodn@012.net.il>
  
***************
*** 115,121 ****
  
  *Microsoft Visual Studio 2005*
  
! I have a downloadable project and explanation {link: http://news.thedigitalmachine.com/2007/03/28/set-up-sqlite-static-lib-and-a-c-wrapper-in-15-minutes/ here}.
  
  ====
  
--- 128,135 ----
  
  *Microsoft Visual Studio 2005*
  
! I have a downloadable project and explanation {link: http://news.thedigitalmachine.com/2007/03/28/
! set-up-sqlite-static-lib-and-a-c-wrapper-in-15-minutes/ here}.
  
  ====
  
***************
*** 133,140 ****
  
  *Visual C++ Toolkit 2003 combined with GNU Make/MSYS*
  
! For the *sqlite-source-3_0_8.zip* there's a makefile which can be used with MSYS combined with Visual C++.
! This makefile can be found here: http://www.elemental-programming.org/epwiki/SQLID-SQlite%20Makefile.html
  
  ====
  
--- 147,156 ----
  
  *Visual C++ Toolkit 2003 combined with GNU Make/MSYS*
  
! For the *sqlite-source-3_0_8.zip* there's a makefile which can be used with MSYS combined with Visual
! C++.
! This makefile can be found here: http://www.elemental-programming.org/epwiki/SQLID-SQlite%
! 20Makefile.html
  
  ====
  
***************
*** 154,168 ****
  
  *Crosscompile linux x86 -> linux arm*
  
! With version 3.3.7 (don't know about other versions) I have figured out how to get configure to work without following the previous procedure defined below which required editing files.
  
! The problem with the configure script is primarily that it doesn't give you a way to specify that you don't have readline for the target. This could easily be fixed if someone wants to tackle it by supporting a --without-readline option that skipped the readline checking and set TARGET_HAVE_READLINE to 0. The other problem is that you have to explicitly tell configure the compiler for both build and target.
  
  Here is the command line I used to configure sqlite3.3.7 for cross compiling to arm-linux:
  
!    ../configure --host=arm-linux config_BUILD_CC=gcc config_TARGET_CC=arm-linux-gcc --disable-tcl config_TARGET_READLINE_INC=" "
  
! Setting config_TARGET_READLINE_INC to something makes it skip looking for readline.h, which is what causes problems when cross compiling.
  
  *Previous procedure*
  
--- 170,190 ----
  
  *Crosscompile linux x86 -> linux arm*
  
! With version 3.3.7 (don't know about other versions) I have figured out how to get configure to work
! without following the previous procedure defined below which required editing files.
  
! The problem with the configure script is primarily that it doesn't give you a way to specify that you
! don't have readline for the target. This could easily be fixed if someone wants to tackle it by supporting
! a --without-readline option that skipped the readline checking and set TARGET_HAVE_READLINE to 0.
! The other problem is that you have to explicitly tell configure the compiler for both build and target.
  
  Here is the command line I used to configure sqlite3.3.7 for cross compiling to arm-linux:
  
!    ../configure --host=arm-linux config_BUILD_CC=gcc config_TARGET_CC=arm-linux-gcc --disable-
! tcl config_TARGET_READLINE_INC=" "
  
! Setting config_TARGET_READLINE_INC to something makes it skip looking for readline.h, which is what
! causes problems when cross compiling.
  
  *Previous procedure*
  
***************
*** 224,230 ****
  BCC = gcc -g -O2
  
  in sqlite-3.3.6 version Makefile,
! if you want compile static library version of sqlite3(only one execute file for distribution) on ARM, edit Makefile ,
  
  find
  
--- 246,253 ----
  BCC = gcc -g -O2
  
  in sqlite-3.3.6 version Makefile,
! if you want compile static library version of sqlite3(only one execute file for distribution) on ARM, edit
! Makefile ,
  
  find
  
***************
*** 247,253 ****
  
  
  6. run _make_
! Now you should find "sqlite" in the current directory, and  ".libs" directory in your build directory containing sqlite shared object files, like
  libsqlite.so , static library file libsqlite.a.
  
  Source (somewhat altered): http://www.kecher.de/howtos/SQLite-JDBC-Howto.html
--- 270,277 ----
  
  
  6. run _make_
! Now you should find "sqlite" in the current directory, and  ".libs" directory in your build directory
! containing sqlite shared object files, like
  libsqlite.so , static library file libsqlite.a.
  
  Source (somewhat altered): http://www.kecher.de/howtos/SQLite-JDBC-Howto.html
***************
*** 295,301 ****
     to sqlite build directory. Invoke (msys's) ../sqlite/configure. This
     generates a Makefile in the build directory.
  
! 7. Invoke mingw32-make to compile the resulting Makefile. (make isn't used anymore - see http://www.mingw.org/mingwfaq.shtml#faq-mingw32-make.exe)
  
  8. Find within the source distribution a file called sqlite.def.  Copy it
     to the build directory.
--- 319,326 ----
     to sqlite build directory. Invoke (msys's) ../sqlite/configure. This
     generates a Makefile in the build directory.
  
! 7. Invoke mingw32-make to compile the resulting Makefile. (make isn't used anymore - see http://
! www.mingw.org/mingwfaq.shtml#faq-mingw32-make.exe)
  
  8. Find within the source distribution a file called sqlite.def.  Copy it
     to the build directory.
***************
*** 664,670 ****
  Fred.
  
  ----
! For 3.0.8 : On Solaris - to do what Tom did above - to create a libtclsqlite3.so without dependencies.  The include and lib paths are somewhat hosed in the makefile - it somehow seems to need a source installation (/unix in path).  I changed this in the Makefile:
  
     TCL_FLAGS = -I/usr/local/tcl/8.4.5/include -DUSE_TCL_STUBS
     LIBTCL    = /usr/local/tcl/8.4.5/lib/libtclstub8.4.a -ldl -lm
--- 689,697 ----
  Fred.
  
  ----
! For 3.0.8 : On Solaris - to do what Tom did above - to create a libtclsqlite3.so without dependencies.
! The include and lib paths are somewhat hosed in the makefile - it somehow seems to need a source
! installation (/unix in path).  I changed this in the Makefile:
  
     TCL_FLAGS = -I/usr/local/tcl/8.4.5/include -DUSE_TCL_STUBS
     LIBTCL    = /usr/local/tcl/8.4.5/lib/libtclstub8.4.a -ldl -lm