1# Check for sqlite3
2#
3# http://ac-archive.sourceforge.net/ac-archive/ax_lib_sqlite3.html
4# Modified for freeciv use.
5#
6# FC_CHECK_SQLITE3([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND] [,VERSION]])
7
8AC_DEFUN([FC_CHECK_SQLITE3],
9[
10  AC_ARG_WITH([sqlite3-prefix],
11    AS_HELP_STRING([--with-sqlite3-prefix=PFX], [Prefix where SQLite3 is installed (optional)]),
12[sqlite3_prefix="$withval"], [sqlite3_prefix=""])
13
14  sqlite3_cflags=""
15  sqlite3_ldflags=""
16
17  ac_sqlite3_header="sqlite3.h"
18
19  sqlite3_version_req=ifelse([$3], [], [3.0.0], [$3])
20  sqlite3_version_req_shorten=`expr $sqlite3_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
21  sqlite3_version_req_major=`expr $sqlite3_version_req : '\([[0-9]]*\)'`
22  sqlite3_version_req_minor=`expr $sqlite3_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
23  sqlite3_version_req_micro=`expr $sqlite3_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
24  if test "x$sqlite3_version_req_micro" = "x" ; then
25    sqlite3_version_req_micro="0"
26  fi
27
28  sqlite3_version_req_number=`expr $sqlite3_version_req_major \* 1000000 \
29                              \+ $sqlite3_version_req_minor \* 1000 \
30                              \+ $sqlite3_version_req_micro`
31
32  AC_MSG_CHECKING([for SQLite3 library >= $sqlite3_version_req])
33
34  if test "x$sqlite3_prefix" != "x"; then
35    ac_sqlite3_ldflags="-L$sqlite3_prefix/lib"
36    ac_sqlite3_cppflags="-I$sqlite3_prefix/include"
37  else
38    for sqlite3_prefix_tmp in /usr /usr/local /opt ; do
39      if test -f "$sqlite3_prefix_tmp/include/$ac_sqlite3_header" \
40         && test -r "$sqlite3_prefix_tmp/include/$ac_sqlite3_header"; then
41        sqlite3_prefix=$sqlite3_prefix_tmp
42        ac_sqlite3_cppflags="-I$sqlite3_prefix_tmp/include"
43        ac_sqlite3_ldflags="-L$sqlite3_prefix_tmp/lib"
44        break;
45      fi
46    done
47  fi
48
49  ac_sqlite3_ldflags="$ac_sqlite3_ldflags -lsqlite3"
50
51  saved_CPPFLAGS="$CPPFLAGS"
52  CPPFLAGS="$CPPFLAGS $ac_sqlite3_cppflags"
53
54  AC_COMPILE_IFELSE(
55    [
56      AC_LANG_PROGRAM([[@%:@include <sqlite3.h>]],[[
57#if (SQLITE_VERSION_NUMBER >= $sqlite3_version_req_number)
58// Everything is okay
59#else
60#  error SQLite version is too old
61#endif
62      ]])
63    ],
64    [
65      AC_MSG_RESULT([yes])
66      success="yes"
67    ],
68    [
69      AC_MSG_RESULT([not found])
70      success="no"
71    ]
72  )
73
74  CPPFLAGS="$saved_CPPFLAGS"
75
76  if test "$success" = "yes"; then
77    sqlite3_cflags="$ac_sqlite3_cppflags"
78    sqlite3_ldflags="$ac_sqlite3_ldflags"
79
80    ac_sqlite3_header_path="$sqlite3_prefix/include/$ac_sqlite3_header"
81
82    AC_SUBST(sqlite3_cflags)
83    AC_SUBST(sqlite3_ldflags)
84
85    ifelse([$1], , :, [$1])
86  else
87    ifelse([$2], , :, [$2])
88  fi
89])
90