~ubuntu-branches/debian/lenny/netatalk/lenny

« back to all changes in this revision

Viewing changes to macros/db3-check.m4

  • Committer: Bazaar Package Importer
  • Author(s): Ante Karamatic
  • Date: 2005-10-07 13:46:11 UTC
  • mfrom: (1.1.2 upstream) (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20051007134611-r07qa2g67xwkp2if
Tags: 2.0.3-1ubuntu1
* debian/netatalk.init
  - run cnid_metad if CNID_METAD_RUN=yes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
dnl $Id: db3-check.m4,v 1.7.4.3 2003/06/06 19:51:15 srittau Exp $
2
 
dnl Autoconf macro to check for the Berkeley DB library
3
 
 
4
 
AC_DEFUN([AC_PATH_BDB], [
 
1
dnl $Id: db3-check.m4,v 1.11.6.9 2004/08/11 03:01:11 bfernhomberg Exp $
 
2
dnl Autoconf macros to check for the Berkeley DB library
 
3
 
 
4
 
 
5
AC_DEFUN([NETATALK_BDB_LINK_TRY],
 
6
[if test $atalk_cv_lib_db = no ; then
 
7
        AC_MSG_CHECKING([for Berkeley DB link (]ifelse($2,,default,$2)[)])
 
8
        atalk_DB_LIB=ifelse($2,,-ldb,$2)
 
9
        atalk_LIBS=$LIBS
 
10
        LIBS="$atalk_DB_LIB $LIBS"
 
11
 
 
12
        AC_TRY_LINK([
 
13
#include <db.h>
 
14
],[
 
15
        char *version;
 
16
        int major, minor, patch;
 
17
 
 
18
        version = db_version( &major, &minor, &patch );
 
19
        return (0);
 
20
],[$1=yes],[$1=no])
 
21
 
 
22
        AC_MSG_RESULT([$$1])
 
23
        LIBS="$atalk_LIBS"
 
24
        if test $$1 = yes ; then
 
25
                atalk_cv_lib_db=ifelse($2,,-ldb,$2)
 
26
        fi
 
27
fi
 
28
])
 
29
 
 
30
 
 
31
AC_DEFUN([NETATALK_BDB_CHECK_VERSION],
 
32
[
 
33
        atalk_LIBS=$LIBS
 
34
        LIBS="${atalk_cv_lib_db} $LIBS"
 
35
 
 
36
        AC_MSG_CHECKING([Berkeley DB library version >= ${DB_MAJOR_REQ}.${DB_MINOR_REQ}.${DB_PATCH_REQ}])
 
37
        AC_TRY_RUN([
 
38
#if STDC_HEADERS
 
39
#include <stdlib.h>
 
40
#endif
 
41
#include <stdio.h>
 
42
#include <db.h>
 
43
 
 
44
int main(void) {
 
45
        int major, minor, patch;
 
46
        char *version_str;
 
47
 
 
48
        version_str = db_version(&major, &minor, &patch);
 
49
 
 
50
        /* check library version */
 
51
        if (major < DB_MAJOR_REQ || minor < DB_MINOR_REQ || patch < DB_PATCH_REQ) {
 
52
                printf("library version too old (%d.%d.%d), ",major, minor, patch);
 
53
                return (2);
 
54
        }
 
55
 
 
56
        /* check header and library match */
 
57
        if ( major != DB_VERSION_MAJOR || minor != DB_VERSION_MINOR || patch != DB_VERSION_PATCH) {
 
58
                printf("header/library version mismatch (%d.%d.%d/%d.%d.%d), ",
 
59
                         DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, major, minor, patch);
 
60
                return (3);
 
61
        }
 
62
 
 
63
        printf("%d.%d.%d, ",major, minor, patch);
 
64
        return (0);
 
65
}
 
66
], atalk_cv_bdb_version="yes", atalk_cv_bdb_version="no", atalk_cv_bdb_version="cross")
 
67
 
 
68
 
 
69
        if test ${atalk_cv_bdb_version} = "yes"; then
 
70
                AC_MSG_RESULT(yes)
 
71
        else
 
72
                AC_MSG_RESULT(no)
 
73
        fi
 
74
        LIBS="$atalk_LIBS"
 
75
])
 
76
 
 
77
 
 
78
AC_DEFUN([NETATALK_BDB_HEADER],
 
79
[
 
80
        savedcflags="$CFLAGS"
 
81
        CFLAGS="-I$1 $CFLAGS"
 
82
        dnl check for header version
 
83
        AC_MSG_CHECKING(ifelse($1,,default,$1)[/db.h version >= ${DB_MAJOR_REQ}.${DB_MINOR_REQ}.${DB_PATCH_REQ}])
 
84
        AC_TRY_RUN([
 
85
#if STDC_HEADERS
 
86
#include <stdlib.h>
 
87
#endif
 
88
#include <stdio.h>
 
89
#include <db.h>
 
90
 
 
91
int main(void) {
 
92
 
 
93
        /* check header version */
 
94
        if (DB_VERSION_MAJOR < DB_MAJOR_REQ || DB_VERSION_MINOR < DB_MINOR_REQ ||
 
95
            DB_VERSION_PATCH < DB_PATCH_REQ ) {
 
96
                printf("header file version too old (%d.%d.%d), ", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
 
97
                return (1);
 
98
        }
 
99
 
 
100
        printf("%d.%d.%d, ", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
 
101
        return (0);
 
102
}
 
103
], atalk_cv_bdbheader="yes", atalk_cv_bdbheader="no", atalk_cv_bdbheader="cross")
 
104
 
 
105
        if test ${atalk_cv_bdbheader} = "no"; then
 
106
                bdbfound=no
 
107
                AC_MSG_RESULT([no])
 
108
        else
 
109
                AC_MSG_RESULT([yes])
 
110
        fi
 
111
        CFLAGS="$savedcflags"
 
112
])
 
113
 
 
114
 
 
115
AC_DEFUN([NETATALK_BERKELEY_LINK],
 
116
[
 
117
atalk_cv_lib_db=no
 
118
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_2,[-ldb-4.2])
 
119
NETATALK_BDB_LINK_TRY(atalk_cv_db_db42,[-ldb42])
 
120
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_42,[-ldb-42])
 
121
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_2,[-ldb-4-2])
 
122
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_dot_1,[-ldb-4.1])
 
123
NETATALK_BDB_LINK_TRY(atalk_cv_db_db41,[-ldb41])
 
124
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_41,[-ldb-41])
 
125
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4_1,[-ldb-4-1])
 
126
NETATALK_BDB_LINK_TRY(atalk_cv_db_db_4,[-ldb-4])
 
127
NETATALK_BDB_LINK_TRY(atalk_cv_db_db4,[-ldb4])
 
128
NETATALK_BDB_LINK_TRY(atalk_cv_db_db,[-ldb])
 
129
])
 
