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`
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
THE_AWK=$AWK
AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
+
test -n "$ARFLAG" || ARFLAGS="cr"
AC_SUBST(ARFLAGS)
fi
sbindir=`eval echo ${sbindir}`
+
# -------------------------------------------------------------------------
# If the user has not set --mandir, we default to /usr/share/man
# -------------------------------------------------------------------------
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
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
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
# 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])
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])
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
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
fi])
if test x$support_smartalloc = xyes; then
- AC_DEFINE(SMARTALLOC)
+ AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
fi
# -------------------------------------------
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)
[ --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"
# 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 <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>], [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
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) : ;;
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"
],
],[
# 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"
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.],
[
])
AC_SUBST(PYTHON_LIBS)
AC_SUBST(PYTHON_INCDIR)
-
#
# Find where sockets are (especially for Solaris)
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"
[ 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"
[ 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_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}"
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"
# -----------------------------------------------------------
-# 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
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)
# 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],
[
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
]
)
-
-
-
AC_SUBST(dir_user)
AC_SUBST(dir_group)
AC_SUBST(sd_user)
# ------------------------------------------------
# Bacula check for various SQL database engines
# ------------------------------------------------
+SQL_LIB=
BA_CHECK_POSTGRESQL_DB
BA_CHECK_MYSQL_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)
stdlib.h \
stdint.h \
string.h \
+ strings.h \
termios.h \
termcap.h \
term.h \
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 \
#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
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# --------------------------------------------------------------------------
fi
-dnl Check for IPv6 support
-AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
-[AC_TRY_LINK([ #include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>], [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
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"
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 \
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 \
src/cats/drop_bacula_tables \
src/cats/drop_bacula_database \
src/findlib/Makefile \
- src/pygtk-console/Makefile \
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
chmod 755 src/win32/build-depkgs-mingw32
+
+
if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
largefile_support="yes"
fi
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 ..."
Install binaries: ${sbindir}
Install config files: ${sysconfdir}
Scripts directory: ${scriptdir}
+ Archive directory: ${archivedir}
Working directory: ${working_dir}
PID directory: ${piddir}
Subsys directory: ${subsysdir}
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}
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