# This file is part of GDBM. -*- autoconf -*-
# Copyright (C) 2007, 2009, 2011, 2013-2014, 2016-2018 Free Software
# Foundation, Inc.
#
# GDBM is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GDBM is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GDBM. If not, see . */
m4_define([_GDBM_VERSION_MAJOR], 1)
m4_define([_GDBM_VERSION_MINOR], 14)
m4_define([_GDBM_VERSION_PATCH], 90)
AC_INIT([gdbm],
_GDBM_VERSION_MAJOR._GDBM_VERSION_MINOR[]m4_ifdef([_GDBM_VERSION_PATCH],._GDBM_VERSION_PATCH),
[bug-gdbm@gnu.org],,
[http://www.gnu.org/software/gdbm])
AC_PREREQ(2.69)
AC_CONFIG_SRCDIR([src/gdbmdefs.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([autoconf.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([gnits 1.11 std-options silent-rules])
# Enable silent rules by default:
AM_SILENT_RULES([yes])
AC_SUBST([GDBM_VERSION_MAJOR], _GDBM_VERSION_MAJOR)
AC_SUBST([GDBM_VERSION_MINOR], _GDBM_VERSION_MINOR)
AC_SUBST([GDBM_VERSION_PATCH], m4_ifdef([_GDBM_VERSION_PATCH],_GDBM_VERSION_PATCH,0))
AC_ARG_ENABLE([memory-mapped-io],
AC_HELP_STRING(
[--enable-memory-mapped-io],
[Use mmap(2) for disk I/O. (Default is YES.)]),
[mapped_io=$enableval],
[mapped_io=yes])
AC_ARG_ENABLE([libgdbm-compat],
AC_HELP_STRING(
[--enable-libgdbm-compat],
[Build and install libgdbm_compat. (Default is NO.)]),
[want_compat=$enableval],
[want_compat=no])
AC_ARG_VAR([COMPATINCLUDEDIR],[installation directory for dbm.h and ndbm.h])
test -z "$COMPATINCLUDEDIR" && COMPATINCLUDEDIR='$(includedir)'
AC_ARG_ENABLE([gdbmtool-debug],
AC_HELP_STRING(
[--enable-gdbmtool-debug],
[instrument gdbmtool for additional debugging]),
[want_gdbmtool_debug=$enableval],
[want_gdbmtool_debug=default])
dnl Check for programs
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_PROG_YACC
AC_PROG_LEX
AC_ARG_VAR([GZIP_BIN],[Absolute filename of the gzip binary])
AC_PATH_PROG(GZIP_BIN,[gzip])
AC_ARG_VAR([BASE64_BIN],[Absolute filename of the base64 binary])
AC_PATH_PROG(BASE64_BIN,[base64])
AC_SYS_LARGEFILE
AC_C_CONST
AC_TYPE_UNSIGNED_LONG_LONG_INT
AC_SUBST(GDBM_COUNT_T)
if test $ac_cv_type_unsigned_long_long_int = yes; then
GDBM_COUNT_T="unsigned long long int"
else
GDBM_COUNT_T="unsigned long"
fi
AC_MSG_CHECKING([for TLS qualifier])
AC_TRY_COMPILE([],
[static __thread int x = 0;],
[gdbm_cv__thread=__thread],
[gdbm_cv__thread=])
AC_MSG_RESULT($gdbm_cv__thread)
AC_DEFINE_UNQUOTED([GDBM_THREAD_LOCAL],$gdbm_cv__thread,[TLS qualifier])
dnl Internationalization macros.
AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.18)
AC_CHECK_HEADERS([sys/file.h sys/termios.h string.h locale.h getopt.h])
AC_CHECK_LIB(dbm, main)
AC_CHECK_LIB(ndbm, main)
AC_CHECK_FUNCS([ftruncate flock lockf fsync setlocale getopt_long])
if test x$mapped_io = xyes
then
AC_FUNC_MMAP()
AC_CHECK_FUNCS([msync])
fi
AC_TYPE_OFF_T
AC_CHECK_SIZEOF(off_t)
AC_CHECK_MEMBERS([struct stat.st_blksize])
AM_CONDITIONAL([COMPAT_OPT], [test "$want_compat" = yes])
# Check for Curses libs.
for lib in ncurses curses termcap
do
AC_CHECK_LIB($lib, tputs, [CURSES_LIBS="-l$lib"; break])
done
AC_SUBST(CURSES_LIBS)
# Readline
AC_ARG_WITH([readline],
AC_HELP_STRING([--without-readline],
[do not use readline]),
[
case "${withval}" in
yes) status_readline=yes ;;
no) status_readline=no ;;
*) AC_MSG_ERROR(bad value ${withval} for --without-readline) ;;
esac],[status_readline=probe])
AC_SUBST(READLINE_LIBS)
if test "$status_readline" != "no"; then
dnl FIXME This should only link in the curses libraries if it's
dnl really needed!
saved_LIBS=$LIBS
LIBS="$LIBS $CURSES_LIBS"
AC_CHECK_LIB(readline, readline,
[status_readline=yes],
[if test "$status_readline" = "yes"; then
AC_MSG_ERROR(readline requested but does not seem to be installed)
else
status_readline=no
fi])
LIBS=$saved_LIBS
if test "$status_readline" = "yes"; then
AC_CHECK_HEADERS(readline/readline.h,
AC_DEFINE(WITH_READLINE,1,[Enable use of readline]))
READLINE_LIBS="-lreadline $CURSES_LIBS"
saved_LIBS=$LIBS
LIBS="$LIBS $READLINE_LIBS"
AC_CHECK_FUNCS(rl_completion_matches)
LIBS=$saved_LIBS
fi
else
status_readline=no
fi
AM_CONDITIONAL([GDBM_COND_READLINE], [test "$status_readline" = "yes"])
# Additional debugging
AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug],
[provide additional debugging information]),
[status_debug=$withval],
[status_debug=no])
AC_SUBST([GDBM_DEBUG_ENABLE])
if test "$status_debug" = "yes"; then
GDBM_DEBUG_ENABLE=1
else
GDBM_DEBUG_ENABLE=0
fi
AM_CONDITIONAL([GDBM_COND_DEBUG_ENABLE], [test "$status_debug" = "yes"])
AC_SUBST(YFLAGS_DEBUG)
AC_SUBST(LFLAGS_DEBUG)
if test "$want_gdbmtool_debug" = yes; then
if ! $LEX --version 2>/dev/null | grep -q flex; then
AC_MSG_ERROR([--enable-gdbmtool-debug requires flex, which is not available])
fi
if ! $YACC --version 2>/dev/null | grep -q bison; then
AC_MSG_ERROR([--enable-gdbmtool-debug requires bison, which is not available])
fi
YFLAGS_DEBUG=-t
LFLAGS_DEBUG=-d
fi
AM_CONDITIONAL([COND_GDBMTOOL_DEBUG], [test "$want_gdbmtool_debug" = yes])
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal po/Makefile.in])
AM_MISSING_PROG([AUTOM4TE], [autom4te])
AC_CONFIG_COMMANDS([status],[
cat <