3 dnl Process this file with autoconf to produce a configure script.
5 dnl require a recent autoconf
14 AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)
15 AC_CONFIG_HEADERS(src/config.h:autoconf/config.h.in)
17 dnl minimal Win32 stuff for "make clean"
18 WIN32BUILDDIR=${BUILD_DIR}/src/win32
19 WIN32MAINDIR=${BUILD_DIR}
20 WIN32TOPDIR=${TOP_DIR}
21 AC_SUBST(WIN32BUILDDIR)
22 AC_SUBST(WIN32MAINDIR)
25 dnl search for true and false programs.
26 AC_PATH_PROGS(TRUEPRG, true, :)
27 AC_PATH_PROGS(FALSEPRG, false, :)
32 if test "x$BACULA" != x; then
33 post_host=`echo -${BACULA} | tr 'A-Z ' 'a-z-'`
35 BACULA=${BACULA:-Bacula}
36 VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
37 DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
38 LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
43 AC_SUBST(post_host)dnl
46 LIBBAC_LT_CURRENT=`sed -n -e 's/^.*LIBBAC_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
47 LIBBAC_LT_REVISION=`sed -n -e 's/^.*LIBBAC_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
48 LIBBAC_LT_AGE=`sed -n -e 's/^.*LIBBAC_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
49 LIBBACCFG_LT_CURRENT=`sed -n -e 's/^.*LIBBACCFG_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
50 LIBBACCFG_LT_REVISION=`sed -n -e 's/^.*LIBBACCFG_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
51 LIBBACCFG_LT_AGE=`sed -n -e 's/^.*LIBBACCFG_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
52 LIBBACPY_LT_CURRENT=`sed -n -e 's/^.*LIBBACPY_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
53 LIBBACPY_LT_REVISION=`sed -n -e 's/^.*LIBBACPY_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
54 LIBBACPY_LT_AGE=`sed -n -e 's/^.*LIBBACPY_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
56 AC_SUBST(LIBBAC_LT_CURRENT)dnl
57 AC_SUBST(LIBBAC_LT_REVISION)dnl
58 AC_SUBST(LIBBAC_LT_AGE)dnl
59 AC_SUBST(LIBBACCFG_LT_CURRENT)dnl
60 AC_SUBST(LIBBACCFG_LT_REVISION)dnl
61 AC_SUBST(LIBBACCFG_LT_AGE)dnl
62 AC_SUBST(LIBBACPY_LT_CURRENT)dnl
63 AC_SUBST(LIBBACPY_LT_REVISION)dnl
64 AC_SUBST(LIBBACPY_LT_AGE)dnl
67 LIBBACSQL_LT_CURRENT=`sed -n -e 's/^.*LIBBACSQL_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
68 LIBBACSQL_LT_REVISION=`sed -n -e 's/^.*LIBBACSQL_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
69 LIBBACSQL_LT_AGE=`sed -n -e 's/^.*LIBBACSQL_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
70 AC_SUBST(LIBBACSQL_LT_CURRENT)dnl
71 AC_SUBST(LIBBACSQL_LT_REVISION)dnl
72 AC_SUBST(LIBBACSQL_LT_AGE)dnl
75 LIBBACFIND_LT_CURRENT=`sed -n -e 's/^.*LIBBACFIND_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
76 LIBBACFIND_LT_REVISION=`sed -n -e 's/^.*LIBBACFIND_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
77 LIBBACFIND_LT_AGE=`sed -n -e 's/^.*LIBBACFIND_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
78 AC_SUBST(LIBBACFIND_LT_CURRENT)dnl
79 AC_SUBST(LIBBACFIND_LT_REVISION)dnl
80 AC_SUBST(LIBBACFIND_LT_AGE)dnl
82 echo "configuring for ${BACULA} $VERSION ($DATE)"
85 dnl -------------------------------------------------------
86 dnl Check for compiler.
87 dnl ------------------------------------------------------
91 AC_PROG_CC_C_O dnl Determine if C compiler support -c -o.
92 AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional.
96 if test "x$BASECC" = xgcc; then
100 AC_PATH_PROG(CXX, $CXX, $CXX)
101 if test ! -e $CXX; then
102 AC_MSG_ERROR(Unable to find C++ compiler)
105 dnl -------------------------------------------------------
106 dnl Check for programs.
107 dnl ------------------------------------------------------
109 AC_PATH_PROG(MV, mv, mv)
111 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
112 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
113 dnl of strange output of the configure script (like things don't exist etc.).
114 dnl So we name it REMOVE (more software has run into this problem)
115 AC_PATH_PROG(REMOVE, rm, rm)
116 AC_PATH_PROG(CP, cp, cp)
117 AC_PATH_PROG(SED, sed, sed)
118 AC_PATH_PROG(ECHO, echo, echo)
119 AC_PATH_PROG(CMP, cmp, cmp)
120 AC_PATH_PROG(TBL, tbl, tbl)
121 AC_PATH_PROG(AR, ar, ar)
122 AC_PATH_PROG(OPENSSL, openssl, none)
123 AC_PATH_PROG(MTX, mtx, mtx)
124 AC_PATH_PROG(DD, dd, dd)
125 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
126 AC_PATH_PROG(PYTHON, python, python)
127 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
128 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
129 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
130 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
131 AC_PATH_PROG(QMAKE, qmake, none)
132 AC_PATH_PROG(GMAKE, gmake, none)
133 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
134 if test "x$WXCONFIG" = x; then
137 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
138 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
139 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
140 AC_PATH_PROG(PIDOF, pidof, pidof)
142 # Some AWK programs fail, so test it and warn the user
143 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
144 { if ((prog == $2) || (("(" prog ")") == $2) ||
145 (("[" prog "]") == $2) ||
146 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
148 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
149 The regex engine of $AWK is too broken to be used you
150 might want to install GNU AWK.
151 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
154 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
157 test -n "$ARFLAG" || ARFLAGS="cr"
164 AC_SUBST(LOCAL_CFLAGS)
165 AC_SUBST(LOCAL_LDFLAGS)
168 dnl --------------------------------------------------
170 dnl --------------------------------------------------
172 AC_ARG_ENABLE(libtool,
173 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
175 if test x$enableval = xno; then
180 LT_INIT([shared disable-static])
183 if test x$use_libtool != xno; then
184 DEFAULT_OBJECT_TYPE=".lo"
185 DEFAULT_ARCHIVE_TYPE=".la"
186 DEFAULT_SHARED_OBJECT_TYPE=".la"
187 LIBTOOL="\$(LIBTOOL)"
188 LIBTOOL_INSTALL_TARGET="libtool-install"
189 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
190 LIBTOOL_CLEAN_TARGET="libtool-clean"
191 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
192 FD_PLUGIN_DIR="src/plugins/fd"
195 DEFAULT_OBJECT_TYPE=".o"
196 DEFAULT_ARCHIVE_TYPE=".a"
197 DEFAULT_SHARED_OBJECT_TYPE=".so"
198 LIBTOOL="# \$(LIBTOOL)"
199 LIBTOOL_INSTALL_TARGET=""
200 LIBTOOL_UNINSTALL_TARGET=""
201 LIBTOOL_CLEAN_TARGET=""
202 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
207 AC_SUBST(DEFAULT_OBJECT_TYPE)
208 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
209 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
211 AC_SUBST(LIBTOOL_INSTALL_TARGET)
212 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
213 AC_SUBST(LIBTOOL_CLEAN_TARGET)
214 AC_SUBST(QMAKE_LIBTOOL)
215 AC_SUBST(FD_PLUGIN_DIR)
217 dnl --------------------------------------------------
218 dnl Include file handling
219 dnl --------------------------------------------------
220 AC_ARG_ENABLE(includes,
221 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
223 if test x$enableval = xyes; then
229 dnl It only makes sense to install include files when you install libraries which only happens when
230 dnl libtool is enabled
232 if test x$use_libtool != xno -a x$install_includes = xyes; then
233 INCLUDE_INSTALL_TARGET="install-includes"
234 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
236 INCLUDE_INSTALL_TARGET=""
237 INCLUDE_UNINSTALL_TARGET=""
239 AC_SUBST(INCLUDE_INSTALL_TARGET)
240 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
242 dnl --------------------------------------------------
243 dnl Bacula OP Sys determination (see aclocal.m4)
244 dnl --------------------------------------------------
247 dnl -----------------------------------------------------------
248 dnl Bacula OPSys Distribution determination (see aclocal.m4)
249 dnl ----------------------------------------------------------
250 BA_CHECK_OPSYS_DISTNAME
252 dnl --------------------------------------------------
253 dnl Suppport for gettext (translations)
254 dnl By default, $datarootdir is ${prefix}/share
255 dnl --------------------------------------------------
256 AM_GNU_GETTEXT([external])
258 dnl ------------------------------------------------------------------
259 dnl If the user has not set --prefix, we set our default to nothing.
260 dnl In this case, if the user has not set --sysconfdir, we set it
261 dnl to the package default of /etc/bacula. If either --prefix or
262 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
263 dnl If the user has not set --libdir, we set it to the package
264 dnl default of /usr/lib. If either --prefix or --libdir is set,
265 dnl we leave libdir alone except to eval it. If the user has not set
266 dnl --includedir, we set it to the package default of /usr/include.
267 dnl If either --prefix or --includedir is set, we leave includedir
268 dnl alone except to eval it
269 dnl ------------------------------------------------------------------
270 os_name=`uname -s 2>/dev/null`
271 if test x${prefix} = xNONE ; then
272 if test `eval echo ${sysconfdir}` = NONE/etc ; then
273 sysconfdir=/etc/bacula
276 if test `eval echo ${libdir}` = NONE/lib ; then
279 os_processor=`uname -p 2>/dev/null`
280 case ${os_processor} in
295 if test `eval echo ${includedir}` = NONE/include ; then
296 includedir=/usr/include
299 if test `eval echo ${datarootdir}` = NONE/share ; then
300 datarootdir=/usr/share
305 dnl -------------------------------------------------------------------------
306 dnl If the user has not set --exec-prefix, we default to ${prefix}
307 dnl -------------------------------------------------------------------------
308 if test x${exec_prefix} = xNONE ; then
309 exec_prefix=${prefix}
312 sysconfdir=`eval echo ${sysconfdir}`
313 datarootdir=`eval echo ${datarootdir}`
314 docdir=`eval echo ${docdir}`
315 htmldir=`eval echo ${htmldir}`
316 libdir=`eval echo ${libdir}`
317 includedir=`eval echo ${includedir}`
318 localedir=`eval echo ${datarootdir}/locale`
319 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
320 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
322 dnl ------------------------------------------------------------------
323 dnl If the user has not set --sbindir, we set our default as /sbin
324 dnl ------------------------------------------------------------------
325 if test x$sbindir = x'${exec_prefix}/sbin' ; then
326 sbindir=${exec_prefix}/sbin
328 sbindir=`eval echo ${sbindir}`
330 dnl -------------------------------------------------------------------------
331 dnl If the user has not set --mandir, we default to /usr/share/man
332 dnl -------------------------------------------------------------------------
333 if test x$mandir = x'${prefix}/man' ; then
334 mandir=/usr/share/man
337 dnl -------------------------------------------------------------------------
338 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
339 dnl -------------------------------------------------------------------------
340 if test x$htmldir = x${docdir} ; then
341 htmldir=`eval echo ${docdir}bacula/html`
344 dnl -------------------------------------------------------------------------
345 dnl If the user has not set --docdir, we default to /usr/share/doc/
346 dnl -------------------------------------------------------------------------
347 if test x$docdir = x'/usr/share/doc/' ; then
348 docdir=`eval echo ${docdir}bacula`
352 AC_PATH_PROGS(MSGFMT, msgfmt, no)
353 if test "$MSGFMT" = "no"
355 echo 'msgfmt program not found, disabling NLS !'
357 USE_INCLUDED_LIBINTL=no
365 support_postgresql=no
368 support_smartalloc=yes
373 support_wx_console=no
374 support_tray_monitor=no
379 support_static_tools=no
382 support_static_dir=no
383 support_static_cons=no
393 dnl --------------------------------------------------------------------------
394 dnl CHECKING COMMAND LINE OPTIONS
395 dnl --------------------------------------------------------------------------
397 dnl -------------------------------------------
398 dnl gnome (default off)
399 dnl -------------------------------------------
401 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
403 if test x$enableval = xyes; then
410 if test x$support_gnome = xyes; then
411 AC_MSG_ERROR(bgnome-console no longer supported)
412 AC_MSG_ERROR(--enable-gnome option no longer supported)
414 # AC_SUBST(GNOME_DIR)
416 dnl -------------------------------------------
417 dnl bat (default off)
418 dnl -------------------------------------------
420 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
422 if test x$enableval = xyes; then
423 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
430 if test x$support_bat = xyes; then
431 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
433 if test $pkg = 0; then
434 BAT_DIR=src/qt-console
436 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
441 dnl The qwt library was used with bat, but that is no longer the case
449 dnl if test x$support_bat = xyes; then
450 dnl AC_MSG_CHECKING(for qwt support)
452 dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
454 dnl case "$with_qwt" in
459 dnl if test -f ${with_qwt}/include/qwt.h; then
460 dnl QWT_INC="${with_qwt}/include"
461 dnl QWT_LDFLAGS="-L${with_qwt}/lib"
471 dnl dnl Search in standard places, or --with-qwt not specified
473 dnl if test $no_qwt = no; then
474 dnl if test x$QWT_INC = x; then
475 dnl for root in /usr /usr/local; do
476 dnl for ver in qwt qwt5 qwt-qt4; do
477 dnl if test -f ${root}/include/${ver}/qwt.h; then
478 dnl QWT_INC="${root}/include/${ver}"
479 dnl if test -d ${root}/lib64/; then
480 dnl QWT_LDFLAGS="-L${root}/lib64"
481 dnl elif test -d ${root}/lib/64/; then
482 dnl QWT_LDFLAGS="-L${root}/64"
484 dnl QWT_LDFLAGS="-L${root}/lib"
495 dnl if test x$QWT_INC = x; then
496 dnl AC_MSG_RESULT(no)
498 dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
499 dnl AC_MSG_RESULT(yes)
505 AC_SUBST(QWT_LDFLAGS)
509 dnl -------------------------------------------
510 dnl bwx-console (default off)
511 dnl -------------------------------------------
512 AC_ARG_ENABLE(bwx-console,
513 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
515 if test x$enableval = xyes; then
516 support_wx_console=yes
522 if test x$support_wx_console = xyes; then
523 abc=`$WXCONFIG $WXFLAGS --cppflags`
525 if test $pkg = 0; then
526 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
527 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
528 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
530 AC_SUBST(WXCONS_CPPFLAGS)
531 AC_SUBST(WXCONS_LDFLAGS)
532 WX_DIR="src/wx-console"
535 echo "wx-config program not found. bwx-console disabled."
537 support_wx_console=no
542 dnl -------------------------------------------
543 dnl tray-monitor (default off)
544 dnl -------------------------------------------
545 AC_ARG_ENABLE(tray-monitor,
546 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
548 if test x$enableval = xyes; then
549 support_tray_monitor=yes
555 if test x$support_tray_monitor = xyes; then
556 abc=`$PKGCONFIG --exists gtk+-2.0`
558 if test $pkg = 0; then
559 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
560 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
561 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
562 AC_SUBST(TRAY_MONITOR_LDFLAGS)
563 TRAY_MONITOR_DIR=src/tray-monitor
564 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
566 if test $pkg = 0; then
567 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
571 AC_SUBST(TRAY_MONITOR_DIR)
573 dnl -------------------------------------------
574 dnl smartalloc (default off)
575 dnl -------------------------------------------
576 AC_ARG_ENABLE(smartalloc,
577 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
579 if test x$enableval = xno; then
580 support_smartalloc=no
585 if test x$support_smartalloc = xyes; then
586 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
589 dnl -------------------------------------------
590 dnl Lock Manager (default off)
591 dnl -------------------------------------------
592 AC_ARG_ENABLE(lockmgr,
593 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
595 if test x$enableval = xyes; then
601 if test x$support_lockmgr = xyes; then
602 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
606 dnl -------------------------------------------
607 dnl static-tools (default off)
608 dnl -------------------------------------------
609 AC_ARG_ENABLE(static-tools,
610 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
612 if test x$enableval = xyes; then
613 if test x$use_libtool = xyes; then
614 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
615 please rerun configure with --disable-libtool])
617 support_static_tools=yes
623 if test x$support_static_tools = xyes; then
624 TTOOL_LDFLAGS="-static"
626 AC_SUBST(TTOOL_LDFLAGS)
628 dnl -------------------------------------------
629 dnl static-fd (default off)
630 dnl -------------------------------------------
631 AC_ARG_ENABLE(static-fd,
632 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
634 if test x$enableval = xyes; then
635 if test x$use_libtool = xyes; then
636 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
637 please rerun configure with --disable-libtool])
639 support_static_fd=yes
645 if test x$support_static_fd = xyes; then
646 STATIC_FD="static-bacula-fd"
650 dnl -------------------------------------------
651 dnl static-sd (default off)
652 dnl -------------------------------------------
653 AC_ARG_ENABLE(static-sd,
654 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
656 if test x$enableval = xyes; then
657 if test x$use_libtool = xyes; then
658 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
659 please rerun configure with --disable-libtool])
661 support_static_sd=yes
667 if test x$support_static_sd = xyes; then
668 STATIC_SD="static-bacula-sd"
672 dnl -------------------------------------------
673 dnl static-dir (default off)
674 dnl -------------------------------------------
675 AC_ARG_ENABLE(static-dir,
676 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
678 if test x$enableval = xyes; then
679 if test x$use_libtool = xyes; then
680 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
681 please rerun configure with --disable-libtool])
683 support_static_dir=yes
689 if test x$support_static_dir = xyes; then
690 STATIC_DIR="static-bacula-dir"
694 dnl -------------------------------------------
695 dnl static-cons (default off)
696 dnl -------------------------------------------
697 AC_ARG_ENABLE(static-cons,
698 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
700 if test x$enableval = xyes; then
701 if test x$use_libtool = xyes; then
702 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
703 please rerun configure with --disable-libtool])
705 support_static_cons=yes
713 if test x$support_static_cons = xyes; then
714 STATIC_CONS="static-bconsole"
715 STATIC_GNOME_CONS="static-bgnome-console"
716 STATIC_WX_CONS="static-bwx-console"
718 AC_SUBST(STATIC_CONS)
719 AC_SUBST(STATIC_GNOME_CONS)
720 AC_SUBST(STATIC_WX_CONS)
722 dnl -------------------------------------------
723 dnl client_only (default off)
724 dnl -------------------------------------------
725 AC_ARG_ENABLE(client-only,
726 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
728 if test x$enableval = xyes; then
729 build_client_only=yes
735 if test x$build_client_only = xno; then
742 dnl -------------------------------------------
743 dnl director (default on)
744 dnl -------------------------------------------
745 AC_ARG_ENABLE(build-dird,
746 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
748 if test x$enableval = xno; then
753 if test x$build_dird = xyes; then
758 DIR_TOOLS="NODIRTOOLS"
763 dnl -------------------------------------------
764 dnl stored (default on)
765 dnl -------------------------------------------
766 AC_ARG_ENABLE(build-stored,
767 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
769 if test x$enableval = xno; then
774 if test x$build_stored = xyes; then
775 STORED_DIR="src/stored"
781 dnl ---------------------------------------------------
782 dnl Check for conio (Bacula readline substitute)(
783 dnl ---------------------------------------------------
784 dnl this allows you to turn it completely off
786 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
788 if test x$enableval = xno; then
795 dnl ---------------------------------------------------
796 dnl Check for IPv6 support
797 dnl ---------------------------------------------------
798 dnl this allows you to turn it completely off
801 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
803 if test x$enableval = xno; then
809 if test x$support_ipv6 = xyes; then
810 AC_TRY_LINK([ #include <sys/types.h>
811 #include <sys/socket.h>
812 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
813 [support_ipv6=yes], [support_ipv6=no])
816 if test x$support_ipv6 = xyes; then
817 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
821 AC_CHECK_HEADER(curses.h,
822 [ AC_CHECK_LIB(ncurses, tgetent,
823 [ TERM_LIB="-lncurses" ],
824 [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
827 [ AC_CHECK_HEADERS(curses.h)
828 AC_CHECK_HEADER(term.h,
829 [ AC_CHECK_LIB(curses, tgetent,
830 [ TERM_LIB="-lcurses" ] )
836 if test x$support_conio = xyes; then
837 if test x$TERM_LIB != x; then
843 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
845 echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
850 dnl ---------------------------------------------------
851 dnl Check for readline support/directory (default off)
852 dnl ---------------------------------------------------
853 dnl this allows you to turn it completely off
854 AC_ARG_ENABLE(readline,
855 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
857 if test x$enableval = xno; then
862 if test x$TERM_LIB = x ; then
868 if test x$support_readline = xyes; then
869 AC_ARG_WITH(readline,
870 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
872 case "$with_readline" in
877 if test -f ${with_readline}/readline.h; then
878 CONS_INC="-I${with_readline}"
879 CONS_LDFLAGS="-L$with_readline"
880 elif test -f ${with_readline}/include/readline/readline.h; then
881 CONS_INC="-I${with_readline}/include/readline"
882 CONS_LDFLAGS="-L${with_readline}/lib"
883 with_readline="${with_readline}/include/readline"
885 with_readline="/usr/include/readline"
888 AC_CHECK_HEADER(${with_readline}/readline.h,
890 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
891 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
895 echo "readline.h not found. readline turned off ..."
902 dnl check for standard readline library
903 AC_CHECK_HEADER(/usr/include/readline/readline.h,
905 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
907 CONS_INC="-I/usr/include/readline"
908 CONS_LIBS="-lreadline $TERM_LIB"
910 dnl Did not find standard library, so try Bacula's default
911 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
913 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
915 CONS_INC="-I${TOP_DIR}/depkgs/readline"
916 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
917 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
918 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
921 echo "readline.h not found. readline turned off ..."
935 AC_SUBST(CONS_LDFLAGS)
936 AC_SUBST(READLINE_SRC)
938 dnl Minimal stuff for readline Makefile configuration
943 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
944 AC_CHECK_FUNCS(nanosleep nl_langinfo)
945 AC_CHECK_HEADERS(varargs.h)
947 dnl End of readline/conio stuff
948 dnl -----------------------------------------------------------------------
950 dnl -----------------------------------------------------------------------
951 dnl Check for Python support
953 AC_MSG_CHECKING(for Python support)
955 AC_HELP_STRING([--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.]),
959 if test "$withval" != "no"; then
960 if test "$withval" = "yes"; then
961 if test -e /usr/bin/python-config ; then
962 PYTHON_INCDIR=`/usr/bin/python-config --includes`
963 PYTHON_LIBS=`/usr/bin/python-config --libs`
965 for python_root in /usr /usr/local /usr/sfw; do
966 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
967 if test -f $python_root/include/${ver}/Python.h; then
968 PYTHON_INCDIR=-I$python_root/include/${ver}
969 if test -d $python_root/lib64/${ver}/config; then
970 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
972 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
979 if test x$PYTHON_INCDIR = x; then
980 if test -f $prefix/include/Python.h; then
981 PYTHON_INCDIR=-I$prefix/include
982 if test -d $prefix/lib64/config; then
983 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
985 PYTHON_LIBS="-L$prefix/lib/config -lpython"
989 AC_MSG_ERROR(Unable to find Python.h in standard locations)
994 if test -e $withval/bin/python-config ; then
995 PYTHON_INCDIR=`$withval/bin/python-config --includes`
996 PYTHON_LIBS=`$withval/bin/python-config --libs`
997 elif test -f $withval/Python.h; then
998 PYTHON_INCDIR=-I$withval
999 PYTHON_LIBS="-L$withval/config -lpython"
1000 elif test -f $withval/include/Python.h; then
1001 PYTHON_INCDIR=-I$withval/include
1002 if test -d $withval/lib64/config; then
1003 PYTHON_LIBS="-L$withval/lib64/config -lpython"
1005 PYTHON_LIBS="-L$withval/lib/config -lpython"
1007 elif test -f $withval/include/python/Python.h; then
1008 PYTHON_INCDIR=-I$withval/include/python
1009 if test -d $withval/lib64/python/config; then
1010 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1012 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1016 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1020 AC_DEFINE([HAVE_PYTHON], 1)
1023 AC_MSG_NOTICE(checking for more Python libs)
1024 saved_LIBS="$LIBS"; LIBS=
1025 AC_SEARCH_LIBS(shm_open, [rt])
1026 AC_CHECK_LIB(util, openpty)
1027 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1036 AC_SUBST(PYTHON_LIBS)
1037 AC_SUBST(PYTHON_INCDIR)
1040 dnl Find where sockets are (especially for Solaris)
1041 dnl Do this before the TCP Wrappers test since tcp wrappers
1042 dnl uses the socket library and some linkers are stupid.
1044 AC_CHECK_FUNC(socket,
1045 AC_MSG_RESULT(using libc's socket),
1046 AC_CHECK_LIB(xnet,socket)
1047 AC_CHECK_LIB(socket,socket)
1048 AC_CHECK_LIB(inet,socket))
1050 dnl -----------------------------------------------------------
1051 dnl Check whether user wants TCP wrappers support (default off)
1052 dnl -----------------------------------------------------------
1055 AC_ARG_WITH(tcp-wrappers,
1056 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1058 if test "x$withval" != "xno" ; then
1060 LIBS="$saved_LIBS -lwrap"
1061 AC_SEARCH_LIBS(nanosleep, [rt])
1062 AC_MSG_CHECKING(for libwrap)
1065 #include <sys/types.h>
1067 int deny_severity = 0;
1068 int allow_severity = 0;
1069 struct request_info *req;
1074 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1079 LIBS="$saved_LIBS -lwrap -lnsl"
1080 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1083 #include <sys/types.h>
1085 int deny_severity = 0;
1086 int allow_severity = 0;
1087 struct request_info *req;
1092 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1097 AC_MSG_ERROR([*** libwrap missing])
1106 dnl -----------------------------------------------------------
1107 dnl Check whether OpenSSL is available
1108 dnl -----------------------------------------------------------
1109 AC_MSG_CHECKING([for OpenSSL])
1110 dnl The following uses quadrigraphs:
1113 AC_ARG_WITH(openssl,
1114 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1116 with_openssl_directory=${withval}
1120 if test "x$with_openssl_directory" != "xno"; then
1121 OPENSSL_LIBS="-lssl -lcrypto"
1124 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1126 # Make sure the $with_openssl_directory also makes sense
1128 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1129 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1130 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1134 saved_LIBS="${LIBS}"
1135 saved_CFLAGS="${CFLAGS}"
1136 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1137 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1141 #include <openssl/ssl.h>
1143 CRYPTO_set_id_callback(NULL);
1146 support_crypto="yes"
1155 #include <openssl/evp.h>
1159 ac_cv_openssl_sha2="yes"
1161 ac_cv_openssl_sha2="no"
1165 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1166 dnl implementation, presumably for export reasons. If 192bit AES
1167 dnl is available, we assume that we're running with a 'non-export'
1168 dnl openssl library.
1171 #include <openssl/evp.h>
1175 ac_cv_openssl_export="no"
1177 ac_cv_openssl_export="yes"
1181 LIBS="${saved_LIBS}"
1182 CFLAGS="${saved_CFLAGS}"
1184 if test "$support_tls" = "yes"; then
1185 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1186 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1187 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1190 if test "$ac_cv_openssl_sha2" = "yes"; then
1191 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1194 if test "$ac_cv_openssl_export" = "yes"; then
1195 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1204 if test "$support_tls" = "no"; then
1208 if test "$support_crypto" = "no"; then
1212 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1215 AC_MSG_RESULT([$support_tls])
1216 AC_SUBST(OPENSSL_LIBS)
1217 AC_SUBST(OPENSSL_INC)
1219 dnl -----------------------------------------------------------
1220 dnl dlopen is needed for plugins
1221 dnl -----------------------------------------------------------
1222 AC_SEARCH_LIBS(dlopen, [dl])
1224 dnl ------------------------------------------
1225 dnl Where to place working dir
1226 dnl ------------------------------------------
1227 working_dir=`eval echo ${prefix}/var/bacula/working`
1228 AC_ARG_WITH(working-dir,
1229 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1231 if test "x$withval" != "xno" ; then
1232 working_dir=$withval
1237 AC_SUBST(working_dir)
1239 dnl ------------------------------------------------------------------
1240 dnl If the user has not set archivedir, we set our default as /tmp
1241 dnl ------------------------------------------------------------------
1243 AC_ARG_WITH(archivedir,
1244 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1246 if test "x$withval" != "xno" ; then
1252 AC_SUBST(archivedir)
1254 dnl ------------------------------------------------------------------
1255 dnl Allow the user to specify the daemon resource name default hostname
1256 dnl ------------------------------------------------------------------
1258 AC_ARG_WITH(basename,
1259 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1261 if test "x$withval" != "xno" ; then
1269 dnl ------------------------------------------------------------------
1270 dnl Allow the user to override the hostname (default = machine hostname)
1271 dnl ------------------------------------------------------------------
1272 hostname=`uname -n | cut -d '.' -f 1`
1273 if test x${hostname} = x ; then
1274 hostname="localhost"
1276 AC_ARG_WITH(hostname,
1277 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1279 if test "x$withval" != "xno" ; then
1288 dnl ------------------------------------------
1289 dnl Where to place scriptdir (script files)
1290 dnl ------------------------------------------
1291 scriptdir=`eval echo ${sysconfdir}`
1292 AC_ARG_WITH(scriptdir,
1293 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1295 if test "x$withval" != "xno" ; then
1304 dnl ------------------------------------------
1305 dnl Where to place bsrdir (bsr files)
1306 dnl ------------------------------------------
1309 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1311 if test "x$withval" != "xno" ; then
1319 dnl ------------------------------------------
1320 dnl Where to place logdir (bsr files)
1321 dnl ------------------------------------------
1324 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1326 if test "x$withval" != "xno" ; then
1335 # ------------------------------------------
1336 # Where to place plugindir (plugin files)
1337 # ------------------------------------------
1338 plugindir=`eval echo ${libdir}`
1339 AC_ARG_WITH(plugindir,
1340 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1342 if test "x$withval" != "xno" ; then
1350 dnl ------------------------------------------
1351 dnl Where to send dump email
1352 dnl ------------------------------------------
1353 dump_email=root@localhost
1354 AC_ARG_WITH(dump-email,
1355 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1357 if test "x$withval" != "xno" ; then
1363 AC_SUBST(dump_email)
1365 dnl ------------------------------------------
1366 dnl Where to send job email
1367 dnl ------------------------------------------
1368 job_email=root@localhost
1369 AC_ARG_WITH(job-email,
1370 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1372 if test "x$withval" != "xno" ; then
1380 dnl ------------------------------------------
1381 dnl Where to find smtp host
1382 dnl ------------------------------------------
1384 AC_ARG_WITH(smtp_host,
1385 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1387 if test "x$withval" != "xno" ; then
1395 dnl ------------------------------------
1396 dnl Where to place pid files
1397 dnl ------------------------------------
1399 AC_ARG_WITH(pid-dir,
1400 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1402 if test "x$withval" != "xno" ; then
1408 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1411 dnl ------------------------------------
1412 dnl Where to place subsys "lock file"
1413 dnl ------------------------------------
1414 subsysdir=/var/run/subsys
1415 if test -d /var/run/subsys; then
1416 subsysdir=/var/run/subsys
1417 elif test -d /var/lock/subsys; then
1418 subsysdir=/var/lock/subsys
1420 subsysdir=/var/run/subsys
1422 AC_ARG_WITH(subsys-dir,
1423 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1425 if test "x$withval" != "xno" ; then
1433 dnl ------------------------------------
1434 dnl Where to start assigning ports
1435 dnl ------------------------------------
1437 AC_ARG_WITH(baseport,
1438 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1440 if test "x$withval" != "xno" ; then
1447 dir_port=`expr $baseport`
1448 fd_port=`expr $baseport + 1`
1449 sd_port=`expr $fd_port + 1`
1455 dnl ------------------------------------------
1456 dnl Generate passwords
1457 dnl ------------------------------------------
1459 AC_ARG_WITH(dir-password,
1460 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1462 if test "x$withval" != "xno" ; then
1463 dir_password=$withval
1468 if test "x$dir_password" = "x" ; then
1469 if test "x$OPENSSL" = "xnone" ; then
1470 key=`autoconf/randpass 33`
1472 key=`openssl rand -base64 33`
1478 AC_ARG_WITH(fd-password,
1479 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1481 if test "x$withval" != "xno" ; then
1482 fd_password=$withval
1487 if test "x$fd_password" = "x" ; then
1488 if test "x$OPENSSL" = "xnone" ; then
1489 key=`autoconf/randpass 37`
1491 key=`openssl rand -base64 33`
1497 AC_ARG_WITH(sd-password,
1498 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1500 if test "x$withval" != "xno" ; then
1501 sd_password=$withval
1506 if test "x$sd_password" = "x" ; then
1507 if test "x$OPENSSL" = "xnone" ; then
1508 key=`autoconf/randpass 41`
1510 key=`openssl rand -base64 33`
1516 AC_ARG_WITH(mon-dir-password,
1517 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1519 if test "x$withval" != "xno" ; then
1520 mon_dir_password=$withval
1525 if test "x$mon_dir_password" = "x" ; then
1526 if test "x$OPENSSL" = "xnone" ; then
1527 key=`autoconf/randpass 33`
1529 key=`openssl rand -base64 33`
1531 mon_dir_password=$key
1535 AC_ARG_WITH(mon-fd-password,
1536 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1538 if test "x$withval" != "xno" ; then
1539 mon_fd_password=$withval
1544 if test "x$mon_fd_password" = "x" ; then
1545 if test "x$OPENSSL" = "xnone" ; then
1546 key=`autoconf/randpass 37`
1548 key=`openssl rand -base64 33`
1550 mon_fd_password=$key
1554 AC_ARG_WITH(mon-sd-password,
1555 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1557 if test "x$withval" != "xno" ; then
1558 mon_sd_password=$withval
1563 if test "x$mon_sd_password" = "x" ; then
1564 if test "x$OPENSSL" = "xnone" ; then
1565 key=`autoconf/randpass 41`
1567 key=`openssl rand -base64 33`
1569 mon_sd_password=$key
1572 AC_SUBST(dir_password)
1573 AC_SUBST(fd_password)
1574 AC_SUBST(sd_password)
1575 AC_SUBST(mon_dir_password)
1576 AC_SUBST(mon_fd_password)
1577 AC_SUBST(mon_sd_password)
1580 dnl Pickup any database name
1583 AC_ARG_WITH(db_name,
1584 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1586 if test "x$withval" != "x" ; then
1594 AC_ARG_WITH(db_user,
1595 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1597 if test "x$withval" != "x" ; then
1605 AC_ARG_WITH(db_password,
1606 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1608 if test "x$withval" != "x" ; then
1609 db_password=$withval
1613 AC_SUBST(db_password)
1616 dnl Pickup a database port
1619 AC_ARG_WITH(db_port,
1620 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1622 if test "x$withval" != "x" ; then
1630 # Handle users and groups for each daemon
1633 AC_ARG_WITH(dir_user,
1634 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1636 if test "x$withval" != "x" ; then
1643 AC_ARG_WITH(dir_group,
1644 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1646 if test "x$withval" != "x" ; then
1653 AC_ARG_WITH(sd_user,
1654 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1656 if test "x$withval" != "x" ; then
1663 AC_ARG_WITH(sd_group,
1664 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1666 if test "x$withval" != "x" ; then
1673 AC_ARG_WITH(fd_user,
1674 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1676 if test "x$withval" != "x" ; then
1683 AC_ARG_WITH(fd_group,
1684 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1686 if test "x$withval" != "x" ; then
1700 dnl allow setting default executable permissions
1703 AC_ARG_WITH(sbin-perm,
1704 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0754@:>@]),
1706 if test "x$withval" != "x" ; then
1714 dnl ------------------------------------------------
1715 dnl Bacula check for various SQL database engines
1716 dnl ------------------------------------------------
1718 BA_CHECK_POSTGRESQL_DB
1726 # BA_CHECK_SQLITE_DB
1735 dnl -------------------------------------------
1736 dnl enable batch attribute DB insert (default on)
1737 dnl -------------------------------------------
1738 support_batch_insert=no
1739 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1741 if test $pkg = 0; then
1742 support_batch_insert=yes
1743 AC_ARG_ENABLE(batch-insert,
1744 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1746 if test x$enableval = xno; then
1747 support_batch_insert=no
1749 support_batch_insert=yes
1755 dnl Check if postgresql can support batch mode
1756 if test x$DB_TYPE = xpostgresql; then
1757 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1758 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1759 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1761 support_batch_insert=no
1765 if test x$DB_TYPE = xdbi; then
1769 dnl Check for batch insert
1770 if test $DB_PROG = postgresql; then
1771 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1772 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1773 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1777 if test $DB_PROG = mysql; then
1778 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1782 if test $DB_PROG = sqlite3; then
1783 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1785 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1788 if test $pkg = 0; then
1789 AC_ARG_ENABLE(batch-insert,
1790 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1792 if test x$enableval = xno; then
1793 support_batch_insert=no
1795 support_batch_insert=yes
1801 dnl If dbi was not chosen, let the comment in file
1805 AC_SUBST(uncomment_dbi)
1807 if test $support_batch_insert = yes ; then
1808 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1811 AC_DEFINE(PROTOTYPES)
1813 dnl --------------------------------------------------------------------------
1814 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1816 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1817 if test -z "$CCOPTS"; then
1818 CCOPTS='-g -O2 -Wall'
1826 dnl See if we can use 64 bit file addresses
1827 largefile_support="no"
1832 dnl --------------------------------------------------------------------------
1833 dnl CHECKING FOR HEADER FILES
1834 dnl --------------------------------------------------------------------------
1872 AC_STRUCT_ST_BLKSIZE
1876 dnl --------------------------------------------------------------------------
1877 dnl Check for utime.h structure
1878 dnl --------------------------------------------------------------------------
1879 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1883 #include <sys/types.h>
1888 ba_cv_header_utime_h=yes
1890 ba_cv_header_utime_h=no
1895 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1897 dnl --------------------------------------------------------------------------
1898 dnl Check for socklen_t
1899 dnl --------------------------------------------------------------------------
1900 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1904 #include <sys/types.h>
1905 #include <sys/socket.h>
1909 ba_cv_header_socklen_t=yes
1911 ba_cv_header_socklen_t=no
1916 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1918 dnl --------------------------------------------------------------------------
1919 dnl Check for ioctl request type
1920 dnl --------------------------------------------------------------------------
1922 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1927 #include <sys/types.h>
1928 #include <sys/ioctl.h>
1930 int (*d_ioctl)(int fd, unsigned long int request, ...);
1933 ba_cv_header_ioctl_req_t=yes
1935 ba_cv_header_ioctl_req_t=no
1940 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1942 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1943 dnl *BSD systems still use old style C prototypes, which are wrong with
1944 dnl compiled with a C++ compiler.
1947 dnl --------------------------------------------------------------------------
1948 dnl Check for typeof()
1949 dnl --------------------------------------------------------------------------
1951 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1955 main(){char *a = 0; a = (typeof a)a;}
1957 ba_cv_have_typeof=yes
1959 ba_cv_have_typeof=no
1961 ba_cv_have_typeof=no
1966 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1971 dnl --------------------------------------------------------------------------
1972 dnl CHECKING FOR FILESYSTEM TYPE
1973 dnl --------------------------------------------------------------------------
1974 AC_MSG_CHECKING(how to get filesystem type)
1976 # The order of these tests is important.
1979 #include <sys/statvfs.h>
1980 #include <sys/fstyp.h>
1982 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1984 if test $fstype = no; then
1987 #include <sys/statfs.h>
1988 #include <sys/fstyp.h>
1990 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1993 if test $fstype = no; then
1996 #include <sys/statfs.h>
1997 #include <sys/vmount.h>
1999 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2002 if test $fstype = no; then
2007 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2010 if test $fstype = no; then
2011 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2013 if test $fstype = no; then
2016 #include <sys/mount.h>
2017 #include <sys/fs_types.h>
2019 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2022 AC_MSG_RESULT($fstype)
2024 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2026 dnl --------------------------------------------------------------------------
2027 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2028 dnl --------------------------------------------------------------------------
2038 AC_CHECK_TYPE(ino_t, unsigned long)
2039 AC_CHECK_TYPE(dev_t, unsigned long)
2040 AC_CHECK_TYPE(daddr_t, long)
2041 AC_CHECK_TYPE(major_t, int)
2042 AC_CHECK_TYPE(minor_t, int)
2043 AC_CHECK_TYPE(ssize_t, int)
2049 AC_CHECK_SIZEOF(char, 1)
2050 AC_CHECK_SIZEOF(short int, 2)
2051 AC_CHECK_SIZEOF(int, 4)
2052 AC_CHECK_SIZEOF(long int, 4)
2053 AC_CHECK_SIZEOF(long long int, 8)
2054 AC_CHECK_SIZEOF(int *, 4)
2056 dnl Check for sys/types.h types
2057 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2061 #include <sys/types.h>
2065 ac_cv_have_u_int="yes"
2067 ac_cv_have_u_int="no"
2072 if test "x$ac_cv_have_u_int" = "xyes" ; then
2073 AC_DEFINE(HAVE_U_INT)
2077 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2081 #include <sys/types.h>
2085 ac_cv_have_intmax_t="yes"
2093 ac_cv_have_intmax_t="yes"
2095 ac_cv_have_intmax_t="no"
2102 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2103 AC_DEFINE(HAVE_INTMAX_T)
2107 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2111 #include <sys/types.h>
2113 u_intmax_t a; a = 1;
2115 ac_cv_have_u_intmax_t="yes"
2121 u_intmax_t a; a = 1;
2123 ac_cv_have_u_intmax_t="yes"
2125 ac_cv_have_u_intmax_t="no"
2132 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2133 AC_DEFINE(HAVE_U_INTMAX_T)
2137 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2141 #include <sys/types.h>
2143 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2145 ac_cv_have_intxx_t="yes"
2147 ac_cv_have_intxx_t="no"
2152 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2153 AC_DEFINE(HAVE_INTXX_T)
2157 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2161 #include <sys/types.h>
2165 ac_cv_have_int64_t="yes"
2167 ac_cv_have_int64_t="no"
2172 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2173 AC_DEFINE(HAVE_INT64_T)
2177 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2181 #include <sys/types.h>
2183 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2185 ac_cv_have_u_intxx_t="yes"
2187 ac_cv_have_u_intxx_t="no"
2192 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2193 AC_DEFINE(HAVE_U_INTXX_T)
2197 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2201 #include <sys/types.h>
2205 ac_cv_have_u_int64_t="yes"
2207 ac_cv_have_u_int64_t="no"
2212 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2213 AC_DEFINE(HAVE_U_INT64_T)
2217 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2218 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2220 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2223 #include <sys/bitypes.h>
2225 int8_t a; int16_t b; int32_t c;
2226 u_int8_t e; u_int16_t f; u_int32_t g;
2227 a = b = c = e = f = g = 1;
2229 AC_DEFINE(HAVE_U_INTXX_T)
2230 AC_DEFINE(HAVE_INTXX_T)
2231 AC_DEFINE(HAVE_SYS_BITYPES_H)
2239 if test -z "$have_u_intxx_t" ; then
2240 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2244 #include <sys/types.h>
2246 uint8_t a; uint16_t b;
2247 uint32_t c; a = b = c = 1;
2249 ac_cv_have_uintxx_t="yes"
2251 ac_cv_have_uintxx_t="no"
2256 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2257 AC_DEFINE(HAVE_UINTXX_T)
2261 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2262 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2264 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2267 #include <sys/bitypes.h>
2269 int64_t a; u_int64_t b;
2272 AC_DEFINE(HAVE_U_INT64_T)
2273 AC_DEFINE(HAVE_INT64_T)
2281 if (test -z "$have_uintxx_t" && \
2282 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2284 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2287 #include <sys/bitypes.h>
2289 uint8_t a; uint16_t b;
2290 uint32_t c; a = b = c = 1;
2292 AC_DEFINE(HAVE_UINTXX_T)
2300 dnl --------------------------------------------------------------------------
2301 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2302 dnl --------------------------------------------------------------------------
2318 [echo 'configure: cannot find needed function.'; exit 1]
2321 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2322 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2323 AC_CHECK_FUNCS(posix_fadvise)
2324 AC_CHECK_FUNCS(fdatasync)
2326 AC_CHECK_FUNCS(chflags)
2328 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2330 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2335 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2336 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2338 call_use_va_copy(1,2,3)
2347 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2349 dnl --------------------------------------------------------------------------
2350 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2351 dnl --------------------------------------------------------------------------
2352 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2354 # If resolver functions are not in libc check for -lnsl or -lresolv.
2355 AC_CHECK_FUNC(gethostbyname_r,
2356 AC_MSG_RESULT(using libc's resolver),
2357 AC_CHECK_LIB(nsl,gethostbyname_r)
2358 AC_CHECK_LIB(resolv,gethostbyname_r))
2360 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2361 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2362 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2364 dnl ----------------------------
2365 dnl check sa_len of sockaddr
2366 dnl ----------------------------
2367 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2371 #include <sys/socket.h>
2373 struct sockaddr s; s.sa_len;
2375 ac_cv_struct_sockaddr_sa_len=yes
2376 ], [ac_cv_struct_sockaddr_sa_len=no
2382 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2383 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2390 AC_FUNC_CLOSEDIR_VOID
2391 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2392 # AC_FUNC_FNMATCH dnl use local version
2394 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2396 AC_CHECK_LIB(sun, getpwnam)
2398 AC_CHECK_HEADERS(zlib.h)
2399 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2401 if test x$FDLIBS = x-lz; then
2402 AC_DEFINE(HAVE_LIBZ)
2407 dnl Check for ACL support and libraries
2411 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2413 if test x$enableval = xyes; then
2415 elif test x$enableval = xno; then
2422 have_extended_acl=no
2423 if test x$support_acl = xyes -o x$support_acl = xauto; then
2424 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2425 AC_CHECK_FUNC(acl_get_file,
2429 AC_CHECK_LIB(acl, acl_get_file,
2432 FDLIBS="-lacl $FDLIBS"
2434 AC_CHECK_LIB(pacl, acl_get_file,
2437 FDLIBS="-lpacl $FDLIBS"
2439 AC_CHECK_LIB(sec, acltotext,
2442 FDLIBS="-lsec $FDLIBS"
2444 AC_CHECK_LIB(sec, acl_totext,
2446 have_extended_acl=yes
2458 if test x$support_acl = xyes -a $have_acl != yes; then
2459 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2460 please either load the acl libraries or rerun configure without --enable-acl])
2462 if test $have_acl = yes; then
2463 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2466 if test $have_extended_acl = yes; then
2467 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2473 dnl Check for XATTR support
2476 AC_ARG_ENABLE(xattr,
2477 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2479 if test x$enableval = xyes; then
2481 elif test x$enableval = xno; then
2488 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2490 dnl First check for *BSD support
2492 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2493 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2494 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2497 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2498 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2499 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2503 if test $have_xattr = no; then
2504 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2507 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2508 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2509 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2514 if test $have_xattr = yes; then
2515 have_extattr_string_in_libc=no
2516 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2518 have_extattr_string_in_libc=yes
2519 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2520 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2525 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2527 if test $have_extattr_string_in_libc = no; then
2528 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2530 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2531 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2532 FDLIBS="-lutil $FDLIBS"
2539 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2541 if test $have_xattr = no; then
2542 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2543 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2546 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2547 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2548 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2552 if test $have_xattr = no; then
2553 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2556 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2557 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2558 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2565 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2567 if test $have_xattr = no; then
2568 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2569 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2570 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2572 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2575 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2576 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2577 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2578 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2579 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2583 if test $have_xattr = yes; then
2584 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2586 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2587 FDLIBS="-lnvpair $FDLIBS"
2593 if test x$support_xattr = xyes -a $have_xattr != yes; then
2594 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2595 please either load the xattr libraries or rerun configure without --enable-xattr])
2597 if test $have_xattr = yes; then
2598 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2604 dnl Check for pthread libraries
2607 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2609 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2611 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2613 AC_CHECK_FUNC(pthread_create)
2622 dnl Check for headers, functions and libraries required to support
2623 dnl keeping readall capabilities
2625 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2626 AC_CHECK_FUNCS(prctl setreuid)
2627 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2628 if test x$CAP_LIBS = x-lcap; then
2629 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2638 if test x$have_gcc = xyes ; then
2639 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2640 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2642 LDFLAGS=${LDFLAGS--O}
2643 DB_LIBS="${SQL_LFLAGS}"
2644 CPPFLAGS="$CPPFLAGS"
2657 AC_SUBST(X_EXTRA_LIBS)
2662 dnl extra configurable objects
2673 dnl Finally we set appropriate distribution specific
2674 dnl variables and defaults
2676 dnl PFILES are platform specific files
2677 PFILES="platforms/Makefile"
2682 hostname=`uname -n | cut -d '.' -f 1`
2683 if test x${hostname} = x ; then
2684 hostname="localhost"
2686 dnl Make sure hostname is resolved
2687 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2688 if test ! $? = 0; then
2689 hostname="localhost"
2695 PSCMD="ps -e -o pid,comm"
2697 platforms/aix/Makefile"
2698 TAPEDRIVE="/dev/rmt0.1"
2702 PTHREAD_LIB="-lpthread -lexc"
2703 if test "${CC}" = "gcc" ; then
2710 TAPEDRIVE="/dev/nrmt0"
2713 DISTVER=`uname -a |awk '{print $3}'`
2714 TAPEDRIVE="/dev/nrmt0"
2715 PTHREAD_LIB="-pthread"
2716 CFLAGS="${CFLAGS} -pthread"
2717 PSCMD="ps -ax -o pid,command"
2721 platforms/bsdi/Makefile \
2722 platforms/bsdi/bacula-fd \
2723 platforms/bsdi/bacula-sd \
2724 platforms/bsdi/bacula-dir"
2725 largefile_support="yes"
2728 DISTVER=`uname -a |awk '{print $3}'`
2729 TAPEDRIVE="/dev/nrst0"
2732 WLDFLAGS="-mwindows"
2736 TAPEDRIVE="/dev/nst0"
2737 PSCMD="ps -e -o pid,command"
2740 platforms/darwin/Makefile"
2744 TAPEDRIVE="/dev/nst0"
2745 PSCMD="ps -e -o pid,command"
2748 platforms/osx/Makefile"
2751 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2754 DISTVER=`cat /etc/debian_version`
2755 if test -f /etc/lsb-release ; then
2757 if test "x$DISTRIB_ID" != "x" ; then
2758 DISTNAME=$DISTRIB_ID
2760 if test "x$DISTRIB_RELEASE" != "x" ; then
2761 DISTVER=$DISTRIB_RELEASE
2764 if test "$DISTNAME" = "Ubuntu" ; then
2767 TAPEDRIVE="/dev/nst0"
2768 PSCMD="ps -e -o pid,command"
2769 if test "$DISTNAME" = "ubuntu" ; then
2771 platforms/ubuntu/Makefile \
2772 platforms/ubuntu/bacula-fd \
2773 platforms/ubuntu/bacula-sd \
2774 platforms/ubuntu/bacula-dir"
2777 platforms/debian/Makefile \
2778 platforms/debian/bacula-fd \
2779 platforms/debian/bacula-sd \
2780 platforms/debian/bacula-dir"
2784 DISTVER=`uname -a |awk '{print $3}'`
2785 VER=`echo $DISTVER | cut -c 1`
2786 if test x$VER = x4 ; then
2787 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2788 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2792 TAPEDRIVE="/dev/nrsa0"
2793 PSCMD="ps -ax -o pid,command"
2795 platforms/freebsd/Makefile \
2796 platforms/freebsd/bacula-fd \
2797 platforms/freebsd/bacula-sd \
2798 platforms/freebsd/bacula-dir"
2799 largefile_support="yes"
2802 PSCMD="UNIX95=1; ps -e -o pid,comm"
2803 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2805 TAPEDRIVE="/dev/rmt/0hnb"
2806 PTHREAD_LIB="-lpthread"
2807 AC_DEFINE([_INCLUDE_LONGLONG])
2811 TAPEDRIVE="/dev/rmt/0cbn"
2812 PSCMD="ps -e -o pid,comm"
2814 platforms/irix/Makefile \
2815 platforms/irix/bacula-fd \
2816 platforms/irix/bacula-sd \
2817 platforms/irix/bacula-dir"
2820 DISTVER=`uname -a |awk '{print $3}'`
2823 TAPEDRIVE="/dev/nrst0"
2824 PSCMD="ps -ax -o pid,command"
2825 PTHREAD_LIB="-pthread"
2826 CFLAGS="${CFLAGS} -pthread"
2829 DISTVER=`uname -a |awk '{print $3}'`
2832 TAPEDRIVE="/dev/nrst0"
2833 PSCMD="ps -ax -o pid,command"
2834 PTHREAD_LIB="-pthread"
2835 CFLAGS="${CFLAGS} -pthread"
2837 platforms/openbsd/Makefile \
2838 platforms/openbsd/bacula-fd \
2839 platforms/openbsd/bacula-sd \
2840 platforms/openbsd/bacula-dir"
2843 if test -f /etc/whitebox-release ; then
2844 f=/etc/whitebox-release
2846 f=/etc/redhat-release
2848 if test `cat $f | grep release |\
2849 cut -f 3 -d ' '`x = "Enterprise"x ; then
2850 DISTVER="Enterprise "`cat $f | grep release |\
2853 DISTVER=`cat /etc/redhat-release | grep release |\
2856 TAPEDRIVE="/dev/nst0"
2857 PSCMD="ps -e -o pid,command"
2859 platforms/redhat/Makefile \
2860 platforms/redhat/bacula-fd \
2861 platforms/redhat/bacula-sd \
2862 platforms/redhat/bacula-dir
2866 DISTVER=`cat /etc/mandrake-release | grep release |\
2868 TAPEDRIVE="/dev/nst0"
2869 PSCMD="ps -e -o pid,command"
2871 platforms/mandrake/Makefile \
2872 platforms/mandrake/bacula-fd \
2873 platforms/mandrake/bacula-sd \
2874 platforms/mandrake/bacula-dir \
2878 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2879 TAPEDRIVE="/dev/nst0"
2880 PSCMD="ps -e -o pid,command"
2882 platforms/gentoo/Makefile \
2883 platforms/gentoo/bacula-init \
2884 platforms/gentoo/bacula-fd \
2885 platforms/gentoo/bacula-sd \
2886 platforms/gentoo/bacula-dir"
2889 DISTVER=`cat /etc/slackware-version`
2890 TAPEDRIVE="/dev/nst0"
2891 PSCMD="ps -e -o pid,command"
2893 platforms/slackware/Makefile \
2894 platforms/slackware/rc.bacula-fd \
2895 platforms/slackware/rc.bacula-sd \
2896 platforms/slackware/rc.bacula-dir\
2897 platforms/slackware/functions.bacula"
2901 TAPEDRIVE="/dev/rmt/0cbn"
2902 PSCMD="ps -e -o pid,comm"
2904 platforms/solaris/Makefile \
2905 platforms/solaris/bacula-fd \
2906 platforms/solaris/bacula-sd \
2907 platforms/solaris/bacula-dir"
2908 if test x$DISTVER = x5.6 ; then
2909 AC_DEFINE(HAVE_OLD_SOCKOPT)
2911 LIBS="$LIBS -lresolv -lrt"
2914 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2916 TAPEDRIVE="/dev/nst0"
2917 PSCMD="ps -e -o pid,command"
2919 platforms/suse/Makefile \
2920 platforms/suse/bacula-fd \
2921 platforms/suse/bacula-sd \
2922 platforms/suse/bacula-dir \
2923 platforms/suse/bacula"
2928 TAPEDRIVE="/dev/nst0"
2929 PSCMD="ps -e -o pid,command"
2931 platforms/suse/Makefile \
2932 platforms/suse/bacula-fd \
2933 platforms/suse/bacula-sd \
2934 platforms/suse/bacula-dir"
2938 TAPEDRIVE="/dev/nst0"
2941 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2947 LIBS="$PTHREAD_LIB $LIBS"
2949 AC_DEFINE_UNQUOTED(lld, "$lld")
2950 AC_DEFINE_UNQUOTED(llu, "$llu")
2958 dnl common parts of the Makefile
2959 MCOMMON=./autoconf/Make.common
2960 AC_SUBST_FILE(MCOMMON)
2963 if test "x${subsysdir}" = "x${sbindir}" ; then
2966 echo "You have set both --sbindir and --with-subsys-dir"
2967 echo " equal to: ${subsysdir} "
2968 echo "This is not permitted. Please reconfigure."
2970 echo "Aborting configuration ..."
2976 AC_OUTPUT([autoconf/Make.common \
2979 scripts/startmysql \
2981 scripts/btraceback \
2987 scripts/bacula-ctl-dir \
2988 scripts/bacula-ctl-fd \
2989 scripts/bacula-ctl-sd \
2990 scripts/devel_bacula \
2993 scripts/bacula.desktop.gnome1 \
2994 scripts/bacula.desktop.gnome2 \
2995 scripts/bacula.desktop.gnome1.consolehelper \
2996 scripts/bacula.desktop.gnome2.consolehelper \
2997 scripts/bacula.desktop.gnome1.xsu \
2998 scripts/bacula.desktop.gnome2.xsu \
2999 scripts/bgnome-console.console_apps \
3000 scripts/mtx-changer \
3001 scripts/disk-changer \
3002 scripts/dvd-handler \
3003 scripts/dvd-simulator \
3004 scripts/bacula-tray-monitor.desktop \
3005 scripts/logwatch/Makefile \
3006 scripts/logwatch/logfile.bacula.conf \
3007 scripts/wxconsole.console_apps \
3008 scripts/wxconsole.desktop.consolehelper \
3009 scripts/wxconsole.desktop.xsu \
3010 scripts/bat.desktop \
3011 scripts/bat.desktop.xsu \
3012 scripts/bat.desktop.consolehelper \
3013 scripts/bat.console_apps \
3016 src/console/Makefile \
3017 src/console/bconsole.conf \
3018 src/qt-console/bat.conf \
3019 src/qt-console/bat.pro \
3020 src/qt-console/bat.pro.mingw32 \
3021 src/qt-console/install_conf_file \
3022 src/wx-console/Makefile \
3023 src/wx-console/bwx-console.conf \
3024 src/tray-monitor/Makefile \
3025 src/tray-monitor/tray-monitor.conf \
3027 src/dird/bacula-dir.conf \
3029 src/stored/Makefile \
3030 src/stored/bacula-sd.conf \
3031 src/filed/Makefile \
3032 src/filed/bacula-fd.conf \
3034 src/cats/make_catalog_backup.pl \
3035 src/cats/make_catalog_backup \
3036 src/cats/delete_catalog_backup \
3037 src/cats/create_postgresql_database \
3038 src/cats/update_postgresql_tables \
3039 src/cats/make_postgresql_tables \
3040 src/cats/grant_postgresql_privileges \
3041 src/cats/drop_postgresql_tables \
3042 src/cats/drop_postgresql_database \
3043 src/cats/create_mysql_database \
3044 src/cats/update_mysql_tables \
3045 src/cats/make_mysql_tables \
3046 src/cats/grant_mysql_privileges \
3047 src/cats/drop_mysql_tables \
3048 src/cats/drop_mysql_database \
3049 src/cats/create_sqlite3_database \
3050 src/cats/update_sqlite3_tables \
3051 src/cats/make_sqlite3_tables \
3052 src/cats/grant_sqlite3_privileges \
3053 src/cats/drop_sqlite3_tables \
3054 src/cats/drop_sqlite3_database \
3055 src/cats/create_ingres_database \
3056 src/cats/update_ingres_tables \
3057 src/cats/make_ingres_tables \
3058 src/cats/grant_ingres_privileges \
3059 src/cats/drop_ingres_tables \
3060 src/cats/drop_ingres_database \
3063 src/cats/create_bdb_database \
3064 src/cats/update_bdb_tables \
3065 src/cats/make_bdb_tables \
3066 src/cats/grant_bdb_privileges \
3067 src/cats/drop_bdb_tables \
3068 src/cats/drop_bdb_database \
3069 src/cats/create_bacula_database \
3070 src/cats/update_bacula_tables \
3071 src/cats/grant_bacula_privileges \
3072 src/cats/make_bacula_tables \
3073 src/cats/drop_bacula_tables \
3074 src/cats/drop_bacula_database \
3075 src/findlib/Makefile \
3076 src/tools/Makefile \
3077 src/plugins/fd/Makefile \
3078 src/plugins/sd/Makefile \
3079 src/plugins/dir/Makefile \
3080 src/win32/Makefile.inc \
3082 updatedb/update_mysql_tables_9_to_10 \
3083 updatedb/update_sqlite3_tables_9_to_10 \
3084 updatedb/update_postgresql_tables_9_to_10 \
3085 updatedb/update_mysql_tables_10_to_11 \
3086 updatedb/update_sqlite3_tables_10_to_11 \
3087 updatedb/update_postgresql_tables_10_to_11 \
3088 examples/nagios/check_bacula/Makefile \
3093 if test "${support_bat}" = "yes" ; then
3094 if test "x$QMAKE" = "xnone"; then
3095 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3100 echo "Creating bat Makefile"
3110 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3111 dnl requires gcc). If it's not, don't rebuild dependencies
3113 if test X"$GCC" = "Xyes" ; then
3114 echo "Doing make of dependencies"
3115 ${MAKE:-make} depend
3119 chmod 755 install_conf_file build-depkgs-qt-console
3123 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3124 chmod 755 dvd-handler dvd-simulator
3125 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3129 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3130 chmod 755 $c/update_postgresql_tables_10_to_11
3134 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3135 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3137 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3138 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3140 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3141 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3143 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3144 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3146 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3147 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3149 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3150 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3153 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3157 chmod 755 src/win32/build-depkgs-mingw32
3159 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3160 largefile_support="yes"
3163 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3164 if test X"$GCC" = "Xyes" ; then
3166 dnl A whole lot of hand springs to get the compiler version.
3167 dnl This is because gcc changed the output in version 3.0
3169 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3170 if test "x${CCVERSION}" = "x" ; then
3171 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3173 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3174 if test x"${CXXVERSION}" = x ; then
3175 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3179 # clean up any old junk
3185 if test "x${db_type}" = "xInternal" ; then
3188 echo "You have not specified either --enable-client-only or one of the"
3189 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3190 echo " This is not permitted. Please reconfigure."
3192 echo "Aborting the configuration ..."
3199 Configuration on `date`:
3201 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3202 Bacula version: ${BACULA} ${VERSION} (${DATE})
3203 Source code location: ${srcdir}
3204 Install binaries: ${sbindir}
3205 Install libraries: ${libdir}
3206 Install config files: ${sysconfdir}
3207 Scripts directory: ${scriptdir}
3208 Archive directory: ${archivedir}
3209 Working directory: ${working_dir}
3210 PID directory: ${piddir}
3211 Subsys directory: ${subsysdir}
3212 Man directory: ${mandir}
3213 Data directory: ${datarootdir}
3214 Plugin directory: ${plugindir}
3215 C Compiler: ${CC} ${CCVERSION}
3216 C++ Compiler: ${CXX} ${CXXVERSION}
3217 Compiler flags: ${WCFLAGS} ${CFLAGS}
3218 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3220 Statically Linked Tools: ${support_static_tools}
3221 Statically Linked FD: ${support_static_fd}
3222 Statically Linked SD: ${support_static_sd}
3223 Statically Linked DIR: ${support_static_dir}
3224 Statically Linked CONS: ${support_static_cons}
3225 Database type: ${db_type}
3226 Database port: ${db_port}
3227 Database lib: ${DB_LIBS}
3228 Database name: ${db_name}
3229 Database user: ${db_user}
3231 Job Output Email: ${job_email}
3232 Traceback Email: ${dump_email}
3233 SMTP Host Address: ${smtp_host}
3235 Director Port: ${dir_port}
3236 File daemon Port: ${fd_port}
3237 Storage daemon Port: ${sd_port}
3239 Director User: ${dir_user}
3240 Director Group: ${dir_group}
3241 Storage Daemon User: ${sd_user}
3242 Storage DaemonGroup: ${sd_group}
3243 File Daemon User: ${fd_user}
3244 File Daemon Group: ${fd_group}
3246 SQL binaries Directory ${SQL_BINDIR}
3248 Large file support: $largefile_support
3249 Bacula conio support: ${got_conio} ${CONS_LIBS}
3250 readline support: ${got_readline} ${PRTREADLINE_SRC}
3251 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3252 TLS support: ${support_tls}
3253 Encryption support: ${support_crypto}
3254 ZLIB support: ${have_zlib}
3255 enable-smartalloc: ${support_smartalloc}
3256 enable-lockmgr: ${support_lockmgr}
3257 bat support: ${support_bat}
3258 enable-gnome: ${support_gnome} ${gnome_version}
3259 enable-bwx-console: ${support_wx_console} ${wx_version}
3260 enable-tray-monitor: ${support_tray_monitor}
3261 client-only: ${build_client_only}
3262 build-dird: ${build_dird}
3263 build-stored: ${build_stored}
3264 Plugin support: ${have_plugins}
3265 ACL support: ${have_acl}
3266 XATTR support: ${have_xattr}
3267 Python support: ${support_python} ${PYTHON_LIBS}
3268 Batch insert enabled: ${support_batch_insert}
3272 # create a small shell script useful for support with
3273 # configure options and config.out info
3274 cat > scripts/bacula_config << EOF
3277 $ $0 $ac_configure_args
3279 cat config.out >> scripts/bacula_config
3280 echo __EOC__ >> scripts/bacula_config
3281 chmod 755 scripts/bacula_config
3285 # Display a warning message if postgresql client lib is <= 8.1
3286 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3287 -a x$support_batch_insert = xyes
3289 echo "WARNING: Your PostgreSQL client library is too old to detect "
3290 echo " if it was compiled with --enable-thread-safety, consider to"
3291 echo " upgrade it in order to avoid problems with Batch insert mode"