]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/autoconf/configure.in
Apply patch (with some difficulties) from Joao Henrique Freitas
[bacula/bacula] / bacula / autoconf / configure.in
index 2d71fcc2447a13849cdd7b9aa2a173459cd96784..ad7144a1030c0d0dc26165175bcb2e77808f910d 100644 (file)
@@ -20,7 +20,6 @@ dnl search for true and false programs.
 AC_PATH_PROGS(TRUEPRG, true, :)
 AC_PATH_PROGS(FALSEPRG, false, :)
 
-#AC_CANONICAL_HOST
 
 dnl bacula version
 VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
@@ -75,6 +74,8 @@ AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
 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_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
   WXCONFIG=wx-config
@@ -98,6 +99,7 @@ fi
 THE_AWK=$AWK
 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
 
+
 test -n "$ARFLAG" || ARFLAGS="cr"
 AC_SUBST(ARFLAGS)
 
@@ -163,6 +165,7 @@ if test x$sbindir = x'${exec_prefix}/sbin' ; then
 fi
 sbindir=`eval echo ${sbindir}`
 
+
 # -------------------------------------------------------------------------
 #  If the user has not set --mandir, we default to /usr/share/man
 # -------------------------------------------------------------------------
@@ -171,12 +174,6 @@ if test x$mandir = x'${prefix}/man' ; then
 fi
 
                      
-# ------------------------------------------------------------------
-# All list of languages for which a translation exist. Each
-#  language is separated by a space.
-# ------------------------------------------------------------------
-ALL_LINGUAS=""
-
 AC_PATH_PROGS(MSGFMT, msgfmt, no)
 if test "$MSGFMT" = "no"
 then
@@ -192,6 +189,7 @@ support_mysql=no
 support_sqlite=no
 support_sqlite3=no
 support_postgresql=no
+support_dbi=no
 support_smartalloc=yes
 support_readline=yes
 support_conio=yes
@@ -269,7 +267,61 @@ if test x$support_bat = xyes; then
      AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
   fi
 fi
+
+# 
+#  If bat is enabled, we need the qwt library
+got_qwt=no
+QWT_INC=
+QWT_LDFLAGS=
+if test x$support_bat = xyes; then
+   AC_MSG_CHECKING(for qwt support)
+   AC_ARG_WITH(qwt,
+     [ --with-qwt@<:@=DIR@:>@            specify qwt library directory],
+     [
+       case "$with_qwt" in
+       no)
+         ;;
+       yes|*)
+         if test -f ${with_qwt}/include/qwt.h; then
+            QWT_INC="${with_qwt}/include"
+            QWT_LDFLAGS="-L${with_qwt}/lib"
+         fi
+         ;;
+       esac
+     ]  
+   )
+#
+# Search in standard places, or --with-qwt not specified
+#
+   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"
+              else
+                 QWT_LDFLAGS="-L${root}/lib"
+              fi
+              got_qwt=yes
+              break;
+           fi
+        done
+      done
+   fi
+   if test x$QWT_INC = x; then
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR(Unable to find qwt package needed by bat)
+      BAT_DIR=
+      support_bat=no
+   else
+      AC_MSG_RESULT(yes)
+   fi
+fi
+
 AC_SUBST(BAT_DIR)
+AC_SUBST(QWT_INC)
+AC_SUBST(QWT_LDFLAGS)
 
 
 # -------------------------------------------
@@ -325,7 +377,7 @@ if test x$support_tray_monitor = xyes; then
      abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
      pkg=$?
      if test $pkg = 0; then
-     AC_DEFINE(HAVE_GTK_2_4)
+       AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
      fi
   fi
 fi
@@ -341,7 +393,7 @@ AC_ARG_ENABLE(smartalloc,
   fi])
 
 if test x$support_smartalloc = xyes; then
-   AC_DEFINE(SMARTALLOC)
+   AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
 fi
 
 # -------------------------------------------
