X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fautoconf%2Fconfigure.in;h=9fd2f3975583993286f7261fc5de618babc08974;hb=ddd5c96759c994dee2c8b0d20dff38b7e7853148;hp=0f76ee3ef0ec671ae74bc8a858f9a823ec68c7be;hpb=bc99022fa24216dcb870dff055ab0c6af31a1d54;p=bacula%2Fbacula diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index 0f76ee3ef0..9fd2f39755 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 @@ -337,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` @@ -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@:>@]), @@ -835,7 +837,7 @@ if test x$support_conio = xyes; then support_readline=no AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled]) else - echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "], + echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " " fi fi @@ -1171,6 +1173,7 @@ if test "x$with_openssl_directory" != "xno"; then ] ) + 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]) @@ -1194,19 +1197,13 @@ if test "x$with_openssl_directory" != "xno"; then else support_tls="no" support_crypto="no" - OPENSSL_LIBS="" - OPENSSL_INC="" + AC_MSG_RESULT([$support_tls]) fi -AC_MSG_RESULT([$support_tls]) -if test "$support_tls" = "no"; then - OPENSSL_LIBS="" - OPENSSL_INC="" -fi -if test "$support_crypto" = "no"; then +if test "$support_tls" = "no" -o "$support_crypto" = "no"; then OPENSSL_LIBS="" OPENSSL_INC="" -fi +fi AC_SUBST(OPENSSL_LIBS) AC_SUBST(OPENSSL_INC) @@ -1268,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]), [ @@ -1706,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 @@ -1721,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 ------------------------------------------- @@ -1793,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 -------------------------------------------------------------------------- @@ -1923,6 +1866,7 @@ AC_CHECK_HEADERS( \ stdarg.h \ stdlib.h \ stdint.h \ + inttypes.h \ string.h \ strings.h \ termios.h \ @@ -2107,7 +2051,7 @@ 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_HEADERS([cxxabi.h execinfo.h], [ AC_DEFINE(HAVE_BACKTRACE,1,[Defines if your system have the cxxabi.h and execinfo.h header files for backtrace()])] , ) +AC_CHECK_FUNCS(backtrace) AC_LANG_POP(C++) dnl -------------------------------------------------------------------------- @@ -2405,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), + , + [#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])]) @@ -2473,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 @@ -2498,14 +2502,19 @@ 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 @@ -2916,16 +2925,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` @@ -3188,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" @@ -3238,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 \ @@ -3321,7 +3352,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 ], [ ] ) @@ -3466,28 +3504,29 @@ 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} + 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