1#
2# The build process allows for using a cross-compiler.  But the default
3# action is to target the same platform that we are running on.  The
4# configure script needs to discover the following properties of the 
5# build and target systems:
6#
7#    srcdir
8#
9#        The is the name of the directory that contains the
10#        "configure" shell script.  All source files are
11#        located relative to this directory.
12#
13#    bindir
14#
15#        The name of the directory where executables should be
16#        written by the "install" target of the makefile.
17#
18#    program_prefix
19#
20#        Add this prefix to the names of all executables that run
21#        on the target machine.  Default: ""
22#
23#    ENABLE_SHARED
24#
25#        True if shared libraries should be generated.
26#
27#    BUILD_CC
28#
29#        The name of a command that is used to convert C
30#        source files into executables that run on the build
31#        platform.
32#
33#    BUILD_CFLAGS
34#
35#        Switches that the build compiler needs in order to construct
36#        command-line programs.
37#
38#    BUILD_LIBS
39#
40#        Libraries that the build compiler needs in order to construct
41#        command-line programs.
42#
43#    BUILD_EXEEXT
44#
45#        The filename extension for executables on the build
46#        platform.  "" for Unix and ".exe" for Windows.
47#
48#    TCL_*
49#
50#        Lots of values are read in from the tclConfig.sh script,
51#        if that script is available.  This values are used for
52#        constructing and installing the TCL extension.
53#
54#    TARGET_READLINE_LIBS
55#
56#        This is the library directives passed to the target linker
57#        that cause the executable to link against the readline library.
58#        This might be a switch like "-lreadline" or pathnames of library
59#        file like "../../src/libreadline.a".
60#
61#    TARGET_READLINE_INC
62#
63#        This variables define the directory that contain header
64#        files for the readline library.  If the compiler is able 
65#        to find <readline.h> on its own, then this can be blank.
66#
67#    TARGET_EXEEXT
68#
69#        The filename extension for executables on the
70#        target platform.  "" for Unix and ".exe" for windows.
71#
72# The generated configure script will make an attempt to guess
73# at all of the above parameters.  You can override any of
74# the guesses by setting the environment variable named
75# "config_AAAA" where "AAAA" is the name of the parameter
76# described above.  (Exception: srcdir cannot be set this way.)
77# If you have a file that sets one or more of these environment
78# variables, you can invoke configure as follows:
79#
80#           configure --with-hints=FILE
81#
82# where FILE is the name of the file that sets the environment
83# variables.  FILE should be an absolute pathname.
84#
85# This configure.in file is easy to reuse on other projects.  Just
86# change the argument to AC_INIT().  And disable any features that
87# you don't need (for example BLT) by erasing or commenting out
88# the corresponding code.
89#
90AC_INIT(sqlite, m4_esyscmd([cat VERSION | tr -d '\n']))
91
92dnl Make sure the local VERSION file matches this configure script
93sqlite_version_sanity_check=`cat $srcdir/VERSION | tr -d '\n'`
94if test "$PACKAGE_VERSION" != "$sqlite_version_sanity_check" ; then
95AC_MSG_ERROR([configure script is out of date:
96 configure \$PACKAGE_VERSION = $PACKAGE_VERSION
97 top level VERSION file     = $sqlite_version_sanity_check
98please regen with autoconf])
99fi
100
101dnl Put the RCS revision string after AC_INIT so that it will also
102dnl show in in configure.
103# The following RCS revision string applies to configure.in
104# $Revision: 1.56 $
105
106#########
107# Programs needed
108#
109AC_PROG_LIBTOOL
110AC_PROG_INSTALL
111AC_PROG_AWK
112
113#########
114# Enable large file support (if special flags are necessary)
115#
116AC_SYS_LARGEFILE
117
118#########
119# Check for needed/wanted data types
120AC_CHECK_TYPES([int8_t, int16_t, int32_t, int64_t, intptr_t, uint8_t,
121                uint16_t, uint32_t, uint64_t, uintptr_t])
122
123#########
124# Check for needed/wanted headers
125AC_CHECK_HEADERS([sys/types.h stdlib.h stdint.h inttypes.h])
126
127#########
128# Figure out whether or not we have these functions
129#
130AC_CHECK_FUNCS([usleep fdatasync localtime_r gmtime_r localtime_s])
131
132#########
133# By default, we use the amalgamation (this may be changed below...)
134#
135USE_AMALGAMATION=1
136
137#########
138# See whether we can run specific tclsh versions known to work well;
139# if not, then we fall back to plain tclsh.
140# TODO: try other versions before falling back?
141# 
142AC_CHECK_PROGS(TCLSH_CMD, [tclsh8.5 tclsh], none)
143if test "$TCLSH_CMD" = "none"; then
144  # If we can't find a local tclsh, then building the amalgamation will fail.
145  # We act as though --disable-amalgamation has been used.
146  echo "Warning: can't find tclsh - defaulting to non-amalgamation build."
147  USE_AMALGAMATION=0
148  TCLSH_CMD="tclsh"
149fi
150AC_SUBST(TCLSH_CMD)
151
152AC_ARG_VAR([TCLLIBDIR], [Where to install tcl plugin])
153if test "x${TCLLIBDIR+set}" != "xset" ; then
154  TCLLIBDIR='$(libdir)'
155  for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}` ; do
156    TCLLIBDIR=$i
157    break
158  done
159  TCLLIBDIR="${TCLLIBDIR}/sqlite3"
160fi
161
162
163#########
164# Set up an appropriate program prefix
165#
166if test "$program_prefix" = "NONE"; then
167  program_prefix=""
168fi
169AC_SUBST(program_prefix)
170
171VERSION=[`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`]
172AC_MSG_NOTICE(Version set to $VERSION)
173AC_SUBST(VERSION)
174RELEASE=`cat $srcdir/VERSION`
175AC_MSG_NOTICE(Release set to $RELEASE)
176AC_SUBST(RELEASE)
177VERSION_NUMBER=[`cat $srcdir/VERSION \
178                           | sed 's/[^0-9]/ /g' \
179                | awk '{printf "%d%03d%03d",$1,$2,$3}'`]
180AC_MSG_NOTICE(Version number set to $VERSION_NUMBER)
181AC_SUBST(VERSION_NUMBER)
182
183#########
184# Check to see if the --with-hints=FILE option is used.  If there is none,
185# then check for a files named "$host.hints" and ../$hosts.hints where
186# $host is the hostname of the build system.  If still no hints are
187# found, try looking in $system.hints and ../$system.hints where
188# $system is the result of uname -s.
189#
190AC_ARG_WITH(hints,
191  AC_HELP_STRING([--with-hints=FILE],[Read configuration options from FILE]),
192  hints=$withval)
193if test "$hints" = ""; then
194  host=`hostname | sed 's/\..*//'`
195  if test -r $host.hints; then
196    hints=$host.hints
197  else
198     if test -r ../$host.hints; then
199       hints=../$host.hints
200     fi
201  fi
202fi
203if test "$hints" = ""; then
204  sys=`uname -s`
205  if test -r $sys.hints; then
206    hints=$sys.hints
207  else
208     if test -r ../$sys.hints; then
209       hints=../$sys.hints
210     fi
211  fi
212fi
213if test "$hints" != ""; then
214  AC_MSG_RESULT(reading hints from $hints)
215  . $hints
216fi
217
218#########
219# Locate a compiler for the build machine.  This compiler should
220# generate command-line programs that run on the build machine.
221#
222if test x"$cross_compiling" = xno; then
223	BUILD_CC=$CC
224	BUILD_CFLAGS=$CFLAGS
225else
226	if test "${BUILD_CC+set}" != set; then
227		AC_CHECK_PROGS(BUILD_CC, gcc cc cl)
228	fi
229	if test "${BUILD_CFLAGS+set}" != set; then
230		BUILD_CFLAGS="-g"
231	fi
232fi
233AC_SUBST(BUILD_CC)
234
235##########
236# Do we want to support multithreaded use of sqlite
237#
238AC_ARG_ENABLE(threadsafe, 
239AC_HELP_STRING([--enable-threadsafe],[Support threadsafe operation]),,enable_threadsafe=yes)
240AC_MSG_CHECKING([whether to support threadsafe operation])
241if test "$enable_threadsafe" = "no"; then
242  SQLITE_THREADSAFE=0
243  AC_MSG_RESULT([no])
244else
245  SQLITE_THREADSAFE=1
246  AC_MSG_RESULT([yes])
247fi
248AC_SUBST(SQLITE_THREADSAFE)
249
250if test "$SQLITE_THREADSAFE" = "1"; then
251  AC_SEARCH_LIBS(pthread_create, pthread)
252fi
253
254##########
255# Do we want to allow a connection created in one thread to be used
256# in another thread.  This does not work on many Linux systems (ex: RedHat 9)
257# due to bugs in the threading implementations.  This is thus off by default.
258#
259AC_ARG_ENABLE(cross-thread-connections, 
260AC_HELP_STRING([--enable-cross-thread-connections],[Allow connection sharing across threads]),,enable_xthreadconnect=no)
261AC_MSG_CHECKING([whether to allow connections to be shared across threads])
262if test "$enable_xthreadconnect" = "no"; then
263  XTHREADCONNECT=''
264  AC_MSG_RESULT([no])
265else
266  XTHREADCONNECT='-DSQLITE_ALLOW_XTHREAD_CONNECT=1'
267  AC_MSG_RESULT([yes])
268fi
269AC_SUBST(XTHREADCONNECT)
270
271##########
272# Do we want to support release
273#
274AC_ARG_ENABLE(releasemode, 
275AC_HELP_STRING([--enable-releasemode],[Support libtool link to release mode]),,enable_releasemode=no)
276AC_MSG_CHECKING([whether to support shared library linked as release mode or not])
277if test "$enable_releasemode" = "no"; then
278  ALLOWRELEASE=""
279  AC_MSG_RESULT([no])
280else
281  ALLOWRELEASE="-release `cat $srcdir/VERSION`"
282  AC_MSG_RESULT([yes])
283fi
284AC_SUBST(ALLOWRELEASE)
285
286##########
287# Do we want temporary databases in memory
288#
289AC_ARG_ENABLE(tempstore, 
290AC_HELP_STRING([--enable-tempstore],[Use an in-ram database for temporary tables (never,no,yes,always)]),,enable_tempstore=no)
291AC_MSG_CHECKING([whether to use an in-ram database for temporary tables])
292case "$enable_tempstore" in
293  never ) 
294    TEMP_STORE=0
295    AC_MSG_RESULT([never])
296  ;;
297  no ) 
298    TEMP_STORE=1
299    AC_MSG_RESULT([no])
300  ;;
301  yes ) 
302     TEMP_STORE=2
303    AC_MSG_RESULT([yes])
304  ;;
305  always ) 
306     TEMP_STORE=3
307    AC_MSG_RESULT([always])
308  ;;
309  * ) 
310    TEMP_STORE=1
311    AC_MSG_RESULT([no])
312  ;;
313esac
314
315AC_SUBST(TEMP_STORE)
316
317###########
318# Lots of things are different if we are compiling for Windows using
319# the CYGWIN environment.  So check for that special case and handle
320# things accordingly.
321#
322AC_MSG_CHECKING([if executables have the .exe suffix])
323if test "$config_BUILD_EXEEXT" = ".exe"; then
324  CYGWIN=yes
325  AC_MSG_RESULT(yes)
326else
327  AC_MSG_RESULT(unknown)
328fi
329if test "$CYGWIN" != "yes"; then
330  AC_CYGWIN
331fi
332if test "$CYGWIN" = "yes"; then
333  BUILD_EXEEXT=.exe
334else
335  BUILD_EXEEXT=$EXEEXT
336fi
337if test x"$cross_compiling" = xno; then
338  TARGET_EXEEXT=$BUILD_EXEEXT
339else
340  TARGET_EXEEXT=$config_TARGET_EXEEXT
341fi
342if test "$TARGET_EXEEXT" = ".exe"; then
343  if test $OS2_SHELL ; then
344    SQLITE_OS_UNIX=0
345    SQLITE_OS_WIN=0
346    SQLITE_OS_OS2=1
347    CFLAGS="$CFLAGS -DSQLITE_OS_OS2=1"
348  else
349    SQLITE_OS_UNIX=0
350    SQLITE_OS_WIN=1
351    SQLITE_OS_OS2=0
352    CFLAGS="$CFLAGS -DSQLITE_OS_WIN=1"
353  fi
354else
355  SQLITE_OS_UNIX=1
356  SQLITE_OS_WIN=0
357  SQLITE_OS_OS2=0
358  CFLAGS="$CFLAGS -DSQLITE_OS_UNIX=1"
359fi
360
361AC_SUBST(BUILD_EXEEXT)
362AC_SUBST(SQLITE_OS_UNIX)
363AC_SUBST(SQLITE_OS_WIN)
364AC_SUBST(SQLITE_OS_OS2)
365AC_SUBST(TARGET_EXEEXT)
366
367##########
368# Figure out all the parameters needed to compile against Tcl.
369#
370# This code is derived from the SC_PATH_TCLCONFIG and SC_LOAD_TCLCONFIG
371# macros in the in the tcl.m4 file of the standard TCL distribution.
372# Those macros could not be used directly since we have to make some
373# minor changes to accomodate systems that do not have TCL installed.
374#
375AC_ARG_ENABLE(tcl, AC_HELP_STRING([--disable-tcl],[do not build TCL extension]),
376      [use_tcl=$enableval],[use_tcl=yes])
377if test "${use_tcl}" = "yes" ; then
378  AC_ARG_WITH(tcl, AC_HELP_STRING([--with-tcl=DIR],[directory containing tcl configuration (tclConfig.sh)]), with_tclconfig=${withval})
379  AC_MSG_CHECKING([for Tcl configuration])
380  AC_CACHE_VAL(ac_cv_c_tclconfig,[
381    # First check to see if --with-tcl was specified.
382    if test x"${with_tclconfig}" != x ; then
383      if test -f "${with_tclconfig}/tclConfig.sh" ; then
384        ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
385      else
386        AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
387      fi
388    fi
389
390    # Start autosearch by asking tclsh
391    if test x"$cross_compiling" = xno; then
392      for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}`
393      do
394        if test -f "$i/tclConfig.sh" ; then
395          ac_cv_c_tclconfig="$i"
396          break
397        fi
398      done
399    fi
400
401    # then check for a private Tcl installation
402    if test x"${ac_cv_c_tclconfig}" = x ; then
403      for i in \
404            ../tcl \
405            `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
406            `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \
407            `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
408            ../../tcl \
409            `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
410            `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
411            `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
412            ../../../tcl \
413            `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
414            `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
415            `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null`
416      do
417        if test -f "$i/unix/tclConfig.sh" ; then
418          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
419          break
420        fi
421      done
422    fi
423
424    # check in a few common install locations
425    if test x"${ac_cv_c_tclconfig}" = x ; then
426      for i in \
427            `ls -d ${libdir} 2>/dev/null` \
428            `ls -d /usr/local/lib 2>/dev/null` \
429            `ls -d /usr/contrib/lib 2>/dev/null` \
430            `ls -d /usr/lib 2>/dev/null`
431      do
432        if test -f "$i/tclConfig.sh" ; then
433           ac_cv_c_tclconfig=`(cd $i; pwd)`
434           break
435        fi
436      done
437    fi
438
439    # check in a few other private locations
440    if test x"${ac_cv_c_tclconfig}" = x ; then
441      for i in \
442         ${srcdir}/../tcl \
443         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
444         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \
445         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null`
446      do
447        if test -f "$i/unix/tclConfig.sh" ; then
448          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
449          break
450        fi
451      done
452    fi
453  ])
454
455  if test x"${ac_cv_c_tclconfig}" = x ; then
456    use_tcl=no
457    AC_MSG_WARN(Can't find Tcl configuration definitions)
458    AC_MSG_WARN(*** Without Tcl the regression tests cannot be executed ***)
459    AC_MSG_WARN(*** Consider using --with-tcl=... to define location of Tcl ***)
460  else
461    TCL_BIN_DIR=${ac_cv_c_tclconfig}
462    AC_MSG_RESULT(found $TCL_BIN_DIR/tclConfig.sh)
463
464    AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
465    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
466      AC_MSG_RESULT([loading])
467      . $TCL_BIN_DIR/tclConfig.sh
468    else
469      AC_MSG_RESULT([file not found])
470    fi
471    
472    #
473    # If the TCL_BIN_DIR is the build directory (not the install directory),
474    # then set the common variable name to the value of the build variables.
475    # For example, the variable TCL_LIB_SPEC will be set to the value
476    # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
477    # instead of TCL_BUILD_LIB_SPEC since it will work with both an
478    # installed and uninstalled version of Tcl.
479    #
480    
481    if test -f $TCL_BIN_DIR/Makefile ; then
482      TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
483      TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
484      TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
485    fi
486    
487    #
488    # eval is required to do the TCL_DBGX substitution
489    #
490    
491    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
492    eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
493    eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
494    
495    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
496    eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
497    eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
498    
499    AC_SUBST(TCL_VERSION)
500    AC_SUBST(TCL_BIN_DIR)
501    AC_SUBST(TCL_SRC_DIR)
502    AC_SUBST(TCL_LIBS)
503    AC_SUBST(TCL_INCLUDE_SPEC)
504    
505    AC_SUBST(TCL_LIB_FILE)
506    AC_SUBST(TCL_LIB_FLAG)
507    AC_SUBST(TCL_LIB_SPEC)
508    
509    AC_SUBST(TCL_STUB_LIB_FILE)
510    AC_SUBST(TCL_STUB_LIB_FLAG)
511    AC_SUBST(TCL_STUB_LIB_SPEC)
512  fi
513fi
514if test "${use_tcl}" = "no" ; then
515  HAVE_TCL=""
516else
517  HAVE_TCL=1
518fi
519AC_SUBST(HAVE_TCL)
520
521##########
522# Figure out what C libraries are required to compile programs
523# that use "readline()" library.
524#
525TARGET_READLINE_LIBS=""
526TARGET_READLINE_INC=""
527TARGET_HAVE_READLINE=0
528AC_ARG_ENABLE([readline],
529	[AC_HELP_STRING([--disable-readline],[disable readline support [default=detect]])],
530	[with_readline=$enableval],
531	[with_readline=auto])
532
533if test x"$with_readline" != xno; then
534	found="yes"
535
536	AC_ARG_WITH([readline-lib],
537		[AC_HELP_STRING([--with-readline-lib],[specify readline library])],
538		[with_readline_lib=$withval],
539		[with_readline_lib="auto"])
540	if test "x$with_readline_lib" = xauto; then
541		save_LIBS="$LIBS"
542		LIBS=""
543		AC_SEARCH_LIBS(tgetent, [readline ncurses curses termcap], [term_LIBS="$LIBS"], [term_LIBS=""])
544		AC_CHECK_LIB([readline], [readline], [TARGET_READLINE_LIBS="-lreadline"], [found="no"])
545		TARGET_READLINE_LIBS="$TARGET_READLINE_LIBS $term_LIBS"
546		LIBS="$save_LIBS"
547	else
548		TARGET_READLINE_LIBS="$with_readline_lib"
549	fi
550
551	AC_ARG_WITH([readline-inc],
552		[AC_HELP_STRING([--with-readline-inc],[specify readline include paths])],
553		[with_readline_inc=$withval],
554		[with_readline_inc="auto"])
555	if test "x$with_readline_inc" = xauto; then
556		AC_CHECK_HEADER(readline.h, [found="yes"], [
557			found="no"
558			if test "$cross_compiling" != yes; then
559				for dir in /usr /usr/local /usr/local/readline /usr/contrib /mingw; do
560					for subdir in include include/readline; do
561						AC_CHECK_FILE($dir/$subdir/readline.h, found=yes)
562						if test "$found" = "yes"; then
563							TARGET_READLINE_INC="-I$dir/$subdir"
564							break
565						fi
566					done
567					test "$found" = "yes" && break
568				done
569			fi
570		])
571	else
572		TARGET_READLINE_INC="$with_readline_inc"
573	fi
574
575	if test x"$found" = xno; then
576		TARGET_READLINE_LIBS=""
577		TARGET_READLINE_INC=""
578		TARGET_HAVE_READLINE=0
579	else
580		TARGET_HAVE_READLINE=1
581	fi
582fi
583
584AC_SUBST(TARGET_READLINE_LIBS)
585AC_SUBST(TARGET_READLINE_INC)
586AC_SUBST(TARGET_HAVE_READLINE)
587
588##########
589# Figure out what C libraries are required to compile programs
590# that use "fdatasync()" function.
591#
592AC_SEARCH_LIBS(fdatasync, [rt])
593
594#########
595# check for debug enabled
596AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],[enable debugging & verbose explain]),
597      [use_debug=$enableval],[use_debug=no])
598if test "${use_debug}" = "yes" ; then
599  TARGET_DEBUG="-DSQLITE_DEBUG=1"
600else
601  TARGET_DEBUG="-DNDEBUG"
602fi
603AC_SUBST(TARGET_DEBUG)
604
605#########
606# See whether we should use the amalgamation to build
607AC_ARG_ENABLE(amalgamation, AC_HELP_STRING([--disable-amalgamation],
608      [Disable the amalgamation and instead build all files separately]),
609      [use_amalgamation=$enableval],[use_amalgamation=yes])
610if test "${use_amalgamation}" != "yes" ; then
611  USE_AMALGAMATION=0
612fi
613AC_SUBST(USE_AMALGAMATION)
614
615#########
616# See whether we should allow loadable extensions
617AC_ARG_ENABLE(load-extension, AC_HELP_STRING([--enable-load-extension],
618      [Enable loading of external extensions]),
619      [use_loadextension=$enableval],[use_loadextension=no])
620if test "${use_loadextension}" = "yes" ; then
621  OPT_FEATURE_FLAGS=""
622else
623  OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
624fi
625
626#########
627# attempt to duplicate any OMITS and ENABLES into the $(OPT_FEATURE_FLAGS) parameter
628for option in $CFLAGS $CPPFLAGS
629do
630  case $option in
631    -DSQLITE_OMIT*) OPT_FEATURE_FLAGS="$OPT_FEATURE_FLAGS $option";;
632    -DSQLITE_ENABLE*) OPT_FEATURE_FLAGS="$OPT_FEATURE_FLAGS $option";;
633  esac
634done
635AC_SUBST(OPT_FEATURE_FLAGS)
636
637
638# attempt to remove any OMITS and ENABLES from the $(CFLAGS) parameter
639ac_temp_CFLAGS=""
640for option in $CFLAGS
641do
642  case $option in
643    -DSQLITE_OMIT*) ;;
644    -DSQLITE_ENABLE*) ;;
645    *) ac_temp_CFLAGS="$ac_temp_CFLAGS $option";;
646  esac
647done
648CFLAGS=$ac_temp_CFLAGS
649
650
651# attempt to remove any OMITS and ENABLES from the $(CPPFLAGS) parameter
652ac_temp_CPPFLAGS=""
653for option in $CPPFLAGS
654do
655  case $option in
656    -DSQLITE_OMIT*) ;;
657    -DSQLITE_ENABLE*) ;;
658    *) ac_temp_CPPFLAGS="$ac_temp_CPPFLAGS $option";;
659  esac
660done
661CPPFLAGS=$ac_temp_CPPFLAGS
662
663
664# attempt to remove any OMITS and ENABLES from the $(BUILD_CFLAGS) parameter
665ac_temp_BUILD_CFLAGS=""
666for option in $BUILD_CFLAGS
667do
668  case $option in
669    -DSQLITE_OMIT*) ;;
670    -DSQLITE_ENABLE*) ;;
671    *) ac_temp_BUILD_CFLAGS="$ac_temp_BUILD_CFLAGS $option";;
672  esac
673done
674BUILD_CFLAGS=$ac_temp_BUILD_CFLAGS
675
676
677#########
678# See whether we should use GCOV
679AC_ARG_ENABLE(gcov, AC_HELP_STRING([--enable-gcov],
680      [Enable coverage testing using gcov]),
681      [use_gcov=$enableval],[use_gcov=no])
682if test "${use_gcov}" = "yes" ; then
683  USE_GCOV=1
684else
685  USE_GCOV=0
686fi
687AC_SUBST(USE_GCOV)
688
689
690#########
691# Output the config header
692AC_CONFIG_HEADERS(config.h)
693
694#########
695# Generate the output files.
696#
697AC_SUBST(BUILD_CFLAGS)
698AC_OUTPUT([
699Makefile
700sqlite3.pc
701])
702