X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fautoconf%2Fconfigure.in;h=ad7144a1030c0d0dc26165175bcb2e77808f910d;hb=d4745c3ac42f38179852e92619ef573278cc1347;hp=006287616cfb1303456d5fab7775d2879d64f583;hpb=e78e69bdcd74470750eeec179d188ebae14fc381;p=bacula%2Fbacula diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index 006287616c..ad7144a103 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -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 ], + [ 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 #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 @@ -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 +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