X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fautoconf%2Fconfigure.in;h=5f46fc30b8e256a0936b8f6ae6ca4ffe9840f3ec;hb=2658fc6a73a35f0ab387bbf8be2c986ad1efc396;hp=479accd9be04ef52e553bc84cfa88ec5ad0bfd9c;hpb=f5f7902fe8e2492c08c484ebf836f67d17c6c0f7;p=bacula%2Fbacula diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index 479accd9be..5f46fc30b8 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -178,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 @@ -380,6 +381,7 @@ build_client_only=no build_dird=yes build_stored=yes db_backends="" +batch_insert_db_backends="" support_lockmgr=no dnl -------------------------------------------------------------------------- @@ -387,7 +389,7 @@ 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@:>@]), @@ -956,7 +958,7 @@ AC_ARG_WITH(python, 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 @@ -1263,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]), [ @@ -1701,9 +1708,32 @@ 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 ------------------------------------------------ + +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 @@ -1716,6 +1746,14 @@ BA_CHECK_SQLITE3_DB #BA_CHECK_DBI_DRIVER +dnl ------------------------------------------- +dnl If no batch insert backend are enable set +dnl variable to None +dnl ------------------------------------------- +if test -z "${batch_insert_db_backends}"; then + batch_insert_db_backends="None" +fi + dnl ------------------------------------------- dnl Make sure at least one database backend is found dnl ------------------------------------------- @@ -1788,102 +1826,12 @@ if test x$use_libtool = xyes; then DB_LIBS="" fi +AC_SUBST(uncomment_dbi) AC_SUBST(DB_BACKENDS) AC_SUBST(DB_LIBS) AC_SUBST(DEFAULT_DB_TYPE) AC_SUBST(SHARED_CATALOG_TARGETS) -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 Check if mysql supports batch mode -dnl ------------------------------------------- -if test ! -z "$MYSQL_LIB"; then - AC_CHECK_LIB(mysql_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe])) -fi - -dnl ------------------------------------------- -dnl Check if sqlite supports batch mode -dnl ------------------------------------------- -if test ! -z "SQLITE_LIB"; then - AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe])) -fi - -dnl ------------------------------------------- -dnl Check if postgresql supports batch mode -dnl ------------------------------------------- -if test ! -z "$POSTGRESQL_LIB"; then - dnl For postgresql checking - saved_LIBS="${LIBS}" - LIBS="${saved_LIBS} ${POSTGRESQL_LIB}" - - AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe])) - AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData])) - if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then - if test $support_batch_insert = yes ; then - AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled]) - fi - fi - - if test 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 - - dnl Revert after postgresql checks - LIBS="${saved_LIBS}" -fi - -dnl ------------------------------------------- -dnl Check if dbi supports batch mode -dnl ------------------------------------------- -if test ! -z "$DBI_LIBS"; then - dnl ------------------------------------------- - dnl Push the DB_PROG onto the stack of supported database backends for DBI - dnl ------------------------------------------- - DB_BACKENDS="${DB_BACKENDS} ${DB_PROG}" - - dnl ------------------------------------------- - dnl Check for batch insert - dnl ------------------------------------------- - 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=$? - if test $pkg = 0; then - if test $support_batch_insert = yes ; then - AC_DEFINE(HAVE_DBI_BATCH_FILE_INSERT, 1, [Set if DBI DB batch insert code enabled]) - fi - fi - fi -else - dnl ------------------------------------------- - dnl If dbi was not chosen, let the comment in file - dnl ------------------------------------------- - uncomment_dbi="#" -fi - -AC_SUBST(uncomment_dbi) - AC_DEFINE(PROTOTYPES) dnl -------------------------------------------------------------------------- @@ -1918,6 +1866,7 @@ AC_CHECK_HEADERS( \ stdarg.h \ stdlib.h \ stdint.h \ + inttypes.h \ string.h \ strings.h \ termios.h \ @@ -2400,6 +2349,14 @@ 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])]) @@ -2468,6 +2425,58 @@ 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 @@ -2493,16 +2502,128 @@ AC_SUBST(ZLIBS) dnl dnl Check for lzo dnl -AC_CHECK_HEADERS(lzo/lzoconf.h) -AC_CHECK_HEADERS(lzo/lzo1x.h) -AC_CHECK_LIB(lzo2, lzo1x_1_compress, [LZOLIBS="-llzo2"]) have_lzo=no -if test x$LZOLIBS = x-llzo2; then - AC_DEFINE(HAVE_LZO) - have_lzo=yes -fi +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 + #include + ], + AC_DEFINE(HAVE_AFS_VENUS_H,1,[Define to 1 if you have the 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 dnl @@ -2539,7 +2660,18 @@ if test x$support_acl = xyes -o x$support_acl = xauto; then AC_CHECK_LIB(acl, acl_get_file, [ have_acl=yes - FDLIBS="-lacl $FDLIBS" + 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 @@ -2911,16 +3043,6 @@ WIN32= MACOSX= COMPRESS_MANPAGES=yes -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 - case "$DISTNAME" in aix) DISTVER=`uname -r` @@ -3183,6 +3305,40 @@ 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.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" @@ -3233,7 +3389,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 \ @@ -3316,7 +3471,14 @@ AC_OUTPUT([autoconf/Make.common \ 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 ], [ ] ) @@ -3461,28 +3623,30 @@ Configuration on `date`: 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} - 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} - 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