]> 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 006287616cfb1303456d5fab7775d2879d64f583..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
@@ -212,8 +210,8 @@ build_client_only=no
 build_dird=yes
 build_stored=yes
 cats=
-db_name=Internal
-DB_NAME=bdb
+db_type=Internal
+DB_TYPE=bdb
 
 dnl# --------------------------------------------------------------------------
 dnl# CHECKING COMMAND LINE OPTIONS
@@ -223,7 +221,7 @@ dnl# --------------------------------------------------------------------------
 # gnome (default off)
 # -------------------------------------------
 AC_ARG_ENABLE(gnome,
-  [  --enable-gnome      enable build of gnome-console GUI [disabled]],
+  [  --enable-gnome      enable build of bgnome-console GUI [disabled]],
   [if test x$enableval = xyes; then
     support_gnome=yes
   fi])
@@ -269,14 +267,68 @@ 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)
 
 
 # -------------------------------------------
-# wx-console (default off)
+# bwx-console (default off)
 # -------------------------------------------
-AC_ARG_ENABLE(wx-console,
-  [  --enable-wx-console     enable build of wxWidgets console [disabled]],
+AC_ARG_ENABLE(bwx-console,
+  [  --enable-bwx-console     enable build of wxWidgets console [disabled]],
   [if test x$enableval = xyes; then
     support_wx_console=yes
   fi])
@@ -295,7 +347,7 @@ if test x$support_wx_console = xyes; then
      WX_DIR=src/wx-console
   else
      echo " "
-     echo "wx-config program not found. wx-console disabled."
+     echo "wx-config program not found. bwx-console disabled."
      echo " "
      support_wx_console=no
   fi
@@ -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
 
 # -------------------------------------------
@@ -418,8 +470,8 @@ STATIC_GNOME_CONS=
 STATIC_WX_CONS=
 if test x$support_static_cons = xyes; then
    STATIC_CONS="static-bconsole"
-   STATIC_GNOME_CONS="static-gnome-console"
-   STATIC_WX_CONS="static-wx-console"
+   STATIC_GNOME_CONS="static-bgnome-console"
+   STATIC_WX_CONS="static-bwx-console"
 fi
 AC_SUBST(STATIC_CONS)
 AC_SUBST(STATIC_GNOME_CONS)
@@ -432,8 +484,8 @@ AC_ARG_ENABLE(client-only,
    [  --enable-client-only    build client (File daemon) only [disabled]],
    [if test x$enableval = xyes; then
       build_client_only=yes
-      db_name=None
-      DB_NAME=none
+      db_type=None
+      DB_TYPE=none
    fi])
 if test x$build_client_only = xno; then
    ALL_DIRS="subdirs"
@@ -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)
@@ -961,6 +1040,13 @@ AC_SUBST(piddir)
 # Where to place subsys "lock file"
 # ------------------------------------
 subsysdir=/var/run/subsys
+if test -d /var/run/subsys; then
+   subsysdir=/var/run/subsys
+elif test -d /var/lock/subsys; then
+   subsysdir=/var/lock/subsys
+else
+   subsysdir=/var/run/subsys
+fi
 AC_ARG_WITH(subsys-dir,
     [  --with-subsys-dir=PATH   specify location of Bacula subsys file],
     [
@@ -1121,6 +1207,31 @@ AC_SUBST(mon_dir_password)
 AC_SUBST(mon_fd_password)
 AC_SUBST(mon_sd_password)
 
+#
+# Pickup any database name
+#
+db_name=bacula
+AC_ARG_WITH(db_name,
+    [  --with-db-name=DBNAME          specify database name (default bacula)],
+    [
+       if test "x$withval" != "x" ; then       
+            db_name=$withval
+       fi
+    ]
+)
+AC_SUBST(db_name)
+
+db_user=bacula
+AC_ARG_WITH(db_user,
+    [  --with-db-user=UNAME           specify database user (default bacula)],
+    [
+       if test "x$withval" != "x" ; then       
+            db_user=$withval
+       fi
+    ]
+)
+AC_SUBST(db_user)
+
 
 #
 # Handle users and groups for each daemon
@@ -1185,9 +1296,6 @@ AC_ARG_WITH(fd_group,
     ]
 )
 
-
-
-
 AC_SUBST(dir_user)
 AC_SUBST(dir_group)
 AC_SUBST(sd_user)
@@ -1213,6 +1321,7 @@ AC_SUBST(SBINPERM)
 # ------------------------------------------------
 # Bacula check for various SQL database engines
 # ------------------------------------------------
+SQL_LIB=
 BA_CHECK_POSTGRESQL_DB
 
 BA_CHECK_MYSQL_DB
@@ -1221,8 +1330,41 @@ BA_CHECK_SQLITE3_DB
 
 BA_CHECK_SQLITE_DB
 
+BA_CHECK_DBI_DB
+
 AC_SUBST(cats)
-AC_SUBST(DB_NAME)
+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)
 
