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