-dnl#
+lal#
dnl#
dnl# Process this file with autoconf to produce a configure script.
dnl#
AC_PATH_PROGS(TRUEPRG, true, :)
AC_PATH_PROGS(FALSEPRG, false, :)
-AC_CANONICAL_HOST
+#AC_CANONICAL_HOST
dnl bacula version
VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
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
+if test "x$CC" = xgcc; then
AC_DEFINE(HAVE_GCC)
fi
+AC_PATH_PROG(CXX, $CXX, $CXX)
+if test ! -e $CXX; then
+ AC_MSG_ERROR(Unable to find C++ compiler)
+fi
dnl -------------------------------------------------------
dnl# Check for programs.
AC_PATH_PROG(RM, rm, rm)
AC_PATH_PROG(CP, cp, cp)
AC_PATH_PROG(SED, sed, sed)
-AC_PATH_PROG(AWK, awk, awk)
AC_PATH_PROG(ECHO, echo, echo)
AC_PATH_PROG(CMP, cmp, cmp)
AC_PATH_PROG(TBL, tbl, tbl)
AC_PATH_PROG(AR, ar, ar)
-AC_PATH_PROG(RANLIB, ranlib, ranlib)
+dnl AC_PATH_PROG(RANLIB, ranlib, ranlib)
AC_PATH_PROG(OPENSSL, openssl, none)
AC_PATH_PROG(MTX, mtx, mtx)
+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(PKGCONFIG, pkg-config, pkg-config)
+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
+fi
+AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
+AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
+AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
+AC_PATH_PROG(PIDOF, pidof, pidof)
+AC_PROG_AWK
+# Some AWK programs fail, so test it and warn the user
+if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
+ { if ((prog == $2) || (("(" prog ")") == $2) ||
+ (("[" prog "]") == $2) ||
+ ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
+else
+ AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
+ The regex engine of $AWK is too broken to be used you
+ might want to install GNU AWK.
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
+fi
+THE_AWK=$AWK
+AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
test -n "$ARFLAG" || ARFLAGS="cr"
AC_SUBST(ARFLAGS)
sbindir=${exec_prefix}/sbin
fi
sbindir=`eval echo ${sbindir}`
+
+# -------------------------------------------------------------------------
+# If the user has not set --mandir, we default to /usr/share/man
+# -------------------------------------------------------------------------
+if test x$mandir = x'${prefix}/man' ; then
+ mandir=/usr/share/man
+fi
+
# ------------------------------------------------------------------
# All list of languages for which a translation exist. Each
support_mysql=no
support_sqlite=no
+support_sqlite3=no
+support_postgresql=no
support_smartalloc=yes
support_readline=yes
+support_conio=yes
support_gnome=no
+support_wx_console=no
+support_tls=no
+gnome_version=
+wx_version=
support_static_tools=no
support_static_fd=no
support_static_sd=no
support_static_dir=no
support_static_cons=no
+support_python=no
build_client_only=no
cats=
db_name=Internal
abc=`$PKGCONFIG --exists libgnomeui-2.0`
pkg=$?
if test $pkg = 0; then
- GNOME_INCLUDEDIR=`pkg-config --cflags-only-I libgnomeui-2.0`
- GNOMEUI_LIBS=`pkg-config --libs-only-l libgnomeui-2.0`
- GNOME_LIBDIR=`pkg-config --libs libgnomeui-2.0`
- GNOME_LIBS=`pkg-config --libs-only-l libgnomeui-2.0`
+ GNOME_INCLUDEDIR=`$PKGCONFIG --cflags-only-I libgnomeui-2.0`
+ GNOMEUI_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0`
+ GNOME_LIBDIR=`$PKGCONFIG --libs libgnomeui-2.0`
+ GNOME_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0`
AC_SUBST(GNOME_INCLUDEDIR)
AC_SUBST(GNOMEUI_LIBS)
AC_SUBST(GNOME_LIBDIR)
AC_SUBST(GNOME_LIBS)
GNOME_DIR=src/gnome2-console
+ gnome_version="Version 2.x"
else
dnl do 1.4 stuff
- GNOME_INIT
- GNOME_DIR=src/gnome-console
+ GNOME_INIT
+ GNOME_DIR=src/gnome-console
+ gnome_version="Version 1.4"
fi
fi
AC_SUBST(GNOME_DIR)
+# -------------------------------------------
+# wx-console (default off)
+# -------------------------------------------
+AC_ARG_ENABLE(wx-console,
+ [ --enable-wx-console enable build of wxWidgets console [disabled]],
+ [if test x$enableval = xyes; then
+ support_wx_console=yes
+ fi])
+
+WX_DIR=
+if test x$support_wx_console = xyes; then
+ abc=`$WXCONFIG $WXFLAGS --cppflags`
+ pkg=$?
+ if test $pkg = 0; then
+ wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
+ WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
+ WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
+
+ AC_SUBST(WXCONS_CPPFLAGS)
+ AC_SUBST(WXCONS_LDFLAGS)
+ WX_DIR=src/wx-console
+ else
+ echo " "
+ echo "wx-config program not found. wx-console disabled."
+ echo " "
+ support_wx_console=no
+ fi
+fi
+AC_SUBST(WX_DIR)
+
+
+# -------------------------------------------
+# tray-monitor (default off)
+# -------------------------------------------
+AC_ARG_ENABLE(tray-monitor,
+ [ --enable-tray-monitor enable build of Gnome tray monitor (compatible with KDE) [disabled]],
+ [if test x$enableval = xyes; then
+ support_tray_monitor=yes
+ fi])
+
+TRAY_MONITOR_DIR=
+if test x$support_tray_monitor = xyes; then
+ abc=`$PKGCONFIG --exists gtk+-2.0`
+ pkg=$?
+ if test $pkg = 0; then
+ TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
+ TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
+ AC_SUBST(TRAY_MONITOR_CPPFLAGS)
+ AC_SUBST(TRAY_MONITOR_LDFLAGS)
+ TRAY_MONITOR_DIR=src/tray-monitor
+ abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
+ pkg=$?
+ if test $pkg = 0; then
+ AC_DEFINE(HAVE_GTK_2_4)
+ fi
+ fi
+fi
+AC_SUBST(TRAY_MONITOR_DIR)
+
# -------------------------------------------
# smartalloc (default off)
# -------------------------------------------
fi])
STATIC_CONS=
+STATIC_GNOME_CONS=
+STATIC_WX_CONS=
if test x$support_static_cons = xyes; then
- STATIC_CONS="static-console"
+ STATIC_CONS="static-bconsole"
+ STATIC_GNOME_CONS="static-gnome-console"
+ STATIC_WX_CONS="static-wx-console"
fi
AC_SUBST(STATIC_CONS)
+AC_SUBST(STATIC_GNOME_CONS)
+AC_SUBST(STATIC_WX_CONS)
# -------------------------------------------
# client_only (default off)
[ --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
fi])
if test x$build_client_only = xno; then
ALL_DIRS="subdirs"
AC_SUBST(ALL_DIRS)
# ---------------------------------------------------
-# Check for readline support/directory (default on)
+# Check for conio (Bacula readline substitute)(
+# ---------------------------------------------------
+# this allows you to turn it completely off
+AC_ARG_ENABLE(conio,
+ [ --disable-conio disable conio support [enabled]
+ ],
+ [if test x$enableval = xno; then
+ support_conio=no
+ fi])
+
+got_conio="no"
+if test x$support_conio = xyes; then
+ AC_CHECK_HEADER(termcap.h,
+ [ AC_CHECK_LIB(termcap, tgetent,
+ [ CONS_LIBS="-ltermcap"
+ CONS_OBJ="conio.o"
+ CONS_SRC="conio.c"
+ got_conio="yes"
+ support_readline=no
+ AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
+ ],
+ [ AC_CHECK_LIB(ncurses, tgetent,
+ [ CONS_LIBS="-lncurses"
+ CONS_OBJ="conio.o"
+ CONS_SRC="conio.c"
+ got_conio="yes"
+ support_readline=no
+ AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
+ ])
+ ])
+ ],
+ [
+ AC_CHECK_HEADERS(curses.h)
+ AC_CHECK_HEADER(term.h,
+ [ AC_CHECK_LIB(curses, tgetent,
+ [ CONS_LIBS="-lcurses"
+ CONS_OBJ="conio.o"
+ CONS_SRC="conio.c"
+ got_conio="yes"
+ support_readline=no
+ AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
+ ])
+ ],
+ [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
+[#if HAVE_CURSES_H
+#include <curses.h>
+#endif
+])
+ ])
+fi
+
+
+# ---------------------------------------------------
+# Check for readline support/directory (default off)
# ---------------------------------------------------
# this allows you to turn it completely off
AC_ARG_ENABLE(readline,
- [ --disable-readline disable readline support [enabled]
+ [ --disable-readline disable readline support [disable]
],
[if test x$enableval = xno; then
support_readline=no
CONS_LIBS="-lreadline -ltermcap"
got_readline="yes"
],
- [ AC_MSG_ERROR([*** readline library missing])
+ [ echo " "
+ echo "readline.h not found. readline turned off ..."
+ echo " "
]
)
;;
CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
],
- [ AC_MSG_ERROR([*** readline library missing])
+ [ echo " "
+ echo "readline.h not found. readline turned off ..."
+ echo " "
]
)
]
]
)
fi
+
+
+
AC_SUBST(CONS_INC)
+AC_SUBST(CONS_OBJ)
+AC_SUBST(CONS_SRC)
AC_SUBST(CONS_LIBS)
AC_SUBST(CONS_LDFLAGS)
AC_SUBST(READLINE_SRC)
# Minimal stuff for readline Makefile configuration
MAKE_SHELL=/bin/sh
AC_SUBST(MAKE_SHELL)
-
AC_HEADER_STAT
AC_HEADER_DIRENT
-
AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr setlocale lstat lchown)
-AC_CHECK_FUNCS(nanosleep)
-
+AC_CHECK_FUNCS(nanosleep nl_langinfo)
AC_CHECK_HEADERS(varargs.h)
-# End of readline stuff
+# End of readline/conio stuff
# -----------------------------------------------------------------------
-
-# ---------------------------------------------------
-# Check for GMP support/directory
-# ---------------------------------------------------
-#GMP_SRC=
-#local_gmp="no"
-#AC_ARG_WITH(gmp,
-# [ --with-gmp[=DIR] Specify gmp library directory],
-# [
-# case "$with_gmp" in
-# no) : ;;
-# yes|*)
-# if test "$with_gmp" != "yes"; then
-# GMP_INC="-I$with_gmp"
-# GMP_LIBS="-lgmp"
-# GMP_LDFLAGS="-L$with_gmp"
-# else
-# with_gmp="/usr/include"
-# fi
-# AC_CHECK_HEADER($with_gmp/gmp.h,
-# [ AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_GMP)
-# GMP_LIBS="-lgmp"
-# got_gmp="yes"
-# ],
-# [ AC_MSG_ERROR([*** gmp library missing])
-# ]
-# )
-# ;;
-# esac
-# ],[
-# # check for standard gmp library
-# AC_CHECK_HEADER(/usr/include/gmp.h,
-# [ AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_GMP)
-# got_gmp="yes"
-# GMP_INC=
-# GMP_LIBS="-lgmp"
-# ], [
-# # Did not find standard library, so use our own
-# AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_GMP)
-# got_gmp="yes"
-# local_gmp="yes"
-# GMP_INC="-I${TOP_DIR}/depkgs/gmp"
-# GMP_LIBS="-lgmp"
-# GMP_LDFLAGS="-L${TOP_DIR}/depkgs/gmp"
-# GMP_SRC="${TOP_DIR}/depkgs/gmp"
-# ])
-# ]
-#)
-#AC_SUBST(GMP_INC)
-#AC_SUBST(GMP_LIBS)
-#AC_SUBST(GMP_LDFLAGS)
-#AC_SUBST(GMP_SRC)
-
-# End of GMP stuff
# -----------------------------------------------------------------------
+# Check for Python support
+#
+AC_MSG_CHECKING(for Python support)
+AC_ARG_WITH(python,
+[
+ --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.],
+[
+ PYTHON_INCDIR=
+ PYTHON_LIBS=
+ if test "$withval" != "no"; then
+ if test "$withval" = "yes"; then
+ if test -f /usr/include/python2.2/Python.h; then
+ PYTHON_INCDIR=-I/usr/include/python2.2
+ PYTHON_LIBS="-L/usr/lib/python2.2/config -lpython2.2 -lutil -ldl"
+ elif test -f /usr/include/python2.3/Python.h; then
+ PYTHON_INCDIR=-I/usr/include/python2.3
+ PYTHON_LIBS="-L/usr/lib/python2.3/config -lpython2.3 -lutil -ldl"
+ elif test -f /usr/include/python2.4/Python.h; then
+ PYTHON_INCDIR=-I/usr/include/python2.4
+ PYTHON_LIBS="-L/usr/lib/python2.4/config -lpython2.4 -lutil -ldl"
+ elif test -f $prefix/include/Python.h; then
+ PYTHON_INCDIR=-I$prefix/include
+ PYTHON_LIBS="-L$prefix/lib/config -lpython -lutil -ldl"
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(Unable to find Python.h in standard locations)
+ fi
+ else
+ if test -f $withval/Python.h; then
+ PYTHON_INCDIR=-I$withval
+ PYTHON_LIBS="-L$withval/config -lpython -lutil -ldl"
+ elif test -f $withval/include/Python.h; then
+ PYTHON_INCDIR=-I$withval/include
+ PYTHON_LIBS="-L$withval/lib/config -lpython -lutil -ldl"
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
+ fi
+ fi
+ AC_DEFINE([HAVE_PYTHON], 1)
+ AC_MSG_RESULT(yes)
+ support_python=yes
+ else
+ AC_MSG_RESULT(no)
+ fi
+],[
+ AC_MSG_RESULT(no)
+])
+AC_SUBST(PYTHON_LIBS)
+AC_SUBST(PYTHON_INCDIR)
+
-# ---------------------------------------------------
-# Check for CWEB support/directory
-# ---------------------------------------------------
-#CWEB_SRC=
-#CWEB=/bin
-#local_cweb="no"
-#AC_ARG_WITH(cweb,
-# [ --with-cweb[=DIR] Specify cweb library directory],
-# [
-# case "$with_cweb" in
-# no) : ;;
-# yes|*)
-# if test "$with_cweb" != "yes"; then
-# CWEB_INC="-I$with_cweb"
-# CWEB_LIBS="-lcweb"
-# CWEB_LDFLAGS="-L$with_cweb"
-# else
-# with_cweb="/usr/include"
-# fi
-# AC_CHECK_HEADER($with_cweb/cweb.h,
-# [ AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_CWEB)
-# CWEB_LIBS="-lcweb"
-# got_cweb="yes"
-# ],
-# [ AC_MSG_ERROR([*** cweb library missing])
-# ]
-# )
-# ;;
-# esac
-# ],[
-# # check for standard cweb library
-# AC_CHECK_HEADER(/usr/include/cweb.h,
-# [ AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_CWEB)
-# got_cweb="yes"
-# CWEB_INC=
-# CWEB_LIBS="-lcweb"
-# ], [
-# # Did not find starndard library, so use our own
-# AC_MSG_RESULT(yes)
-# AC_DEFINE(HAVE_CWEB)
-# got_cweb="yes"
-# local_cweb="yes"
-# CWEB=${TOP_DIR}/depkgs/cweb
-# CWEB_INC="-I${TOP_DIR}/depkgs/cweb"
-# CWEB_LIBS="-lcweb"
-# CWEB_LDFLAGS="-L${TOP_DIR}/depkgs/cweb"
-# CWEB_SRC="${TOP_DIR}/depkgs/cweb"
-# ])
-# ]
-#)
-#AC_SUBST(CWEB)
-#AC_SUBST(CWEB_INC)
-#AC_SUBST(CWEB_LIBS)
-#AC_SUBST(CWEB_LDFLAGS)
-#AC_SUBST(CWEB_SRC)
-
-# End of CWEB stuff
-# -----------------------------------------------------------------------
-
+#
+# Find where sockets are (especially for Solaris)
+# Do this before the TCP Wrappers test since tcp wrappers
+# uses the socket library and some linkers are stupid.
+#
+AC_CHECK_FUNC(socket,
+ AC_MSG_RESULT(using libc's socket),
+ AC_CHECK_LIB(xnet,socket)
+ AC_CHECK_LIB(socket,socket)
+ AC_CHECK_LIB(inet,socket))
# -----------------------------------------------------------
]
)
+# -----------------------------------------------------------
+# Check whether OpenSSL is available
+# -----------------------------------------------------------
+AC_MSG_CHECKING([for OpenSSL])
+dnl The following uses quadrigraphs:
+dnl '@<:@' = '['
+dnl '@:>@' = ']'
+AC_ARG_WITH(openssl,
+ AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
+ [with_openssl_directory=${withval}])
+
+if test "x$with_openssl_directory" != "x"; then
+ OPENSSL_LIBS="-lssl -lcrypto"
+ OPENSSL_INC=""
+
+ if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
+ OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
+ 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"
+
+ AC_TRY_LINK([ #include <openssl/ssl.h> ],
+ [ CRYPTO_set_id_callback(NULL); ],
+ [ support_tls="yes" ],
+ [ support_tls="no" ]
+ )
+
+ 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])
+ fi
+else
+ support_tls="no"
+ OPENSSL_LIBS=""
+ OPENSSL_INC=""
+fi
+
+AC_MSG_RESULT([$support_tls])
+AC_SUBST(OPENSSL_LIBS)
+AC_SUBST(OPENSSL_INC)
+
+
+
# ------------------------------------------
# Where to place working dir
# ------------------------------------------
-working_dir=`eval echo ${sysconfdir}/working`
+working_dir=`eval echo ${prefix}/var/bacula/working`
AC_ARG_WITH(working-dir,
[ --with-working-dir=PATH specify path of Bacula working directory],
[
sd_password=$key
fi
+mon_dir_password=
+AC_ARG_WITH(mon-dir-password,
+ [ --with-mon-dir-password=PASSWORD specify Director's password used by the monitor],
+ [
+ if test "x$withval" != "xno" ; then
+ mon_dir_password=$withval
+ fi
+ ]
+)
+
+if test "x$mon_dir_password" = "x" ; then
+ if test "x$OPENSSL" = "xnone" ; then
+# key=`date | uuencode /dev/stdout | tr "\"@\\\`\\ \\=\\,\\(\\)\\#\\.\\!\\-$'" abcdefghijklmnopqrst | awk '{getline} {print} {exit}'`
+ key=`autoconf/randpass 33`
+ else
+ key=`openssl rand -base64 33`
+ fi
+ mon_dir_password=$key
+fi
+
+mon_fd_password=
+AC_ARG_WITH(mon-fd-password,
+ [ --with-mon-fd-password=PASSWORD specify Client's password used by the monitor],
+ [
+ if test "x$withval" != "xno" ; then
+ mon_fd_password=$withval
+ fi
+ ]
+)
+
+if test "x$mon_fd_password" = "x" ; then
+ if test "x$OPENSSL" = "xnone" ; then
+# key=`date | uuencode /dev/stdout | tr "\"@\\\`\\ \\=\\,\\(\\)\\#\\.\\!\\-$'" tsrqponmlkjihgfedcba | awk '{getline} {print} {exit}'`
+ key=`autoconf/randpass 37`
+ else
+ key=`openssl rand -base64 33`
+ fi
+ mon_fd_password=$key
+fi
+
+mon_sd_password=
+AC_ARG_WITH(mon-sd-password,
+ [ --with-mon-sd-password=PASSWORD specify Storage daemon's password used by the monitor],
+ [
+ if test "x$withval" != "xno" ; then
+ mon_sd_password=$withval
+ fi
+ ]
+)
+
+if test "x$mon_sd_password" = "x" ; then
+ if test "x$OPENSSL" = "xnone" ; then
+# key=`date | uuencode /dev/stdout | tr "\"@\\\`\\ \\=\\,\\(\\)\\#\\.\\!\\-$'" 123456789uvwxyzabcdef | awk '{getline} {print} {exit}'`
+ key=`autoconf/randpass 41`
+ else
+ key=`openssl rand -base64 33`
+ fi
+ mon_sd_password=$key
+fi
AC_SUBST(dir_password)
AC_SUBST(fd_password)
AC_SUBST(sd_password)
+AC_SUBST(mon_dir_password)
+AC_SUBST(mon_fd_password)
+AC_SUBST(mon_sd_password)
+
+# -------------------------------------------------------------------------
+# Set variables for bimagemgr installation
+# -------------------------------------------------------------------------
+bimagemgr_cgidir=/var/www/cgi-bin
+AC_ARG_WITH(bimagemgr-cgidir,
+ [ --with-bimagemgr-cgidir=DIR specify bimagemgr cgi-bin dir],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_cgidir=$withval
+ fi
+ ]
+)
+
+bimagemgr_docdir=/var/www/html
+AC_ARG_WITH(bimagemgr-docdir,
+ [ --with-bimagemgr-docdir=DIR specify bimagemgr doc root dir],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_docdir=$withval
+ fi
+ ]
+)
+
+bimagemgr_binowner=root
+AC_ARG_WITH(bimagemgr-binowner,
+ [ --with-bimagemgr-binowner=USER specify bimagemgr binary file owner],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_binowner=$withval
+ fi
+ ]
+)
+bimagemgr_bingroup=root
+AC_ARG_WITH(bimagemgr-bingroup,
+ [ --with-bimagemgr-bingroup=USER specify bimagemgr binary file group],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_bingroup=$withval
+ fi
+ ]
+)
+
+bimagemgr_dataowner=apache
+AC_ARG_WITH(bimagemgr-dataowner,
+ [ --with-bimagemgr-dataowner=USER specify bimagemgr data file owner],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_dataowner=$withval
+ fi
+ ]
+)
+
+bimagemgr_datagroup=apache
+AC_ARG_WITH(bimagemgr-datagroup,
+ [ --with-bimagemgr-datagroup=USER specify bimagemgr data file group],
+ [
+ if test "x$withval" != "xno" ; then
+ bimagemgr_datagroup=$withval
+ fi
+ ]
+)
+
+AC_SUBST(bimagemgr_cgidir)
+AC_SUBST(bimagemgr_docdir)
+AC_SUBST(bimagemgr_binowner)
+AC_SUBST(bimagemgr_bingroup)
+AC_SUBST(bimagemgr_dataowner)
+AC_SUBST(bimagemgr_datagroup)
#
# Handle users and groups for each daemon
AC_SUBST(fd_user)
AC_SUBST(fd_group)
+#
+# allow setting default executable permissions
+#
+SBINPERM=0754
+AC_ARG_WITH(sbin-perm,
+ [ --with-sbin-perm=MODE specify permissions for sbin binaries (0754)],
+ [
+ if test "x$withval" != "x" ; then
+ SBINPERM=$withval
+ fi
+ ]
+)
+
+AC_SUBST(SBINPERM)
+
# ------------------------------------------------
# Bacula check for various SQL database engines
# ------------------------------------------------
+BA_CHECK_POSTGRESQL_DB
+
BA_CHECK_MYSQL_DB
+BA_CHECK_SQLITE3_DB
-# ------------------------------------------------
-# Bacula check for various SQL database engines
-# ------------------------------------------------
BA_CHECK_SQLITE_DB
AC_SUBST(cats)
dnl# --------------------------------------------------------------------------
dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
dnl#
-if test -z "$CFLAGS"; then
+if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
if test -z "$CCOPTS"; then
- CCOPTS='-g -O2'
-dnl> if test "x$GCC" = xyes; then
-dnl> if test x$system = xLinux; then
-dnl> CCOPTS="$CCOPTS "'-O2 -fno-strength-reduce'
-dnl> fi
-dnl> fi
+ CCOPTS='-g -O2 -Wall'
fi
CFLAGS="$CCOPTS"
fi
stdint.h \
string.h \
termios.h \
+ termcap.h \
+ term.h \
unistd.h \
+ sys/bitypes.h \
sys/byteorder.h \
sys/ioctl.h \
sys/select.h \
resolv.h \
mtio.h \
sys/mtio.h \
+ sys/tape.h \
+ regex.h \
)
AC_HEADER_STDC
AC_HEADER_MAJOR
fi
fi
+if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
+ test "x$ac_cv_header_sys_bitypes_h" = "xyes")
+then
+ AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
+ AC_TRY_COMPILE(
+ [ #include <sys/bitypes.h> ],
+ [ int64_t a; u_int64_t b;
+ a = b = 1; ],
+ [ AC_DEFINE(HAVE_U_INT64_T)
+ AC_DEFINE(HAVE_INT64_T)
+ AC_MSG_RESULT(yes) ],
+ [ AC_MSG_RESULT(no)]
+ )
+fi
+
+if (test -z "$have_uintxx_t" && \
+ test "x$ac_cv_header_sys_bitypes_h" = "xyes")
+then
+ AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
+ AC_TRY_COMPILE(
+ [ #include <sys/bitypes.h> ],
+ [ uint8_t a; uint16_t b;
+ uint32_t c; a = b = c = 1; ],
+ [ AC_DEFINE(HAVE_UINTXX_T)
+ AC_MSG_RESULT(yes) ],
+ [ AC_MSG_RESULT(no)]
+ )
+
+fi
+
+
+
dnl# --------------------------------------------------------------------------
-dnl# CHECKING FOR LIBRARY FUNCTIONS
+dnl# CHECKING FOR REQUIRED LIBRARY FUNCTIONS
dnl# --------------------------------------------------------------------------
AC_CHECK_FUNCS( \
fork \
AC_CHECK_FUNCS(chflags)
-AC_CHECK_FUNCS(snprintf vsnprintf gethostid getdomainname)
+AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
dnl# --------------------------------------------------------------------------
dnl# CHECKING FOR THREAD SAFE FUNCTIONS
AC_CHECK_LIB(resolv,gethostbyname_r))
-# Find where sockets are (especially for Solaris)
-AC_CHECK_FUNC(socket,
- AC_MSG_RESULT(using libc's socket),
- AC_CHECK_LIB(xnet,socket)
- AC_CHECK_LIB(socket,socket)
- AC_CHECK_LIB(inet,socket))
AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
+AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
+AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
+
+dnl ----------------------------
+dnl check sa_len of sockaddr
+dnl ----------------------------
+AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
+ [AC_TRY_COMPILE([#include <sys/socket.h>], [struct sockaddr s; s.sa_len;],
+ ac_cv_struct_sockaddr_sa_len=yes, ac_cv_struct_sockaddr_sa_len=no)])
+
+ if test $ac_cv_struct_sockaddr_sa_len = yes; then
+ AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
+ 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
AC_FUNC_VPRINTF
AC_FUNC_GETMNTENT
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_SETPGRP dnl check for BSD setpgrp.
-AC_FUNC_FNMATCH
+# AC_FUNC_FNMATCH dnl use local version
dnl# FreeBSD needs to link libxpg4
have_zlib=yes
fi
+AC_CHECK_HEADER(sys/acl.h)
+AC_CHECK_LIB(acl, acl_get_file, [FDLIBS="-lacl $FDLIBS"])
+have_acl=no
+if test $ac_cv_lib_acl_acl_get_file = yes; then
+ AC_DEFINE(HAVE_ACL)
+ have_acl=yes
+fi
+
dnl Check for pthread libraries
PTHREAD_LIB=""
AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
PFILES="platforms/Makefile"
PSCMD="ps -e"
WIN32=
-hostname=`uname -n`
+MACOSX=
+hostname=`uname -n | cut -d '.' -f 1`
case "$DISTNAME" in
aix)
DISTVER=`uname -r`
TAPEDRIVE="/dev/nrmt0"
PTHREAD_LIB="-pthread"
CFLAGS="${CFLAGS} -pthread"
- PSCMD="ps -x -o pid,command"
+ PSCMD="ps -ax -o pid,command"
lld="qd"
llu="qu"
PFILES="${PFILES} \
platforms/bsdi/bacula-fd \
platforms/bsdi/bacula-sd \
platforms/bsdi/bacula-dir"
- hostname=`hostname -s`
largefile_support="yes"
;;
cygwin)
DISTVER=`uname -r`
TAPEDRIVE="/dev/nst0"
PSCMD="ps -e -o pid,command"
- hostname=`hostname -s`
+ MACOSX=macosx
PFILES="${PFILES} \
platforms/darwin/Makefile"
;;
DISTVER=`cat /etc/debian_version`
TAPEDRIVE="/dev/nrst0"
PSCMD="ps -e -o pid,command"
- hostname=`hostname -s`
;;
freebsd)
DISTVER=`uname -a |awk '{print $3}'`
lld="qd"
llu="qu"
TAPEDRIVE="/dev/nrsa0"
- PSCMD="ps -x -o pid,command"
+ PSCMD="ps -ax -o pid,command"
PFILES="${PFILES} \
platforms/freebsd/Makefile \
platforms/freebsd/bacula-fd \
platforms/freebsd/bacula-sd \
platforms/freebsd/bacula-dir"
- hostname=`hostname -s`
largefile_support="yes"
;;
hpux)
+ 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"
+ AC_DEFINE([_INCLUDE_LONGLONG])
;;
irix)
DISTVER=`uname -r`
lld="qd"
llu="qu"
TAPEDRIVE="/dev/nrst0"
- PSCMD="ps -a -o pid,command"
+ PSCMD="ps -ax -o pid,command"
PTHREAD_LIB="-pthread"
CFLAGS="${CFLAGS} -pthread"
;;
lld="qd"
llu="qu"
TAPEDRIVE="/dev/nrst0"
- PSCMD="ps -a -o pid,command"
+ PSCMD="ps -ax -o pid,command"
PTHREAD_LIB="-pthread"
CFLAGS="${CFLAGS} -pthread"
PFILES="${PFILES} \
platforms/openbsd/bacula-dir"
;;
redhat)
- DISTVER=`cat /etc/redhat-release | grep release |\
- cut -f 5 -d ' '`
+ if test -f /etc/whitebox-release ; then
+ f=/etc/whitebox-release
+ else
+ f=/etc/redhat-release
+ fi
+ if test `cat $f | grep release |\
+ cut -f 3 -d ' '`x = "Enterprise"x ; then
+ DISTVER="Enterprise "`cat $f | grep release |\
+ cut -f 6 -d ' '`
+ else
+ DISTVER=`cat /etc/redhat-release | grep release |\
+ cut -f 5 -d ' '`
+ fi
TAPEDRIVE="/dev/nst0"
PSCMD="ps -e -o pid,command"
PFILES="${PFILES} \
platforms/mandrake/bacula-dir \
platforms/mandrake/bacula.spec \
"
- hostname=`hostname -s`
;;
gentoo)
DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
PSCMD="ps -e -o pid,command"
PFILES="${PFILES} \
platforms/gentoo/Makefile \
+ platforms/gentoo/bacula-init \
platforms/gentoo/bacula-fd \
platforms/gentoo/bacula-sd \
platforms/gentoo/bacula-dir"
- hostname=`hostname -s`
;;
-
slackware)
DISTVER=`cat /etc/slackware-version`
TAPEDRIVE="/dev/nst0"
PSCMD="ps -e -o pid,command"
- hostname=`hostname -s`
+ PFILES="${PFILES} \
+ platforms/slackware/Makefile \
+ platforms/slackware/rc.bacula-fd \
+ platforms/slackware/rc.bacula-sd \
+ platforms/slackware/rc.bacula-dir\
+ platforms/slackware/functions.bacula"
;;
solaris)
DISTVER=`uname -r`
if test x$DISTVER = x5.6 ; then
AC_DEFINE(HAVE_OLD_SOCKOPT)
fi
+ LIBS="$LIBS -lresolv"
;;
suse)
DISTVER=`cat /etc/SuSE-release |grep VERSION|\
cut -f 3 -d ' '`
TAPEDRIVE="/dev/nst0"
PSCMD="ps -e -o pid,command"
- hostname=`hostname -s`
+ PFILES="${PFILES} \
+ platforms/suse/Makefile \
+ platforms/suse/bacula-fd \
+ platforms/suse/bacula-sd \
+ platforms/suse/bacula-dir \
+ platforms/suse/bacula \
+ platforms/suse/bacula.spec"
;;
suse5)
DISTNAME=suse
DISTVER=5.x
TAPEDRIVE="/dev/nst0"
PSCMD="ps -e -o pid,command"
- hostname=`hostname -s`
+ PFILES="${PFILES} \
+ platforms/suse/Makefile \
+ platforms/suse/bacula-fd \
+ platforms/suse/bacula-sd \
+ platforms/suse/bacula-dir"
;;
unknown)
DISTVER=unknown
AC_SUBST(TAPEDRIVE)
AC_SUBST(PSCMD)
AC_SUBST(WIN32)
+AC_SUBST(MACOSX)
AC_SUBST(DISTNAME)
AC_SUBST(DISTVER)
AC_OUTPUT([autoconf/Make.common \
Makefile \
- rescue/Makefile \
- rescue/linux/Makefile \
- rescue/freebsd/Makefile \
- rescue/solaris/Makefile \
scripts/startmysql \
scripts/stopmysql \
scripts/btraceback \
scripts/startit \
scripts/stopit \
- scripts/console \
+ scripts/bconsole \
scripts/gconsole \
scripts/bacula \
- scripts/fd \
+ scripts/devel_bacula \
scripts/Makefile \
scripts/logrotate \
scripts/bacula.desktop.gnome1 \
scripts/bacula.desktop.gnome2 \
+ scripts/bacula.desktop.gnome1.consolehelper \
+ scripts/bacula.desktop.gnome2.consolehelper \
+ scripts/bacula.desktop.gnome1.xsu \
+ scripts/bacula.desktop.gnome2.xsu \
+ scripts/gnome-console.console_apps \
scripts/mtx-changer \
- doc/Makefile \
+ scripts/dvd-writepart \
+ scripts/dvd-freespace \
+ scripts/bacula-tray-monitor.desktop \
+ scripts/logwatch/Makefile \
+ scripts/logwatch/logfile.bacula.conf \
src/Makefile \
src/host.h \
src/console/Makefile \
- src/console/console.conf \
+ src/console/bconsole.conf \
src/gnome-console/Makefile \
src/gnome-console/gnome-console.conf \
src/gnome2-console/Makefile \
src/gnome2-console/gnome-console.conf \
- src/tconsole/Makefile \
+ src/wx-console/Makefile \
+ src/wx-console/wx-console.conf \
+ src/tray-monitor/Makefile \
+ src/tray-monitor/tray-monitor.conf \
src/dird/Makefile \
src/dird/bacula-dir.conf \
src/lib/Makefile \
src/cats/Makefile \
src/cats/make_catalog_backup \
src/cats/delete_catalog_backup \
- src/cats/alter_mysql_tables \
- src/cats/make_mysql_tables \
- src/cats/drop_mysql_tables \
+ src/cats/create_postgresql_database \
+ src/cats/update_postgresql_tables \
+ src/cats/make_postgresql_tables \
+ src/cats/grant_postgresql_privileges \
+ src/cats/drop_postgresql_tables \
+ src/cats/drop_postgresql_database \
src/cats/create_mysql_database \
+ src/cats/update_mysql_tables \
+ src/cats/make_mysql_tables \
src/cats/grant_mysql_privileges \
- src/cats/alter_sqlite_tables \
+ src/cats/drop_mysql_tables \
+ src/cats/drop_mysql_database \
+ src/cats/create_sqlite_database \
+ src/cats/update_sqlite_tables \
src/cats/make_sqlite_tables \
+ src/cats/grant_sqlite_privileges \
src/cats/drop_sqlite_tables \
- src/cats/create_sqlite_database \
+ src/cats/drop_sqlite_database \
+ src/cats/create_sqlite3_database \
+ src/cats/update_sqlite3_tables \
+ src/cats/make_sqlite3_tables \
+ src/cats/grant_sqlite3_privileges \
+ src/cats/drop_sqlite3_tables \
+ src/cats/drop_sqlite3_database \
src/cats/sqlite \
src/cats/mysql \
src/cats/create_bdb_database \
+ src/cats/update_bdb_tables \
src/cats/make_bdb_tables \
+ src/cats/grant_bdb_privileges \
src/cats/drop_bdb_tables \
+ src/cats/drop_bdb_database \
+ src/cats/create_bacula_database \
+ src/cats/update_bacula_tables \
+ src/cats/grant_bacula_privileges \
src/cats/make_bacula_tables \
src/cats/drop_bacula_tables \
+ 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 \
+ src/bimagemgr/Makefile \
+ src/bimagemgr/bacula-bimagemgr.spec \
$PFILES ],
- [(echo "Doing make of dependencies"; make depend;) ]
+ [(echo "Doing make of dependencies"; ${MAKE:-make} depend;) ]
)
cd scripts
chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
-chmod 755 console gconsole mtx-changer
+chmod 755 dvd-writepart dvd-freespace
+chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
cd ..
-chmod 755 src/cats/make_mysql_tables src/cats/drop_mysql_tables
-chmod 755 src/cats/make_test_tables src/cats/drop_test_tables
-chmod 755 src/cats/create_mysql_database
-chmod 755 src/cats/make_catalog_backup src/cats/delete_catalog_backup
-chmod 755 src/cats/alter_mysql_tables
-chmod 755 src/cats/grant_mysql_privileges
-chmod 755 src/cats/make_sqlite_tables src/cats/drop_sqlite_tables
-chmod 755 src/cats/make_bacula_tables src/cats/drop_bacula_tables
-chmod 755 src/cats/create_sqlite_database
-chmod 755 src/cats/alter_sqlite_tables
-chmod 755 src/cats/sqlite
-chmod 755 src/cats/make_bdb_tables src/cats/drop_bdb_tables
-chmod 755 src/cats/create_bdb_database
+
+c=src/cats
+
+chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
+chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
+
+chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
+chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
+
+chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
+chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
+
+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_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
+chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
+
+chmod 755 $c/make_catalog_backup $c/delete_catalog_backup
+chmod 755 $c/sqlite
+chmod 755 $c/mysql
if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
largefile_support="yes"
echo "You have set --sbindir and --with-subsys-dir"
echo " both equal to: ${subsysdir} "
echo " This is not permitted. Please reconfigure."
+ echo " "
echo "Aborting configuration ..."
echo " "
echo " "
exit 1
fi
+if test "x${db_name}" = "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 " This is not permitted. Please reconfigure."
+ echo " "
+ echo "Aborting the configuration ..."
+ echo " "
+ echo " "
+ exit 1
+fi
+
echo "
Configuration on `date`:
Working directory: ${working_dir}
PID directory: ${piddir}
Subsys directory: ${subsysdir}
+ Man directory: ${mandir}
C Compiler: ${CC} ${CCVERSION}
C++ Compiler: ${CXX} ${CXXVERSION}
Compiler flags: ${WCFLAGS} ${CFLAGS}
Traceback Email: ${dump_email}
SMTP Host Address: ${smtp_host}
- Director Port: ${dir_port}
+ Director Port: ${dir_port}
File daemon Port: ${fd_port}
Storage daemon Port: ${sd_port}
- Director User: ${dir_user}
- Director Group: ${dir_group}
- Storage Daemon User: ${dir_user}
- Storage DaemonGroup: ${dir_group}
- File Daemon User: ${dir_user}
- File Daemon Group: ${dir_group}
+ Director User: ${dir_user}
+ Director Group: ${dir_group}
+ Storage Daemon User: ${sd_user}
+ Storage DaemonGroup: ${sd_group}
+ File Daemon User: ${fd_user}
+ File Daemon Group: ${fd_group}
SQL binaries Directory ${SQL_BINDIR}
Large file support: $largefile_support
+ Bacula conio support: ${got_conio} ${CONS_LIBS}
readline support: ${got_readline} ${PRTREADLINE_SRC}
TCP Wrappers support: ${TCPW_MSG}
+ TLS support: ${support_tls}
ZLIB support: ${have_zlib}
enable-smartalloc: ${support_smartalloc}
- enable-gnome: ${support_gnome}
+ enable-gnome: ${support_gnome} ${gnome_version}
+ enable-wx-console: ${support_wx_console} ${wx_version}
+ enable-tray-monitor: ${support_tray_monitor}
client-only: ${build_client_only}
+ ACL support: ${have_acl}
+ Python support: ${support_python} ${PYTHON_LIBS}
" > config.out
cat config.out
-
-# old stuff
-# cweb support: ${got_cweb} ${CWEB_SRC}
-# gmp support: ${got_gmp} ${GMP_SRC}