130
 
 
131
 
 
132
AC_DEFUN([AC_PATH_BDB], 
 
133
[
5
134
        trybdbdir=""
 
135
        dobdbsearch=yes
 
136
        bdb_search_dirs="/usr/local/include /usr/include"
 
137
        search_subdirs="/db4.2 /db42 /db4.1 /db41 /db4 /"
 
138
 
 
139
dnl required BDB version
 
140
        DB_MAJOR_REQ=4
 
141
        DB_MINOR_REQ=1
 
142
        DB_PATCH_REQ=0
 
143
 
 
144
dnl make sure atalk_libname is defined beforehand
 
145
[[ -n "$atalk_libname" ]] || AC_MSG_ERROR([internal error, atalk_libname undefined])
 
146
 
 
147
dnl define the required BDB version
 
148
        AC_DEFINE_UNQUOTED(DB_MAJOR_REQ, ${DB_MAJOR_REQ}, [Required BDB version, major])
 
149
        AC_DEFINE_UNQUOTED(DB_MINOR_REQ, ${DB_MINOR_REQ}, [Required BDB version, minor])
 
150
        AC_DEFINE_UNQUOTED(DB_PATCH_REQ, ${DB_PATCH_REQ}, [Required BDB version, patch])
 
151
 
 
152
 
6
153
        AC_ARG_WITH(bdb,
7
 
                [  --with-bdb=PATH         specify path to Berkeley DB installation],
8
 
                if test "x$withval" != "xno"; then
9
 
                        trybdbdir="$withval"
 
154
                [  --with-bdb=PATH         specify path to Berkeley DB installation[[auto]]],
 
155
                if test "x$withval" = "xno"; then
 
156
                        dobdbsearch=no
 
157
                elif test "x$withval" = "xyes"; then
 
158
                        dobdbsearch=yes
 
159
                else
 
160
                        bdb_search_dirs="$withval/include $withval"
10
161
                fi
11
162
        )
12
163
 
 
164
 
13
165
        bdbfound=no
14
 
        for bdbdir in "" "$trybdbdir" "$trybdbdir/include" "$trybdbdir/include/db3" "/usr/local/BerkeleyDB.3.3/include" "/usr/local/include/db3" "/usr/local/include" "/usr/include/db3" "/usr/include" ; do
15
 
                if test -f "$bdbdir/db.h" ; then
16
 
                        bdblibdir="`echo $bdbdir | sed 's/include\/db3$/lib/'`"
17
 
                        bdblibdir="`echo $bdblibdir | sed 's/include$/lib/'`"
18
 
                        bdbbindir="`echo $bdbdir | sed 's/include\/db3$/bin/'`"
19
 
                        bdbbindir="`echo $bdbbindir | sed 's/include$/bin/'`"
 
166
        savedcflags="$CFLAGS"
 
167
        savedldflags="$LDFLAGS"
 
168
        savedcppflags="$CPPFLAGS"
 
169
        savedlibs="$LIBS"
20
170
 
21
 
                        savedcflags="$CFLAGS"
22
 
                        savedldflags="$LDFLAGS"
23
 
                        CFLAGS="$CFLAGS -I$bdbdir"
24
 
                        LDFLAGS="-L$bdblibdir $LDFLAGS"
25
 
                        AC_CHECK_LIB(db, main, [
26
 
                                bdbfound=yes
27
 
                                if test "$bdbdir" != "/usr/include"; then
28
 
                                    BDB_CFLAGS="-I$bdbdir"
29
 
                                fi
30
 
                                if test "$bdblibdir" != "/usr/lib"; then
31
 
                                    BDB_LIBS="-L$bdblibdir"
32
 
                                fi
33
 
                                BDB_LIBS="$BDB_LIBS -ldb"
34
 
                                BDB_BIN=$bdbbindir
35
 
                                BDB_PATH="`echo $bdbdir | sed 's,include/db3$,,'`"
36
 
                                BDB_PATH="`echo $BDB_PATH | sed 's,include$,,'`"
37
 
                        ])
38
 
                        CFLAGS="$savedcflags"
39
 
                        LDFLAGS="$savedldflags"
 
171
        if test "x$dobdbsearch" = "xyes"; then
 
172
            for bdbdir in $bdb_search_dirs; do
 
173
                if test $bdbfound = "yes"; then
40
174
                        break;
41
175
                fi
42
 
        done
 
176
                for subdir in ${search_subdirs}; do
 
177
                    AC_MSG_CHECKING([for Berkeley DB headers in ${bdbdir}${subdir}])
 
178
                    if test -f "${bdbdir}${subdir}/db.h" ; then
 
179
                        AC_MSG_RESULT([yes])
 
180
                        NETATALK_BDB_HEADER([${bdbdir}${subdir}])
 
181
                        if test ${atalk_cv_bdbheader} != "no"; then
 
182
                        
 
183
dnl                       bdblibdir="`echo $bdbdir | sed 's/\/include\/db4\.*.*//'`"
 
184
                          bdblibdir="`echo $bdbdir | sed 's/\/include\/db4.*//'`"
 
185
                          bdblibdir="`echo $bdblibdir | sed 's/\/include$//'`"
 
186
                          bdblibdir="${bdblibdir}/${atalk_libname}"
 
187
dnl                       bdbbindir="`echo $bdbdir | sed 's/include\/db4\.*.*/bin/'`"
 
188
                          bdbbindir="`echo $bdbdir | sed 's/\/include\/db4.*/bin/'`"
 
189
                          bdbbindir="`echo $bdbbindir | sed 's/include$/bin/'`"
 
190
 
 
191
                          CPPFLAGS="-I${bdbdir}${subdir} $CFLAGS"
 
192
                          CFLAGS=""
 
193
                          LDFLAGS="-L$bdblibdir $LDFLAGS"
 
194
                          NETATALK_BERKELEY_LINK
 
195
                          if test x"${atalk_cv_lib_db}" != x"no"; then
 
196
                                NETATALK_BDB_CHECK_VERSION
 
197
                                if test x"${atalk_cv_bdb_version}" != x"no"; then
 
198
                                    BDB_LIBS="-L${bdblibdir} ${atalk_cv_lib_db}"
 
199
                                    BDB_CFLAGS="-I${bdbdir}${subdir}"
 
200
                                    BDB_BIN=$bdbbindir
 
201
                                    BDB_PATH="`echo $bdbdir | sed 's,include\/db4$,,'`"
 
202
                                    BDB_PATH="`echo $BDB_PATH | sed 's,include$,,'`"
 
203
                                    bdbfound=yes
 
204
                                    break;
 
205
                                fi
 
206
                          fi    
 
207
                          CFLAGS="$savedcflags"
 
208
                          LDFLAGS="$savedldflags"
 
209
                          CPPFLAGS="$savedcppflags"
 
210
                          LIBS="$savedlibs"
 
211
                        fi
 
212
                    else
 
213
                        AC_MSG_RESULT([no])
 
214
                    fi
 
215
                done
 
216
            done
 
217
        fi
 
218
 
 
219
        CFLAGS="$savedcflags"
 
220
        LDFLAGS="$savedldflags"
 
221
        CPPFLAGS="$savedcppflags"
 
222
        LIBS="$savedlibs"
43
223
 
44
224
        if test "x$bdbfound" = "xyes"; then
45
225
                ifelse([$1], , :, [$1])
47
227
                ifelse([$2], , :, [$2])     
48
228
        fi
49
229
 
 
230
        CFLAGS_REMOVE_USR_INCLUDE(BDB_CFLAGS)
 
231
        LIB_REMOVE_USR_LIB(BDB_LIBS)
50
232
        AC_SUBST(BDB_CFLAGS)
51
233
        AC_SUBST(BDB_LIBS)
52
234
        AC_SUBST(BDB_BIN)
53
235
        AC_SUBST(BDB_PATH)
54
236
])
 
237
 
 
238