From 76800328b2b170217f3db3f2d1eb4742a964b154 Mon Sep 17 00:00:00 2001 From: drh Date: Tue, 13 Aug 2002 20:45:39 +0000 Subject: [PATCH] Documentation and makefile updates. (CVS 709) FossilOrigin-Name: 92c403f485390bbd83a5be472e61c974f76d46b1 --- Makefile.linux-gcc | 112 ++++++++++++++++++++++++ README | 8 +- Makefile.template => main.mk | 164 +++++++++++------------------------ manifest | 23 ++--- manifest.uuid | 2 +- publish.sh | 2 +- src/main.c | 4 +- www/faq.tcl | 14 ++- www/index.tcl | 14 +-- 9 files changed, 205 insertions(+), 138 deletions(-) create mode 100644 Makefile.linux-gcc rename Makefile.template => main.mk (68%) diff --git a/Makefile.linux-gcc b/Makefile.linux-gcc new file mode 100644 index 0000000000..e9f667f09a --- /dev/null +++ b/Makefile.linux-gcc @@ -0,0 +1,112 @@ +#!/usr/make +# +# Makefile for SQLITE +# +# This is a template makefile for SQLite. Most people prefer to +# use the autoconf generated "configure" script to generate the +# makefile automatically. But that does not work for everybody +# and in every situation. If you are having problems with the +# "configure" script, you might want to try this makefile as an +# alternative. Create a copy of this file, edit the parameters +# below and type "make". +# + +#### The toplevel directory of the source tree. This is the directory +# that contains this "Makefile.in" and the "configure.in" script. +# +TOP = ../sqlite + +#### C Compiler and options for use in building executables that +# will run on the platform that is doing the build. +# +BCC = gcc -g -O2 +#BCC = /opt/ancic/bin/c89 -0 + +#### If the target operating system supports the "usleep()" system +# call, then define the HAVE_USLEEP macro for all C modules. +# +#USLEEP = +USLEEP = -DHAVE_USLEEP=1 + +#### If you want the SQLite library to be safe for use within a +# multi-threaded program, then define the following macro +# appropriately: +# +#THREADSAFE = -DTHREADSAFE=1 +THREADSAFE = -DTHREADSAFE=0 + +#### Specify any extra linker options needed to make the library +# thread safe +# +#THREADLIB = -lpthread +THREADLIB = + +#### Leave MEMORY_DEBUG undefined for maximum speed. Use MEMORY_DEBUG=1 +# to check for memory leaks. Use MEMORY_DEBUG=2 to print a log of all +# malloc()s and free()s in order to track down memory leaks. +# +# SQLite uses some expensive assert() statements in the inner loop. +# You can make the library go almost twice as fast if you compile +# with -DNDEBUG=1 +# +#OPTS = -DMEMORY_DEBUG=2 +#OPTS = -DMEMORY_DEBUG=1 +#OPTS = +OPTS = -DNDEBUG=1 + +#### The suffix to add to executable files. ".exe" for windows. +# Nothing for unix. +# +#EXE = .exe +EXE = + +#### C Compile and options for use in building executables that +# will run on the target platform. This is usually the same +# as BCC, unless you are cross-compiling. +# +TCC = gcc -O6 +#TCC = gcc -g -O0 -Wall +#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage +#TCC = /opt/mingw/bin/i386-mingw32-gcc -O6 +#TCC = /opt/ansic/bin/c89 -O +z -Wl,-a,archive + +#### Tools used to build a static library. +# +AR = ar cr +#AR = /opt/mingw/bin/i386-mingw32-ar cr +RANLIB = ranlib +#RANLIB = /opt/mingw/bin/i386-mingw32-ranlib + +#### Extra compiler options needed for programs that use the TCL library. +# +#TCL_FLAGS = +#TCL_FLAGS = -DSTATIC_BUILD=1 +TCL_FLAGS = -I/home/drh/tcltk/8.4linux +#TCL_FLAGS = -I/home/drh/tcltk/8.4win -DSTATIC_BUILD=1 +#TCL_FLAGS = -I/home/drh/tcltk/8.3hpux + +#### Linker options needed to link against the TCL library. +# +#LIBTCL = -ltcl -lm -ldl +LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl +#LIBTCL = /home/drh/tcltk/8.4win/libtcl84s.a -lmsvcrt +#LIBTCL = /home/drh/tcltk/8.3hpux/libtcl8.3.a -ldld -lm -lc + +#### Compiler options needed for programs that use the readline() library. +# +#READLINE_FLAGS = +READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline + +#### Linker options needed by programs using readline() must link against. +# +#LIBREADLINE = +LIBREADLINE = -static -lreadline -ltermcap + +#### Should the database engine assume text is coded as UTF-8 or iso8859? +# +# ENCODING = UTF8 +ENCODING = ISO8859 + +# You should not have to change anything below this line +############################################################################### +include $(TOP)/main.mk diff --git a/README b/README index 7beb62e8e4..326f3aa1ac 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ This directory contains source code to - SQLite: An SQL Database Engine in a C Library + SQLite: An Embeddable SQL Database Engine To compile the project, first create a directory in which to place the build products. It is recommended, but not required, that the @@ -18,16 +18,20 @@ For example: The configure script uses autoconf 2.50 and libtool. If the configure script does not work out for you, there is a generic makefile named -"Makefile.template" in the top directory of the source tree that you +"Makefile.linux-gcc" in the top directory of the source tree that you can copy and edit to suite your needs. Comments on the generic makefile show what changes are needed. +The linux binaries on the website are created using the generic makefile, +not the configure script. The configure script is unmaintained. (You +can volunteer to take over maintenance of the configure script, if you want!) The windows binaries on the website are created using MinGW32 configured as a cross-compiler running under Linux. For details, see the ./publish.sh script at the top-level of the source tree. Contacts: + http://www.sqlite.org/ http://www.hwaci.com/sw/sqlite/ http://groups.yahoo.com/group/sqlite/ drh@hwaci.com diff --git a/Makefile.template b/main.mk similarity index 68% rename from Makefile.template rename to main.mk index 351ebf8850..aca99211a4 100644 --- a/Makefile.template +++ b/main.mk @@ -1,114 +1,52 @@ -#!/usr/make -# -# Makefile for SQLITE -# -# This is a template makefile for SQLite. Most people prefer to -# use the autoconf generated "configure" script to generate the -# makefile automatically. But that does not work for everybody -# and in every situation. If you are having problems with the -# "configure" script, you might want to try this makefile as an -# alternative. Create a copy of this file, edit the parameters -# below and type "make". -# - -#### The toplevel directory of the source tree. This is the directory -# that contains this "Makefile.in" and the "configure.in" script. -# -TOP = ../sqlite - -#### C Compiler and options for use in building executables that -# will run on the platform that is doing the build. -# -BCC = gcc -g -O2 -#BCC = /opt/ancic/bin/c89 -0 - -#### If the target operating system supports the "usleep()" system -# call, then define the HAVE_USLEEP macro for all C modules. -# -#USLEEP = -USLEEP = -DHAVE_USLEEP=1 - -#### If you want the SQLite library to be safe for use within a -# multi-threaded program, then define the following macro -# appropriately: -# -#THREADSAFE = -DTHREADSAFE=1 -THREADSAFE = -DTHREADSAFE=0 - -#### Specify any extra linker options needed to make the library -# thread safe -# -#THREADLIB = -lpthread -THREADLIB = - -#### Leave MEMORY_DEBUG undefined for maximum speed. Use MEMORY_DEBUG=1 -# to check for memory leaks. Use MEMORY_DEBUG=2 to print a log of all -# malloc()s and free()s in order to track down memory leaks. -# -# SQLite uses some expensive assert() statements in the inner loop. -# You can make the library go almost twice as fast if you compile -# with -DNDEBUG=1 -# -#OPTS = -DMEMORY_DEBUG=2 -#OPTS = -DMEMORY_DEBUG=1 -#OPTS = -OPTS = -DNDEBUG=1 - -#### The suffix to add to executable files. ".exe" for windows. -# Nothing for unix. -# -#EXE = .exe -EXE = - -#### C Compile and options for use in building executables that -# will run on the target platform. This is usually the same -# as BCC, unless you are cross-compiling. -# -TCC = gcc -O6 -#TCC = gcc -g -O0 -Wall -#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage -#TCC = /opt/mingw/bin/i386-mingw32-gcc -O6 -#TCC = /opt/ansic/bin/c89 -O +z -Wl,-a,archive - -#### Tools used to build a static library. -# -AR = ar cr -#AR = /opt/mingw/bin/i386-mingw32-ar cr -RANLIB = ranlib -#RANLIB = /opt/mingw/bin/i386-mingw32-ranlib - -#### Extra compiler options needed for programs that use the TCL library. -# -#TCL_FLAGS = -#TCL_FLAGS = -DSTATIC_BUILD=1 -TCL_FLAGS = -I/home/drh/tcltk/8.4linux -#TCL_FLAGS = -I/home/drh/tcltk/8.4win -DSTATIC_BUILD=1 -#TCL_FLAGS = -I/home/drh/tcltk/8.3hpux - -#### Linker options needed to link against the TCL library. -# -#LIBTCL = -ltcl -lm -ldl -LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl -#LIBTCL = /home/drh/tcltk/8.4win/libtcl84s.a -lmsvcrt -#LIBTCL = /home/drh/tcltk/8.3hpux/libtcl8.3.a -ldld -lm -lc - -#### Compiler options needed for programs that use the readline() library. -# -#READLINE_FLAGS = -READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline - -#### Linker options needed by programs using readline() must link against. -# -#LIBREADLINE = -LIBREADLINE = -static -lreadline -ltermcap - -#### Should the database engine assume text is coded as UTF-8 or iso8859? -# -# ENCODING = UTF8 -ENCODING = ISO8859 - -# You should not have to change anything below this line ############################################################################### +# The following macros should be defined before this script is +# invoked: +# +# TOP The toplevel directory of the source tree. This is the +# directory that contains this "Makefile.in" and the +# "configure.in" script. +# +# BCC C Compiler and options for use in building executables that +# will run on the platform that is doing the build. +# +# USLEEP If the target operating system supports the "usleep()" system +# call, then define the HAVE_USLEEP macro for all C modules. +# +# THREADSAFE If you want the SQLite library to be safe for use within a +# multi-threaded program, then define the following macro +# appropriately: +# +# THREADLIB Specify any extra linker options needed to make the library +# thread safe +# +# OPTS Extra compiler command-line options. +# +# EXE The suffix to add to executable files. ".exe" for windows +# and "" for Unix. +# +# TCC C Compiler and options for use in building executables that +# will run on the target platform. This is usually the same +# as BCC, unless you are cross-compiling. +# +# AR Tools used to build a static library. +# RANLIB +# +# TCL_FLAGS Extra compiler options needed for programs that use the +# TCL library. +# +# LIBTCL Linker options needed to link against the TCL library. +# +# READLINE_FLAGS Compiler options needed for programs that use the +# readline() library. +# +# LIBREADLINE Linker options needed by programs using readline() must +# link against. +# +# ENCODING "UTF8" or "ISO8859" +# +# Once the macros above are defined, the rest of this make script will +# build the SQLite library and testing tools. +################################################################################ # This is how we compile # @@ -358,6 +296,9 @@ conflict.html: $(TOP)/www/conflict.tcl download.html: $(TOP)/www/download.tcl tclsh $(TOP)/www/download.tcl >download.html +omitted.html: $(TOP)/www/omitted.tcl + tclsh $(TOP)/www/omitted.tcl >omitted.html + # Files to be published on the website. # @@ -378,7 +319,8 @@ DOC = \ speed.html \ faq.html \ formatchng.html \ - conflict.html + conflict.html \ + omitted.html doc: $(DOC) mkdir -p doc diff --git a/manifest b/manifest index 6d9721d265..9f6c6603c2 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -C Bug\sfix\sto\sthe\sleft\souter\sjoin\slogic.\s(CVS\s708) -D 2002-08-13T13:15:51 +C Documentation\sand\smakefile\supdates.\s(CVS\s709) +D 2002-08-13T20:45:40 F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c -F Makefile.template 0f288908fb6b1186b1594d753f79dc06c32b1dd7 -F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0 +F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 +F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd F VERSION f860323f95b110e5af69b3754d006f39304390a0 F aclocal.m4 11faa843caa38fd451bc6aeb43e248d1723a269d F config.guess f38b1e93d1e0fa6f5a6913e9e7b12774b9232588 @@ -14,7 +14,8 @@ F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 F libtool c56e618713c9510a103bda6b95f3ea3900dcacd6 F ltmain.sh e9ed72eb1d690f447c13945eaf69e28af531eda1 -F publish.sh 29f86624db9253353ae159a9e015f81e16f9dd5b +F main.mk 34e976d914ac76ba90a93d2b7c41c1a7498e8c59 +F publish.sh a7a8d23e6525bd25d4f5ba9b0fc6edc107d94050 F spec.template 238f7db425a78dc1bb7682e56e3834c7270a3f5e F sqlite.1 83f4a9d37bdf2b7ef079a82d54eaf2e3509ee6ea F src/btree.c 16d1712321e91e77562ffc673ed97b0b1a791db4 @@ -27,7 +28,7 @@ F src/func.c e45cd908b9b723d9b91473d09e12c23f786b3fc2 F src/hash.c 6a6236b89c8c060c65dabd300a1c8ce7c10edb72 F src/hash.h cd0433998bc1a3759d244e1637fe5a3c13b53bf8 F src/insert.c 8aefc998c86a3bd53082e2f8fdd049345fcf3463 -F src/main.c 0f5d0f6f27333a851d848bfdd7bfa67a37cea12b +F src/main.c 69f85a56200df5f5ce24ba38b6590d2a9c9f542b F src/md5.c 0ae1f3e2cac92d06fc6246d1b4b8f61a2fe66d3b F src/os.c 9665974085ebe1d40d56d1145045b3d64f12cbce F src/os.h 4a361fccfbc4e7609b3e1557f604f94c1e96ad10 @@ -132,9 +133,9 @@ F www/conflict.tcl 81dd21f9a679e60aae049e9dd8ab53d59570cda2 F www/crosscompile.tcl 3622ebbe518927a3854a12de51344673eb2dd060 F www/download.tcl 29aa6679ca29621d10613f60ebbbda18f4b91c49 F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c -F www/faq.tcl 5e3f71ced26a6dc863bd8d7afd711bf16c99acf6 +F www/faq.tcl e5a752ff431a8408ae24a91ab88ded2dfe699e16 F www/formatchng.tcl 502847353450adaf76d187d87374bce20dd07e0e -F www/index.tcl 4ee3750153a5eaaabc3e5d9b1e96cfbe78c62086 +F www/index.tcl 47945cc79706e9f2caf797330412c112d54ad72b F www/lang.tcl 8c3d0bda030f110c754b5edbad75eddf5dbe2ed1 F www/mingw.tcl f1c7c0a7f53387dd9bb4f8c7e8571b7561510ebc F www/opcode.tcl 33c5f2061a05c5d227c72b84c080b3bf74c74f8b @@ -142,7 +143,7 @@ F www/speed.tcl 7fc83f1b018e1ecc451838449542c3079ed12425 F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 -P 957d908e6b84cd599b5cfd82af80c8fac79c1dbd -R 3e7291c79a919fa2cefc3efc93c90571 +P f9d3d4c1230a7f1176b2002d72e94857e251c04e +R d02766c7d8bb513006dc1e531944f320 U drh -Z de838e68957e6e35c849e80fb3e5a484 +Z ee2dcaa9cadd52a5fbd5a9424f9bf06e diff --git a/manifest.uuid b/manifest.uuid index 4dc32b3f1f..9942708138 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f9d3d4c1230a7f1176b2002d72e94857e251c04e \ No newline at end of file +92c403f485390bbd83a5be472e61c974f76d46b1 \ No newline at end of file diff --git a/publish.sh b/publish.sh index 5eb6d04cfa..a15c756c06 100644 --- a/publish.sh +++ b/publish.sh @@ -13,7 +13,7 @@ srcdir=`echo "$0" | sed 's%\(^.*\)/[^/][^/]*$%\1%'` # Get the makefile. # -cp $srcdir/Makefile.template ./Makefile +cp $srcdir/Makefile.linux-gcc ./Makefile # Start building stuff. # diff --git a/src/main.c b/src/main.c index 453124f388..1bb740ffd8 100644 --- a/src/main.c +++ b/src/main.c @@ -14,7 +14,7 @@ ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** -** $Id: main.c,v 1.95 2002/08/02 10:36:10 drh Exp $ +** $Id: main.c,v 1.96 2002/08/13 20:45:41 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -844,7 +844,7 @@ int sqlite_function_type(sqlite *db, const char *zName, int dataType){ ** separate databases and acting on them as if they were one. ** ** This routine closes the existing auxiliary database file, which will -** cause any previously created TEMP tables to be created. +** cause any previously created TEMP tables to be dropped. ** ** The zName parameter can be a NULL pointer or an empty string to cause ** a temporary file to be opened and automatically deleted when closed. diff --git a/www/faq.tcl b/www/faq.tcl index 84fa83160a..5236f4826c 100644 --- a/www/faq.tcl +++ b/www/faq.tcl @@ -1,7 +1,7 @@ # # Run this script to generated a faq.html output file # -set rcsid {$Id: faq.tcl,v 1.14 2002/08/11 20:10:49 drh Exp $} +set rcsid {$Id: faq.tcl,v 1.15 2002/08/13 20:45:41 drh Exp $} puts { @@ -275,7 +275,7 @@ ORDER BY name; except that it is only visible to the application that created the temporary tables. To get a list of all tables, both permanent and temporary, one can use a command similar to the following: -
+
 SELECT name FROM 
    (SELECT * FROM sqlite_master UNION ALL
     SELECT * FROM sqlite_temp_master)
