1251883Speter
2251883Speter#-----------------------------------------------------------------------
3251883Speter# Supports the following non-standard switches.
4251883Speter#
5251883Speter#   --enable-threadsafe
6251883Speter#   --enable-readline
7305003Scy#   --enable-editline
8305003Scy#   --enable-static-shell
9251883Speter#   --enable-dynamic-extensions
10251883Speter#
11251883Speter
12251883SpeterAC_PREREQ(2.61)
13305003ScyAC_INIT(sqlite, 3.14.1, http://www.sqlite.org)
14251883SpeterAC_CONFIG_SRCDIR([sqlite3.c])
15251883Speter
16251883Speter# Use automake.
17251883SpeterAM_INIT_AUTOMAKE([foreign])
18251883Speter
19251883SpeterAC_SYS_LARGEFILE
20251883Speter
21251883Speter# Check for required programs.
22251883SpeterAC_PROG_CC
23251883SpeterAC_PROG_LIBTOOL
24251883SpeterAC_PROG_MKDIR_P
25251883Speter
26251883Speter# Check for library functions that SQLite can optionally use.
27251883SpeterAC_CHECK_FUNCS([fdatasync usleep fullfsync localtime_r gmtime_r])
28251883SpeterAC_FUNC_STRERROR_R
29251883Speter
30251883SpeterAC_CONFIG_FILES([Makefile sqlite3.pc])
31251883SpeterAC_SUBST(BUILD_CFLAGS)
32251883Speter
33305003Scy#-------------------------------------------------------------------------
34305003Scy# Two options to enable readline compatible libraries: 
35305003Scy#
36305003Scy#   --enable-editline
37251883Speter#   --enable-readline
38251883Speter#
39305003Scy# Both are enabled by default. If, after command line processing both are
40305003Scy# still enabled, the script searches for editline first and automatically
41305003Scy# disables readline if it is found. So, to use readline explicitly, the
42305003Scy# user must pass "--disable-editline". To disable command line editing
43305003Scy# support altogether, "--disable-editline --disable-readline".
44305003Scy#
45305003Scy# When searching for either library, check for headers before libraries 
46305003Scy# as some distros supply packages that contain libraries but not header
47305003Scy# files, which come as a separate development package.
48305003Scy#
49305003ScyAC_ARG_ENABLE(editline, [AS_HELP_STRING([--enable-editline],[use BSD libedit])])
50305003ScyAC_ARG_ENABLE(readline, [AS_HELP_STRING([--enable-readline],[use readline])])
51305003Scy
52305003ScyAS_IF([ test x"$enable_editline" != xno ],[
53305003Scy  AC_CHECK_HEADERS([editline/readline.h],[
54305003Scy    sLIBS=$LIBS
55305003Scy    LIBS=""
56305003Scy    AC_SEARCH_LIBS([readline],[edit],[
57305003Scy      AC_DEFINE([HAVE_EDITLINE],1,Define to use BSD editline)
58305003Scy      READLINE_LIBS=$LIBS
59305003Scy      enable_readline=no
60305003Scy    ])
61305003Scy    AS_UNSET(ac_cv_search_readline)
62305003Scy    LIBS=$sLIBS
63305003Scy  ])
64305003Scy])
65305003Scy
66305003ScyAS_IF([ test x"$enable_readline" != xno ],[
67305003Scy  AC_CHECK_HEADERS([readline/readline.h],[
68305003Scy    sLIBS=$LIBS
69305003Scy    LIBS=""
70305003Scy    AC_SEARCH_LIBS(tgetent, termcap curses ncurses ncursesw, [], [])
71305003Scy    AC_SEARCH_LIBS(readline,[readline edit], [
72305003Scy      AC_DEFINE([HAVE_READLINE],1,Define to use readline or wrapper)
73305003Scy      READLINE_LIBS=$LIBS
74305003Scy    ])
75305003Scy    LIBS=$sLIBS
76305003Scy  ])
77305003Scy])
78305003Scy
79251883SpeterAC_SUBST(READLINE_LIBS)
80251883Speter#-----------------------------------------------------------------------
81251883Speter
82251883Speter#-----------------------------------------------------------------------
83251883Speter#   --enable-threadsafe
84251883Speter#
85251883SpeterAC_ARG_ENABLE(threadsafe, [AS_HELP_STRING(
86251883Speter  [--enable-threadsafe], [build a thread-safe library [default=yes]])], 
87251883Speter  [], [enable_threadsafe=yes])
88251883SpeterTHREADSAFE_FLAGS=-DSQLITE_THREADSAFE=0
89251883Speterif test x"$enable_threadsafe" != "xno"; then
90251883Speter  THREADSAFE_FLAGS="-D_REENTRANT=1 -DSQLITE_THREADSAFE=1"
91251883Speter  AC_SEARCH_LIBS(pthread_create, pthread)
92305003Scy  AC_SEARCH_LIBS(pthread_mutexattr_init, pthread)
93251883Speterfi
94251883SpeterAC_SUBST(THREADSAFE_FLAGS)
95251883Speter#-----------------------------------------------------------------------
96251883Speter
97251883Speter#-----------------------------------------------------------------------
98251883Speter#   --enable-dynamic-extensions
99251883Speter#
100251883SpeterAC_ARG_ENABLE(dynamic-extensions, [AS_HELP_STRING(
101251883Speter  [--enable-dynamic-extensions], [support loadable extensions [default=yes]])], 
102251883Speter  [], [enable_dynamic_extensions=yes])
103251883Speterif test x"$enable_dynamic_extensions" != "xno"; then
104251883Speter  AC_SEARCH_LIBS(dlopen, dl)
105251883Speterelse
106251883Speter  DYNAMIC_EXTENSION_FLAGS=-DSQLITE_OMIT_LOAD_EXTENSION=1
107251883Speterfi
108251883SpeterAC_MSG_CHECKING([for whether to support dynamic extensions])
109251883SpeterAC_MSG_RESULT($enable_dynamic_extensions)
110251883SpeterAC_SUBST(DYNAMIC_EXTENSION_FLAGS)
111251883Speter#-----------------------------------------------------------------------
112251883Speter
113305003Scy#-----------------------------------------------------------------------
114305003Scy#   --enable-fts5
115305003Scy#
116305003ScyAC_ARG_ENABLE(fts5, [AS_HELP_STRING(
117305003Scy  [--enable-fts5], [include fts5 support [default=no]])], 
118305003Scy  [], [enable_fts5=no])
119305003Scyif test x"$enable_fts5" = "xyes"; then
120305003Scy  AC_SEARCH_LIBS(log, m)
121305003Scy  FTS5_FLAGS=-DSQLITE_ENABLE_FTS5
122305003Scyfi
123305003ScyAC_SUBST(FTS5_FLAGS)
124305003Scy#-----------------------------------------------------------------------
125305003Scy
126305003Scy#-----------------------------------------------------------------------
127305003Scy#   --enable-json1
128305003Scy#
129305003ScyAC_ARG_ENABLE(json1, [AS_HELP_STRING(
130305003Scy  [--enable-json1], [include json1 support [default=no]])], 
131305003Scy  [], [enable_json1=no])
132305003Scyif test x"$enable_json1" = "xyes"; then
133305003Scy  JSON1_FLAGS=-DSQLITE_ENABLE_JSON1
134305003Scyfi
135305003ScyAC_SUBST(JSON1_FLAGS)
136305003Scy#-----------------------------------------------------------------------
137305003Scy
138305003Scy#-----------------------------------------------------------------------
139305003Scy#   --enable-session
140305003Scy#
141305003ScyAC_ARG_ENABLE(session, [AS_HELP_STRING(
142305003Scy  [--enable-session], [enable the session extension [default=no]])], 
143305003Scy  [], [enable_session=no])
144305003Scyif test x"$enable_session" = "xyes"; then
145305003Scy  SESSION_FLAGS="-DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK"
146305003Scyfi
147305003ScyAC_SUBST(SESSION_FLAGS)
148305003Scy#-----------------------------------------------------------------------
149305003Scy
150305003Scy#-----------------------------------------------------------------------
151305003Scy#   --enable-static-shell
152305003Scy#
153305003ScyAC_ARG_ENABLE(static-shell, [AS_HELP_STRING(
154305003Scy  [--enable-static-shell], 
155305003Scy  [statically link libsqlite3 into shell tool [default=yes]])], 
156305003Scy  [], [enable_static_shell=yes])
157305003Scyif test x"$enable_static_shell" = "xyes"; then
158305003Scy  EXTRA_SHELL_OBJ=sqlite3-sqlite3.$OBJEXT
159305003Scyelse
160305003Scy  EXTRA_SHELL_OBJ=libsqlite3.la
161305003Scyfi
162305003ScyAC_SUBST(EXTRA_SHELL_OBJ)
163305003Scy#-----------------------------------------------------------------------
164305003Scy
165251883SpeterAC_CHECK_FUNCS(posix_fallocate)
166251883Speter
167251883Speter#-----------------------------------------------------------------------
168251883Speter# UPDATE: Maybe it's better if users just set CFLAGS before invoking
169251883Speter# configure. This option doesn't really add much...
170251883Speter#
171251883Speter#   --enable-tempstore
172251883Speter#
173251883Speter# AC_ARG_ENABLE(tempstore, [AS_HELP_STRING(
174251883Speter#   [--enable-tempstore], 
175251883Speter#   [in-memory temporary tables (never, no, yes, always) [default=no]])], 
176251883Speter#   [], [enable_tempstore=no])
177251883Speter# AC_MSG_CHECKING([for whether or not to store temp tables in-memory])
178251883Speter# case "$enable_tempstore" in
179251883Speter#   never )  TEMP_STORE=0 ;;
180251883Speter#   no )     TEMP_STORE=1 ;;
181251883Speter#   always ) TEMP_STORE=3 ;;
182251883Speter#   yes )    TEMP_STORE=3 ;;
183251883Speter#   * )
184251883Speter#     TEMP_STORE=1
185251883Speter#     enable_tempstore=yes
186251883Speter#   ;;
187251883Speter# esac
188251883Speter# AC_MSG_RESULT($enable_tempstore)
189251883Speter# AC_SUBST(TEMP_STORE)
190251883Speter#-----------------------------------------------------------------------
191251883Speter
192251883SpeterAC_OUTPUT
193