@@ -587,7 +639,7 @@ if test x$support_readline = xyes; then
             with_readline="/usr/include/readline" 
          fi
          AC_CHECK_HEADER(${with_readline}/readline.h, 
-            [ AC_DEFINE(HAVE_READLINE
+            [ AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
               CONS_LIBS="-lreadline -lhistory -ltermcap"
               got_readline="yes"   
             ],
@@ -601,14 +653,14 @@ if test x$support_readline = xyes; then
      ],[
        # check for standard readline library
        AC_CHECK_HEADER(/usr/include/readline/readline.h, 
-        [ AC_DEFINE(HAVE_READLINE)
+        [ AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
           got_readline="yes"
           CONS_INC="-I/usr/include/readline"
           CONS_LIBS="-lreadline -ltermcap"
         ], [
           # Did not find standard library, so try Bacula's default
            AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h, 
-             [ AC_DEFINE(HAVE_READLINE
+             [ 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"
@@ -762,7 +814,7 @@ AC_ARG_WITH(tcp-wrappers,
          [ hosts_access(req); ],
          [
            AC_MSG_RESULT(yes)
-           AC_DEFINE(HAVE_LIBWRAP)
+           AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
            TCPW_MSG="yes" 
            LIBS="$saved_LIBS"
            WRAPLIBS="-lwrap"
@@ -778,7 +830,7 @@ AC_ARG_WITH(tcp-wrappers,
              [ hosts_access(req); ],
              [
                 AC_MSG_RESULT(yes)
-                AC_DEFINE(HAVE_LIBWRAP)
+                AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
                 TCPW_MSG="yes" 
                 LIBS="$saved_LIBS"
                 WRAPLIBS="-lwrap"
@@ -830,6 +882,16 @@ if test "x$with_openssl_directory" != "x"; then
                [ ac_cv_openssl_sha2="no" ]
        )
 
+       # Solaris disables greater than 128+ bit encryption in their OpenSSL
+       # implementation, presumably for export reasons. If 192bit AES
+       # is available, we assume that we're running with a 'non-export'
+       # openssl library.
+       AC_TRY_LINK([ #include <openssl/evp.h> ],
+               [ EVP_aes_192_cbc(); ],
+               [ ac_cv_openssl_export="no" ],
+               [ ac_cv_openssl_export="yes" ]
+       )
+
        LIBS="${saved_LIBS}"
        CFLAGS="${saved_CFLAGS}"
 
@@ -842,6 +904,10 @@ if test "x$with_openssl_directory" != "x"; then
        if test "$ac_cv_openssl_sha2" = "yes"; then
                AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
        fi
+
+       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
 else
        support_tls="no"
        support_crypto="no"
@@ -855,12 +921,9 @@ AC_SUBST(OPENSSL_INC)
 
 
 # -----------------------------------------------------------
-# Python and OpenSSL are using dlopen
+# dlopen is needed for plugins
 # -----------------------------------------------------------
-
-if test "$support_python" = "yes" -o "$support_tls" = "yes"; then
-   AC_SEARCH_LIBS(dlopen, [dl])
-fi
+AC_SEARCH_LIBS(dlopen, [dl])
 
 # ------------------------------------------
 # Where to place working dir
@@ -877,6 +940,22 @@ AC_ARG_WITH(working-dir,
 
 AC_SUBST(working_dir)
 
+# ------------------------------------------------------------------
+# If the user has not set archivedir, we set our default as /tmp
+# ------------------------------------------------------------------
+archive_dir=/tmp
+AC_ARG_WITH(archivedir,
+   [  --with-archivedir=PATH   specify path of SD archive directory],
+   [
+       if test "x$withval" != "xno" ; then     
+             archivedir=$withval
+       fi
+   ]
+)
+
+AC_SUBST(archivedir)
+
+
 
 # ------------------------------------------
 # Where to place scriptdir (script files)
@@ -960,7 +1039,7 @@ AC_SUBST(piddir)
 # ------------------------------------
 # Where to place subsys "lock file"
 # ------------------------------------
-ubsysdir=/var/run/subsys
+subsysdir=/var/run/subsys
 if test -d /var/run/subsys; then
    subsysdir=/var/run/subsys
 elif test -d /var/lock/subsys; then
@@ -1217,9 +1296,6 @@ AC_ARG_WITH(fd_group,
     ]
 )
 
-
-
-
 AC_SUBST(dir_user)
 AC_SUBST(dir_group)
 AC_SUBST(sd_user)
@@ -1245,6 +1321,7 @@ AC_SUBST(SBINPERM)
 # ------------------------------------------------
 # Bacula check for various SQL database engines
 # ------------------------------------------------
+SQL_LIB=
 BA_CHECK_POSTGRESQL_DB
 
 BA_CHECK_MYSQL_DB
@@ -1253,9 +1330,42 @@ BA_CHECK_SQLITE3_DB
 
 BA_CHECK_SQLITE_DB
 
+BA_CHECK_DBI_DB
+
 AC_SUBST(cats)
 AC_SUBST(DB_TYPE)
 
+# -------------------------------------------
+# enable batch attribute DB insert (default on)
+# -------------------------------------------
+support_batch_insert=no
+A=`nm $SQL_LIB | grep pthread_mutex_lock`
+pkg=$?
+if test $pkg = 0; then
+   support_batch_insert=yes
+   AC_ARG_ENABLE(batch-insert,
+     [ --enable-batch-insert       enable the DB batch insert code [disabled]],
+     [if test x$enableval = xno; then
+       support_batch_insert=no
+      else
+       support_batch_insert=yes
+     fi])
+fi
+       
+# Check if postgresql support batch mode       
+if test x$DB_TYPE = xpostgresql; then
+   A=`nm $SQL_LIB | grep PQputCopyData`
+   pkg=$?
+   if test $pkg != 0; then
+      support_batch_insert=no
+   fi
+fi
+
+if test $support_batch_insert = yes ; then
+   AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
+fi
+
+
 AC_DEFINE(PROTOTYPES)
 
 dnl# --------------------------------------------------------------------------
@@ -1293,6 +1403,7 @@ AC_CHECK_HEADERS( \
        stdlib.h \
        stdint.h \
        string.h \
+       strings.h \
        termios.h \
        termcap.h \
        term.h \
@@ -1301,9 +1412,11 @@ AC_CHECK_HEADERS( \
        sys/byteorder.h \
        sys/ioctl.h \
        sys/select.h \
+       sys/socket.h \
        sys/sockio.h \
+       sys/stat.h \
        sys/time.h \
-       sys/socket.h \
+       sys/types.h \
        arpa/nameser.h \
        resolv.h \
        mtio.h \
@@ -1329,7 +1442,7 @@ AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
 #include <sys/types.h>
 #include <utime.h>], [struct utimbuf foo],
   ba_cv_header_utime_h=yes, ba_cv_header_utime_h=no)])
-test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H)
+test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
 
 dnl# --------------------------------------------------------------------------
 dnl# Check for socklen_t
@@ -1626,11 +1739,23 @@ AC_CHECK_FUNCS( \
 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
 AC_CHECK_FUNCS(posix_fadvise)
+AC_CHECK_FUNCS(fdatasync)
 
 AC_CHECK_FUNCS(chflags) 
 
 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
 
+AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
+  [AC_TRY_LINK([
+#include <stdarg.h>
+void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
+void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
+],
+  [call_use_va_copy(1,2,3)],
+  ba_cv_va_copy=yes, ba_cv_va_copy=no)])
+test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
+
+
 dnl# --------------------------------------------------------------------------
 dnl# CHECKING FOR THREAD SAFE FUNCTIONS
 dnl# --------------------------------------------------------------------------
@@ -1835,7 +1960,7 @@ freebsd)
        largefile_support="yes"
   ;;
 hpux)
-       PSCMD="UNIX95=1 ps -e -o pid,comm"
+       PSCMD="UNIX95=1; ps -e -o pid,comm"
        CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
        DISTVER=`uname -r`
        TAPEDRIVE="/dev/rmt/0hnb"
@@ -2115,9 +2240,33 @@ AC_OUTPUT([autoconf/Make.common \
           src/tools/Makefile \
           po/Makefile.in \
           $PFILES ],  
-         [(echo "Doing make of dependencies"; ${MAKE:-make} depend;) ]
+         [ ]
 )
 
+if test "${support_bat}" = "yes" ; then
+  if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then
+  echo "Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation"
+  exit 1
+  fi
+
+  QMAKEBIN="qmake"
+
+  if test "x$QMAKEQT4" != "xnone"; then
+    QMAKEBIN=qmake-qt4
+  fi
+
+
+  
+  cd src/qt-console
+  chmod 755 install_conf_file build-depkgs-qt-console
+  echo "Creating bat Makefile"
+  $QMAKEBIN
+  cd ${BUILD_DIR}
+fi
+
+echo "Doing make of dependencies"
+${MAKE:-make} depend
+
 cd scripts
 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
 chmod 755 dvd-handler dvd-simulator
@@ -2150,11 +2299,6 @@ chmod 755 $c/mysql
 
 chmod 755 src/win32/build-depkgs-mingw32
 
-if test "${support_bat}" = "yes" ; then
-  cd src/qt-console
-  chmod 755 install_conf_file
-  qmake
-fi
 
 
 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
@@ -2191,7 +2335,7 @@ 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 or SQLite."
+   echo "  supported databases: MySQL, PostgreSQL, SQLite3, SQLite or DBI."
    echo "  This is not permitted. Please reconfigure."
    echo " "
    echo "Aborting the configuration ..."
@@ -2209,6 +2353,7 @@ Configuration on `date`:
   Install binaries:          ${sbindir}
   Install config files:       ${sysconfdir}
   Scripts directory:         ${scriptdir}
+  Archive directory:         ${archivedir}
   Working directory:         ${working_dir}
   PID directory:             ${piddir}
   Subsys directory:          ${subsysdir}
@@ -2254,7 +2399,7 @@ Configuration on `date`:
   Encryption support:        ${support_crypto} 
   ZLIB support:              ${have_zlib}
   enable-smartalloc:         ${support_smartalloc} 
-  enable-bat:                ${support_bat}
+  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}
@@ -2263,6 +2408,7 @@ Configuration on `date`:
   build-stored:              ${build_stored}
   ACL support:               ${have_acl}
   Python support:            ${support_python} ${PYTHON_LIBS}
+  Batch insert enabled:       ${support_batch_insert}
 
   " > config.out