@@ -334,8 +334,14 @@ faq {
   the data does not contain any NUL characters.  If you want to store binary
   data, consider encoding your data in such a way that it contains no NUL
   characters and inserting it that way.  You might use URL-style encoding:
-  encode NUL as "%00" and "%" as "%25".  Or you might consider encoding your
-  binary data using base-64.

+ encode NUL as "%00" and "%" as "%25". Or, you might consider encoding your + binary data using base-64. There is a source file named + "src/encode.c" in the SQLite distribution that contains + implementations of functions named "sqlite_encode_binary() + and sqlite_decode_binary() that can be used for converting + binary data to ASCII and back again, if you like.

+ + } faq { diff --git a/www/index.tcl b/www/index.tcl index 120bf2ee0c..efbc62c05e 100644 --- a/www/index.tcl +++ b/www/index.tcl @@ -1,7 +1,7 @@ # # Run this TCL script to generate HTML for the index.html file. # -set rcsid {$Id: index.tcl,v 1.63 2002/08/13 00:01:18 drh Exp $} +set rcsid {$Id: index.tcl,v 1.64 2002/08/13 20:45:41 drh Exp $} puts { SQLite: An SQL Database Engine In A C Library @@ -47,7 +47,8 @@ Quick Links: puts {

Features

    -
  • Implements most of SQL92.
  • +
  • Implements most of SQL92. + (Features not supported)
  • A complete database (with multiple tables and indices) is stored in a single disk file.
  • Atomic commit and rollback protect data integrity.
  • @@ -59,12 +60,13 @@ puts {

    Features

  • Very simple C/C++ interface requires the use of only three functions and one opaque structure.
  • -
  • TCL bindings included.
  • +
  • TCL bindings included. + Bindings for many other languages available separately.
  • Simple, well-commented source code.
  • -
  • A TCL-based test suite provides near 100% code coverage.
  • +
  • Automated test suite provides near 100% code coverage.
  • Self-contained: no external dependencies.
  • -
  • Built and tested under Linux and Win2K.
  • -
  • Sources are uncopyrighted. Use for any purpose.
  • +
  • Built and tested under Linux and Windows.
  • +
  • Sources are in the public domain. Use for any purpose.

}