15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/make
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Makefile for SQLITE
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This is a template makefile for SQLite.  Most people prefer to
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# use the autoconf generated "configure" script to generate the
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# makefile automatically.  But that does not work for everybody
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# and in every situation.  If you are having problems with the
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# "configure" script, you might want to try this makefile as an
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# alternative.  Create a copy of this file, edit the parameters
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# below and type "make".
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### The toplevel directory of the source tree.  This is the directory
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    that contains this "Makefile.in" and the "configure.in" script.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TOP = ..
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### C Compiler and options for use in building executables that
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    will run on the platform that is doing the build.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BCC = gcc -g -O2
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#BCC = /opt/ancic/bin/c89 -0
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### If the target operating system supports the "usleep()" system
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    call, then define the HAVE_USLEEP macro for all C modules.
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#USLEEP = 
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)USLEEP = -DHAVE_USLEEP=1
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### If you want the SQLite library to be safe for use within a 
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    multi-threaded program, then define the following macro
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    appropriately:
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#THREADSAFE = -DTHREADSAFE=1
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)THREADSAFE = -DTHREADSAFE=1
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Specify any extra linker options needed to make the library
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    thread safe
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#THREADLIB = -lpthread
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)THREADLIB = -lpthread
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Specify any extra libraries needed to access required functions.
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TLIBS = -lrt    # fdatasync on Solaris 8
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TLIBS = 
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Leave SQLITE_DEBUG undefined for maximum speed.  Use SQLITE_DEBUG=1
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    to check for memory leaks.  Use SQLITE_DEBUG=2 to print a log of all
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    malloc()s and free()s in order to track down memory leaks.
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    SQLite uses some expensive assert() statements in the inner loop.
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    You can make the library go almost twice as fast if you compile
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    with -DNDEBUG=1
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#OPTS = -DSQLITE_DEBUG=2
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#OPTS = -DSQLITE_DEBUG=1
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#OPTS = 
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# These flags match those for SQLITE_CFLAGS in config.mk.  
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DNDEBUG
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DSQLITE_CORE
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DSQLITE_ENABLE_FTS2 -DSQLITE_ENABLE_BROKEN_FTS2
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DHAVE_USLEEP=1
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Additional SQLite tests.
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DSQLITE_MEMDEBUG=1
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Don't include these ones, they break the SQLite tests.
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  -DSQLITE_OMIT_ATTACH=1 \
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  -DSQLITE_OMIT_LOAD_EXTENSION=1 \
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  -DSQLITE_OMIT_VACUUM=1 \
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  -DSQLITE_TRANSACTION_DEFAULT_IMMEDIATE=1 \
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SHELL_ICU = $(TOP)/src/shell_icu_linux.c -licuuc
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# TODO(shess) I can't see why I need this setting.
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OPTS += -DOS_UNIX=1
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### The suffix to add to executable files.  ".exe" for windows.
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    Nothing for unix.
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#EXE = .exe
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXE =
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### C Compile and options for use in building executables that 
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    will run on the target platform.  This is usually the same
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    as BCC, unless you are cross-compiling.
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TCC = gcc -O6
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCC = gcc -g -O0 -Wall
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCC = /opt/mingw/bin/i386-mingw32-gcc -O6
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCC = /opt/ansic/bin/c89 -O +z -Wl,-a,archive
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Tools used to build a static library.
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AR = ar cr
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#AR = /opt/mingw/bin/i386-mingw32-ar cr
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RANLIB = ranlib
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#RANLIB = /opt/mingw/bin/i386-mingw32-ranlib
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MKSHLIB = gcc -shared
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SO = so
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SHPREFIX = lib
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# SO = dll
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# SHPREFIX =
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Extra compiler options needed for programs that use the TCL library.
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TCL_FLAGS = -I/usr/include/tcl8.5
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCL_FLAGS = -DSTATIC_BUILD=1
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCL_FLAGS = -I/home/drh/tcltk/8.5linux
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCL_FLAGS = -I/home/drh/tcltk/8.5win -DSTATIC_BUILD=1
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCL_FLAGS = -I/home/drh/tcltk/8.3hpux
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Linker options needed to link against the TCL library.
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LIBTCL = -ltcl8.5 -lm -ldl
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#LIBTCL = /home/drh/tcltk/8.5linux/libtcl8.5g.a -lm -ldl
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#LIBTCL = /home/drh/tcltk/8.5win/libtcl85s.a -lmsvcrt
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#LIBTCL = /home/drh/tcltk/8.3hpux/libtcl8.3.a -ldld -lm -lc
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Additional objects for SQLite library when TCL support is enabled.
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#TCLOBJ =
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TCLOBJ = tclsqlite.o
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Compiler options needed for programs that use the readline() library.
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)READLINE_FLAGS =
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Linker options needed by programs using readline() must link against.
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LIBREADLINE =
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#LIBREADLINE = -static -lreadline -ltermcap
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#### Which "awk" program provides nawk compatibilty
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# NAWK = nawk
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NAWK = awk
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# You should not have to change anything below this line
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)###############################################################################
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)include $(TOP)/main.mk
149