dnl
dnl Process this file with autoconf to produce a configure script.
dnl
-AC_INIT(src/version.h)
+dnl require a recent autoconf
+AC_PREREQ(2.61)
+AC_INIT([bacula], m4_esyscmd([sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ../src/version.h src/version.h 2> /dev/null | tr -d '\n']))
+AC_CONFIG_SRCDIR(src/version.h)
+
BUILD_DIR=`pwd`
cd ..
TOP_DIR=`pwd`
AC_SUBST(BUILD_DIR)
AC_SUBST(TOP_DIR)
AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)
-AC_CONFIG_HEADER(src/config.h:autoconf/config.h.in)
+AC_CONFIG_HEADERS(src/config.h:autoconf/config.h.in)
dnl minimal Win32 stuff for "make clean"
WIN32BUILDDIR=${BUILD_DIR}/src/win32
AC_SUBST(WIN32MAINDIR)
AC_SUBST(WIN32TOPDIR)
-dnl require a recent autoconf
-AC_PREREQ(2.61)
-
-
dnl search for true and false programs.
AC_PATH_PROGS(TRUEPRG, true, :)
AC_PATH_PROGS(FALSEPRG, false, :)
VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+BDB_VERSION=`sed -n -e 's/^.*BDB_VERSION \(.*\)$/\1/p' ${srcdir}/src/cats/cats.h`
AC_SUBST(VERSION)dnl
AC_SUBST(DATE)dnl
AC_SUBST(LSMDATE)dnl
AC_SUBST(BACULA)dnl
AC_SUBST(post_host)dnl
+AC_SUBST(BDB_VERSION)dnl
+
+dnl src/lib
+dnl can be overwritten by specific values from version.h
+LIBBAC_LT_RELEASE=`sed -n -e 's/^#.*LIBBAC_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+LIBBACCFG_LT_RELEASE=`sed -n -e 's/^#.*LIBBACCFG_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+LIBBACPY_LT_RELEASE=`sed -n -e 's/^#.*LIBBACPY_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+
+LIBBAC_LT_RELEASE=${LIBBAC_LT_RELEASE:-$VERSION}
+LIBBACCFG_LT_RELEASE=${LIBBACCFG_LT_RELEASE:-$VERSION}
+LIBBACPY_LT_RELEASE=${LIBBACPY_LT_RELEASE:-$VERSION}
+
+AC_SUBST(LIBBAC_LT_RELEASE)dnl
+AC_SUBST(LIBBACCFG_LT_RELEASE)dnl
+AC_SUBST(LIBBACPY_LT_RELEASE)dnl
+
+dnl src/cats
+dnl can be overwritten by specific values from version.h
+LIBBACSQL_LT_RELEASE=`sed -n -e 's/^#.*LIBBACSQL_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+LIBBACCATS_LT_RELEASE=`sed -n -e 's/^#.*LIBBACCATS_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+
+LIBBACSQL_LT_RELEASE=${LIBBACSQL_LT_RELEASE:-$VERSION}
+LIBBACCATS_LT_RELEASE=${LIBBACCATS_LT_RELEASE:-$VERSION}
+
+AC_SUBST(LIBBACSQL_LT_RELEASE)dnl
+AC_SUBST(LIBBACCATS_LT_RELEASE)dnl
+
+dnl src/findlib
+dnl can be overwritten by specific values from version.h
+LIBBACFIND_LT_RELEASE=`sed -n -e 's/^#.*LIBBACFIND_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+
+LIBBACFIND_LT_RELEASE=${LIBBACFIND_LT_RELEASE:-$VERSION}
+
+AC_SUBST(LIBBACFIND_LT_RELEASE)dnl
+
echo "configuring for ${BACULA} $VERSION ($DATE)"
+
dnl -------------------------------------------------------
dnl Check for compiler.
dnl ------------------------------------------------------
AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
AC_PATH_PROG(QMAKE, qmake, none)
-AC_PATH_PROG(QMAKEQT4, qmake-qt4, none)
AC_PATH_PROG(GMAKE, gmake, none)
AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
if test "x$WXCONFIG" = x; then
]
)
LT_INIT([shared disable-static])
+LT_LIB_DLLOAD
LT_LANG([C++])
if test x$use_libtool != xno; then
LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
LIBTOOL_CLEAN_TARGET="libtool-clean"
QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
+ FD_PLUGIN_DIR="src/plugins/fd"
+ have_plugins=yes
else
DEFAULT_OBJECT_TYPE=".o"
DEFAULT_ARCHIVE_TYPE=".a"
LIBTOOL_UNINSTALL_TARGET=""
LIBTOOL_CLEAN_TARGET=""
QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
+ FD_PLUGIN_DIR=""
+ have_plugins=no
fi
AC_SUBST(DEFAULT_OBJECT_TYPE)
AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
AC_SUBST(LIBTOOL_CLEAN_TARGET)
AC_SUBST(QMAKE_LIBTOOL)
+AC_SUBST(FD_PLUGIN_DIR)
dnl --------------------------------------------------
dnl Include file handling
dnl -------------------------------------------------------------------------
dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
dnl -------------------------------------------------------------------------
-if test x$htmldir = x${docdir} ; then
- htmldir=`eval echo ${docdir}bacula/html`
+if test x$htmldir = x'/usr/share/doc/bacula/' ; then
+ htmldir=`eval echo ${docdir}html`
fi
dnl -------------------------------------------------------------------------
-dnl If the user has not set --docdir, we default to /usr/share/doc/
+dnl If the user has not set --docdir, we default to /usr/share/doc/bacula
dnl -------------------------------------------------------------------------
if test x$docdir = x'/usr/share/doc/' ; then
docdir=`eval echo ${docdir}bacula`
AM_GNU_GETTEXT
fi
-support_mysql=no
-support_sqlite=no
-support_sqlite3=no
-support_postgresql=no
-support_dbi=no
support_smartalloc=yes
support_readline=yes
support_conio=yes
build_client_only=no
build_dird=yes
build_stored=yes
-cats=
-db_type=Internal
+db_backends=""
+batch_insert_db_backends=""
support_lockmgr=no
-DB_TYPE=bdb
dnl --------------------------------------------------------------------------
dnl CHECKING COMMAND LINE OPTIONS
dnl --------------------------------------------------------------------------
dnl -------------------------------------------
-dnl gnome (default off)
+dnl gnome -- no longer supported
dnl -------------------------------------------
AC_ARG_ENABLE(gnome,
AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
fi
dnl
-dnl If bat is enabled, we need the qwt library
+dnl The qwt library was used with bat, but that is no longer the case
dnl
got_qwt=no
QWT_INC=
QWT_LIB=
QWT=
no_qwt=no
-if test x$support_bat = xyes; then
- AC_MSG_CHECKING(for qwt support)
- AC_ARG_WITH(qwt,
- AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
- [
- case "$with_qwt" in
- no)
- no_qwt=yes
- ;;
- yes|*)
- if test -f ${with_qwt}/include/qwt.h; then
- QWT_INC="${with_qwt}/include"
- QWT_LDFLAGS="-L${with_qwt}/lib"
- QWT_LIB="-lqwt"
- QWT="qwt"
- fi
- ;;
- esac
- ]
- )
-
- dnl
- dnl Search in standard places, or --with-qwt not specified
- dnl
- if test $no_qwt = no; then
- if test x$QWT_INC = x; then
- for root in /usr /usr/local; do
- for ver in qwt qwt5 qwt-qt4; do
- if test -f ${root}/include/${ver}/qwt.h; then
- QWT_INC="${root}/include/${ver}"
- if test -d ${root}/lib64/; then
- QWT_LDFLAGS="-L${root}/lib64"
- elif test -d ${root}/lib/64/; then
- QWT_LDFLAGS="-L${root}/64"
- else
- QWT_LDFLAGS="-L${root}/lib"
- fi
- QWT_LIB="-lqwt"
- QWT="qwt"
- got_qwt=yes
- break;
- fi
- done
- done
- fi
- fi
- if test x$QWT_INC = x; then
- AC_MSG_RESULT(no)
- else
- AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
- AC_MSG_RESULT(yes)
- fi
-fi
+dnl if test x$support_bat = xyes; then
+dnl AC_MSG_CHECKING(for qwt support)
+dnl AC_ARG_WITH(qwt,
+dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
+dnl [
+dnl case "$with_qwt" in
+dnl no)
+dnl no_qwt=yes
+dnl ;;
+dnl yes|*)
+dnl if test -f ${with_qwt}/include/qwt.h; then
+dnl QWT_INC="${with_qwt}/include"
+dnl QWT_LDFLAGS="-L${with_qwt}/lib"
+dnl QWT_LIB="-lqwt"
+dnl QWT="qwt"
+dnl fi
+dnl ;;
+dnl esac
+dnl ]
+dnl )
+
+dnl dnl
+dnl dnl Search in standard places, or --with-qwt not specified
+dnl dnl
+dnl if test $no_qwt = no; then
+dnl if test x$QWT_INC = x; then
+dnl for root in /usr /usr/local; do
+dnl for ver in qwt qwt5 qwt-qt4; do
+dnl if test -f ${root}/include/${ver}/qwt.h; then
+dnl QWT_INC="${root}/include/${ver}"
+dnl if test -d ${root}/lib64/; then
+dnl QWT_LDFLAGS="-L${root}/lib64"
+dnl elif test -d ${root}/lib/64/; then
+dnl QWT_LDFLAGS="-L${root}/64"
+dnl else
+dnl QWT_LDFLAGS="-L${root}/lib"
+dnl fi
+dnl QWT_LIB="-lqwt"
+dnl QWT="qwt"
+dnl got_qwt=yes
+dnl break;
+dnl fi
+dnl done
+dnl done
+dnl fi
+dnl fi
+dnl if test x$QWT_INC = x; then
+dnl AC_MSG_RESULT(no)
+dnl else
+dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
+dnl AC_MSG_RESULT(yes)
+dnl fi
+dnl fi
AC_SUBST(BAT_DIR)
AC_SUBST(QWT_INC)
[
if test x$enableval = xyes; then
build_client_only=yes
- db_type=None
- DB_TYPE=none
+ db_backends="None"
+ DB_BACKENDS="none"
fi
]
)
AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
fi
+TERM_LIB=""
+AC_CHECK_HEADER(curses.h, [
+ AC_CHECK_LIB(tinfo, tgetent, [ TERM_LIB="-ltinfo" ], [
+ AC_CHECK_LIB(ncurses, tgetent, [ TERM_LIB="-lncurses" ], [
+ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
+ ])
+ ])
+ ],
+ [ AC_CHECK_HEADERS(curses.h)
+ AC_CHECK_HEADER(term.h,
+ [ AC_CHECK_LIB(curses, tgetent,
+ [ TERM_LIB="-lcurses" ] )
+ ])
+ ])
+
+
got_conio="no"
if test x$support_conio = xyes; then
- AC_CHECK_HEADER(termcap.h,
- [ AC_CHECK_LIB(termcap, tgetent,
- [ CONS_LIBS="-ltermcap"
- CONS_OBJ="conio.o"
- CONS_SRC="conio.c"
- got_conio="yes"
- support_readline=no
- AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
- ],
- [ AC_CHECK_LIB(ncurses, tgetent,
- [ CONS_LIBS="-lncurses"
+ if test x$TERM_LIB != x; then
+ CONS_LIBS=$TERM_LIB
CONS_OBJ="conio.o"
CONS_SRC="conio.c"
got_conio="yes"
support_readline=no
AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
- ])
- ])
- ],
- [
- AC_CHECK_HEADERS(curses.h)
- AC_CHECK_HEADER(term.h,
- [ AC_CHECK_LIB(curses, tgetent,
- [ CONS_LIBS="-lcurses"
- CONS_OBJ="conio.o"
- CONS_SRC="conio.c"
- got_conio="yes"
- support_readline=no
- AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
- ])
- ],
- [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
-[#if HAVE_CURSES_H
-#include <curses.h>
-#endif
-])
- ])
+ else
+ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "
+ fi
fi
fi
]
)
+if test x$TERM_LIB = x ; then
+ support_readline=no
+fi
got_readline="no"
READLINE_SRC=
AC_CHECK_HEADER(${with_readline}/readline.h,
[
AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
- CONS_LIBS="-lreadline -lhistory -ltermcap"
+ CONS_LIBS="-lreadline -lhistory $TERM_LIB"
got_readline="yes"
], [
echo " "
AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
got_readline="yes"
CONS_INC="-I/usr/include/readline"
- CONS_LIBS="-lreadline -ltermcap"
+ CONS_LIBS="-lreadline $TERM_LIB"
], [
dnl Did not find standard library, so try Bacula's default
AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
got_readline="yes"
CONS_INC="-I${TOP_DIR}/depkgs/readline"
- CONS_LIBS="-lreadline -lhistory -ltermcap"
+ CONS_LIBS="-lreadline -lhistory $TERM_LIB"
CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
], [
PYTHON_LIBS=`/usr/bin/python-config --libs`
else
for python_root in /usr /usr/local /usr/sfw; do
- for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
+ for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python2.7 python3; do
if test -f $python_root/include/${ver}/Python.h; then
PYTHON_INCDIR=-I$python_root/include/${ver}
if test -d $python_root/lib64/${ver}/config; then
support_crypto="yes"
], [
support_tls="no"
+ support_crypto="no"
]
)
]
)
- LIBS="${saved_LIBS}"
- CFLAGS="${saved_CFLAGS}"
-
+ AC_MSG_RESULT([$support_tls])
if test "$support_tls" = "yes"; then
AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
if test "$ac_cv_openssl_export" = "yes"; then
AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
fi
+
+ if test "$support_crypto" = "yes"; then
+ AC_CHECK_LIB(crypto, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
+ fi
+
+ LIBS="${saved_LIBS}"
+ CFLAGS="${saved_CFLAGS}"
else
support_tls="no"
support_crypto="no"
- OPENSSL_LIBS=""
- OPENSSL_INC=""
+ AC_MSG_RESULT([$support_tls])
fi
-if test "$support_tls" = "no"; then
+if test "$support_tls" = "no" -o "$support_crypto" = "no"; then
OPENSSL_LIBS=""
OPENSSL_INC=""
-fi
+fi
-AC_MSG_RESULT([$support_tls])
AC_SUBST(OPENSSL_LIBS)
AC_SUBST(OPENSSL_INC)
if test x${hostname} = x ; then
hostname="localhost"
fi
+dnl Make sure hostname is resolved
+ping -c 1 $hostname 2>/dev/null 1>/dev/null
+if test ! $? = 0; then
+ hostname="localhost"
+fi
AC_ARG_WITH(hostname,
AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
[
dnl
dnl allow setting default executable permissions
dnl
-SBINPERM=0754
+SBINPERM=0750
AC_ARG_WITH(sbin-perm,
- AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0754@:>@]),
+ AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0750@:>@]),
[
if test "x$withval" != "x" ; then
SBINPERM=$withval
AC_SUBST(SBINPERM)
-dnl --------------------------------------------------
-dnl plugin support
-dnl --------------------------------------------------
-have_plugins=yes
-AC_ARG_ENABLE(plugins,
- AC_HELP_STRING([--enable-plugins], [enable plugin support @<:@default=yes@:>@]),
+dnl -------------------------------------------
+dnl enable batch attribute DB insert (default on)
+dnl -------------------------------------------
+support_batch_insert=yes
+AC_ARG_ENABLE(batch-insert,
+ AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=yes@:>@]),
[
if test x$enableval = xno; then
- have_plugins=no
+ support_batch_insert=no
fi
]
)
-if test "x$use_libtool" != "xyes" -a test "x$have_plugins" = "xyes"; then
- echo " "
- echo "You specified --enable-plugins but disabled libtool with --disable-libtool"
- echo "We only support plugins using libtool so either disable plugins or enable libtool"
- echo " "
- echo "Aborting the configuration ..."
- echo " "
- echo " "
- exit 1
+if test x$support_batch_insert = xyes; then
+ AC_DEFINE(USE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
fi
-FD_PLUGIN_DIR=""
-if test "x$have_plugins" = "xyes" ; then
- FD_PLUGIN_DIR="src/plugins/fd"
-fi
-AC_SUBST(FD_PLUGIN_DIR)
-
dnl ------------------------------------------------
dnl Bacula check for various SQL database engines
dnl ------------------------------------------------
-SQL_LIB=
+
+dnl
+dnl Set uncomment_dbi by default to '#' if DBI is enabled this will get reset
+dnl
+uncomment_dbi="#"
+
BA_CHECK_POSTGRESQL_DB
BA_CHECK_MYSQL_DB
BA_CHECK_SQLITE3_DB
-# BA_CHECK_SQLITE_DB
-
-BA_CHECK_DBI_DB
+#BA_CHECK_INGRES_DB
-BA_CHECK_DBI_DRIVER
+#BA_CHECK_DBI_DB
-AC_SUBST(cats)
-AC_SUBST(DB_TYPE)
+#BA_CHECK_DBI_DRIVER
dnl -------------------------------------------
-dnl enable batch attribute DB insert (default on)
+dnl If no batch insert backend are enable set
+dnl variable to None
dnl -------------------------------------------
-support_batch_insert=no
-A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
-pkg=$?
-if test $pkg = 0; then
- support_batch_insert=yes
- AC_ARG_ENABLE(batch-insert,
- AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
- [
- if test x$enableval = xno; then
- support_batch_insert=no
- else
- support_batch_insert=yes
- fi
- ]
- )
-fi
-
-dnl Check if postgresql can support batch mode
-if test x$DB_TYPE = xpostgresql; then
- AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
- AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
- if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
- then
- support_batch_insert=no
- fi
+if test -z "${batch_insert_db_backends}"; then
+ batch_insert_db_backends="None"
fi
-if test x$DB_TYPE = xdbi; then
- DB_TYPE=$DB_PROG
- db_type=$DB_PROG
- pkg=1
- dnl Check for batch insert
- if test $DB_PROG = postgresql; then
- AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
- AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
- test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
- pkg=$?
- fi
+dnl -------------------------------------------
+dnl Make sure at least one database backend is found
+dnl -------------------------------------------
+if test "x${db_backends}" = "x" ; then
+ echo " "
+ echo " "
+ echo "You have not specified either --enable-client-only or one of the"
+ echo "supported databases: MySQL, PostgreSQL, or SQLite3."
+ echo "This is not permitted. Please reconfigure."
+ echo " "
+ echo "Aborting the configuration ..."
+ echo " "
+ echo " "
+ exit 1
+fi
- if test $DB_PROG = mysql; then
- A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
- pkg=$?
- fi
+dnl -------------------------------------------
+dnl See how many catalog backends are configured.
+dnl -------------------------------------------
+case `echo $DB_BACKENDS | wc -w | sed -e 's/^ *//'` in
+ 1)
+ DEFAULT_DB_TYPE="${DB_BACKENDS}"
+ if test x$use_libtool = xno; then
+ SHARED_CATALOG_TARGETS=""
+ else
+ SHARED_CATALOG_TARGETS="libbaccats-${DEFAULT_DB_TYPE}.la"
+ fi
+ ;;
+ *)
+ dnl ------------------------------------------------
+ dnl Set the default backend to the first backend found
+ dnl ------------------------------------------------
+ DEFAULT_DB_TYPE=`echo ${DB_BACKENDS} | cut -d' ' -f1`
+
+ dnl ------------------------------------------------
+ dnl For multiple backend we need libtool support.
+ dnl ------------------------------------------------
+ if test x$use_libtool = xno; then
+ echo " "
+ echo " "
+ echo "You have specified two or more of the"
+ echo "supported databases: MySQL, PostgreSQL, or SQLite3."
+ echo "This is not permitted when not using libtool Please reconfigure."
+ echo " "
+ echo "Aborting the configuration ..."
+ echo " "
+ echo " "
+ exit 1
+ fi
- if test $DB_PROG = sqlite3; then
- A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
- pkg=$?
- fi
+ SHARED_CATALOG_TARGETS=""
+ for db_type in ${DB_BACKENDS}
+ do
+ if test -z "${SHARED_CATALOG_TARGETS}"; then
+ SHARED_CATALOG_TARGETS="libbaccats-${db_type}.la"
+ else
+ SHARED_CATALOG_TARGETS="${SHARED_CATALOG_TARGETS} libbaccats-${db_type}.la"
+ fi
+ done
+ ;;
+esac
- if test $pkg = 0; then
- AC_ARG_ENABLE(batch-insert,
- AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
- [
- if test x$enableval = xno; then
- support_batch_insert=no
- else
- support_batch_insert=yes
- fi
- ]
- )
- fi
-else
- dnl If dbi was not chosen, let the comment in file
- uncomment_dbi="#"
+dnl -------------------------------------------
+dnl Unset DB_LIBS when using libtool as we link the
+dnl shared library using the right database lib no need to
+dnl set DB_LIBS which is only used for non shared versions
+dnl of the backends.
+dnl -------------------------------------------
+if test x$use_libtool = xyes; then
+ DB_LIBS=""
fi
AC_SUBST(uncomment_dbi)
-
-if test $support_batch_insert = yes ; then
- AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
-fi
+AC_SUBST(DB_BACKENDS)
+AC_SUBST(DB_LIBS)
+AC_SUBST(DEFAULT_DB_TYPE)
+AC_SUBST(SHARED_CATALOG_TARGETS)
AC_DEFINE(PROTOTYPES)
stdarg.h \
stdlib.h \
stdint.h \
+ inttypes.h \
string.h \
strings.h \
termios.h \
)
]
)
-test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T)
+test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
+
+dnl --------------------------------------------------------------------------
+dnl Check for ioctl request type
+dnl --------------------------------------------------------------------------
+AC_LANG(C++)
+AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
+ [
+ AC_TRY_COMPILE(
+ [
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ ], [
+ int (*d_ioctl)(int fd, unsigned long int request, ...);
+ d_ioctl = ::ioctl;
+ ], [
+ ba_cv_header_ioctl_req_t=yes
+ ], [
+ ba_cv_header_ioctl_req_t=no
+ ]
+ )
+ ]
+)
+test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
+
+dnl Note: it is more correct to use AC_LANG(C++) but some of the older
+dnl *BSD systems still use old style C prototypes, which are wrong with
+dnl compiled with a C++ compiler.
+AC_LANG(C)
dnl --------------------------------------------------------------------------
dnl Check for typeof()
AC_C_CONST
+AC_C_BIGENDIAN([AC_DEFINE([HAVE_BIG_ENDIAN], [1], [Big Endian])], [AC_DEFINE([HAVE_LITTLE_ENDIAN], [1], [Little Endian])])
+
dnl --------------------------------------------------------------------------
dnl CHECKING FOR FILESYSTEM TYPE
dnl --------------------------------------------------------------------------
AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
+AC_LANG_PUSH(C++)
+AC_CHECK_FUNCS(backtrace)
+AC_LANG_POP(C++)
+
dnl --------------------------------------------------------------------------
dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
dnl --------------------------------------------------------------------------
[echo 'configure: cannot find needed function.'; exit 1]
)
+AC_CHECK_DECL(
+ F_CLOSEM,
+ AC_DEFINE(HAVE_FCNTL_F_CLOSEM, 1, [Set if you have 'F_CLOSEM' fcntl flag]),
+ ,
+ [#include <fcntl.h>]
+)
+
+AC_CHECK_FUNC(closefrom, [AC_DEFINE(HAVE_CLOSEFROM, 1, [Define to 1 if you have the 'closefrom' function.])])
+AC_CHECK_FUNCS(getpagesize, [AC_DEFINE(HAVE_GETPAGESIZE, 1, [Set if have getpagesize])])
+AC_CHECK_FUNCS(malloc_trim, [AC_DEFINE(HAVE_MALLOC_TRIM, 1, [Set if have malloc_trim])])
+
AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
AC_CHECK_FUNCS(posix_fadvise)
AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
fi
+dnl
+dnl check for working getaddrinfo()
+dnl
+dnl Note that if the system doesn't have gai_strerror(), we
+dnl can't use getaddrinfo() because we can't get strings
+dnl describing the error codes.
+dnl
+AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,
+ [
+ AC_TRY_RUN(
+ [
+ #include <netdb.h>
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+
+ void main(void) {
+ struct addrinfo hints, *ai;
+ int error;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+ error = getaddrinfo("127.0.0.1", NULL, &hints, &ai);
+ if (error) {
+ exit(1);
+ }
+ if (ai->ai_addr->sa_family != AF_INET) {
+ exit(1);
+ }
+ exit(0);
+ }
+ ],[
+ ac_cv_working_getaddrinfo="yes"
+ ],[
+ ac_cv_working_getaddrinfo="no"
+ ],[
+ ac_cv_working_getaddrinfo="yes"
+ ]
+ )
+ ]
+)
+AC_CHECK_FUNC(gai_strerror, [AC_DEFINE(HAVE_GAI_STRERROR, 1, [Define to 1 if you have the 'gai_strerror' function.])])
+
+if test "$ac_cv_working_getaddrinfo" = "yes"; then
+ if test "$ac_cv_func_gai_strerror" != "yes"; then
+ ac_cv_working_getaddrinfo="no"
+ else
+ AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 if getaddrinfo exists and works])
+ fi
+fi
+
AC_FUNC_STRFTIME
AC_FUNC_VPRINTF
AC_FUNC_ALLOCA
AC_FUNC_GETMNTENT
+AC_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)])
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_SETPGRP dnl check for BSD setpgrp.
# AC_FUNC_FNMATCH dnl use local version
AC_CHECK_LIB(sun, getpwnam)
AC_CHECK_HEADERS(zlib.h)
-AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
+AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
have_zlib=no
-if test x$FDLIBS = x-lz; then
+if test x$ZLIBS = x-lz; then
AC_DEFINE(HAVE_LIBZ)
have_zlib=yes
fi
+AC_SUBST(ZLIBS)
+
+dnl
+dnl Check for lzo
+dnl
+have_lzo=no
+AC_CHECK_HEADER(lzo/lzoconf.h,
+[
+ AC_CHECK_HEADER(lzo/lzo1x.h,
+ [
+ AC_CHECK_LIB(lzo2, lzo1x_1_compress,
+ [
+ LZOLIBS="-llzo2"
+ AC_DEFINE(HAVE_LZO,1,[Define to 1 if you have LZO compression])
+ have_lzo=yes
+ ])
+ ])
+])
+AC_SUBST(LZOLIBS)
+
+dnl
+dnl Check if we have AFS on this system
+dnl
+AFS_CFLAGS=""
+AFS_LIBS=""
+support_afs=auto
+AC_ARG_ENABLE(afs,
+ AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]),
+ [
+ if test x$enableval = xyes; then
+ support_afs=yes
+ elif test x$enableval = xno; then
+ support_afs=no
+ fi
+ ]
+)
+
+have_afs=no
+if test x$support_afs = xyes -o x$support_afs = xauto; then
+ AC_ARG_WITH(afsdir,
+ AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]),
+ with_afsdir=$withval
+ )
+
+ dnl
+ dnl Search in standard places, or --with-afsdir not specified
+ dnl
+ if test x$with_afsdir = x; then
+ for root in /usr /usr/local; do
+ if test -d ${root}/include/afs/ ; then
+ with_afsdir=${root}
+ break
+ fi
+ if test -d ${root}/include/openafs/afs/ ; then
+ with_afsdir=${root}
+ break
+ fi
+ done
+ fi
+
+ if test -d ${with_afsdir}/include/afs/ ; then
+ AFS_CFLAGS="-I${with_afsdir}/include"
+ else
+ if test -d ${with_afsdir}/include/openafs/afs/ ; then
+ AFS_CFLAGS="-I${with_afsdir}/include/openafs"
+ fi
+ fi
+
+ saved_CFLAGS="${CFLAGS}"
+ saved_CPPFLAGS="${CPPFLAGS}"
+ CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}"
+ CPPFLAGS="${AFS_CFLAGS} ${saved_CPPFLAGS}"
+
+ AC_CHECK_HEADERS(afs/afsint.h)
+ AC_TRY_CPP(
+ [
+ #include <afs/afsint.h>
+ #include <afs/venus.h>
+ ],
+ AC_DEFINE(HAVE_AFS_VENUS_H,1,[Define to 1 if you have the <afs/venus.h> header file.])
+ )
+
+ CFLAGS="${saved_CFLAGS}"
+ CPPFLAGS="${saved_CPPFLAGS}"
+
+ dnl
+ dnl See if we can find a libsys with the pioctl symbol in there
+ dnl
+ AC_MSG_CHECKING(for pioctl in AFS libsys)
+ for dir in ${with_afsdir}/lib \
+ ${with_afsdir}/lib/afs \
+ ${with_afsdir}/lib/openafs \
+ ${with_afsdir}/lib64 \
+ ${with_afsdir}/lib64/afs \
+ ${with_afsdir}/lib64/openafs
+ do
+ for arch_type in .a .so
+ do
+ A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} 2>/dev/null | grep pioctl`
+ pkg=$?
+ if test $pkg = 0; then
+ have_afs=yes
+ AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util${arch_type}"
+ break
+ fi
+ done
+ done
+
+ if test $have_afs = yes; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ if test x$support_afs = xyes -a $have_afs != yes; then
+ AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found,
+ please either load the afs libraries or rerun configure without --enable-afs])
+ else
+ if test $have_afs = yes; then
+ AC_DEFINE(HAVE_AFS,1,[Define to 1 if your system has AFS support])
+ AC_DEFINE(HAVE_AFS_ACL,1,[Andrew FileSystem ACL support])
+ fi
+ fi
+fi
+AC_SUBST(AFS_CFLAGS)
+AC_SUBST(AFS_LIBS)
dnl
dnl Check for ACL support and libraries
have_extended_acl=no
if test x$support_acl = xyes -o x$support_acl = xauto; then
AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
+
+ dnl
+ dnl First check for acl_get_file in libc
+ dnl
AC_CHECK_FUNC(acl_get_file,
[
have_acl=yes
- ], [
- AC_CHECK_LIB(acl, acl_get_file,
- [
- have_acl=yes;
- FDLIBS="-lacl $FDLIBS"
- ], [
- AC_CHECK_LIB(pacl, acl_get_file,
- [
- have_acl=yes;
- FDLIBS="-lpacl $FDLIBS"
- ], [
- AC_CHECK_LIB(sec, acltotext,
- [
- have_acl=yes;
- FDLIBS="-lsec $FDLIBS"
-
- AC_CHECK_LIB(sec, acl_totext,
- [
- have_extended_acl=yes
- ]
- )
- ]
- )
- ]
- )
- ]
- )
]
)
+ dnl
+ dnl Check for acl_get_file in libacl (Linux)
+ dnl
+ if test $have_acl = no; then
+ AC_CHECK_LIB(acl, acl_get_file,
+ [
+ have_acl=yes
+ if test $have_afs = yes; then
+ dnl
+ dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!!
+ dnl
+ if test -d /usr/lib64/; then
+ FDLIBS="-L/usr/lib64 -lacl $FDLIBS"
+ else
+ FDLIBS="-L/usr/lib -lacl $FDLIBS"
+ fi
+ else
+ FDLIBS="-lacl $FDLIBS"
+ fi
+ ]
+ )
+ fi
+
+ dnl
+ dnl Check for acl_get_file in libpacl (OSF1)
+ dnl and if ACL_TYPE_DEFAULT_DIR is defined.
+ dnl
+ if test $have_acl = no -a \
+ x${HAVE_OSF1_OS_TRUE} = x; then
+ AC_CHECK_LIB(pacl, acl_get_file,
+ [
+ have_acl=yes
+ FDLIBS="-lpacl $FDLIBS"
+ ]
+ )
+
+ AC_MSG_CHECKING(for ACL_TYPE_DEFAULT_DIR in acl.h include file)
+ grep ACL_TYPE_DEFAULT_DIR /usr/include/sys/acl.h > /dev/null 2>&1
+ if test $? = 0; then
+ AC_DEFINE(HAVE_ACL_TYPE_DEFAULT_DIR,1,[Defines if your system have the ACL_TYPE_DEFAULT_DIR acl type])
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+
+ dnl
+ dnl On OSX check for availability of ACL_TYPE_EXTENDED
+ dnl
+ if test $have_acl = yes -a \
+ x${HAVE_DARWIN_OS_TRUE} = x; then
+ AC_MSG_CHECKING(for ACL_TYPE_EXTENDED in acl.h include file)
+ grep ACL_TYPE_EXTENDED /usr/include/sys/acl.h > /dev/null 2>&1
+ if test $? = 0; then
+ AC_DEFINE(HAVE_ACL_TYPE_EXTENDED,1,[Defines if your system have the ACL_TYPE_EXTENDED acl type])
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+
+ dnl
+ dnl On FreeBSD check for availability of ACL_TYPE_NFS4
+ dnl
+ if test $have_acl = yes -a \
+ x${HAVE_FREEBSD_OS_TRUE} = x; then
+ AC_MSG_CHECKING(for ACL_TYPE_NFS4 in acl.h include file)
+ grep ACL_TYPE_NFS4 /usr/include/sys/acl.h > /dev/null 2>&1
+ if test $? = 0; then
+ AC_DEFINE(HAVE_ACL_TYPE_NFS4,1,[Defines if your system have the ACL_TYPE_NFS4 acl type])
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+
+ dnl
+ dnl Check for acltotext and acl_totext (Solaris)
+ dnl
+ if test $have_acl = no -a \
+ x${HAVE_SUN_OS_TRUE} = x; then
+ AC_CHECK_LIB(sec, acltotext,
+ [
+ have_acl=yes
+ FDLIBS="-lsec $FDLIBS"
+
+ AC_CHECK_LIB(sec, acl_totext,
+ [
+ have_extended_acl=yes
+ ]
+ )
+ ]
+ )
+ fi
+
+ dnl
+ dnl Check for acl_get and aclx_get (AIX)
+ dnl
+ if test $have_acl = no -a \
+ x${HAVE_AIX_OS_TRUE} = x; then
+ AC_CHECK_FUNC(acl_get,
+ [
+ have_acl=yes
+
+ AC_CHECK_FUNC(aclx_get,
+ [
+ have_extended_acl=yes
+ ]
+ )
+ ]
+ )
+ fi
+
if test x$support_acl = xyes -a $have_acl != yes; then
AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
please either load the acl libraries or rerun configure without --enable-acl])
if test x$support_xattr = xyes -o x$support_xattr = xauto; then
dnl
dnl First check for *BSD support
+ dnl When running on a BSD variant
dnl
- AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
- AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
- AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
- [
- have_xattr=yes
- AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
- AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
- AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
- ]
- )
-
- if test $have_xattr = no; then
- AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
+ if test x${HAVE_FREEBSD_OS_TRUE} = x -o \
+ x${HAVE_NETBSD_OS_TRUE} = x -o \
+ x${HAVE_OPENBSD_OS_TRUE} = x; then
+ AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
+ AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
+ AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
[
have_xattr=yes
- AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
- AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
- AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
+ AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
+ AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
+ AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
]
)
- fi
- if test $have_xattr = yes; then
- have_extattr_string_in_libc=no
- AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
- [
- have_extattr_string_in_libc=yes
- AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
- AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
- ]
- )
-
- dnl
- dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
- dnl
- if test $have_extattr_string_in_libc = no; then
- AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
+ if test $have_xattr = no; then
+ AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
+ [
+ have_xattr=yes
+ AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
+ AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
+ AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
+ ]
+ )
+ fi
+
+ if test $have_xattr = yes; then
+ have_extattr_string_in_libc=no
+ AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
[
+ have_extattr_string_in_libc=yes
AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
- FDLIBS="-lutil $FDLIBS"
]
)
+
+ dnl
+ dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
+ dnl
+ if test $have_extattr_string_in_libc = no; then
+ AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
+ [
+ AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
+ AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
+ FDLIBS="-lutil $FDLIBS"
+ ]
+ )
+ fi
fi
fi
dnl
- dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
+ dnl If we failed to find *BSD support try the AIX implementation of extented attributes (EA)
+ dnl When running on AIX
dnl
- if test $have_xattr = no; then
- AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
- AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
+ if test $have_xattr = no -a \
+ x${HAVE_AIX_OS_TRUE} = x; then
+ AC_CHECK_HEADER(sys/ea.h, [ AC_DEFINE(HAVE_SYS_EA_H,1,[Defines if your system have the sys/ea.h header file])] , )
+ AC_CHECK_FUNCS(llistea lgetea lsetea,
[
have_xattr=yes
- AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
- AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
- AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
+ AC_DEFINE([HAVE_LLISTEA],1,[Define to 1 if you have the 'llistea' function.])
+ AC_DEFINE([HAVE_LGETEA],1,[Define to 1 if you have the 'lgetea' function.])
+ AC_DEFINE([HAVE_LSETEA],1,[Define to 1 if you have the 'lsetea' function.])
]
)
if test $have_xattr = no; then
- AC_CHECK_FUNCS(listxattr getxattr setxattr,
+ AC_CHECK_FUNCS(listea getea setea,
[
have_xattr=yes
- AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
- AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
- AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
+ AC_DEFINE([HAVE_LISTEA],1,[Define to 1 if you have the 'listea' function.])
+ AC_DEFINE([HAVE_GETEA],1,[Define to 1 if you have the 'getea' function.])
+ AC_DEFINE([HAVE_SETEA],1,[Define to 1 if you have the 'setea' function.])
]
)
fi
fi
dnl
- dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
+ dnl If we failed to find AIX support try the TRU64 implementation of extented attributes
+ dnl when running on a TRU64 OS.
dnl
- if test $have_xattr = no; then
+ if test $have_xattr = no -a \
+ x${HAVE_OSF1_OS_TRUE} = x; then
+ AC_CHECK_HEADER(sys/proplist.h, [ AC_DEFINE(HAVE_SYS_PROPLIST_H,1,[Defines if your system have the sys/proplist.h header file])] , )
+ AC_CHECK_FUNCS(getproplist get_proplist_entry sizeof_proplist_entry add_proplist_entry setproplist,
+ [
+ have_xattr=yes
+ AC_DEFINE([HAVE_GETPROPLIST],1,[Define to 1 if you have the 'getproplist' function.])
+ AC_DEFINE([HAVE_GET_PROPLIST_ENTRY],1,[Define to 1 if you have the 'get_proplist_entry' function.])
+ AC_DEFINE([HAVE_SIZEOF_PROPLIST_ENTRY],1,[Define to 1 if you have the 'sizeof_proplist_entry' function.])
+ AC_DEFINE([HAVE_ADD_PROPLIST_ENTRY],1,[Define to 1 if you have the 'add_proplist_entry' function.])
+ AC_DEFINE([HAVE_SETPROPLIST],1,[Define to 1 if you have the 'setproplist' function.])
+ ]
+ )
+ fi
+
+ dnl
+ dnl If we failed to find TRU64 support try the SOLARIS implementation of extented and extensible attributes
+ dnl when running on a Solaris.
+ dnl
+ if test $have_xattr = no -a \
+ x${HAVE_SUN_OS_TRUE} = x; then
AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
fi
fi
+ dnl
+ dnl If we failed to find Solaris support try the generic xattr support code
+ dnl
+ if test $have_xattr = no; then
+ AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
+ AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
+ [
+ have_xattr=yes
+ AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
+ AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
+ AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
+ ]
+ )
+
+ if test $have_xattr = no; then
+ AC_CHECK_FUNCS(listxattr getxattr setxattr,
+ [
+ have_xattr=yes
+ AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
+ AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
+ AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
+ ]
+ )
+ fi
+ fi
+
if test x$support_xattr = xyes -a $have_xattr != yes; then
AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
please either load the xattr libraries or rerun configure without --enable-xattr])
CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
fi
LDFLAGS=${LDFLAGS--O}
-DB_LIBS="${SQL_LFLAGS}"
CPPFLAGS="$CPPFLAGS"
CFLAGS="$CFLAGS"
AC_SUBST(DEBUG)
AC_SUBST(DEFS)
AC_SUBST(LIBS)
AC_SUBST(DLIB)
-AC_SUBST(DB_LIBS)
AC_SUBST(X_LIBS)
AC_SUBST(X_EXTRA_LIBS)
AC_SUBST(WCFLAGS)
PSCMD="ps -e"
WIN32=
MACOSX=
-
-hostname=`uname -n | cut -d '.' -f 1`
-if test x${hostname} = x ; then
- hostname="localhost"
-fi
-dnl Make sure hostname is resolved
-ping -c 1 $hostname 2>/dev/null 1>/dev/null
-if test ! $? = 0; then
- hostname="localhost"
-fi
+COMPRESS_MANPAGES=yes
case "$DISTNAME" in
aix)
platforms/mandrake/bacula-fd \
platforms/mandrake/bacula-sd \
platforms/mandrake/bacula-dir \
- platforms/mandrake/bacula.spec \
"
;;
gentoo)
platforms/solaris/bacula-fd \
platforms/solaris/bacula-sd \
platforms/solaris/bacula-dir"
- if test x$DISTVER = x5.6 ; then
- AC_DEFINE(HAVE_OLD_SOCKOPT)
- fi
- LIBS="$LIBS -lresolv"
+ COMPRESS_MANPAGES=
+ case ${DISTVER} in
+ 5.5|5.6)
+ AC_DEFINE(HAVE_OLD_SOCKOPT)
+ AC_DEFINE(USE_THR_SETCONCURRENCY)
+ ;;
+ 5.7|5.8)
+ AC_DEFINE(USE_THR_SETCONCURRENCY)
+ ;;
+ *)
+ ;;
+ esac
+ LIBS="$LIBS -lresolv -lrt"
;;
suse)
DISTVER=`cat /etc/SuSE-release |grep VERSION|\
platforms/suse/bacula-fd \
platforms/suse/bacula-sd \
platforms/suse/bacula-dir \
- platforms/suse/bacula \
- platforms/suse/bacula.spec"
+ platforms/suse/bacula"
;;
suse5)
DISTNAME=suse
;;
esac
+dnl -------------------------------------------
+dnl systemd (default off)
+dnl -------------------------------------------
+AC_MSG_CHECKING(for systemd support)
+AC_ARG_WITH(systemd,
+ AC_HELP_STRING([--with-systemd@<:@=UNITDIR@:>@], [Include systemd support. UNITDIR is where systemd system .service files are located, default is to ask systemctl.]),
+ [
+ if test "$withval" != "no"; then
+ if test "$withval" = "yes"; then
+ SYSTEMD_UNITDIR="`systemctl show | grep UnitPath | cut -d " " -f2`"
+ else
+ SYSTEMD_UNITDIR="${withval}"
+ fi
+
+ PFILES="${PFILES} \
+ platforms/systemd/Makefile \
+ platforms/systemd/bacula.conf \
+ platforms/systemd/bacula-dir.service \
+ platforms/systemd/bacula-fd.service \
+ platforms/systemd/bacula-sd.service"
+ AC_DEFINE(HAVE_SYSTEMD, 1, [Define to 1 if systemd support should be enabled])
+ AC_MSG_RESULT(yes)
+ support_systemd="yes"
+ else
+ AC_MSG_RESULT(no)
+ support_systemd="no"
+ fi
+ ],[
+ support_systemd="no"
+ AC_MSG_RESULT(no)
+ ]
+)
+AC_SUBST(SYSTEMD_UNITDIR)
+
AC_SUBST(hostname)
LIBS="$PTHREAD_LIB $LIBS"
AC_SUBST(MACOSX)
AC_SUBST(DISTNAME)
AC_SUBST(DISTVER)
+AC_SUBST(COMPRESS_MANPAGES)
dnl common parts of the Makefile
MCOMMON=./autoconf/Make.common
AC_OUTPUT([autoconf/Make.common \
Makefile \
manpages/Makefile \
- scripts/startmysql \
- scripts/stopmysql \
scripts/btraceback \
- scripts/startit \
- scripts/stopit \
scripts/bconsole \
- scripts/gconsole \
scripts/bacula \
scripts/bacula-ctl-dir \
scripts/bacula-ctl-fd \
scripts/bacula.desktop.gnome2.consolehelper \
scripts/bacula.desktop.gnome1.xsu \
scripts/bacula.desktop.gnome2.xsu \
- scripts/bgnome-console.console_apps \
scripts/mtx-changer \
scripts/disk-changer \
scripts/dvd-handler \
src/host.h \
src/console/Makefile \
src/console/bconsole.conf \
+ src/qt-console/tray-monitor/tray-monitor.pro \
+ src/qt-console/tray-monitor/tray-monitor.conf \
src/qt-console/bat.conf \
src/qt-console/bat.pro \
src/qt-console/bat.pro.mingw32 \
src/filed/Makefile \
src/filed/bacula-fd.conf \
src/cats/Makefile \
+ src/cats/make_catalog_backup.pl \
src/cats/make_catalog_backup \
src/cats/delete_catalog_backup \
src/cats/create_postgresql_database \
src/cats/drop_sqlite3_database \
src/cats/sqlite \
src/cats/mysql \
- src/cats/create_bdb_database \
- src/cats/update_bdb_tables \
- src/cats/make_bdb_tables \
- src/cats/grant_bdb_privileges \
- src/cats/drop_bdb_tables \
- src/cats/drop_bdb_database \
src/cats/create_bacula_database \
src/cats/update_bacula_tables \
src/cats/grant_bacula_privileges \
src/cats/make_bacula_tables \
src/cats/drop_bacula_tables \
src/cats/drop_bacula_database \
+ src/cats/install-default-backend \
src/findlib/Makefile \
src/tools/Makefile \
src/plugins/fd/Makefile \
updatedb/update_mysql_tables_10_to_11 \
updatedb/update_sqlite3_tables_10_to_11 \
updatedb/update_postgresql_tables_10_to_11 \
+ updatedb/update_mysql_tables_11_to_12 \
+ updatedb/update_sqlite3_tables_11_to_12 \
+ updatedb/update_postgresql_tables_11_to_12 \
+ updatedb/update_mysql_tables_12_to_14 \
+ updatedb/update_sqlite3_tables_12_to_14 \
+ updatedb/update_postgresql_tables_12_to_14 \
examples/nagios/check_bacula/Makefile \
+ platforms/rpms/redhat/bacula.spec \
+ platforms/rpms/redhat/bacula-bat.spec \
+ platforms/rpms/redhat/bacula-docs.spec \
+ platforms/rpms/redhat/bacula-mtx.spec \
$PFILES ],
[ ]
)
if test "${support_bat}" = "yes" ; then
- if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then
- AC_MSG_ERROR([Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation])
+ if test "x$QMAKE" = "xnone"; then
+ AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
fi
- QMAKEBIN="qmake"
-
- if test "x$QMAKEQT4" != "xnone"; then
- QMAKEBIN=qmake-qt4
- fi
-
cd src/qt-console
echo "Creating bat Makefile"
touch bat
chmod 755 bat
- $QMAKEBIN
+ rm -f Makefile
+ $QMAKE
${MAKE:-make} clean
cd ${BUILD_DIR}
fi
cd ${BUILD_DIR}
cd scripts
-chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
-chmod 755 dvd-handler dvd-simulator breload make_catalog_backup.pl
-chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
+chmod 755 bacula btraceback mtx-changer
+chmod 755 dvd-handler dvd-simulator
+chmod 755 bconsole mtx-changer devel_bacula logrotate
cd ..
c=updatedb
chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
chmod 755 $c/update_postgresql_tables_10_to_11
+chmod 755 $c/update_mysql_tables_11_to_12 $c/update_sqlite3_tables_11_to_12
+chmod 755 $c/update_postgresql_tables_11_to_12
+
c=src/cats
chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
-chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
-chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
-
chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
-chmod 755 $c/make_catalog_backup $c/delete_catalog_backup
+#chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
+#chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
+
+
+chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
chmod 755 $c/sqlite
chmod 755 $c/mysql
+chmod 755 $c/install-default-backend
+
chmod 755 src/win32/build-depkgs-mingw32
if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
echo " "
${MAKE:-make} clean
-if test "x${db_type}" = "xInternal" ; then
- echo " "
- echo " "
- echo "You have not specified either --enable-client-only or one of the"
- echo " supported databases: MySQL, PostgreSQL, SQLite3, SQLite or DBI."
- echo " This is not permitted. Please reconfigure."
- echo " "
- echo "Aborting the configuration ..."
- echo " "
- echo " "
- exit 1
-fi
-
echo "
Configuration on `date`:
- Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
- Bacula version: ${BACULA} ${VERSION} (${DATE})
- Source code location: ${srcdir}
- Install binaries: ${sbindir}
- Install libraries: ${libdir}
- Install config files: ${sysconfdir}
- Scripts directory: ${scriptdir}
- Archive directory: ${archivedir}
- Working directory: ${working_dir}
- PID directory: ${piddir}
- Subsys directory: ${subsysdir}
- Man directory: ${mandir}
- Data directory: ${datarootdir}
- Plugin directory: ${plugindir}
- C Compiler: ${CC} ${CCVERSION}
- C++ Compiler: ${CXX} ${CXXVERSION}
- Compiler flags: ${WCFLAGS} ${CFLAGS}
- Linker flags: ${WLDFLAGS} ${LDFLAGS}
- Libraries: ${LIBS}
- Statically Linked Tools: ${support_static_tools}
- Statically Linked FD: ${support_static_fd}
- Statically Linked SD: ${support_static_sd}
- Statically Linked DIR: ${support_static_dir}
- Statically Linked CONS: ${support_static_cons}
- Database type: ${db_type}
- Database port: ${db_port}
- Database lib: ${DB_LIBS}
- Database name: ${db_name}
- Database user: ${db_user}
-
- Job Output Email: ${job_email}
- Traceback Email: ${dump_email}
- SMTP Host Address: ${smtp_host}
+ Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
+ Bacula version: ${BACULA} ${VERSION} (${DATE})
+ Source code location: ${srcdir}
+ Install binaries: ${sbindir}
+ Install libraries: ${libdir}
+ Install config files: ${sysconfdir}
+ Scripts directory: ${scriptdir}
+ Archive directory: ${archivedir}
+ Working directory: ${working_dir}
+ PID directory: ${piddir}
+ Subsys directory: ${subsysdir}
+ Man directory: ${mandir}
+ Data directory: ${datarootdir}
+ Plugin directory: ${plugindir}
+ C Compiler: ${CC} ${CCVERSION}
+ C++ Compiler: ${CXX} ${CXXVERSION}
+ Compiler flags: ${WCFLAGS} ${CFLAGS}
+ Linker flags: ${WLDFLAGS} ${LDFLAGS}
+ Libraries: ${LIBS}
+ Statically Linked Tools: ${support_static_tools}
+ Statically Linked FD: ${support_static_fd}
+ Statically Linked SD: ${support_static_sd}
+ Statically Linked DIR: ${support_static_dir}
+ Statically Linked CONS: ${support_static_cons}
+ Database backends: ${db_backends}
+ Database port: ${db_port}
+ Database name: ${db_name}
+ Database user: ${db_user}
- Director Port: ${dir_port}
- File daemon Port: ${fd_port}
- Storage daemon Port: ${sd_port}
+ Job Output Email: ${job_email}
+ Traceback Email: ${dump_email}
+ SMTP Host Address: ${smtp_host}
- Director User: ${dir_user}
- Director Group: ${dir_group}
- Storage Daemon User: ${sd_user}
- Storage DaemonGroup: ${sd_group}
- File Daemon User: ${fd_user}
- File Daemon Group: ${fd_group}
+ Director Port: ${dir_port}
+ File daemon Port: ${fd_port}
+ Storage daemon Port: ${sd_port}
- SQL binaries Directory ${SQL_BINDIR}
+ Director User: ${dir_user}
+ Director Group: ${dir_group}
+ Storage Daemon User: ${sd_user}
+ Storage DaemonGroup: ${sd_group}
+ File Daemon User: ${fd_user}
+ File Daemon Group: ${fd_group}
- Large file support: $largefile_support
- Bacula conio support: ${got_conio} ${CONS_LIBS}
- readline support: ${got_readline} ${PRTREADLINE_SRC}
- TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
- TLS support: ${support_tls}
- Encryption support: ${support_crypto}
- ZLIB support: ${have_zlib}
- enable-smartalloc: ${support_smartalloc}
- enable-lockmgr: ${support_lockmgr}
- bat support: ${support_bat} ${QWT_LDFLAGS}
- enable-gnome: ${support_gnome} ${gnome_version}
- enable-bwx-console: ${support_wx_console} ${wx_version}
- enable-tray-monitor: ${support_tray_monitor}
- client-only: ${build_client_only}
- build-dird: ${build_dird}
- build-stored: ${build_stored}
- Plugin support: ${have_plugins}
- ACL support: ${have_acl}
- XATTR support: ${have_xattr}
- Python support: ${support_python} ${PYTHON_LIBS}
- Batch insert enabled: ${support_batch_insert}
+ Large file support: $largefile_support
+ Bacula conio support: ${got_conio} ${CONS_LIBS}
+ readline support: ${got_readline} ${PRTREADLINE_SRC}
+ TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
+ TLS support: ${support_tls}
+ Encryption support: ${support_crypto}
+ ZLIB support: ${have_zlib}
+ LZO support: ${have_lzo}
+ enable-smartalloc: ${support_smartalloc}
+ enable-lockmgr: ${support_lockmgr}
+ bat support: ${support_bat}
+ enable-gnome: ${support_gnome} ${gnome_version}
+ enable-bwx-console: ${support_wx_console} ${wx_version}
+ enable-tray-monitor: ${support_tray_monitor}
+ client-only: ${build_client_only}
+ build-dird: ${build_dird}
+ build-stored: ${build_stored}
+ Plugin support: ${have_plugins}
+ AFS support: ${have_afs}
+ ACL support: ${have_acl}
+ XATTR support: ${have_xattr}
+ Python support: ${support_python} ${PYTHON_LIBS}
+ systemd support: ${support_systemd} ${SYSTEMD_UNITDIR}
+ Batch insert enabled: ${batch_insert_db_backends}
" > config.out
chmod 755 scripts/bacula_config
cat config.out
-
-# Display a warning message if postgresql client lib is <= 8.1
-if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
- -a x$support_batch_insert = xyes
-then
- echo "WARNING: Your PostgreSQL client library is too old to detect "
- echo " if it was compiled with --enable-thread-safety, consider to"
- echo " upgrade it in order to avoid problems with Batch insert mode"
- echo
-fi