rulex

Форк
0
/
ax_berkeley_db.m4 
152 строки · 4.5 Кб
1
# ===========================================================================
2
#      http://www.gnu.org/software/autoconf-archive/ax_berkeley_db.html
3
# ===========================================================================
4
#
5
# SYNOPSIS
6
#
7
#   AX_BERKELEY_DB([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
8
#
9
# DESCRIPTION
10
#
11
#   This macro tries to find Berkeley DB. It honors MINIMUM-VERSION if
12
#   given.
13
#
14
#   If libdb is found, DB_HEADER and DB_LIBS variables are set and
15
#   ACTION-IF-FOUND shell code is executed if specified. DB_HEADER is set to
16
#   location of db.h header in quotes (e.g. "db3/db.h") and
17
#   AC_DEFINE_UNQUOTED is called on it, so that you can type
18
#
19
#     #include DB_HEADER
20
#
21
#   in your C/C++ code. DB_LIBS is set to linker flags needed to link
22
#   against the library (e.g. -ldb3.1) and AC_SUBST is called on it.
23
#
24
#   when specified user-selected spot (via --with-libdb) also sets
25
#
26
#     DB_CPPFLAGS to the include directives required
27
#     DB_LDFLAGS to the -L flags required
28
#
29
# LICENSE
30
#
31
#   Copyright (c) 2008 Vaclav Slavik <vaclav.slavik@matfyz.cz>
32
#   Copyright (c) 2014 Kirill A. Korinskiy <catap@catap.ru>
33
#
34
#   Copying and distribution of this file, with or without modification, are
35
#   permitted in any medium without royalty provided the copyright notice
36
#   and this notice are preserved. This file is offered as-is, without any
37
#   warranty.
38
#
39
#   Modified by Igor B. Poretsky <poretsky@mlbox.ru>
40
#   especially for the RuLex project in order to accept newer DB versions
41
#   and to cope with some uncommon situations.
42

43
#serial 8
44

45
AC_DEFUN([AX_BERKELEY_DB],
46
[
47
  old_LIBS="$LIBS"
48
  old_LDFLAGS="$LDFLAGS"
49
  old_CFLAGS="$CFLAGS"
50

51
  libdbdir=""
52
  AC_ARG_WITH(libdb,
53
    AS_HELP_STRING([--with-libdb=DIR],
54
        [root of the Berkeley DB directory]),
55
    [
56
        case "$withval" in
57
        "" | y | ye | yes | n | no)
58
        AC_MSG_ERROR([Invalid --with-libdb value])
59
          ;;
60
        *) libdbdir="$withval"
61
          ;;
62
        esac
63
    ], [])
64

65
  minversion=ifelse([$1], ,,$1)
66

67
  DB_HEADER=""
68
  DB_LIBS=""
69
  DB_LDFLAGS=""
70
  DB_CFLAGS=""
71

72
  if test -z $minversion ; then
73
      minvermajor=0
74
      minverminor=0
75
      minverpatch=0
76
      AC_MSG_CHECKING([for Berkeley DB])
77
  else
78
      minvermajor=`echo $minversion | cut -d. -f1`
79
      minverminor=`echo $minversion | cut -d. -f2`
80
      minverpatch=`echo $minversion | cut -d. -f3`
81
      minvermajor=${minvermajor:-0}
82
      minverminor=${minverminor:-0}
83
      minverpatch=${minverpatch:-0}
84
      AC_MSG_CHECKING([for Berkeley DB >= $minversion])
85
  fi
86

87
  if test x$libdbdir != x""; then
88
    DB_CFLAGS="-I${libdbdir}/include"
89
    DB_LDFLAGS="-L${libdbdir}/lib"
90
    LDFLAGS="$DB_LDFLAGS $old_LDFLAGS"
91
    CFLAGS="$DB_CFLAGS $old_CPPFLAGS"
92
  fi
93

94
  for version in "" 5.3 5.1 5.0 4.9 4.8 4.7 4.6 4.5 4.4 4.3 4.2 4.1 4.0 3.6 3.5 3.4 3.3 3.2 3.1 ; do
95

96
    if test -z $version ; then
97
        db_lib="-ldb"
98
        try_headers="db.h"
99
    else
100
        db_lib="-ldb-$version"
101
        try_headers="db$version/db.h db`echo $version | sed -e 's,\..*,,g'`/db.h db.h"
102
    fi
103

104
    LIBS="$old_LIBS $db_lib"
105

106
    for db_hdr in $try_headers ; do
107
        if test -z $DB_HEADER ; then
108
            AC_LINK_IFELSE(
109
                [AC_LANG_PROGRAM(
110
                    [
111
                        #include <${db_hdr}>
112
                    ],
113
                    [
114
                        #if !((DB_VERSION_MAJOR > (${minvermajor}) || \
115
                              (DB_VERSION_MAJOR == (${minvermajor}) && \
116
                                    DB_VERSION_MINOR > (${minverminor})) || \
117
                              (DB_VERSION_MAJOR == (${minvermajor}) && \
118
                                    DB_VERSION_MINOR == (${minverminor}) && \
119
                                    DB_VERSION_PATCH >= (${minverpatch}))))
120
                            #error "too old version"
121
                        #endif
122

123
                        DB *db;
124
                        db_create(&db, NULL, 0);
125
                    ])],
126
                [
127
                    AC_MSG_RESULT([header $db_hdr, library $db_lib])
128

129
                    DB_HEADER="$db_hdr"
130
                    DB_LIBS="$db_lib"
131
                ])
132
        fi
133
    done
134
  done
135

136
  LIBS="$old_LIBS"
137
  LDFLAGS="$old_LDFLAGS"
138
  CFLAGS="$old_CPPFLAGS"
139

140
  if test -z $DB_HEADER ; then
141
    AC_MSG_RESULT([not found])
142
    DB_LDFLAGS=""
143
    DB_CFLAGS=""
144
    ifelse([$3], , :, [$3])
145
  else
146
    AC_DEFINE_UNQUOTED(DB_HEADER, ["$DB_HEADER"], ["Berkeley DB Header File"])
147
    AC_SUBST(DB_LIBS)
148
    AC_SUBST(DB_LDFLAGS)
149
    AC_SUBST(DB_CFLAGS)
150
    ifelse([$2], , :, [$2])
151
  fi
152
])
153

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.