fixes windows build, string overread in sqlite3OsOpen
[sqlcipher.git] / autoconf / tea / configure.ac
blob7fca05b2e74165a793718689437b5b0bd9070e19
1 #!/bin/bash -norc
2 dnl     This file is an input file used by the GNU "autoconf" program to
3 dnl     generate the file "configure", which is run during Tcl installation
4 dnl     to configure the system for the local environment.
6 # RCS: @(#) $Id: configure.in,v 1.43 2005/07/26 19:17:05 mdejong Exp $
8 #-----------------------------------------------------------------------
9 # Sample configure.in for Tcl Extensions.  The only places you should
10 # need to modify this file are marked by the string __CHANGE__
11 #-----------------------------------------------------------------------
13 #-----------------------------------------------------------------------
14 # __CHANGE__
15 # Set your package name and version numbers here.
17 # This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
18 # set as provided.  These will also be added as -D defs in your Makefile
19 # so you can encode the package version directly into the source files.
20 #-----------------------------------------------------------------------
22 AC_INIT([sqlite], [3.7.4])
24 #--------------------------------------------------------------------
25 # Call TEA_INIT as the first TEA_ macro to set up initial vars.
26 # This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
27 # as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
28 #--------------------------------------------------------------------
30 TEA_INIT([3.9])
32 AC_CONFIG_AUX_DIR(tclconfig)
34 #--------------------------------------------------------------------
35 # Load the tclConfig.sh file
36 #--------------------------------------------------------------------
38 TEA_PATH_TCLCONFIG
39 TEA_LOAD_TCLCONFIG
41 #--------------------------------------------------------------------
42 # Load the tkConfig.sh file if necessary (Tk extension)
43 #--------------------------------------------------------------------
45 #TEA_PATH_TKCONFIG
46 #TEA_LOAD_TKCONFIG
48 #-----------------------------------------------------------------------
49 # Handle the --prefix=... option by defaulting to what Tcl gave.
50 # Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
51 #-----------------------------------------------------------------------
53 TEA_PREFIX
55 #-----------------------------------------------------------------------
56 # Standard compiler checks.
57 # This sets up CC by using the CC env var, or looks for gcc otherwise.
58 # This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create
59 # the basic setup necessary to compile executables.
60 #-----------------------------------------------------------------------
62 TEA_SETUP_COMPILER
64 #-----------------------------------------------------------------------
65 # __CHANGE__
66 # Specify the C source files to compile in TEA_ADD_SOURCES,
67 # public headers that need to be installed in TEA_ADD_HEADERS,
68 # stub library C source files to compile in TEA_ADD_STUB_SOURCES,
69 # and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
70 # This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
71 # and PKG_TCL_SOURCES.
72 #-----------------------------------------------------------------------
74 TEA_ADD_SOURCES([tclsqlite3.c])
75 TEA_ADD_HEADERS([])
76 TEA_ADD_INCLUDES([-I\"`\${CYGPATH} \${srcdir}/generic`\"])
77 TEA_ADD_LIBS([])
78 TEA_ADD_CFLAGS([-DSQLITE_ENABLE_FTS3=1])
79 TEA_ADD_CFLAGS([-DSQLITE_3_SUFFIX_ONLY=1])
80 TEA_ADD_CFLAGS([-DSQLITE_ENABLE_RTREE=1])
81 TEA_ADD_STUB_SOURCES([])
82 TEA_ADD_TCL_SOURCES([])
84 #--------------------------------------------------------------------
85 # The --with-system-sqlite causes the TCL bindings to SQLite to use
86 # the system shared library for SQLite rather than statically linking
87 # against its own private copy.  This is dangerous and leads to
88 # undersirable dependences and is not recommended.
89 # Patchs from rmax.
90 #--------------------------------------------------------------------
91 AC_ARG_WITH([system-sqlite],
92  [AC_HELP_STRING([--with-system-sqlite],
93    [use a system-supplied libsqlite3 instead of the bundled one])],
94  [], [with_system_sqlite=no])
95 if test x$with_system_sqlite != xno; then
96  AC_CHECK_HEADER([sqlite3.h],
97    [AC_CHECK_LIB([sqlite3],[sqlite3_initialize],
98      [AC_DEFINE(USE_SYSTEM_SQLITE)
99       LIBS="$LIBS -lsqlite3"])])
102 #--------------------------------------------------------------------
103 # __CHANGE__
104 # Choose which headers you need.  Extension authors should try very
105 # hard to only rely on the Tcl public header files.  Internal headers
106 # contain private data structures and are subject to change without
107 # notice.
108 # This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
109 #--------------------------------------------------------------------
111 TEA_PUBLIC_TCL_HEADERS
112 #TEA_PRIVATE_TCL_HEADERS
114 #TEA_PUBLIC_TK_HEADERS
115 #TEA_PRIVATE_TK_HEADERS
116 #TEA_PATH_X
118 #--------------------------------------------------------------------
119 # Check whether --enable-threads or --disable-threads was given.
120 # This auto-enables if Tcl was compiled threaded.
121 #--------------------------------------------------------------------
123 TEA_ENABLE_THREADS
124 if test "${TCL_THREADS}" = "1" ; then
125     AC_DEFINE(SQLITE_THREADSAFE, 1, [Trigger sqlite threadsafe build])
126     # Not automatically added by Tcl because its assumed Tcl links to them,
127     # but it may not if it isn't really a threaded build.
128     TEA_ADD_LIBS([$THREADS_LIBS])
129 else
130     AC_DEFINE(SQLITE_THREADSAFE, 0, [Trigger sqlite non-threadsafe build])
133 #--------------------------------------------------------------------
134 # The statement below defines a collection of symbols related to
135 # building as a shared library instead of a static library.
136 #--------------------------------------------------------------------
138 TEA_ENABLE_SHARED
140 #--------------------------------------------------------------------
141 # This macro figures out what flags to use with the compiler/linker
142 # when building shared/static debug/optimized objects.  This information
143 # can be taken from the tclConfig.sh file, but this figures it all out.
144 #--------------------------------------------------------------------
146 TEA_CONFIG_CFLAGS
148 #--------------------------------------------------------------------
149 # Set the default compiler switches based on the --enable-symbols option.
150 #--------------------------------------------------------------------
152 TEA_ENABLE_SYMBOLS
154 #--------------------------------------------------------------------
155 # Everyone should be linking against the Tcl stub library.  If you
156 # can't for some reason, remove this definition.  If you aren't using
157 # stubs, you also need to modify the SHLIB_LD_LIBS setting below to
158 # link against the non-stubbed Tcl library.  Add Tk too if necessary.
159 #--------------------------------------------------------------------
161 AC_DEFINE(USE_TCL_STUBS, 1, [Use Tcl stubs])
162 #AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])
165 #--------------------------------------------------------------------
166 # Redefine fdatasync as fsync on systems that lack fdatasync
167 #--------------------------------------------------------------------
169 #AC_CHECK_FUNC(fdatasync, , AC_DEFINE(fdatasync, fsync))
170 # Check for library functions that SQLite can optionally use.
171 AC_CHECK_FUNCS([fdatasync usleep fullfsync localtime_r gmtime_r])
173 AC_FUNC_STRERROR_R
176 #--------------------------------------------------------------------
177 # This macro generates a line to use when building a library.  It
178 # depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
179 # and TEA_LOAD_TCLCONFIG macros above.
180 #--------------------------------------------------------------------
182 TEA_MAKE_LIB
184 #--------------------------------------------------------------------
185 # Determine the name of the tclsh and/or wish executables in the
186 # Tcl and Tk build directories or the location they were installed
187 # into. These paths are used to support running test cases only,
188 # the Makefile should not be making use of these paths to generate
189 # a pkgIndex.tcl file or anything else at extension build time.
190 #--------------------------------------------------------------------
192 TEA_PROG_TCLSH
193 #TEA_PROG_WISH
195 #--------------------------------------------------------------------
196 # Finally, substitute all of the various values into the Makefile.
197 # You may alternatively have a special pkgIndex.tcl.in or other files
198 # which require substituting th AC variables in.  Include these here.
199 #--------------------------------------------------------------------
201 AC_OUTPUT([Makefile pkgIndex.tcl])