X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fautoconf%2Fconfigure.in;h=228a49bdcc19183dd5330890884b39d4bc14f683;hb=cb055dfe45974da895fbbd5f191eaf193979b695;hp=05ce2f01bdac4605d2179d3ac23fec2238ad6e09;hpb=a748b68481e6be863603178b572a239423c444f8;p=bacula%2Fbacula diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index 05ce2f01bd..228a49bdcc 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -2,7 +2,11 @@ dnl 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` @@ -10,7 +14,7 @@ cd ${BUILD_DIR} 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 @@ -20,10 +24,6 @@ AC_SUBST(WIN32BUILDDIR) 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, :) @@ -38,13 +38,50 @@ BACULA=${BACULA:-Bacula} 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 ------------------------------------------------------ @@ -92,7 +129,6 @@ AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo) 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 @@ -142,6 +178,7 @@ AC_ARG_ENABLE(libtool, ] ) LT_INIT([shared disable-static]) +LT_LIB_DLLOAD LT_LANG([C++]) if test x$use_libtool != xno; then @@ -153,6 +190,8 @@ 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" @@ -162,6 +201,8 @@ else LIBTOOL_UNINSTALL_TARGET="" LIBTOOL_CLEAN_TARGET="" QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool" + FD_PLUGIN_DIR="" + have_plugins=no fi AC_SUBST(DEFAULT_OBJECT_TYPE) @@ -172,6 +213,7 @@ AC_SUBST(LIBTOOL_INSTALL_TARGET) AC_SUBST(LIBTOOL_UNINSTALL_TARGET) AC_SUBST(LIBTOOL_CLEAN_TARGET) AC_SUBST(QMAKE_LIBTOOL) +AC_SUBST(FD_PLUGIN_DIR) dnl -------------------------------------------------- dnl Include file handling @@ -296,12 +338,12 @@ fi 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` @@ -318,11 +360,6 @@ then 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 @@ -343,17 +380,16 @@ support_python=no 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@:>@]), @@ -396,7 +432,7 @@ if test x$support_bat = xyes; then 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= @@ -404,59 +440,59 @@ QWT_LDFLAGS= 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) @@ -685,8 +721,8 @@ AC_ARG_ENABLE(client-only, [ if test x$enableval = xyes; then build_client_only=yes - db_type=None - DB_TYPE=none + db_backends="None" + DB_BACKENDS="none" fi ] ) @@ -775,45 +811,34 @@ if test x$support_ipv6 = xyes; then 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 -#endif -]) - ]) + else + echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " " + fi fi @@ -829,6 +854,9 @@ AC_ARG_ENABLE(readline, fi ] ) +if test x$TERM_LIB = x ; then + support_readline=no +fi got_readline="no" READLINE_SRC= @@ -855,7 +883,7 @@ if test x$support_readline = xyes; then 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 " " @@ -872,7 +900,7 @@ if test x$support_readline = xyes; then 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, @@ -880,7 +908,7 @@ if test x$support_readline = xyes; then 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" ], [ @@ -1113,6 +1141,7 @@ if test "x$with_openssl_directory" != "xno"; then support_crypto="yes" ], [ support_tls="no" + support_crypto="no" ] ) @@ -1144,9 +1173,7 @@ if test "x$with_openssl_directory" != "xno"; then ] ) - 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]) @@ -1160,19 +1187,24 @@ if test "x$with_openssl_directory" != "xno"; then 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) @@ -1233,6 +1265,11 @@ 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 AC_ARG_WITH(hostname, AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]), [ @@ -1659,9 +1696,9 @@ AC_SUBST(fd_group) 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 @@ -1671,96 +1708,129 @@ AC_ARG_WITH(sbin-perm, AC_SUBST(SBINPERM) +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 + support_batch_insert=no + fi + ] +) + +if test x$support_batch_insert = xyes; then + AC_DEFINE(USE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled]) +fi + 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 support batch mode -if test x$DB_TYPE = xpostgresql; then - A=`test -f $SQL_LIB && nm $SQL_LIB | grep PQputCopyData` - pkg=$? - if test $pkg != 0; 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 - A=`test -f $SQL_LIB && nm $SQL_LIB | grep PQputCopyData` - 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) @@ -1796,6 +1866,7 @@ AC_CHECK_HEADERS( \ stdarg.h \ stdlib.h \ stdint.h \ + inttypes.h \ string.h \ strings.h \ termios.h \ @@ -1867,7 +1938,36 @@ AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t, ) ] ) -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 + #include + #include + ], [ + 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() @@ -1893,6 +1993,8 @@ AC_LANG_POP(C++) 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 -------------------------------------------------------------------------- @@ -1948,6 +2050,10 @@ AC_MSG_RESULT($fstype) 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 -------------------------------------------------------------------------- @@ -2243,6 +2349,17 @@ AC_CHECK_FUNCS( \ [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 ] +) + +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) @@ -2308,10 +2425,63 @@ if test $ac_cv_struct_sockaddr_sa_len = yes; then 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 + #include + #include + #include + + 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 @@ -2321,12 +2491,31 @@ AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"]) 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 for ACL support and libraries @@ -2347,39 +2536,118 @@ have_acl=no 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 + FDLIBS="-lacl $FDLIBS" + ] + ) + 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]) @@ -2413,83 +2681,111 @@ have_xattr=no 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])] , ) @@ -2515,6 +2811,32 @@ if test x$support_xattr = xyes -o x$support_xattr = xauto; then 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]) @@ -2565,7 +2887,6 @@ if test x$have_gcc = xyes ; then CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" fi LDFLAGS=${LDFLAGS--O} -DB_LIBS="${SQL_LFLAGS}" CPPFLAGS="$CPPFLAGS" CFLAGS="$CFLAGS" AC_SUBST(DEBUG) @@ -2577,7 +2898,6 @@ AC_SUBST(X_CFLAGS) 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) @@ -2603,16 +2923,7 @@ PFILES="platforms/Makefile" 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) @@ -2797,7 +3108,6 @@ mandrake) platforms/mandrake/bacula-fd \ platforms/mandrake/bacula-sd \ platforms/mandrake/bacula-dir \ - platforms/mandrake/bacula.spec \ " ;; gentoo) @@ -2831,10 +3141,19 @@ solaris) 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|\ @@ -2846,8 +3165,7 @@ suse) 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 @@ -2869,6 +3187,39 @@ unknown) ;; 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-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" @@ -2881,6 +3232,7 @@ AC_SUBST(WIN32) AC_SUBST(MACOSX) AC_SUBST(DISTNAME) AC_SUBST(DISTVER) +AC_SUBST(COMPRESS_MANPAGES) dnl common parts of the Makefile MCOMMON=./autoconf/Make.common @@ -2903,13 +3255,8 @@ fi 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 \ @@ -2923,7 +3270,6 @@ AC_OUTPUT([autoconf/Make.common \ 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 \ @@ -2942,6 +3288,8 @@ AC_OUTPUT([autoconf/Make.common \ 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 \ @@ -2958,6 +3306,7 @@ AC_OUTPUT([autoconf/Make.common \ 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 \ @@ -2980,18 +3329,13 @@ AC_OUTPUT([autoconf/Make.common \ 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 \ @@ -3005,27 +3349,32 @@ AC_OUTPUT([autoconf/Make.common \ 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 @@ -3044,23 +3393,23 @@ chmod 755 install_conf_file build-depkgs-qt-console 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 @@ -3070,10 +3419,16 @@ chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_d 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 @@ -3102,90 +3457,88 @@ echo "Cleaning up" 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} + 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} - Job Output Email: ${job_email} - Traceback Email: ${dump_email} - SMTP Host Address: ${smtp_host} + Job Output Email: ${job_email} + Traceback Email: ${dump_email} + SMTP Host Address: ${smtp_host} - Director Port: ${dir_port} - File daemon Port: ${fd_port} - Storage daemon Port: ${sd_port} + Director Port: ${dir_port} + File daemon Port: ${fd_port} + Storage daemon Port: ${sd_port} - 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 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} - SQL binaries Directory ${SQL_BINDIR} - - 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} - 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} + 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 +# create a small shell script useful for support with +# configure options and config.out info +cat > scripts/bacula_config << EOF +#!/bin/sh +cat << __EOC__ +$ $0 $ac_configure_args +EOF +cat config.out >> scripts/bacula_config +echo __EOC__ >> scripts/bacula_config +chmod 755 scripts/bacula_config + cat config.out