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 if test x$support_conio = xyes; then
822 AC_CHECK_HEADER(termcap.h,
823 [ AC_CHECK_LIB(termcap, tgetent,
824 [ CONS_LIBS="-ltermcap"
829 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
831 [ AC_CHECK_LIB(ncurses, tgetent,
832 [ CONS_LIBS="-lncurses"
837 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
842 AC_CHECK_HEADERS(curses.h)
843 AC_CHECK_HEADER(term.h,
844 [ AC_CHECK_LIB(curses, tgetent,
845 [ CONS_LIBS="-lcurses"
850 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
853 [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
862 dnl ---------------------------------------------------
863 dnl Check for readline support/directory (default off)
864 dnl ---------------------------------------------------
865 dnl this allows you to turn it completely off
866 AC_ARG_ENABLE(readline,
867 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
869 if test x$enableval = xno; then
877 if test x$support_readline = xyes; then
878 AC_ARG_WITH(readline,
879 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
881 case "$with_readline" in
886 if test -f ${with_readline}/readline.h; then
887 CONS_INC="-I${with_readline}"
888 CONS_LDFLAGS="-L$with_readline"
889 elif test -f ${with_readline}/include/readline/readline.h; then
890 CONS_INC="-I${with_readline}/include/readline"
891 CONS_LDFLAGS="-L${with_readline}/lib"
892 with_readline="${with_readline}/include/readline"
894 with_readline="/usr/include/readline"
897 AC_CHECK_HEADER(${with_readline}/readline.h,
899 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
900 CONS_LIBS="-lreadline -lhistory -ltermcap"
904 echo "readline.h not found. readline turned off ..."
911 dnl check for standard readline library
912 AC_CHECK_HEADER(/usr/include/readline/readline.h,
914 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
916 CONS_INC="-I/usr/include/readline"
917 CONS_LIBS="-lreadline -ltermcap"
919 dnl Did not find standard library, so try Bacula's default
920 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
922 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
924 CONS_INC="-I${TOP_DIR}/depkgs/readline"
925 CONS_LIBS="-lreadline -lhistory -ltermcap"
926 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
927 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
930 echo "readline.h not found. readline turned off ..."
944 AC_SUBST(CONS_LDFLAGS)
945 AC_SUBST(READLINE_SRC)
947 dnl Minimal stuff for readline Makefile configuration
952 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
953 AC_CHECK_FUNCS(nanosleep nl_langinfo)
954 AC_CHECK_HEADERS(varargs.h)
956 dnl End of readline/conio stuff
957 dnl -----------------------------------------------------------------------
959 dnl -----------------------------------------------------------------------
960 dnl Check for Python support
962 AC_MSG_CHECKING(for Python support)
964 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.]),
968 if test "$withval" != "no"; then
969 if test "$withval" = "yes"; then
970 if test -e /usr/bin/python-config ; then
971 PYTHON_INCDIR=`/usr/bin/python-config --includes`
972 PYTHON_LIBS=`/usr/bin/python-config --libs`
974 for python_root in /usr /usr/local /usr/sfw; do
975 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
976 if test -f $python_root/include/${ver}/Python.h; then
977 PYTHON_INCDIR=-I$python_root/include/${ver}
978 if test -d $python_root/lib64/${ver}/config; then
979 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
981 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
988 if test x$PYTHON_INCDIR = x; then
989 if test -f $prefix/include/Python.h; then
990 PYTHON_INCDIR=-I$prefix/include
991 if test -d $prefix/lib64/config; then
992 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
994 PYTHON_LIBS="-L$prefix/lib/config -lpython"
998 AC_MSG_ERROR(Unable to find Python.h in standard locations)
1003 if test -e $withval/bin/python-config ; then
1004 PYTHON_INCDIR=`$withval/bin/python-config --includes`
1005 PYTHON_LIBS=`$withval/bin/python-config --libs`
1006 elif test -f $withval/Python.h; then
1007 PYTHON_INCDIR=-I$withval
1008 PYTHON_LIBS="-L$withval/config -lpython"
1009 elif test -f $withval/include/Python.h; then
1010 PYTHON_INCDIR=-I$withval/include
1011 if test -d $withval/lib64/config; then
1012 PYTHON_LIBS="-L$withval/lib64/config -lpython"
1014 PYTHON_LIBS="-L$withval/lib/config -lpython"
1016 elif test -f $withval/include/python/Python.h; then
1017 PYTHON_INCDIR=-I$withval/include/python
1018 if test -d $withval/lib64/python/config; then
1019 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1021 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1025 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1029 AC_DEFINE([HAVE_PYTHON], 1)
1032 AC_MSG_NOTICE(checking for more Python libs)
1033 saved_LIBS="$LIBS"; LIBS=
1034 AC_SEARCH_LIBS(shm_open, [rt])
1035 AC_CHECK_LIB(util, openpty)
1036 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1045 AC_SUBST(PYTHON_LIBS)
1046 AC_SUBST(PYTHON_INCDIR)
1049 dnl Find where sockets are (especially for Solaris)
1050 dnl Do this before the TCP Wrappers test since tcp wrappers
1051 dnl uses the socket library and some linkers are stupid.
1053 AC_CHECK_FUNC(socket,
1054 AC_MSG_RESULT(using libc's socket),
1055 AC_CHECK_LIB(xnet,socket)
1056 AC_CHECK_LIB(socket,socket)
1057 AC_CHECK_LIB(inet,socket))
1059 dnl -----------------------------------------------------------
1060 dnl Check whether user wants TCP wrappers support (default off)
1061 dnl -----------------------------------------------------------
1064 AC_ARG_WITH(tcp-wrappers,
1065 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1067 if test "x$withval" != "xno" ; then
1069 LIBS="$saved_LIBS -lwrap"
1070 AC_SEARCH_LIBS(nanosleep, [rt])
1071 AC_MSG_CHECKING(for libwrap)
1074 #include <sys/types.h>
1076 int deny_severity = 0;
1077 int allow_severity = 0;
1078 struct request_info *req;
1083 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1088 LIBS="$saved_LIBS -lwrap -lnsl"
1089 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1092 #include <sys/types.h>
1094 int deny_severity = 0;
1095 int allow_severity = 0;
1096 struct request_info *req;
1101 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1106 AC_MSG_ERROR([*** libwrap missing])
1115 dnl -----------------------------------------------------------
1116 dnl Check whether OpenSSL is available
1117 dnl -----------------------------------------------------------
1118 AC_MSG_CHECKING([for OpenSSL])
1119 dnl The following uses quadrigraphs:
1122 AC_ARG_WITH(openssl,
1123 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1125 with_openssl_directory=${withval}
1129 if test "x$with_openssl_directory" != "xno"; then
1130 OPENSSL_LIBS="-lssl -lcrypto"
1133 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1135 # Make sure the $with_openssl_directory also makes sense
1137 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1138 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1139 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1143 saved_LIBS="${LIBS}"
1144 saved_CFLAGS="${CFLAGS}"
1145 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1146 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1150 #include <openssl/ssl.h>
1152 CRYPTO_set_id_callback(NULL);
1155 support_crypto="yes"
1164 #include <openssl/evp.h>
1168 ac_cv_openssl_sha2="yes"
1170 ac_cv_openssl_sha2="no"
1174 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1175 dnl implementation, presumably for export reasons. If 192bit AES
1176 dnl is available, we assume that we're running with a 'non-export'
1177 dnl openssl library.
1180 #include <openssl/evp.h>
1184 ac_cv_openssl_export="no"
1186 ac_cv_openssl_export="yes"
1190 LIBS="${saved_LIBS}"
1191 CFLAGS="${saved_CFLAGS}"
1193 if test "$support_tls" = "yes"; then
1194 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1195 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1196 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1199 if test "$ac_cv_openssl_sha2" = "yes"; then
1200 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1203 if test "$ac_cv_openssl_export" = "yes"; then
1204 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1213 if test "$support_tls" = "no"; then
1217 if test "$support_crypto" = "no"; then
1222 AC_MSG_RESULT([$support_tls])
1223 AC_SUBST(OPENSSL_LIBS)
1224 AC_SUBST(OPENSSL_INC)
1226 dnl -----------------------------------------------------------
1227 dnl dlopen is needed for plugins
1228 dnl -----------------------------------------------------------
1229 AC_SEARCH_LIBS(dlopen, [dl])
1231 dnl ------------------------------------------
1232 dnl Where to place working dir
1233 dnl ------------------------------------------
1234 working_dir=`eval echo ${prefix}/var/bacula/working`
1235 AC_ARG_WITH(working-dir,
1236 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1238 if test "x$withval" != "xno" ; then
1239 working_dir=$withval
1244 AC_SUBST(working_dir)
1246 dnl ------------------------------------------------------------------
1247 dnl If the user has not set archivedir, we set our default as /tmp
1248 dnl ------------------------------------------------------------------
1250 AC_ARG_WITH(archivedir,
1251 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1253 if test "x$withval" != "xno" ; then
1259 AC_SUBST(archivedir)
1261 dnl ------------------------------------------------------------------
1262 dnl Allow the user to specify the daemon resource name default hostname
1263 dnl ------------------------------------------------------------------
1265 AC_ARG_WITH(basename,
1266 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1268 if test "x$withval" != "xno" ; then
1276 dnl ------------------------------------------------------------------
1277 dnl Allow the user to override the hostname (default = machine hostname)
1278 dnl ------------------------------------------------------------------
1279 hostname=`uname -n | cut -d '.' -f 1`
1280 if test x${hostname} = x ; then
1281 hostname="localhost"
1283 AC_ARG_WITH(hostname,
1284 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1286 if test "x$withval" != "xno" ; then
1295 dnl ------------------------------------------
1296 dnl Where to place scriptdir (script files)
1297 dnl ------------------------------------------
1298 scriptdir=`eval echo ${sysconfdir}`
1299 AC_ARG_WITH(scriptdir,
1300 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1302 if test "x$withval" != "xno" ; then
1311 dnl ------------------------------------------
1312 dnl Where to place bsrdir (bsr files)
1313 dnl ------------------------------------------
1316 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1318 if test "x$withval" != "xno" ; then
1326 dnl ------------------------------------------
1327 dnl Where to place logdir (bsr files)
1328 dnl ------------------------------------------
1331 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1333 if test "x$withval" != "xno" ; then
1342 # ------------------------------------------
1343 # Where to place plugindir (plugin files)
1344 # ------------------------------------------
1345 plugindir=`eval echo ${libdir}`
1346 AC_ARG_WITH(plugindir,
1347 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1349 if test "x$withval" != "xno" ; then
1357 dnl ------------------------------------------
1358 dnl Where to send dump email
1359 dnl ------------------------------------------
1360 dump_email=root@localhost
1361 AC_ARG_WITH(dump-email,
1362 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1364 if test "x$withval" != "xno" ; then
1370 AC_SUBST(dump_email)
1372 dnl ------------------------------------------
1373 dnl Where to send job email
1374 dnl ------------------------------------------
1375 job_email=root@localhost
1376 AC_ARG_WITH(job-email,
1377 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1379 if test "x$withval" != "xno" ; then
1387 dnl ------------------------------------------
1388 dnl Where to find smtp host
1389 dnl ------------------------------------------
1391 AC_ARG_WITH(smtp_host,
1392 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1394 if test "x$withval" != "xno" ; then
1402 dnl ------------------------------------
1403 dnl Where to place pid files
1404 dnl ------------------------------------
1406 AC_ARG_WITH(pid-dir,
1407 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1409 if test "x$withval" != "xno" ; then
1415 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1418 dnl ------------------------------------
1419 dnl Where to place subsys "lock file"
1420 dnl ------------------------------------
1421 subsysdir=/var/run/subsys
1422 if test -d /var/run/subsys; then
1423 subsysdir=/var/run/subsys
1424 elif test -d /var/lock/subsys; then
1425 subsysdir=/var/lock/subsys
1427 subsysdir=/var/run/subsys
1429 AC_ARG_WITH(subsys-dir,
1430 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1432 if test "x$withval" != "xno" ; then
1440 dnl ------------------------------------
1441 dnl Where to start assigning ports
1442 dnl ------------------------------------
1444 AC_ARG_WITH(baseport,
1445 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1447 if test "x$withval" != "xno" ; then
1454 dir_port=`expr $baseport`
1455 fd_port=`expr $baseport + 1`
1456 sd_port=`expr $fd_port + 1`
1462 dnl ------------------------------------------
1463 dnl Generate passwords
1464 dnl ------------------------------------------
1466 AC_ARG_WITH(dir-password,
1467 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1469 if test "x$withval" != "xno" ; then
1470 dir_password=$withval
1475 if test "x$dir_password" = "x" ; then
1476 if test "x$OPENSSL" = "xnone" ; then
1477 key=`autoconf/randpass 33`
1479 key=`openssl rand -base64 33`
1485 AC_ARG_WITH(fd-password,
1486 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1488 if test "x$withval" != "xno" ; then
1489 fd_password=$withval
1494 if test "x$fd_password" = "x" ; then
1495 if test "x$OPENSSL" = "xnone" ; then
1496 key=`autoconf/randpass 37`
1498 key=`openssl rand -base64 33`
1504 AC_ARG_WITH(sd-password,
1505 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1507 if test "x$withval" != "xno" ; then
1508 sd_password=$withval
1513 if test "x$sd_password" = "x" ; then
1514 if test "x$OPENSSL" = "xnone" ; then
1515 key=`autoconf/randpass 41`
1517 key=`openssl rand -base64 33`
1523 AC_ARG_WITH(mon-dir-password,
1524 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1526 if test "x$withval" != "xno" ; then
1527 mon_dir_password=$withval
1532 if test "x$mon_dir_password" = "x" ; then
1533 if test "x$OPENSSL" = "xnone" ; then
1534 key=`autoconf/randpass 33`
1536 key=`openssl rand -base64 33`
1538 mon_dir_password=$key
1542 AC_ARG_WITH(mon-fd-password,
1543 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1545 if test "x$withval" != "xno" ; then
1546 mon_fd_password=$withval
1551 if test "x$mon_fd_password" = "x" ; then
1552 if test "x$OPENSSL" = "xnone" ; then
1553 key=`autoconf/randpass 37`
1555 key=`openssl rand -base64 33`
1557 mon_fd_password=$key
1561 AC_ARG_WITH(mon-sd-password,
1562 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1564 if test "x$withval" != "xno" ; then
1565 mon_sd_password=$withval
1570 if test "x$mon_sd_password" = "x" ; then
1571 if test "x$OPENSSL" = "xnone" ; then
1572 key=`autoconf/randpass 41`
1574 key=`openssl rand -base64 33`
1576 mon_sd_password=$key
1579 AC_SUBST(dir_password)
1580 AC_SUBST(fd_password)
1581 AC_SUBST(sd_password)
1582 AC_SUBST(mon_dir_password)
1583 AC_SUBST(mon_fd_password)
1584 AC_SUBST(mon_sd_password)
1587 dnl Pickup any database name
1590 AC_ARG_WITH(db_name,
1591 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1593 if test "x$withval" != "x" ; then
1601 AC_ARG_WITH(db_user,
1602 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1604 if test "x$withval" != "x" ; then
1612 AC_ARG_WITH(db_password,
1613 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1615 if test "x$withval" != "x" ; then
1616 db_password=$withval
1620 AC_SUBST(db_password)
1623 dnl Pickup a database port
1626 AC_ARG_WITH(db_port,
1627 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1629 if test "x$withval" != "x" ; then
1637 # Handle users and groups for each daemon
1640 AC_ARG_WITH(dir_user,
1641 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1643 if test "x$withval" != "x" ; then
1650 AC_ARG_WITH(dir_group,
1651 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1653 if test "x$withval" != "x" ; then
1660 AC_ARG_WITH(sd_user,
1661 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1663 if test "x$withval" != "x" ; then
1670 AC_ARG_WITH(sd_group,
1671 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1673 if test "x$withval" != "x" ; then
1680 AC_ARG_WITH(fd_user,
1681 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1683 if test "x$withval" != "x" ; then
1690 AC_ARG_WITH(fd_group,
1691 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1693 if test "x$withval" != "x" ; then
1707 dnl allow setting default executable permissions
1710 AC_ARG_WITH(sbin-perm,
1711 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0754@:>@]),
1713 if test "x$withval" != "x" ; then
1721 dnl ------------------------------------------------
1722 dnl Bacula check for various SQL database engines
1723 dnl ------------------------------------------------
1725 BA_CHECK_POSTGRESQL_DB
1733 # BA_CHECK_SQLITE_DB
1742 dnl -------------------------------------------
1743 dnl enable batch attribute DB insert (default on)
1744 dnl -------------------------------------------
1745 support_batch_insert=no
1746 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1748 if test $pkg = 0; then
1749 support_batch_insert=yes
1750 AC_ARG_ENABLE(batch-insert,
1751 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1753 if test x$enableval = xno; then
1754 support_batch_insert=no
1756 support_batch_insert=yes
1762 dnl Check if postgresql can support batch mode
1763 if test x$DB_TYPE = xpostgresql; then
1764 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1765 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1766 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1768 support_batch_insert=no
1772 if test x$DB_TYPE = xdbi; then
1776 dnl Check for batch insert
1777 if test $DB_PROG = postgresql; then
1778 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1779 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1780 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1784 if test $DB_PROG = mysql; then
1785 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1789 if test $DB_PROG = sqlite3; then
1790 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1794 if test $pkg = 0; then
1795 AC_ARG_ENABLE(batch-insert,
1796 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1798 if test x$enableval = xno; then
1799 support_batch_insert=no
1801 support_batch_insert=yes
1807 dnl If dbi was not chosen, let the comment in file
1811 AC_SUBST(uncomment_dbi)
1813 if test $support_batch_insert = yes ; then
1814 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1817 AC_DEFINE(PROTOTYPES)
1819 dnl --------------------------------------------------------------------------
1820 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1822 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1823 if test -z "$CCOPTS"; then
1824 CCOPTS='-g -O2 -Wall'
1832 dnl See if we can use 64 bit file addresses
1833 largefile_support="no"
1838 dnl --------------------------------------------------------------------------
1839 dnl CHECKING FOR HEADER FILES
1840 dnl --------------------------------------------------------------------------
1878 AC_STRUCT_ST_BLKSIZE
1882 dnl --------------------------------------------------------------------------
1883 dnl Check for utime.h structure
1884 dnl --------------------------------------------------------------------------
1885 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1889 #include <sys/types.h>
1894 ba_cv_header_utime_h=yes
1896 ba_cv_header_utime_h=no
1901 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1903 dnl --------------------------------------------------------------------------
1904 dnl Check for socklen_t
1905 dnl --------------------------------------------------------------------------
1906 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1910 #include <sys/types.h>
1911 #include <sys/socket.h>
1915 ba_cv_header_socklen_t=yes
1917 ba_cv_header_socklen_t=no
1922 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1924 dnl --------------------------------------------------------------------------
1925 dnl Check for ioctl request type
1926 dnl --------------------------------------------------------------------------
1928 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1933 #include <sys/types.h>
1934 #include <sys/ioctl.h>
1936 int (*d_ioctl)(int fd, unsigned long int request, ...);
1939 ba_cv_header_ioctl_req_t=yes
1941 ba_cv_header_ioctl_req_t=no
1946 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1948 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1949 dnl *BSD systems still use old style C prototypes, which are wrong with
1950 dnl compiled with a C++ compiler.
1953 dnl --------------------------------------------------------------------------
1954 dnl Check for typeof()
1955 dnl --------------------------------------------------------------------------
1957 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1961 main(){char *a = 0; a = (typeof a)a;}
1963 ba_cv_have_typeof=yes
1965 ba_cv_have_typeof=no
1967 ba_cv_have_typeof=no
1972 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1977 dnl --------------------------------------------------------------------------
1978 dnl CHECKING FOR FILESYSTEM TYPE
1979 dnl --------------------------------------------------------------------------
1980 AC_MSG_CHECKING(how to get filesystem type)
1982 # The order of these tests is important.
1985 #include <sys/statvfs.h>
1986 #include <sys/fstyp.h>
1988 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1990 if test $fstype = no; then
1993 #include <sys/statfs.h>
1994 #include <sys/fstyp.h>
1996 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1999 if test $fstype = no; then
2002 #include <sys/statfs.h>
2003 #include <sys/vmount.h>
2005 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2008 if test $fstype = no; then
2013 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2016 if test $fstype = no; then
2017 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2019 if test $fstype = no; then
2022 #include <sys/mount.h>
2023 #include <sys/fs_types.h>
2025 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2028 AC_MSG_RESULT($fstype)
2030 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2032 dnl --------------------------------------------------------------------------
2033 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2034 dnl --------------------------------------------------------------------------
2044 AC_CHECK_TYPE(ino_t, unsigned long)
2045 AC_CHECK_TYPE(dev_t, unsigned long)
2046 AC_CHECK_TYPE(daddr_t, long)
2047 AC_CHECK_TYPE(major_t, int)
2048 AC_CHECK_TYPE(minor_t, int)
2049 AC_CHECK_TYPE(ssize_t, int)
2055 AC_CHECK_SIZEOF(char, 1)
2056 AC_CHECK_SIZEOF(short int, 2)
2057 AC_CHECK_SIZEOF(int, 4)
2058 AC_CHECK_SIZEOF(long int, 4)
2059 AC_CHECK_SIZEOF(long long int, 8)
2060 AC_CHECK_SIZEOF(int *, 4)
2062 dnl Check for sys/types.h types
2063 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2067 #include <sys/types.h>
2071 ac_cv_have_u_int="yes"
2073 ac_cv_have_u_int="no"
2078 if test "x$ac_cv_have_u_int" = "xyes" ; then
2079 AC_DEFINE(HAVE_U_INT)
2083 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2087 #include <sys/types.h>
2091 ac_cv_have_intmax_t="yes"
2099 ac_cv_have_intmax_t="yes"
2101 ac_cv_have_intmax_t="no"
2108 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2109 AC_DEFINE(HAVE_INTMAX_T)
2113 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2117 #include <sys/types.h>
2119 u_intmax_t a; a = 1;
2121 ac_cv_have_u_intmax_t="yes"
2127 u_intmax_t a; a = 1;
2129 ac_cv_have_u_intmax_t="yes"
2131 ac_cv_have_u_intmax_t="no"
2138 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2139 AC_DEFINE(HAVE_U_INTMAX_T)
2143 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2147 #include <sys/types.h>
2149 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2151 ac_cv_have_intxx_t="yes"
2153 ac_cv_have_intxx_t="no"
2158 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2159 AC_DEFINE(HAVE_INTXX_T)
2163 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2167 #include <sys/types.h>
2171 ac_cv_have_int64_t="yes"
2173 ac_cv_have_int64_t="no"
2178 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2179 AC_DEFINE(HAVE_INT64_T)
2183 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2187 #include <sys/types.h>
2189 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2191 ac_cv_have_u_intxx_t="yes"
2193 ac_cv_have_u_intxx_t="no"
2198 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2199 AC_DEFINE(HAVE_U_INTXX_T)
2203 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2207 #include <sys/types.h>
2211 ac_cv_have_u_int64_t="yes"
2213 ac_cv_have_u_int64_t="no"
2218 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2219 AC_DEFINE(HAVE_U_INT64_T)
2223 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2224 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2226 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2229 #include <sys/bitypes.h>
2231 int8_t a; int16_t b; int32_t c;
2232 u_int8_t e; u_int16_t f; u_int32_t g;
2233 a = b = c = e = f = g = 1;
2235 AC_DEFINE(HAVE_U_INTXX_T)
2236 AC_DEFINE(HAVE_INTXX_T)
2237 AC_DEFINE(HAVE_SYS_BITYPES_H)
2245 if test -z "$have_u_intxx_t" ; then
2246 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2250 #include <sys/types.h>
2252 uint8_t a; uint16_t b;
2253 uint32_t c; a = b = c = 1;
2255 ac_cv_have_uintxx_t="yes"
2257 ac_cv_have_uintxx_t="no"
2262 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2263 AC_DEFINE(HAVE_UINTXX_T)
2267 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2268 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2270 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2273 #include <sys/bitypes.h>
2275 int64_t a; u_int64_t b;
2278 AC_DEFINE(HAVE_U_INT64_T)
2279 AC_DEFINE(HAVE_INT64_T)
2287 if (test -z "$have_uintxx_t" && \
2288 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2290 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2293 #include <sys/bitypes.h>
2295 uint8_t a; uint16_t b;
2296 uint32_t c; a = b = c = 1;
2298 AC_DEFINE(HAVE_UINTXX_T)
2306 dnl --------------------------------------------------------------------------
2307 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2308 dnl --------------------------------------------------------------------------
2324 [echo 'configure: cannot find needed function.'; exit 1]
2327 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2328 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2329 AC_CHECK_FUNCS(posix_fadvise)
2330 AC_CHECK_FUNCS(fdatasync)
2332 AC_CHECK_FUNCS(chflags)
2334 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2336 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2341 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2342 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2344 call_use_va_copy(1,2,3)
2353 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2355 dnl --------------------------------------------------------------------------
2356 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2357 dnl --------------------------------------------------------------------------
2358 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2360 # If resolver functions are not in libc check for -lnsl or -lresolv.
2361 AC_CHECK_FUNC(gethostbyname_r,
2362 AC_MSG_RESULT(using libc's resolver),
2363 AC_CHECK_LIB(nsl,gethostbyname_r)
2364 AC_CHECK_LIB(resolv,gethostbyname_r))
2366 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2367 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2368 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2370 dnl ----------------------------
2371 dnl check sa_len of sockaddr
2372 dnl ----------------------------
2373 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2377 #include <sys/socket.h>
2379 struct sockaddr s; s.sa_len;
2381 ac_cv_struct_sockaddr_sa_len=yes
2382 ], [ac_cv_struct_sockaddr_sa_len=no
2388 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2389 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2396 AC_FUNC_CLOSEDIR_VOID
2397 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2398 # AC_FUNC_FNMATCH dnl use local version
2400 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2402 AC_CHECK_LIB(sun, getpwnam)
2404 AC_CHECK_HEADERS(zlib.h)
2405 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2407 if test x$FDLIBS = x-lz; then
2408 AC_DEFINE(HAVE_LIBZ)
2413 dnl Check for ACL support and libraries
2417 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2419 if test x$enableval = xyes; then
2421 elif test x$enableval = xno; then
2428 have_extended_acl=no
2429 if test x$support_acl = xyes -o x$support_acl = xauto; then
2430 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2431 AC_CHECK_FUNC(acl_get_file,
2435 AC_CHECK_LIB(acl, acl_get_file,
2438 FDLIBS="-lacl $FDLIBS"
2440 AC_CHECK_LIB(pacl, acl_get_file,
2443 FDLIBS="-lpacl $FDLIBS"
2445 AC_CHECK_LIB(sec, acltotext,
2448 FDLIBS="-lsec $FDLIBS"
2450 AC_CHECK_LIB(sec, acl_totext,
2452 have_extended_acl=yes
2464 if test x$support_acl = xyes -a $have_acl != yes; then
2465 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2466 please either load the acl libraries or rerun configure without --enable-acl])
2468 if test $have_acl = yes; then
2469 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2472 if test $have_extended_acl = yes; then
2473 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2479 dnl Check for XATTR support
2482 AC_ARG_ENABLE(xattr,
2483 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2485 if test x$enableval = xyes; then
2487 elif test x$enableval = xno; then
2494 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2496 dnl First check for *BSD support
2498 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2499 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2500 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2503 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2504 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2505 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2509 if test $have_xattr = no; then
2510 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2513 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2514 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2515 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2520 if test $have_xattr = yes; then
2521 have_extattr_string_in_libc=no
2522 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2524 have_extattr_string_in_libc=yes
2525 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2526 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2531 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2533 if test $have_extattr_string_in_libc = no; then
2534 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2536 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2537 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2538 FDLIBS="-lutil $FDLIBS"
2545 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2547 if test $have_xattr = no; then
2548 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2549 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2552 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2553 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2554 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2558 if test $have_xattr = no; then
2559 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2562 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2563 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2564 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2571 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2573 if test $have_xattr = no; then
2574 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2575 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2576 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2578 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2581 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2582 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2583 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2584 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2585 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2589 if test $have_xattr = yes; then
2590 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2592 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2593 FDLIBS="-lnvpair $FDLIBS"
2599 if test x$support_xattr = xyes -a $have_xattr != yes; then
2600 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2601 please either load the xattr libraries or rerun configure without --enable-xattr])
2603 if test $have_xattr = yes; then
2604 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2610 dnl Check for pthread libraries
2613 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2615 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2617 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2619 AC_CHECK_FUNC(pthread_create)
2628 dnl Check for headers, functions and libraries required to support
2629 dnl keeping readall capabilities
2631 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2632 AC_CHECK_FUNCS(prctl setreuid)
2633 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2634 if test x$CAP_LIBS = x-lcap; then
2635 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2644 if test x$have_gcc = xyes ; then
2645 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2646 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2648 LDFLAGS=${LDFLAGS--O}
2649 DB_LIBS="${SQL_LFLAGS}"
2650 CPPFLAGS="$CPPFLAGS"
2663 AC_SUBST(X_EXTRA_LIBS)
2668 dnl extra configurable objects
2679 dnl Finally we set appropriate distribution specific
2680 dnl variables and defaults
2682 dnl PFILES are platform specific files
2683 PFILES="platforms/Makefile"
2688 hostname=`uname -n | cut -d '.' -f 1`
2689 if test x${hostname} = x ; then
2690 hostname="localhost"
2692 dnl Make sure hostname is resolved
2693 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2694 if test ! $? = 0; then
2695 hostname="localhost"
2701 PSCMD="ps -e -o pid,comm"
2703 platforms/aix/Makefile"
2704 TAPEDRIVE="/dev/rmt0.1"
2708 PTHREAD_LIB="-lpthread -lexc"
2709 if test "${CC}" = "gcc" ; then
2716 TAPEDRIVE="/dev/nrmt0"
2719 DISTVER=`uname -a |awk '{print $3}'`
2720 TAPEDRIVE="/dev/nrmt0"
2721 PTHREAD_LIB="-pthread"
2722 CFLAGS="${CFLAGS} -pthread"
2723 PSCMD="ps -ax -o pid,command"
2727 platforms/bsdi/Makefile \
2728 platforms/bsdi/bacula-fd \
2729 platforms/bsdi/bacula-sd \
2730 platforms/bsdi/bacula-dir"
2731 largefile_support="yes"
2734 DISTVER=`uname -a |awk '{print $3}'`
2735 TAPEDRIVE="/dev/nrst0"
2738 WLDFLAGS="-mwindows"
2742 TAPEDRIVE="/dev/nst0"
2743 PSCMD="ps -e -o pid,command"
2746 platforms/darwin/Makefile"
2750 TAPEDRIVE="/dev/nst0"
2751 PSCMD="ps -e -o pid,command"
2754 platforms/osx/Makefile"
2757 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2760 DISTVER=`cat /etc/debian_version`
2761 if test -f /etc/lsb-release ; then
2763 if test "x$DISTRIB_ID" != "x" ; then
2764 DISTNAME=$DISTRIB_ID
2766 if test "x$DISTRIB_RELEASE" != "x" ; then
2767 DISTVER=$DISTRIB_RELEASE
2770 if test "$DISTNAME" = "Ubuntu" ; then
2773 TAPEDRIVE="/dev/nst0"
2774 PSCMD="ps -e -o pid,command"
2775 if test "$DISTNAME" = "ubuntu" ; then
2777 platforms/ubuntu/Makefile \
2778 platforms/ubuntu/bacula-fd \
2779 platforms/ubuntu/bacula-sd \
2780 platforms/ubuntu/bacula-dir"
2783 platforms/debian/Makefile \
2784 platforms/debian/bacula-fd \
2785 platforms/debian/bacula-sd \
2786 platforms/debian/bacula-dir"
2790 DISTVER=`uname -a |awk '{print $3}'`
2791 VER=`echo $DISTVER | cut -c 1`
2792 if test x$VER = x4 ; then
2793 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2794 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2798 TAPEDRIVE="/dev/nrsa0"
2799 PSCMD="ps -ax -o pid,command"
2801 platforms/freebsd/Makefile \
2802 platforms/freebsd/bacula-fd \
2803 platforms/freebsd/bacula-sd \
2804 platforms/freebsd/bacula-dir"
2805 largefile_support="yes"
2808 PSCMD="UNIX95=1; ps -e -o pid,comm"
2809 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2811 TAPEDRIVE="/dev/rmt/0hnb"
2812 PTHREAD_LIB="-lpthread"
2813 AC_DEFINE([_INCLUDE_LONGLONG])
2817 TAPEDRIVE="/dev/rmt/0cbn"
2818 PSCMD="ps -e -o pid,comm"
2820 platforms/irix/Makefile \
2821 platforms/irix/bacula-fd \
2822 platforms/irix/bacula-sd \
2823 platforms/irix/bacula-dir"
2826 DISTVER=`uname -a |awk '{print $3}'`
2829 TAPEDRIVE="/dev/nrst0"
2830 PSCMD="ps -ax -o pid,command"
2831 PTHREAD_LIB="-pthread"
2832 CFLAGS="${CFLAGS} -pthread"
2835 DISTVER=`uname -a |awk '{print $3}'`
2838 TAPEDRIVE="/dev/nrst0"
2839 PSCMD="ps -ax -o pid,command"
2840 PTHREAD_LIB="-pthread"
2841 CFLAGS="${CFLAGS} -pthread"
2843 platforms/openbsd/Makefile \
2844 platforms/openbsd/bacula-fd \
2845 platforms/openbsd/bacula-sd \
2846 platforms/openbsd/bacula-dir"
2849 if test -f /etc/whitebox-release ; then
2850 f=/etc/whitebox-release
2852 f=/etc/redhat-release
2854 if test `cat $f | grep release |\
2855 cut -f 3 -d ' '`x = "Enterprise"x ; then
2856 DISTVER="Enterprise "`cat $f | grep release |\
2859 DISTVER=`cat /etc/redhat-release | grep release |\
2862 TAPEDRIVE="/dev/nst0"
2863 PSCMD="ps -e -o pid,command"
2865 platforms/redhat/Makefile \
2866 platforms/redhat/bacula-fd \
2867 platforms/redhat/bacula-sd \
2868 platforms/redhat/bacula-dir
2872 DISTVER=`cat /etc/mandrake-release | grep release |\
2874 TAPEDRIVE="/dev/nst0"
2875 PSCMD="ps -e -o pid,command"
2877 platforms/mandrake/Makefile \
2878 platforms/mandrake/bacula-fd \
2879 platforms/mandrake/bacula-sd \
2880 platforms/mandrake/bacula-dir \
2881 platforms/mandrake/bacula.spec \
2885 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2886 TAPEDRIVE="/dev/nst0"
2887 PSCMD="ps -e -o pid,command"
2889 platforms/gentoo/Makefile \
2890 platforms/gentoo/bacula-init \
2891 platforms/gentoo/bacula-fd \
2892 platforms/gentoo/bacula-sd \
2893 platforms/gentoo/bacula-dir"
2896 DISTVER=`cat /etc/slackware-version`
2897 TAPEDRIVE="/dev/nst0"
2898 PSCMD="ps -e -o pid,command"
2900 platforms/slackware/Makefile \
2901 platforms/slackware/rc.bacula-fd \
2902 platforms/slackware/rc.bacula-sd \
2903 platforms/slackware/rc.bacula-dir\
2904 platforms/slackware/functions.bacula"
2908 TAPEDRIVE="/dev/rmt/0cbn"
2909 PSCMD="ps -e -o pid,comm"
2911 platforms/solaris/Makefile \
2912 platforms/solaris/bacula-fd \
2913 platforms/solaris/bacula-sd \
2914 platforms/solaris/bacula-dir"
2915 if test x$DISTVER = x5.6 ; then
2916 AC_DEFINE(HAVE_OLD_SOCKOPT)
2918 LIBS="$LIBS -lresolv"
2921 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2923 TAPEDRIVE="/dev/nst0"
2924 PSCMD="ps -e -o pid,command"
2926 platforms/suse/Makefile \
2927 platforms/suse/bacula-fd \
2928 platforms/suse/bacula-sd \
2929 platforms/suse/bacula-dir \
2930 platforms/suse/bacula \
2931 platforms/suse/bacula.spec"
2936 TAPEDRIVE="/dev/nst0"
2937 PSCMD="ps -e -o pid,command"
2939 platforms/suse/Makefile \
2940 platforms/suse/bacula-fd \
2941 platforms/suse/bacula-sd \
2942 platforms/suse/bacula-dir"
2946 TAPEDRIVE="/dev/nst0"
2949 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2955 LIBS="$PTHREAD_LIB $LIBS"
2957 AC_DEFINE_UNQUOTED(lld, "$lld")
2958 AC_DEFINE_UNQUOTED(llu, "$llu")
2966 dnl common parts of the Makefile
2967 MCOMMON=./autoconf/Make.common
2968 AC_SUBST_FILE(MCOMMON)
2971 if test "x${subsysdir}" = "x${sbindir}" ; then
2974 echo "You have set both --sbindir and --with-subsys-dir"
2975 echo " equal to: ${subsysdir} "
2976 echo "This is not permitted. Please reconfigure."
2978 echo "Aborting configuration ..."
2984 AC_OUTPUT([autoconf/Make.common \
2987 scripts/startmysql \
2989 scripts/btraceback \
2995 scripts/bacula-ctl-dir \
2996 scripts/bacula-ctl-fd \
2997 scripts/bacula-ctl-sd \
2998 scripts/devel_bacula \
3001 scripts/bacula.desktop.gnome1 \
3002 scripts/bacula.desktop.gnome2 \
3003 scripts/bacula.desktop.gnome1.consolehelper \
3004 scripts/bacula.desktop.gnome2.consolehelper \
3005 scripts/bacula.desktop.gnome1.xsu \
3006 scripts/bacula.desktop.gnome2.xsu \
3007 scripts/bgnome-console.console_apps \
3008 scripts/mtx-changer \
3009 scripts/disk-changer \
3010 scripts/dvd-handler \
3011 scripts/dvd-simulator \
3012 scripts/bacula-tray-monitor.desktop \
3013 scripts/logwatch/Makefile \
3014 scripts/logwatch/logfile.bacula.conf \
3015 scripts/wxconsole.console_apps \
3016 scripts/wxconsole.desktop.consolehelper \
3017 scripts/wxconsole.desktop.xsu \
3018 scripts/bat.desktop \
3019 scripts/bat.desktop.xsu \
3020 scripts/bat.desktop.consolehelper \
3021 scripts/bat.console_apps \
3024 src/console/Makefile \
3025 src/console/bconsole.conf \
3026 src/qt-console/bat.conf \
3027 src/qt-console/bat.pro \
3028 src/qt-console/bat.pro.mingw32 \
3029 src/qt-console/install_conf_file \
3030 src/wx-console/Makefile \
3031 src/wx-console/bwx-console.conf \
3032 src/tray-monitor/Makefile \
3033 src/tray-monitor/tray-monitor.conf \
3035 src/dird/bacula-dir.conf \
3037 src/stored/Makefile \
3038 src/stored/bacula-sd.conf \
3039 src/filed/Makefile \
3040 src/filed/bacula-fd.conf \
3042 src/cats/make_catalog_backup.pl \
3043 src/cats/make_catalog_backup \
3044 src/cats/delete_catalog_backup \
3045 src/cats/create_postgresql_database \
3046 src/cats/update_postgresql_tables \
3047 src/cats/make_postgresql_tables \
3048 src/cats/grant_postgresql_privileges \
3049 src/cats/drop_postgresql_tables \
3050 src/cats/drop_postgresql_database \
3051 src/cats/create_mysql_database \
3052 src/cats/update_mysql_tables \
3053 src/cats/make_mysql_tables \
3054 src/cats/grant_mysql_privileges \
3055 src/cats/drop_mysql_tables \
3056 src/cats/drop_mysql_database \
3057 src/cats/create_sqlite3_database \
3058 src/cats/update_sqlite3_tables \
3059 src/cats/make_sqlite3_tables \
3060 src/cats/grant_sqlite3_privileges \
3061 src/cats/drop_sqlite3_tables \
3062 src/cats/drop_sqlite3_database \
3063 src/cats/create_ingres_database \
3064 src/cats/update_ingres_tables \
3065 src/cats/make_ingres_tables \
3066 src/cats/grant_ingres_privileges \
3067 src/cats/drop_ingres_tables \
3068 src/cats/drop_ingres_database \
3071 src/cats/create_bdb_database \
3072 src/cats/update_bdb_tables \
3073 src/cats/make_bdb_tables \
3074 src/cats/grant_bdb_privileges \
3075 src/cats/drop_bdb_tables \
3076 src/cats/drop_bdb_database \
3077 src/cats/create_bacula_database \
3078 src/cats/update_bacula_tables \
3079 src/cats/grant_bacula_privileges \
3080 src/cats/make_bacula_tables \
3081 src/cats/drop_bacula_tables \
3082 src/cats/drop_bacula_database \
3083 src/findlib/Makefile \
3084 src/tools/Makefile \
3085 src/plugins/fd/Makefile \
3086 src/plugins/sd/Makefile \
3087 src/plugins/dir/Makefile \
3088 src/win32/Makefile.inc \
3090 updatedb/update_mysql_tables_9_to_10 \
3091 updatedb/update_sqlite3_tables_9_to_10 \
3092 updatedb/update_postgresql_tables_9_to_10 \
3093 updatedb/update_mysql_tables_10_to_11 \
3094 updatedb/update_sqlite3_tables_10_to_11 \
3095 updatedb/update_postgresql_tables_10_to_11 \
3096 examples/nagios/check_bacula/Makefile \
3101 if test "${support_bat}" = "yes" ; then
3102 if test "x$QMAKE" = "xnone"; then
3103 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3108 echo "Creating bat Makefile"
3118 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3119 dnl requires gcc). If it's not, don't rebuild dependencies
3121 if test X"$GCC" = "Xyes" ; then
3122 echo "Doing make of dependencies"
3123 ${MAKE:-make} depend
3127 chmod 755 install_conf_file build-depkgs-qt-console
3131 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3132 chmod 755 dvd-handler dvd-simulator
3133 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3137 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3138 chmod 755 $c/update_postgresql_tables_10_to_11
3142 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3143 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3145 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3146 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3148 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3149 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3151 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3152 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3154 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3155 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3157 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3158 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3161 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3165 chmod 755 src/win32/build-depkgs-mingw32
3167 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3168 largefile_support="yes"
3171 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3172 if test X"$GCC" = "Xyes" ; then
3174 dnl A whole lot of hand springs to get the compiler version.
3175 dnl This is because gcc changed the output in version 3.0
3177 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3178 if test "x${CCVERSION}" = "x" ; then
3179 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3181 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3182 if test x"${CXXVERSION}" = x ; then
3183 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3187 # clean up any old junk
3193 if test "x${db_type}" = "xInternal" ; then
3196 echo "You have not specified either --enable-client-only or one of the"
3197 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3198 echo " This is not permitted. Please reconfigure."
3200 echo "Aborting the configuration ..."
3207 Configuration on `date`:
3209 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3210 Bacula version: ${BACULA} ${VERSION} (${DATE})
3211 Source code location: ${srcdir}
3212 Install binaries: ${sbindir}
3213 Install libraries: ${libdir}
3214 Install config files: ${sysconfdir}
3215 Scripts directory: ${scriptdir}
3216 Archive directory: ${archivedir}
3217 Working directory: ${working_dir}
3218 PID directory: ${piddir}
3219 Subsys directory: ${subsysdir}
3220 Man directory: ${mandir}
3221 Data directory: ${datarootdir}
3222 Plugin directory: ${plugindir}
3223 C Compiler: ${CC} ${CCVERSION}
3224 C++ Compiler: ${CXX} ${CXXVERSION}
3225 Compiler flags: ${WCFLAGS} ${CFLAGS}
3226 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3228 Statically Linked Tools: ${support_static_tools}
3229 Statically Linked FD: ${support_static_fd}
3230 Statically Linked SD: ${support_static_sd}
3231 Statically Linked DIR: ${support_static_dir}
3232 Statically Linked CONS: ${support_static_cons}
3233 Database type: ${db_type}
3234 Database port: ${db_port}
3235 Database lib: ${DB_LIBS}
3236 Database name: ${db_name}
3237 Database user: ${db_user}
3239 Job Output Email: ${job_email}
3240 Traceback Email: ${dump_email}
3241 SMTP Host Address: ${smtp_host}
3243 Director Port: ${dir_port}
3244 File daemon Port: ${fd_port}
3245 Storage daemon Port: ${sd_port}
3247 Director User: ${dir_user}
3248 Director Group: ${dir_group}
3249 Storage Daemon User: ${sd_user}
3250 Storage DaemonGroup: ${sd_group}
3251 File Daemon User: ${fd_user}
3252 File Daemon Group: ${fd_group}
3254 SQL binaries Directory ${SQL_BINDIR}
3256 Large file support: $largefile_support
3257 Bacula conio support: ${got_conio} ${CONS_LIBS}
3258 readline support: ${got_readline} ${PRTREADLINE_SRC}
3259 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3260 TLS support: ${support_tls}
3261 Encryption support: ${support_crypto}
3262 ZLIB support: ${have_zlib}
3263 enable-smartalloc: ${support_smartalloc}
3264 enable-lockmgr: ${support_lockmgr}
3265 bat support: ${support_bat}
3266 enable-gnome: ${support_gnome} ${gnome_version}
3267 enable-bwx-console: ${support_wx_console} ${wx_version}
3268 enable-tray-monitor: ${support_tray_monitor}
3269 client-only: ${build_client_only}
3270 build-dird: ${build_dird}
3271 build-stored: ${build_stored}
3272 Plugin support: ${have_plugins}
3273 ACL support: ${have_acl}
3274 XATTR support: ${have_xattr}
3275 Python support: ${support_python} ${PYTHON_LIBS}
3276 Batch insert enabled: ${support_batch_insert}
3280 # create a small shell script useful for support with
3281 # configure options and config.out info
3282 cat > scripts/bacula_config << EOF
3285 $ $0 $ac_configure_args
3287 cat config.out >> scripts/bacula_config
3288 echo __EOC__ >> scripts/bacula_config
3289 chmod 755 scripts/bacula_config
3293 # Display a warning message if postgresql client lib is <= 8.1
3294 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3295 -a x$support_batch_insert = xyes
3297 echo "WARNING: Your PostgreSQL client library is too old to detect "
3298 echo " if it was compiled with --enable-thread-safety, consider to"
3299 echo " upgrade it in order to avoid problems with Batch insert mode"