@@ -1261,6 +1403,7 @@ AC_CHECK_HEADERS( \
        stdlib.h \
        stdint.h \
        string.h \
+       strings.h \
        termios.h \
        termcap.h \
        term.h \
@@ -1269,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 \
@@ -1297,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
@@ -1593,11 +1738,24 @@ 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# --------------------------------------------------------------------------
@@ -1802,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"
@@ -2002,7 +2160,7 @@ AC_OUTPUT([autoconf/Make.common \
           scripts/bacula.desktop.gnome2.consolehelper \
           scripts/bacula.desktop.gnome1.xsu \
           scripts/bacula.desktop.gnome2.xsu \
-          scripts/gnome-console.console_apps \
+          scripts/bgnome-console.console_apps \
           scripts/mtx-changer \
           scripts/disk-changer \
           scripts/dvd-handler \
@@ -2013,14 +2171,21 @@ AC_OUTPUT([autoconf/Make.common \
           scripts/wxconsole.console_apps \
           scripts/wxconsole.desktop.consolehelper \
           scripts/wxconsole.desktop.xsu \
+          scripts/bat.desktop \
+          scripts/bat.desktop.xsu \
+          scripts/bat.desktop.consolehelper \
+          scripts/bat.console_apps \
           src/Makefile \
           src/host.h \
           src/console/Makefile \
           src/console/bconsole.conf \
           src/gnome2-console/Makefile \
-          src/gnome2-console/gnome-console.conf \
+          src/gnome2-console/bgnome-console.conf \
+          src/qt-console/bat.conf \
+          src/qt-console/bat.pro \
+          src/qt-console/install_conf_file \
           src/wx-console/Makefile \
-          src/wx-console/wx-console.conf \
+          src/wx-console/bwx-console.conf \
           src/tray-monitor/Makefile \
           src/tray-monitor/tray-monitor.conf \
           src/dird/Makefile \
@@ -2075,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
@@ -2110,6 +2299,8 @@ chmod 755 $c/mysql
 
 chmod 755 src/win32/build-depkgs-mingw32
 
+
+
 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
    largefile_support="yes"
 fi
@@ -2140,11 +2331,11 @@ if test "x${subsysdir}" = "x${sbindir}" ; then
    exit 1
 fi 
 
-if test "x${db_name}" = "xInternal" ; then
+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 ..."
@@ -2162,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}
@@ -2177,8 +2369,10 @@ Configuration on `date`:
   Statically Linked SD:       ${support_static_sd}
   Statically Linked DIR:      ${support_static_dir}
   Statically Linked CONS:     ${support_static_cons}
-  Database type:             ${db_name}
+  Database type:             ${db_type}
   Database lib:              ${DB_LIBS}
+  Database name:             ${db_name}
+  Database user:             ${db_user}
 
   Job Output Email:          ${job_email}
   Traceback Email:           ${dump_email}
@@ -2205,15 +2399,16 @@ 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-wx-console:         ${support_wx_console} ${wx_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}
   Python support:            ${support_python} ${PYTHON_LIBS}
+  Batch insert enabled:       ${support_batch_insert}
 
   " > config.out