File: db.m4

package info (click to toggle)
389-ds-base 2.3.1%2Bdfsg1-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 37,536 kB
  • sloc: ansic: 306,972; python: 96,937; cpp: 10,257; perl: 2,854; makefile: 2,046; sh: 925; yacc: 806; xml: 379; lex: 366; javascript: 148; java: 50
file content (143 lines) | stat: -rw-r--r-- 4,088 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2022 Red Hat, Inc.
# All rights reserved.
#
# License: GPL (version 3 or any later version).
# See LICENSE for details. 
# END COPYRIGHT BLOCK

AC_MSG_CHECKING(for db)

dnl  - check for --with-db
AC_MSG_CHECKING(for --with-db)
AC_ARG_WITH(db, AS_HELP_STRING([--with-db@<:@=PATH@:>@],[Berkeley DB directory]),
[
  if test "$withval" = "yes"; then
    AC_MSG_RESULT(yes)
  elif test "$withval" = "no"; then
    AC_MSG_RESULT(no)
    AC_MSG_ERROR([db is required.])
  elif test -d "$withval"/include -a -d "$withval"/lib; then
    AC_MSG_RESULT([using $withval])
    dnl - check the user provided location
    DBDIR=$withval
    db_lib="-L$DBDIR/lib"
    db_libdir="$DBDIR/lib"
    db_incdir="$DBDIR/include"
    if ! test -e "$db_incdir/db.h" ; then
      AC_MSG_ERROR([$withval include dir not found])
    fi
    db_inc="-I$db_incdir"
  else
    echo
    AC_MSG_ERROR([$withval not found])
  fi
],
AC_MSG_RESULT(yes))
dnl default path for the db tools (see [210947] for more details)

# check for --with-db-inc
AC_MSG_CHECKING(for --with-db-inc)
AC_ARG_WITH(db-inc, AS_HELP_STRING([--with-db-inc=PATH],[Berkeley DB include file directory]),
[
  if test -e "$withval"/db.h
  then
    AC_MSG_RESULT([using $withval])
    db_incdir="$withval"
    db_inc="-I$withval"
  else
    echo
    AC_MSG_ERROR([$withval not found])
  fi
],
AC_MSG_RESULT(no))

# check for --with-db-lib
AC_MSG_CHECKING(for --with-db-lib)
AC_ARG_WITH(db-lib, AS_HELP_STRING([--with-db-lib=PATH],[Berkeley DB library directory]),
[
  if test -d "$withval"
  then
    AC_MSG_RESULT([using $withval])
    db_lib="-L$withval"
    db_libdir="$withval"
  else
    echo
    AC_MSG_ERROR([$withval not found])
  fi
],
AC_MSG_RESULT(no))

dnl - check in system locations
if test -z "$db_inc"; then
  AC_MSG_CHECKING(for db.h)
  if test -f "/usr/include/db4/db.h"; then
    AC_MSG_RESULT([using /usr/include/db4/db.h])
    db_incdir="/usr/include/db4"
    db_inc="-I/usr/include/db4"
    db_lib='-L$(libdir)'
    db_libdir='$(libdir)'
  elif test -f "/usr/include/libdb/db.h"; then
    AC_MSG_RESULT([using /usr/include/libdb/db.h])
    db_incdir="/usr/include/libdb"
    db_inc="-I/usr/include/libdb"
    db_lib='-L$(libdir)'
    db_libdir='$(libdir)'
  elif test -f "/usr/include/db.h"; then
    AC_MSG_RESULT([using /usr/include/db.h])
    db_incdir="/usr/include"
    db_inc="-I/usr/include"
    db_lib='-L$(libdir)'
    db_libdir='$(libdir)'
  else
    AC_MSG_RESULT(no)
    AC_MSG_ERROR([db not found, specify with --with-db.])
  fi
fi

dnl figure out which version of db we're using from the header file
db_ver_maj=`grep DB_VERSION_MAJOR $db_incdir/db.h | awk '{print $3}'`
db_ver_min=`grep DB_VERSION_MINOR $db_incdir/db.h | awk '{print $3}'`
db_ver_pat=`grep DB_VERSION_PATCH $db_incdir/db.h | awk '{print $3}'`

dnl Ensure that we have libdb at least 4.7, older versions aren't supported
if test ${db_ver_maj} -lt 4; then
  AC_MSG_ERROR([Found db ${db_ver_maj}.${db_ver_min} is too old, update to version 4.7 at least])
elif test ${db_ver_maj} -eq 4 -a ${db_ver_min} -lt 7; then
  AC_MSG_ERROR([Found db ${db_ver_maj}.${db_ver_min} is too old, update to version 4.7 at least])
fi

dnl libname is libdb-maj.min e.g. libdb-4.2
db_libver=${db_ver_maj}.${db_ver_min}
dnl make sure the lib is available
dnl use true so libdb won't be added to LIBS
save_ldflags="$LDFLAGS"
LDFLAGS="$db_lib $LDFLAGS"
AC_CHECK_LIB([db-$db_libver], [db_create], [true],
  [AC_MSG_ERROR([$db_incdir/db.h is version $db_libver but libdb-$db_libver not found])],
  [$LIBNSL])
LDFLAGS="$save_ldflags"

# if DB is not found yet, try pkg-config

# last resort
# Although the other db_* variables are correctly assigned at this point,
# db_bindir needs to be set by pkg-config if possible (e.g., on 64-bit Solaris)
if  test -n "$PKG_CONFIG"; then
  if $PKG_CONFIG --exists db; then
    db_bindir=`$PKG_CONFIG --variable=bindir db`
  else
    db_bindir=/usr/bin
  fi
else
  db_bindir=/usr/bin
fi


AC_SUBST(db_inc)
AC_SUBST(db_incdir)
AC_SUBST(db_lib)
AC_SUBST(db_libdir)
AC_SUBST(db_bindir)
AC_SUBST(db_libver)