X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fautoconf%2Fconfigure.in;h=75e849dc9ef37a0d6ff4049c94afcacacb6b64bf;hb=27cd56149945bbab7585c07b11486d8163077593;hp=e0c967e9b726c29d873da72705f979943ad7aed4;hpb=241e58d19a9db91b9185cdc2bb133c0f0c7caaec;p=bacula%2Fbacula diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index e0c967e9b7..75e849dc9e 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -8,6 +8,7 @@ cd .. TOP_DIR=`pwd` 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) @@ -19,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` @@ -40,8 +40,11 @@ AC_PROG_CXX AC_PROG_CC_C_O dnl Determine if C compiler support -c -o. AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional. -if test "x$CC" = xgcc; then +BASECC=`basename $CC` +have_gcc=no +if test "x$BASECC" = xgcc; then AC_DEFINE(HAVE_GCC) + have_gcc=yes fi AC_PATH_PROG(CXX, $CXX, $CXX) if test ! -e $CXX; then @@ -64,12 +67,15 @@ AC_PATH_PROG(AR, ar, ar) dnl AC_PATH_PROG(RANLIB, ranlib, ranlib) AC_PATH_PROG(OPENSSL, openssl, none) AC_PATH_PROG(MTX, mtx, mtx) -AC_PATH_PROG(DF, df, df) +AC_PATH_PROG(DD, dd, dd) AC_PATH_PROG(MKISOFS, mkisofs, mkisofs) AC_PATH_PROG(PYTHON, python, python) 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 @@ -93,6 +99,7 @@ fi THE_AWK=$AWK AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK) + test -n "$ARFLAG" || ARFLAGS="cr" AC_SUBST(ARFLAGS) @@ -119,11 +126,11 @@ BA_CHECK_OPSYS_DISTNAME # By default, $datadir is ${prefix}/share # -------------------------------------------------- AM_GNU_GETTEXT([external]) -if test x${prefix} = xNONE && test x${datadir} = x${prefix}/share ; then - datadir=/usr/share +if test x${prefix} = xNONE ; then + if test `eval echo ${datadir}` = NONE/share ; then + datadir=/usr/share + fi fi -localedir=`eval echo ${datadir}/locale` -AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir") # ------------------------------------------------------------------ # If the user has not set --prefix, we set our default to nothing. @@ -138,6 +145,10 @@ if test x${prefix} = xNONE ; then prefix= fi sysconfdir=`eval echo ${sysconfdir}` +datadir=`eval echo ${datadir}` +localedir=`eval echo ${datadir}/locale` +AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir") +AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir") # ------------------------------------------------------------------------- # If the user has not set --exec-prefix, we default to ${prefix} @@ -154,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 # ------------------------------------------------------------------------- @@ -162,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 @@ -175,7 +181,7 @@ then USE_NLS=no USE_INCLUDED_LIBINTL=no #else -# AM_GNU_GETTEXT + AM_GNU_GETTEXT fi @@ -183,12 +189,15 @@ support_mysql=no support_sqlite=no support_sqlite3=no support_postgresql=no +support_dbi=no support_smartalloc=yes support_readline=yes support_conio=yes support_gnome=no +support_bat=no support_wx_console=no support_tls=no +support_crypto=no gnome_version= wx_version= support_static_tools=no @@ -198,9 +207,11 @@ support_static_dir=no support_static_cons=no support_python=no 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 @@ -210,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]) @@ -236,12 +247,88 @@ if test x$support_gnome = xyes; then fi AC_SUBST(GNOME_DIR) +# ------------------------------------------- +# bat (default off) +# ------------------------------------------- +AC_ARG_ENABLE(bat, + [ --enable-bat enable build of bat Qt4 GUI [disabled]], + [if test x$enableval = xyes; then + AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled]) + support_bat=yes + fi]) + +BAT_DIR= +if test x$support_bat = xyes; then + abc=`$PKGCONFIG --atleast-version=4.2 QtGui` + pkg=$? + if test $pkg = 0; then + BAT_DIR=src/qt-console + else + 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]) @@ -260,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 @@ -290,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 @@ -306,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 # ------------------------------------------- @@ -383,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) @@ -396,9 +483,9 @@ AC_SUBST(STATIC_WX_CONS) 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 + build_client_only=yes + db_type=None + DB_TYPE=none fi]) if test x$build_client_only = xno; then ALL_DIRS="subdirs" @@ -407,16 +494,77 @@ else fi AC_SUBST(ALL_DIRS) +# ------------------------------------------- +# director (default on) +# ------------------------------------------- +AC_ARG_ENABLE(build-dird, + [ --enable-build-dird enable building of dird (Director) [enabled]], + [if test x$enableval = xno; then + build_dird=no + fi]) +if test x$build_dird = xyes; then + DIRD_DIR="src/dird" + DIR_TOOLS="DIRTOOLS" +else + DIRD_DIR="" + DIR_TOOLS="NODIRTOOLS" +fi +AC_SUBST(DIRD_DIR) +AC_SUBST(DIR_TOOLS) + +# ------------------------------------------- +# stored (default on) +# ------------------------------------------- +AC_ARG_ENABLE(build-stored, + [ --enable-build-stored enable building of stored (Storage daemon) [enabled]], + [if test x$enableval = xno; then + build_stored=no + fi]) +if test x$build_stored = xyes; then + STORED_DIR="src/stored" +else + STORED_DIR="" +fi +AC_SUBST(STORED_DIR) + # --------------------------------------------------- # Check for conio (Bacula readline substitute)( # --------------------------------------------------- # this allows you to turn it completely off -AC_ARG_ENABLE(conio, - [ --disable-conio disable conio support [enabled] +AC_ARG_ENABLE(conio, + [ --disable-conio disable conio support [enabled] + ], + [if test x$enableval = xno; then + support_conio=no + fi] +) + + +# --------------------------------------------------- +# Check for IPv6 support +# --------------------------------------------------- +# this allows you to turn it completely off +support_ipv6=yes +AC_ARG_ENABLE(ipv6, + [ --enable-ipv6 enable ipv6 support [enabled] ], [if test x$enableval = xno; then - support_conio=no - fi]) + support_ipv6=no + fi] +) + +if test x$support_ipv6 = xyes; then + AC_TRY_LINK([ #include +#include +#include ], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;], + [support_ipv6=yes], [support_ipv6=no]) +fi + +if test x$support_ipv6 = xyes; then + AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support]) +fi + + got_conio="no" if test x$support_conio = xyes; then @@ -475,7 +623,7 @@ got_readline="no" READLINE_SRC= if test x$support_readline = xyes; then AC_ARG_WITH(readline, - [ --with-readline=DIR specify readline library directory], + [ --with-readline@<:@=DIR@:>@ specify readline library directory], [ case "$with_readline" in no) : ;; @@ -491,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" ], @@ -505,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" @@ -557,7 +705,7 @@ AC_CHECK_HEADERS(varargs.h) AC_MSG_CHECKING(for Python support) AC_ARG_WITH(python, [ - --with-python[=DIR] Include Python support. DIR is the Python base + --with-python@<:@=DIR@:>@ Include Python support. DIR is the Python base install directory, default is to search through a number of common places for the Python files.], [ @@ -565,25 +713,27 @@ AC_ARG_WITH(python, PYTHON_LIBS= if test "$withval" != "no"; then if test "$withval" = "yes"; then - for python_root in /usr /usr/local; do - if test -f $python_root/include/python2.2/Python.h; then - PYTHON_INCDIR=-I$python_root/include/python2.2 - PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" - break - elif test -f $python_root/include/python2.3/Python.h; then - PYTHON_INCDIR=-I$python_root/include/python2.3 - PYTHON_LIBS="-L$python_root/lib/python2.3/config -lpython2.3" - break - elif test -f $python_root/include/python2.4/Python.h; then - PYTHON_INCDIR=-I$python_root/include/python2.4 - PYTHON_LIBS="-L$python_root/lib/python2.4/config -lpython2.4" - break - fi + for python_root in /usr /usr/local /usr/sfw; do + for ver in python2.2 python2.3 python2.4 python2.5; 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 + PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}" + else + PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}" + fi + break + fi + done done if test x$PYTHON_INCDIR = x; then if test -f $prefix/include/Python.h; then PYTHON_INCDIR=-I$prefix/include - PYTHON_LIBS="-L$prefix/lib/config -lpython" + if test -d $prefix/lib64/config; then + PYTHON_LIBS="-L$prefix/lib64/config -lpython" + else + PYTHON_LIBS="-L$prefix/lib/config -lpython" + fi else AC_MSG_RESULT(no) AC_MSG_ERROR(Unable to find Python.h in standard locations) @@ -595,10 +745,18 @@ AC_ARG_WITH(python, PYTHON_LIBS="-L$withval/config -lpython" elif test -f $withval/include/Python.h; then PYTHON_INCDIR=-I$withval/include - PYTHON_LIBS="-L$withval/lib/config -lpython" + if test -d $withval/lib64/config; then + PYTHON_LIBS="-L$withval/lib64/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/config -lpython" + fi elif test -f $withval/include/python/Python.h; then PYTHON_INCDIR=-I$withval/include/python - PYTHON_LIBS="-L$withval/lib/python/config -lpython" + if test -d $withval/lib64/python/config; then + PYTHON_LIBS="-L$withval/lib64/python/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/python/config -lpython" + fi else AC_MSG_RESULT(no) AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval) @@ -621,7 +779,6 @@ AC_ARG_WITH(python, ]) AC_SUBST(PYTHON_LIBS) AC_SUBST(PYTHON_INCDIR) - # # Find where sockets are (especially for Solaris) @@ -639,35 +796,44 @@ AC_CHECK_FUNC(socket, # Check whether user wants TCP wrappers support (default off) # ----------------------------------------------------------- TCPW_MSG="no" +WRAPLIBS="" AC_ARG_WITH(tcp-wrappers, - [ --with-tcp-wrappers=DIR enable tcpwrappers support], + [ --with-tcp-wrappers@<:@=DIR@:>@ enable tcpwrappers support], [ if test "x$withval" != "xno" ; then saved_LIBS="$LIBS" LIBS="$saved_LIBS -lwrap" AC_MSG_CHECKING(for libwrap) + AC_SEARCH_LIBS(nanosleep, [rt]) AC_TRY_LINK( - [ #include + [ #include + #include int deny_severity = 0; int allow_severity = 0; struct request_info *req; ], [ 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" ], [ LIBS="$saved_LIBS -lwrap -lnsl" + WRAPLIBS="$saved_LIBS -lwrap -lnsl" AC_TRY_LINK( - [ #include + [ #include + #include int deny_severity = 0; int allow_severity = 0; struct request_info *req; ], [ 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" ], [AC_MSG_ERROR([*** libwrap missing]) ] ] ) @@ -696,26 +862,55 @@ if test "x$with_openssl_directory" != "x"; then OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC" fi - saved_LIBS="$LIBS" - saved_CFLAGS="$CFLAGS" - LIBS="$saved_LIBS $OPENSSL_LIBS" - CFLAGS="$saved_CFLAGS $OPENSSL_INC" + saved_LIBS="${LIBS}" + saved_CFLAGS="${CFLAGS}" + LIBS="${saved_LIBS} ${OPENSSL_LIBS}" + CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}" AC_TRY_LINK([ #include ], [ CRYPTO_set_id_callback(NULL); ], - [ support_tls="yes" ], + [ + support_tls="yes" + support_crypto="yes" + ], [ support_tls="no" ] ) - LIBS="$saved_LIBS" - CFLAGS="$saved_CFLAGS" + AC_TRY_LINK([ #include ], + [ EVP_sha512(); ], + [ ac_cv_openssl_sha2="yes" ], + [ 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 ], + [ EVP_aes_192_cbc(); ], + [ ac_cv_openssl_export="no" ], + [ ac_cv_openssl_export="yes" ] + ) + + LIBS="${saved_LIBS}" + CFLAGS="${saved_CFLAGS}" 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]) + AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled]) + fi + + 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" OPENSSL_LIBS="" OPENSSL_INC="" fi @@ -726,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 @@ -748,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) @@ -832,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], [ @@ -992,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 @@ -1056,9 +1296,6 @@ AC_ARG_WITH(fd_group, ] ) - - - AC_SUBST(dir_user) AC_SUBST(dir_group) AC_SUBST(sd_user) @@ -1084,6 +1321,7 @@ AC_SUBST(SBINPERM) # ------------------------------------------------ # Bacula check for various SQL database engines # ------------------------------------------------ +SQL_LIB= BA_CHECK_POSTGRESQL_DB BA_CHECK_MYSQL_DB @@ -1092,8 +1330,48 @@ BA_CHECK_SQLITE3_DB BA_CHECK_SQLITE_DB +BA_CHECK_DBI_DB + +BA_CHECK_DBI_DRIVER + 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 x$DB_TYPE = xdbi; then + DB_TYPE=$DB_PROG + db_type=$DB_PROG +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) @@ -1132,6 +1410,7 @@ AC_CHECK_HEADERS( \ stdlib.h \ stdint.h \ string.h \ + strings.h \ termios.h \ termcap.h \ term.h \ @@ -1140,9 +1419,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 \ @@ -1168,7 +1449,7 @@ AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h, #include #include ], [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 @@ -1192,6 +1473,18 @@ AC_CACHE_CHECK([for bigendian], ba_cv_bigendian, [ba_cv_bigendian=no])]) test $ba_cv_bigendian = yes && AC_DEFINE(HAVE_BIGENDIAN) +dnl# -------------------------------------------------------------------------- +dnl# Check for typeof() +dnl# -------------------------------------------------------------------------- +AC_LANG_PUSH(C++) +AC_CACHE_CHECK(for typeof, ba_cv_have_typeof, + [AC_TRY_RUN( + [main(){char *a = 0; a = (typeof a)a;}], + [ba_cv_have_typeof=yes], + [ba_cv_have_typeof=no], + [ba_cv_have_typeof=no])]) +test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof]) +AC_LANG_POP(C++) AC_C_CONST @@ -1224,6 +1517,8 @@ AC_TRY_CPP([#include fi 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])] , ) + dnl# -------------------------------------------------------------------------- dnl# CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS. dnl# -------------------------------------------------------------------------- @@ -1450,11 +1745,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 +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# -------------------------------------------------------------------------- @@ -1484,18 +1792,6 @@ AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_ fi -dnl Check for IPv6 support -AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support, -[AC_TRY_LINK([ #include -#include -#include ], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = - 0;], - [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])]) - -if test "$ac_cv_ipv6_support" = yes; then - AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support]) -fi - AC_FUNC_STRFTIME @@ -1507,8 +1803,7 @@ AC_FUNC_SETPGRP dnl check for BSD setpgrp. # AC_FUNC_FNMATCH dnl use local version -dnl# FreeBSD needs to link libxpg4 -AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]) +AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"]) AC_CHECK_LIB(sun, getpwnam) @@ -1521,10 +1816,15 @@ if test x$FDLIBS = x-lz; then have_zlib=yes fi +# +# Check for ACL libraries +# have_acl=no AC_CHECK_HEADER(sys/acl.h) 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(acl, acl_get_file, [have_acl=yes; FDLIBS="-lacl $FDLIBS"], + [AC_CHECK_LIB(sec, acltotext, [have_acl=yes; FDLIBS="-lsec $FDLIBS"])] + )] ) if test $have_acl = yes; then AC_DEFINE(HAVE_ACL) @@ -1533,11 +1833,11 @@ fi dnl Check for pthread libraries PTHREAD_LIB="" AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread", - [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", - [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", - [AC_CHECK_FUNC(pthread_create)] - )] - )] + [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", + [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", + [AC_CHECK_FUNC(pthread_create)] + )] + )] ) AC_SUBST(FDLIBS) @@ -1545,10 +1845,15 @@ AC_DEFINE(FDLIBS) CFLAGS=${CFLAGS--O} + +if test x$have_gcc = xyes ; then + CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" + CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" +fi LDFLAGS=${LDFLAGS--O} DB_LIBS="${SQL_LFLAGS}" - CPPFLAGS="$CPPFLAGS" +CFLAGS="$CFLAGS" AC_SUBST(DEBUG) AC_SUBST(DINCLUDE) AC_SUBST(CFLAGS) @@ -1563,6 +1868,7 @@ AC_SUBST(X_LIBS) AC_SUBST(X_EXTRA_LIBS) AC_SUBST(WCFLAGS) AC_SUBST(WLDFLAGS) +AC_SUBST(WRAPLIBS) dnl# extra configurable objects OBJLIST= @@ -1584,6 +1890,9 @@ PSCMD="ps -e" WIN32= MACOSX= hostname=`uname -n | cut -d '.' -f 1` +if test x${hostname} = x ; then + hostname="localhost" +fi case "$DISTNAME" in aix) DISTVER=`uname -r` @@ -1643,8 +1952,8 @@ freebsd) DISTVER=`uname -a |awk '{print $3}'` VER=`echo $DISTVER | cut -c 1` if test x$VER = x4 ; then - PTHREAD_LIB="-pthread" - CFLAGS="${CFLAGS} -pthread" + PTHREAD_LIB="${PTHREAD_LIBS:--pthread}" + CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}" fi lld="qd" llu="qu" @@ -1658,8 +1967,8 @@ freebsd) largefile_support="yes" ;; hpux) - PSCMD="UNIX95=1 ps -e -o pid,comm" - CFLAGS="$(CFLAGS) -D_XOPEN_SOURCE_EXTENDED=1" + PSCMD="UNIX95=1; ps -e -o pid,comm" + CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1" DISTVER=`uname -r` TAPEDRIVE="/dev/rmt/0hnb" PTHREAD_LIB="-lpthread" @@ -1721,7 +2030,6 @@ redhat) platforms/redhat/bacula-dir \ platforms/redhat/bacula.spec \ " - hostname=`hostname -s` ;; mandrake) DISTVER=`cat /etc/mandrake-release | grep release |\ @@ -1838,6 +2146,7 @@ fi AC_OUTPUT([autoconf/Make.common \ Makefile \ + manpages/Makefile \ scripts/startmysql \ scripts/stopmysql \ scripts/btraceback \ @@ -1846,6 +2155,9 @@ AC_OUTPUT([autoconf/Make.common \ scripts/bconsole \ scripts/gconsole \ scripts/bacula \ + scripts/bacula-ctl-dir \ + scripts/bacula-ctl-fd \ + scripts/bacula-ctl-sd \ scripts/devel_bacula \ scripts/Makefile \ scripts/logrotate \ @@ -1855,21 +2167,32 @@ 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/dvd-writepart \ - scripts/dvd-freespace \ + scripts/disk-changer \ + scripts/dvd-handler \ + scripts/dvd-simulator \ scripts/bacula-tray-monitor.desktop \ scripts/logwatch/Makefile \ scripts/logwatch/logfile.bacula.conf \ + 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 \ @@ -1879,7 +2202,6 @@ AC_OUTPUT([autoconf/Make.common \ src/stored/bacula-sd.conf \ src/filed/Makefile \ src/filed/bacula-fd.conf \ - src/filed/win32/Makefile \ src/cats/Makefile \ src/cats/make_catalog_backup \ src/cats/delete_catalog_backup \ @@ -1923,20 +2245,38 @@ AC_OUTPUT([autoconf/Make.common \ src/cats/drop_bacula_database \ src/findlib/Makefile \ src/tools/Makefile \ - src/win32/winbacula.nsi \ - src/win32/baculafd/bacula-fd.conf \ - src/win32/Makefile \ - src/win32/console/bconsole.conf \ - src/win32/wx-console/wx-console.conf \ - src/win32/pebuilder/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-writepart dvd-freespace +chmod 755 dvd-handler dvd-simulator chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate cd .. @@ -1954,6 +2294,9 @@ chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_dat chmod 755 $c/create_sqlite_database $c/update_sqlite_tables $c/make_sqlite_tables chmod 755 $c/grant_sqlite_privileges $c/drop_sqlite_tables $c/drop_sqlite_database +chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables +chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database + 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 @@ -1961,6 +2304,10 @@ chmod 755 $c/make_catalog_backup $c/delete_catalog_backup chmod 755 $c/sqlite 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 @@ -1991,11 +2338,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 ..." @@ -2013,10 +2360,12 @@ 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} Man directory: ${mandir} + Data directory: ${datadir} C Compiler: ${CC} ${CCVERSION} C++ Compiler: ${CXX} ${CXXVERSION} Compiler flags: ${WCFLAGS} ${CFLAGS} @@ -2027,8 +2376,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} @@ -2050,16 +2401,21 @@ Configuration on `date`: Large file support: $largefile_support Bacula conio support: ${got_conio} ${CONS_LIBS} readline support: ${got_readline} ${PRTREADLINE_SRC} - TCP Wrappers support: ${TCPW_MSG} + TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS} TLS support: ${support_tls} + Encryption support: ${support_crypto} ZLIB support: ${have_zlib} enable-smartalloc: ${support_smartalloc} + 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