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 dnl can be overwritten by specific values from version.h
47 LIBBAC_LT_RELEASE=`sed -n -e 's/^#.*LIBBAC_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
48 LIBBACCFG_LT_RELEASE=`sed -n -e 's/^#.*LIBBACCFG_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
49 LIBBACPY_LT_RELEASE=`sed -n -e 's/^#.*LIBBACPY_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
51 LIBBAC_LT_RELEASE=${LIBBAC_LT_RELEASE:-$VERSION}
52 LIBBACCFG_LT_RELEASE=${LIBBACCFG_LT_RELEASE:-$VERSION}
53 LIBBACPY_LT_RELEASE=${LIBBACPY_LT_RELEASE:-$VERSION}
55 AC_SUBST(LIBBAC_LT_RELEASE)dnl
56 AC_SUBST(LIBBACCFG_LT_RELEASE)dnl
57 AC_SUBST(LIBBACPY_LT_RELEASE)dnl
60 dnl can be overwritten by specific values from version.h
61 LIBBACSQL_LT_RELEASE=`sed -n -e 's/^#.*LIBBACSQL_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
63 LIBBACSQL_LT_RELEASE=${LIBBACSQL_LT_RELEASE:-$VERSION}
65 AC_SUBST(LIBBACSQL_LT_RELEASE)dnl
68 dnl can be overwritten by specific values from version.h
69 LIBBACFIND_LT_RELEASE=`sed -n -e 's/^#.*LIBBACFIND_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
71 LIBBACFIND_LT_RELEASE=${LIBBACFIND_LT_RELEASE:-$VERSION}
73 AC_SUBST(LIBBACFIND_LT_RELEASE)dnl
75 echo "configuring for ${BACULA} $VERSION ($DATE)"
78 dnl -------------------------------------------------------
79 dnl Check for compiler.
80 dnl ------------------------------------------------------
84 AC_PROG_CC_C_O dnl Determine if C compiler support -c -o.
85 AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional.
89 if test "x$BASECC" = xgcc; then
93 AC_PATH_PROG(CXX, $CXX, $CXX)
94 if test ! -e $CXX; then
95 AC_MSG_ERROR(Unable to find C++ compiler)
98 dnl -------------------------------------------------------
99 dnl Check for programs.
100 dnl ------------------------------------------------------
102 AC_PATH_PROG(MV, mv, mv)
104 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
105 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
106 dnl of strange output of the configure script (like things don't exist etc.).
107 dnl So we name it REMOVE (more software has run into this problem)
108 AC_PATH_PROG(REMOVE, rm, rm)
109 AC_PATH_PROG(CP, cp, cp)
110 AC_PATH_PROG(SED, sed, sed)
111 AC_PATH_PROG(ECHO, echo, echo)
112 AC_PATH_PROG(CMP, cmp, cmp)
113 AC_PATH_PROG(TBL, tbl, tbl)
114 AC_PATH_PROG(AR, ar, ar)
115 AC_PATH_PROG(OPENSSL, openssl, none)
116 AC_PATH_PROG(MTX, mtx, mtx)
117 AC_PATH_PROG(DD, dd, dd)
118 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
119 AC_PATH_PROG(PYTHON, python, python)
120 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
121 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
122 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
123 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
124 AC_PATH_PROG(QMAKE, qmake, none)
125 AC_PATH_PROG(GMAKE, gmake, none)
126 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
127 if test "x$WXCONFIG" = x; then
130 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
131 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
132 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
133 AC_PATH_PROG(PIDOF, pidof, pidof)
135 # Some AWK programs fail, so test it and warn the user
136 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
137 { if ((prog == $2) || (("(" prog ")") == $2) ||
138 (("[" prog "]") == $2) ||
139 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
141 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
142 The regex engine of $AWK is too broken to be used you
143 might want to install GNU AWK.
144 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
147 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
150 test -n "$ARFLAG" || ARFLAGS="cr"
157 AC_SUBST(LOCAL_CFLAGS)
158 AC_SUBST(LOCAL_LDFLAGS)
161 dnl --------------------------------------------------
163 dnl --------------------------------------------------
165 AC_ARG_ENABLE(libtool,
166 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
168 if test x$enableval = xno; then
173 LT_INIT([shared disable-static])
176 if test x$use_libtool != xno; then
177 DEFAULT_OBJECT_TYPE=".lo"
178 DEFAULT_ARCHIVE_TYPE=".la"
179 DEFAULT_SHARED_OBJECT_TYPE=".la"
180 LIBTOOL="\$(LIBTOOL)"
181 LIBTOOL_INSTALL_TARGET="libtool-install"
182 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
183 LIBTOOL_CLEAN_TARGET="libtool-clean"
184 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
185 FD_PLUGIN_DIR="src/plugins/fd"
188 DEFAULT_OBJECT_TYPE=".o"
189 DEFAULT_ARCHIVE_TYPE=".a"
190 DEFAULT_SHARED_OBJECT_TYPE=".so"
191 LIBTOOL="# \$(LIBTOOL)"
192 LIBTOOL_INSTALL_TARGET=""
193 LIBTOOL_UNINSTALL_TARGET=""
194 LIBTOOL_CLEAN_TARGET=""
195 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
200 AC_SUBST(DEFAULT_OBJECT_TYPE)
201 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
202 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
204 AC_SUBST(LIBTOOL_INSTALL_TARGET)
205 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
206 AC_SUBST(LIBTOOL_CLEAN_TARGET)
207 AC_SUBST(QMAKE_LIBTOOL)
208 AC_SUBST(FD_PLUGIN_DIR)
210 dnl --------------------------------------------------
211 dnl Include file handling
212 dnl --------------------------------------------------
213 AC_ARG_ENABLE(includes,
214 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
216 if test x$enableval = xyes; then
222 dnl It only makes sense to install include files when you install libraries which only happens when
223 dnl libtool is enabled
225 if test x$use_libtool != xno -a x$install_includes = xyes; then
226 INCLUDE_INSTALL_TARGET="install-includes"
227 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
229 INCLUDE_INSTALL_TARGET=""
230 INCLUDE_UNINSTALL_TARGET=""
232 AC_SUBST(INCLUDE_INSTALL_TARGET)
233 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
235 dnl --------------------------------------------------
236 dnl Bacula OP Sys determination (see aclocal.m4)
237 dnl --------------------------------------------------
240 dnl -----------------------------------------------------------
241 dnl Bacula OPSys Distribution determination (see aclocal.m4)
242 dnl ----------------------------------------------------------
243 BA_CHECK_OPSYS_DISTNAME
245 dnl --------------------------------------------------
246 dnl Suppport for gettext (translations)
247 dnl By default, $datarootdir is ${prefix}/share
248 dnl --------------------------------------------------
249 AM_GNU_GETTEXT([external])
251 dnl ------------------------------------------------------------------
252 dnl If the user has not set --prefix, we set our default to nothing.
253 dnl In this case, if the user has not set --sysconfdir, we set it
254 dnl to the package default of /etc/bacula. If either --prefix or
255 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
256 dnl If the user has not set --libdir, we set it to the package
257 dnl default of /usr/lib. If either --prefix or --libdir is set,
258 dnl we leave libdir alone except to eval it. If the user has not set
259 dnl --includedir, we set it to the package default of /usr/include.
260 dnl If either --prefix or --includedir is set, we leave includedir
261 dnl alone except to eval it
262 dnl ------------------------------------------------------------------
263 os_name=`uname -s 2>/dev/null`
264 if test x${prefix} = xNONE ; then
265 if test `eval echo ${sysconfdir}` = NONE/etc ; then
266 sysconfdir=/etc/bacula
269 if test `eval echo ${libdir}` = NONE/lib ; then
272 os_processor=`uname -p 2>/dev/null`
273 case ${os_processor} in
288 if test `eval echo ${includedir}` = NONE/include ; then
289 includedir=/usr/include
292 if test `eval echo ${datarootdir}` = NONE/share ; then
293 datarootdir=/usr/share
298 dnl -------------------------------------------------------------------------
299 dnl If the user has not set --exec-prefix, we default to ${prefix}
300 dnl -------------------------------------------------------------------------
301 if test x${exec_prefix} = xNONE ; then
302 exec_prefix=${prefix}
305 sysconfdir=`eval echo ${sysconfdir}`
306 datarootdir=`eval echo ${datarootdir}`
307 docdir=`eval echo ${docdir}`
308 htmldir=`eval echo ${htmldir}`
309 libdir=`eval echo ${libdir}`
310 includedir=`eval echo ${includedir}`
311 localedir=`eval echo ${datarootdir}/locale`
312 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
313 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
315 dnl ------------------------------------------------------------------
316 dnl If the user has not set --sbindir, we set our default as /sbin
317 dnl ------------------------------------------------------------------
318 if test x$sbindir = x'${exec_prefix}/sbin' ; then
319 sbindir=${exec_prefix}/sbin
321 sbindir=`eval echo ${sbindir}`
323 dnl -------------------------------------------------------------------------
324 dnl If the user has not set --mandir, we default to /usr/share/man
325 dnl -------------------------------------------------------------------------
326 if test x$mandir = x'${prefix}/man' ; then
327 mandir=/usr/share/man
330 dnl -------------------------------------------------------------------------
331 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
332 dnl -------------------------------------------------------------------------
333 if test x$htmldir = x${docdir} ; then
334 htmldir=`eval echo ${docdir}bacula/html`
337 dnl -------------------------------------------------------------------------
338 dnl If the user has not set --docdir, we default to /usr/share/doc/
339 dnl -------------------------------------------------------------------------
340 if test x$docdir = x'/usr/share/doc/' ; then
341 docdir=`eval echo ${docdir}bacula`
345 AC_PATH_PROGS(MSGFMT, msgfmt, no)
346 if test "$MSGFMT" = "no"
348 echo 'msgfmt program not found, disabling NLS !'
350 USE_INCLUDED_LIBINTL=no
358 support_postgresql=no
361 support_smartalloc=yes
366 support_wx_console=no
367 support_tray_monitor=no
372 support_static_tools=no
375 support_static_dir=no
376 support_static_cons=no
386 dnl --------------------------------------------------------------------------
387 dnl CHECKING COMMAND LINE OPTIONS
388 dnl --------------------------------------------------------------------------
390 dnl -------------------------------------------
391 dnl gnome (default off)
392 dnl -------------------------------------------
394 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
396 if test x$enableval = xyes; then
403 if test x$support_gnome = xyes; then
404 AC_MSG_ERROR(bgnome-console no longer supported)
405 AC_MSG_ERROR(--enable-gnome option no longer supported)
407 # AC_SUBST(GNOME_DIR)
409 dnl -------------------------------------------
410 dnl bat (default off)
411 dnl -------------------------------------------
413 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
415 if test x$enableval = xyes; then
416 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
423 if test x$support_bat = xyes; then
424 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
426 if test $pkg = 0; then
427 BAT_DIR=src/qt-console
429 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
434 dnl The qwt library was used with bat, but that is no longer the case
442 dnl if test x$support_bat = xyes; then
443 dnl AC_MSG_CHECKING(for qwt support)
445 dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
447 dnl case "$with_qwt" in
452 dnl if test -f ${with_qwt}/include/qwt.h; then
453 dnl QWT_INC="${with_qwt}/include"
454 dnl QWT_LDFLAGS="-L${with_qwt}/lib"
464 dnl dnl Search in standard places, or --with-qwt not specified
466 dnl if test $no_qwt = no; then
467 dnl if test x$QWT_INC = x; then
468 dnl for root in /usr /usr/local; do
469 dnl for ver in qwt qwt5 qwt-qt4; do
470 dnl if test -f ${root}/include/${ver}/qwt.h; then
471 dnl QWT_INC="${root}/include/${ver}"
472 dnl if test -d ${root}/lib64/; then
473 dnl QWT_LDFLAGS="-L${root}/lib64"
474 dnl elif test -d ${root}/lib/64/; then
475 dnl QWT_LDFLAGS="-L${root}/64"
477 dnl QWT_LDFLAGS="-L${root}/lib"
488 dnl if test x$QWT_INC = x; then
489 dnl AC_MSG_RESULT(no)
491 dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
492 dnl AC_MSG_RESULT(yes)
498 AC_SUBST(QWT_LDFLAGS)
502 dnl -------------------------------------------
503 dnl bwx-console (default off)
504 dnl -------------------------------------------
505 AC_ARG_ENABLE(bwx-console,
506 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
508 if test x$enableval = xyes; then
509 support_wx_console=yes
515 if test x$support_wx_console = xyes; then
516 abc=`$WXCONFIG $WXFLAGS --cppflags`
518 if test $pkg = 0; then
519 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
520 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
521 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
523 AC_SUBST(WXCONS_CPPFLAGS)
524 AC_SUBST(WXCONS_LDFLAGS)
525 WX_DIR="src/wx-console"
528 echo "wx-config program not found. bwx-console disabled."
530 support_wx_console=no
535 dnl -------------------------------------------
536 dnl tray-monitor (default off)
537 dnl -------------------------------------------
538 AC_ARG_ENABLE(tray-monitor,
539 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
541 if test x$enableval = xyes; then
542 support_tray_monitor=yes
548 if test x$support_tray_monitor = xyes; then
549 abc=`$PKGCONFIG --exists gtk+-2.0`
551 if test $pkg = 0; then
552 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
553 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
554 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
555 AC_SUBST(TRAY_MONITOR_LDFLAGS)
556 TRAY_MONITOR_DIR=src/tray-monitor
557 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
559 if test $pkg = 0; then
560 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
564 AC_SUBST(TRAY_MONITOR_DIR)
566 dnl -------------------------------------------
567 dnl smartalloc (default off)
568 dnl -------------------------------------------
569 AC_ARG_ENABLE(smartalloc,
570 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
572 if test x$enableval = xno; then
573 support_smartalloc=no
578 if test x$support_smartalloc = xyes; then
579 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
582 dnl -------------------------------------------
583 dnl Lock Manager (default off)
584 dnl -------------------------------------------
585 AC_ARG_ENABLE(lockmgr,
586 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
588 if test x$enableval = xyes; then
594 if test x$support_lockmgr = xyes; then
595 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
599 dnl -------------------------------------------
600 dnl static-tools (default off)
601 dnl -------------------------------------------
602 AC_ARG_ENABLE(static-tools,
603 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
605 if test x$enableval = xyes; then
606 if test x$use_libtool = xyes; then
607 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
608 please rerun configure with --disable-libtool])
610 support_static_tools=yes
616 if test x$support_static_tools = xyes; then
617 TTOOL_LDFLAGS="-static"
619 AC_SUBST(TTOOL_LDFLAGS)
621 dnl -------------------------------------------
622 dnl static-fd (default off)
623 dnl -------------------------------------------
624 AC_ARG_ENABLE(static-fd,
625 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
627 if test x$enableval = xyes; then
628 if test x$use_libtool = xyes; then
629 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
630 please rerun configure with --disable-libtool])
632 support_static_fd=yes
638 if test x$support_static_fd = xyes; then
639 STATIC_FD="static-bacula-fd"
643 dnl -------------------------------------------
644 dnl static-sd (default off)
645 dnl -------------------------------------------
646 AC_ARG_ENABLE(static-sd,
647 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
649 if test x$enableval = xyes; then
650 if test x$use_libtool = xyes; then
651 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
652 please rerun configure with --disable-libtool])
654 support_static_sd=yes
660 if test x$support_static_sd = xyes; then
661 STATIC_SD="static-bacula-sd"
665 dnl -------------------------------------------
666 dnl static-dir (default off)
667 dnl -------------------------------------------
668 AC_ARG_ENABLE(static-dir,
669 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
671 if test x$enableval = xyes; then
672 if test x$use_libtool = xyes; then
673 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
674 please rerun configure with --disable-libtool])
676 support_static_dir=yes
682 if test x$support_static_dir = xyes; then
683 STATIC_DIR="static-bacula-dir"
687 dnl -------------------------------------------
688 dnl static-cons (default off)
689 dnl -------------------------------------------
690 AC_ARG_ENABLE(static-cons,
691 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
693 if test x$enableval = xyes; then
694 if test x$use_libtool = xyes; then
695 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
696 please rerun configure with --disable-libtool])
698 support_static_cons=yes
706 if test x$support_static_cons = xyes; then
707 STATIC_CONS="static-bconsole"
708 STATIC_GNOME_CONS="static-bgnome-console"
709 STATIC_WX_CONS="static-bwx-console"
711 AC_SUBST(STATIC_CONS)
712 AC_SUBST(STATIC_GNOME_CONS)
713 AC_SUBST(STATIC_WX_CONS)
715 dnl -------------------------------------------
716 dnl client_only (default off)
717 dnl -------------------------------------------
718 AC_ARG_ENABLE(client-only,
719 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
721 if test x$enableval = xyes; then
722 build_client_only=yes
728 if test x$build_client_only = xno; then
735 dnl -------------------------------------------
736 dnl director (default on)
737 dnl -------------------------------------------
738 AC_ARG_ENABLE(build-dird,
739 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
741 if test x$enableval = xno; then
746 if test x$build_dird = xyes; then
751 DIR_TOOLS="NODIRTOOLS"
756 dnl -------------------------------------------
757 dnl stored (default on)
758 dnl -------------------------------------------
759 AC_ARG_ENABLE(build-stored,
760 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
762 if test x$enableval = xno; then
767 if test x$build_stored = xyes; then
768 STORED_DIR="src/stored"
774 dnl ---------------------------------------------------
775 dnl Check for conio (Bacula readline substitute)(
776 dnl ---------------------------------------------------
777 dnl this allows you to turn it completely off
779 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
781 if test x$enableval = xno; then
788 dnl ---------------------------------------------------
789 dnl Check for IPv6 support
790 dnl ---------------------------------------------------
791 dnl this allows you to turn it completely off
794 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
796 if test x$enableval = xno; then
802 if test x$support_ipv6 = xyes; then
803 AC_TRY_LINK([ #include <sys/types.h>
804 #include <sys/socket.h>
805 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
806 [support_ipv6=yes], [support_ipv6=no])
809 if test x$support_ipv6 = xyes; then
810 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
814 AC_CHECK_HEADER(termcap.h,
815 [ AC_CHECK_LIB(termcap, tgetent,
816 [ TERM_LIB="-ltermcap" ],
817 [ AC_CHECK_LIB(ncurses, tgetent, [ TERM_LIB="-lncurses" ])
820 [ AC_CHECK_HEADERS(curses.h)
821 AC_CHECK_HEADER(term.h,
822 [ AC_CHECK_LIB(curses, tgetent,
823 [ TERM_LIB="-lcurses" ] )
829 if test x$support_conio = xyes; then
830 if test x$TERM_LIB != x; then
836 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
838 echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
843 dnl ---------------------------------------------------
844 dnl Check for readline support/directory (default off)
845 dnl ---------------------------------------------------
846 dnl this allows you to turn it completely off
847 AC_ARG_ENABLE(readline,
848 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
850 if test x$enableval = xno; then
855 if test x$TERM_LIB = x ; then
861 if test x$support_readline = xyes; then
862 AC_ARG_WITH(readline,
863 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
865 case "$with_readline" in
870 if test -f ${with_readline}/readline.h; then
871 CONS_INC="-I${with_readline}"
872 CONS_LDFLAGS="-L$with_readline"
873 elif test -f ${with_readline}/include/readline/readline.h; then
874 CONS_INC="-I${with_readline}/include/readline"
875 CONS_LDFLAGS="-L${with_readline}/lib"
876 with_readline="${with_readline}/include/readline"
878 with_readline="/usr/include/readline"
881 AC_CHECK_HEADER(${with_readline}/readline.h,
883 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
884 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
888 echo "readline.h not found. readline turned off ..."
895 dnl check for standard readline library
896 AC_CHECK_HEADER(/usr/include/readline/readline.h,
898 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
900 CONS_INC="-I/usr/include/readline"
901 CONS_LIBS="-lreadline $TERM_LIB"
903 dnl Did not find standard library, so try Bacula's default
904 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
906 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
908 CONS_INC="-I${TOP_DIR}/depkgs/readline"
909 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
910 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
911 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
914 echo "readline.h not found. readline turned off ..."
928 AC_SUBST(CONS_LDFLAGS)
929 AC_SUBST(READLINE_SRC)
931 dnl Minimal stuff for readline Makefile configuration
936 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
937 AC_CHECK_FUNCS(nanosleep nl_langinfo)
938 AC_CHECK_HEADERS(varargs.h)
940 dnl End of readline/conio stuff
941 dnl -----------------------------------------------------------------------
943 dnl -----------------------------------------------------------------------
944 dnl Check for Python support
946 AC_MSG_CHECKING(for Python support)
948 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.]),
952 if test "$withval" != "no"; then
953 if test "$withval" = "yes"; then
954 if test -e /usr/bin/python-config ; then
955 PYTHON_INCDIR=`/usr/bin/python-config --includes`
956 PYTHON_LIBS=`/usr/bin/python-config --libs`
958 for python_root in /usr /usr/local /usr/sfw; do
959 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
960 if test -f $python_root/include/${ver}/Python.h; then
961 PYTHON_INCDIR=-I$python_root/include/${ver}
962 if test -d $python_root/lib64/${ver}/config; then
963 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
965 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
972 if test x$PYTHON_INCDIR = x; then
973 if test -f $prefix/include/Python.h; then
974 PYTHON_INCDIR=-I$prefix/include
975 if test -d $prefix/lib64/config; then
976 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
978 PYTHON_LIBS="-L$prefix/lib/config -lpython"
982 AC_MSG_ERROR(Unable to find Python.h in standard locations)
987 if test -e $withval/bin/python-config ; then
988 PYTHON_INCDIR=`$withval/bin/python-config --includes`
989 PYTHON_LIBS=`$withval/bin/python-config --libs`
990 elif test -f $withval/Python.h; then
991 PYTHON_INCDIR=-I$withval
992 PYTHON_LIBS="-L$withval/config -lpython"
993 elif test -f $withval/include/Python.h; then
994 PYTHON_INCDIR=-I$withval/include
995 if test -d $withval/lib64/config; then
996 PYTHON_LIBS="-L$withval/lib64/config -lpython"
998 PYTHON_LIBS="-L$withval/lib/config -lpython"
1000 elif test -f $withval/include/python/Python.h; then
1001 PYTHON_INCDIR=-I$withval/include/python
1002 if test -d $withval/lib64/python/config; then
1003 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1005 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1009 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1013 AC_DEFINE([HAVE_PYTHON], 1)
1016 AC_MSG_NOTICE(checking for more Python libs)
1017 saved_LIBS="$LIBS"; LIBS=
1018 AC_SEARCH_LIBS(shm_open, [rt])
1019 AC_CHECK_LIB(util, openpty)
1020 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1029 AC_SUBST(PYTHON_LIBS)
1030 AC_SUBST(PYTHON_INCDIR)
1033 dnl Find where sockets are (especially for Solaris)
1034 dnl Do this before the TCP Wrappers test since tcp wrappers
1035 dnl uses the socket library and some linkers are stupid.
1037 AC_CHECK_FUNC(socket,
1038 AC_MSG_RESULT(using libc's socket),
1039 AC_CHECK_LIB(xnet,socket)
1040 AC_CHECK_LIB(socket,socket)
1041 AC_CHECK_LIB(inet,socket))
1043 dnl -----------------------------------------------------------
1044 dnl Check whether user wants TCP wrappers support (default off)
1045 dnl -----------------------------------------------------------
1048 AC_ARG_WITH(tcp-wrappers,
1049 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1051 if test "x$withval" != "xno" ; then
1053 LIBS="$saved_LIBS -lwrap"
1054 AC_SEARCH_LIBS(nanosleep, [rt])
1055 AC_MSG_CHECKING(for libwrap)
1058 #include <sys/types.h>
1060 int deny_severity = 0;
1061 int allow_severity = 0;
1062 struct request_info *req;
1067 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1072 LIBS="$saved_LIBS -lwrap -lnsl"
1073 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1076 #include <sys/types.h>
1078 int deny_severity = 0;
1079 int allow_severity = 0;
1080 struct request_info *req;
1085 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1090 AC_MSG_ERROR([*** libwrap missing])
1099 dnl -----------------------------------------------------------
1100 dnl Check whether OpenSSL is available
1101 dnl -----------------------------------------------------------
1102 AC_MSG_CHECKING([for OpenSSL])
1103 dnl The following uses quadrigraphs:
1106 AC_ARG_WITH(openssl,
1107 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1109 with_openssl_directory=${withval}
1113 if test "x$with_openssl_directory" != "xno"; then
1114 OPENSSL_LIBS="-lssl -lcrypto"
1117 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1119 # Make sure the $with_openssl_directory also makes sense
1121 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1122 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1123 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1127 saved_LIBS="${LIBS}"
1128 saved_CFLAGS="${CFLAGS}"
1129 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1130 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1134 #include <openssl/ssl.h>
1136 CRYPTO_set_id_callback(NULL);
1139 support_crypto="yes"
1148 #include <openssl/evp.h>
1152 ac_cv_openssl_sha2="yes"
1154 ac_cv_openssl_sha2="no"
1158 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1159 dnl implementation, presumably for export reasons. If 192bit AES
1160 dnl is available, we assume that we're running with a 'non-export'
1161 dnl openssl library.
1164 #include <openssl/evp.h>
1168 ac_cv_openssl_export="no"
1170 ac_cv_openssl_export="yes"
1174 if test "$support_tls" = "yes"; then
1175 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1176 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1177 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1180 if test "$ac_cv_openssl_sha2" = "yes"; then
1181 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1184 if test "$ac_cv_openssl_export" = "yes"; then
1185 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1188 if test "$support_crypto" = "yes"; then
1189 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1192 LIBS="${saved_LIBS}"
1193 CFLAGS="${saved_CFLAGS}"
1201 if test "$support_tls" = "no"; then
1205 if test "$support_crypto" = "no"; then
1210 AC_MSG_RESULT([$support_tls])
1211 AC_SUBST(OPENSSL_LIBS)
1212 AC_SUBST(OPENSSL_INC)
1214 dnl -----------------------------------------------------------
1215 dnl dlopen is needed for plugins
1216 dnl -----------------------------------------------------------
1217 AC_SEARCH_LIBS(dlopen, [dl])
1219 dnl ------------------------------------------
1220 dnl Where to place working dir
1221 dnl ------------------------------------------
1222 working_dir=`eval echo ${prefix}/var/bacula/working`
1223 AC_ARG_WITH(working-dir,
1224 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1226 if test "x$withval" != "xno" ; then
1227 working_dir=$withval
1232 AC_SUBST(working_dir)
1234 dnl ------------------------------------------------------------------
1235 dnl If the user has not set archivedir, we set our default as /tmp
1236 dnl ------------------------------------------------------------------
1238 AC_ARG_WITH(archivedir,
1239 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1241 if test "x$withval" != "xno" ; then
1247 AC_SUBST(archivedir)
1249 dnl ------------------------------------------------------------------
1250 dnl Allow the user to specify the daemon resource name default hostname
1251 dnl ------------------------------------------------------------------
1253 AC_ARG_WITH(basename,
1254 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1256 if test "x$withval" != "xno" ; then
1264 dnl ------------------------------------------------------------------
1265 dnl Allow the user to override the hostname (default = machine hostname)
1266 dnl ------------------------------------------------------------------
1267 hostname=`uname -n | cut -d '.' -f 1`
1268 if test x${hostname} = x ; then
1269 hostname="localhost"
1271 AC_ARG_WITH(hostname,
1272 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1274 if test "x$withval" != "xno" ; then
1283 dnl ------------------------------------------
1284 dnl Where to place scriptdir (script files)
1285 dnl ------------------------------------------
1286 scriptdir=`eval echo ${sysconfdir}`
1287 AC_ARG_WITH(scriptdir,
1288 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1290 if test "x$withval" != "xno" ; then
1299 dnl ------------------------------------------
1300 dnl Where to place bsrdir (bsr files)
1301 dnl ------------------------------------------
1304 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1306 if test "x$withval" != "xno" ; then
1314 dnl ------------------------------------------
1315 dnl Where to place logdir (bsr files)
1316 dnl ------------------------------------------
1319 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1321 if test "x$withval" != "xno" ; then
1330 # ------------------------------------------
1331 # Where to place plugindir (plugin files)
1332 # ------------------------------------------
1333 plugindir=`eval echo ${libdir}`
1334 AC_ARG_WITH(plugindir,
1335 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1337 if test "x$withval" != "xno" ; then
1345 dnl ------------------------------------------
1346 dnl Where to send dump email
1347 dnl ------------------------------------------
1348 dump_email=root@localhost
1349 AC_ARG_WITH(dump-email,
1350 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1352 if test "x$withval" != "xno" ; then
1358 AC_SUBST(dump_email)
1360 dnl ------------------------------------------
1361 dnl Where to send job email
1362 dnl ------------------------------------------
1363 job_email=root@localhost
1364 AC_ARG_WITH(job-email,
1365 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1367 if test "x$withval" != "xno" ; then
1375 dnl ------------------------------------------
1376 dnl Where to find smtp host
1377 dnl ------------------------------------------
1379 AC_ARG_WITH(smtp_host,
1380 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1382 if test "x$withval" != "xno" ; then
1390 dnl ------------------------------------
1391 dnl Where to place pid files
1392 dnl ------------------------------------
1394 AC_ARG_WITH(pid-dir,
1395 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1397 if test "x$withval" != "xno" ; then
1403 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1406 dnl ------------------------------------
1407 dnl Where to place subsys "lock file"
1408 dnl ------------------------------------
1409 subsysdir=/var/run/subsys
1410 if test -d /var/run/subsys; then
1411 subsysdir=/var/run/subsys
1412 elif test -d /var/lock/subsys; then
1413 subsysdir=/var/lock/subsys
1415 subsysdir=/var/run/subsys
1417 AC_ARG_WITH(subsys-dir,
1418 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1420 if test "x$withval" != "xno" ; then
1428 dnl ------------------------------------
1429 dnl Where to start assigning ports
1430 dnl ------------------------------------
1432 AC_ARG_WITH(baseport,
1433 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1435 if test "x$withval" != "xno" ; then
1442 dir_port=`expr $baseport`
1443 fd_port=`expr $baseport + 1`
1444 sd_port=`expr $fd_port + 1`
1450 dnl ------------------------------------------
1451 dnl Generate passwords
1452 dnl ------------------------------------------
1454 AC_ARG_WITH(dir-password,
1455 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1457 if test "x$withval" != "xno" ; then
1458 dir_password=$withval
1463 if test "x$dir_password" = "x" ; then
1464 if test "x$OPENSSL" = "xnone" ; then
1465 key=`autoconf/randpass 33`
1467 key=`openssl rand -base64 33`
1473 AC_ARG_WITH(fd-password,
1474 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1476 if test "x$withval" != "xno" ; then
1477 fd_password=$withval
1482 if test "x$fd_password" = "x" ; then
1483 if test "x$OPENSSL" = "xnone" ; then
1484 key=`autoconf/randpass 37`
1486 key=`openssl rand -base64 33`
1492 AC_ARG_WITH(sd-password,
1493 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1495 if test "x$withval" != "xno" ; then
1496 sd_password=$withval
1501 if test "x$sd_password" = "x" ; then
1502 if test "x$OPENSSL" = "xnone" ; then
1503 key=`autoconf/randpass 41`
1505 key=`openssl rand -base64 33`
1511 AC_ARG_WITH(mon-dir-password,
1512 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1514 if test "x$withval" != "xno" ; then
1515 mon_dir_password=$withval
1520 if test "x$mon_dir_password" = "x" ; then
1521 if test "x$OPENSSL" = "xnone" ; then
1522 key=`autoconf/randpass 33`
1524 key=`openssl rand -base64 33`
1526 mon_dir_password=$key
1530 AC_ARG_WITH(mon-fd-password,
1531 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1533 if test "x$withval" != "xno" ; then
1534 mon_fd_password=$withval
1539 if test "x$mon_fd_password" = "x" ; then
1540 if test "x$OPENSSL" = "xnone" ; then
1541 key=`autoconf/randpass 37`
1543 key=`openssl rand -base64 33`
1545 mon_fd_password=$key
1549 AC_ARG_WITH(mon-sd-password,
1550 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1552 if test "x$withval" != "xno" ; then
1553 mon_sd_password=$withval
1558 if test "x$mon_sd_password" = "x" ; then
1559 if test "x$OPENSSL" = "xnone" ; then
1560 key=`autoconf/randpass 41`
1562 key=`openssl rand -base64 33`
1564 mon_sd_password=$key
1567 AC_SUBST(dir_password)
1568 AC_SUBST(fd_password)
1569 AC_SUBST(sd_password)
1570 AC_SUBST(mon_dir_password)
1571 AC_SUBST(mon_fd_password)
1572 AC_SUBST(mon_sd_password)
1575 dnl Pickup any database name
1578 AC_ARG_WITH(db_name,
1579 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1581 if test "x$withval" != "x" ; then
1589 AC_ARG_WITH(db_user,
1590 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1592 if test "x$withval" != "x" ; then
1600 AC_ARG_WITH(db_password,
1601 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1603 if test "x$withval" != "x" ; then
1604 db_password=$withval
1608 AC_SUBST(db_password)
1611 dnl Pickup a database port
1614 AC_ARG_WITH(db_port,
1615 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1617 if test "x$withval" != "x" ; then
1625 # Handle users and groups for each daemon
1628 AC_ARG_WITH(dir_user,
1629 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1631 if test "x$withval" != "x" ; then
1638 AC_ARG_WITH(dir_group,
1639 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1641 if test "x$withval" != "x" ; then
1648 AC_ARG_WITH(sd_user,
1649 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1651 if test "x$withval" != "x" ; then
1658 AC_ARG_WITH(sd_group,
1659 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1661 if test "x$withval" != "x" ; then
1668 AC_ARG_WITH(fd_user,
1669 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1671 if test "x$withval" != "x" ; then
1678 AC_ARG_WITH(fd_group,
1679 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1681 if test "x$withval" != "x" ; then
1695 dnl allow setting default executable permissions
1698 AC_ARG_WITH(sbin-perm,
1699 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0750@:>@]),
1701 if test "x$withval" != "x" ; then
1709 dnl ------------------------------------------------
1710 dnl Bacula check for various SQL database engines
1711 dnl ------------------------------------------------
1713 BA_CHECK_POSTGRESQL_DB
1721 # BA_CHECK_SQLITE_DB
1730 dnl -------------------------------------------
1731 dnl enable batch attribute DB insert (default on)
1732 dnl -------------------------------------------
1733 support_batch_insert=no
1734 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1736 if test $pkg = 0; then
1737 support_batch_insert=yes
1738 AC_ARG_ENABLE(batch-insert,
1739 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1741 if test x$enableval = xno; then
1742 support_batch_insert=no
1744 support_batch_insert=yes
1750 dnl For postgresql checking
1751 saved_LIBS="${LIBS}"
1752 LIBS="${saved_LIBS} ${SQL_LFLAGS}"
1754 dnl Check if postgresql can support batch mode
1755 if test x$DB_TYPE = xpostgresql; then
1756 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1757 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1758 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1760 support_batch_insert=no
1764 if test x$DB_TYPE = xdbi; then
1768 dnl Check for batch insert
1769 if test $DB_PROG = postgresql; then
1770 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1771 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1772 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1776 if test $DB_PROG = mysql; then
1777 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1781 if test $DB_PROG = sqlite3; then
1782 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1784 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1787 if test $pkg = 0; then
1788 AC_ARG_ENABLE(batch-insert,
1789 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1791 if test x$enableval = xno; then
1792 support_batch_insert=no
1794 support_batch_insert=yes
1800 dnl If dbi was not chosen, let the comment in file
1804 dnl revert after postgresql checks
1805 LIBS="${saved_LIBS}"
1807 AC_SUBST(uncomment_dbi)
1809 if test $support_batch_insert = yes ; then
1810 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1813 AC_DEFINE(PROTOTYPES)
1815 dnl --------------------------------------------------------------------------
1816 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1818 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1819 if test -z "$CCOPTS"; then
1820 CCOPTS='-g -O2 -Wall'
1828 dnl See if we can use 64 bit file addresses
1829 largefile_support="no"
1834 dnl --------------------------------------------------------------------------
1835 dnl CHECKING FOR HEADER FILES
1836 dnl --------------------------------------------------------------------------
1874 AC_STRUCT_ST_BLKSIZE
1878 dnl --------------------------------------------------------------------------
1879 dnl Check for utime.h structure
1880 dnl --------------------------------------------------------------------------
1881 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1885 #include <sys/types.h>
1890 ba_cv_header_utime_h=yes
1892 ba_cv_header_utime_h=no
1897 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1899 dnl --------------------------------------------------------------------------
1900 dnl Check for socklen_t
1901 dnl --------------------------------------------------------------------------
1902 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1906 #include <sys/types.h>
1907 #include <sys/socket.h>
1911 ba_cv_header_socklen_t=yes
1913 ba_cv_header_socklen_t=no
1918 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1920 dnl --------------------------------------------------------------------------
1921 dnl Check for ioctl request type
1922 dnl --------------------------------------------------------------------------
1924 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1929 #include <sys/types.h>
1930 #include <sys/ioctl.h>
1932 int (*d_ioctl)(int fd, unsigned long int request, ...);
1935 ba_cv_header_ioctl_req_t=yes
1937 ba_cv_header_ioctl_req_t=no
1942 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1944 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1945 dnl *BSD systems still use old style C prototypes, which are wrong with
1946 dnl compiled with a C++ compiler.
1949 dnl --------------------------------------------------------------------------
1950 dnl Check for typeof()
1951 dnl --------------------------------------------------------------------------
1953 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1957 main(){char *a = 0; a = (typeof a)a;}
1959 ba_cv_have_typeof=yes
1961 ba_cv_have_typeof=no
1963 ba_cv_have_typeof=no
1968 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1973 dnl --------------------------------------------------------------------------
1974 dnl CHECKING FOR FILESYSTEM TYPE
1975 dnl --------------------------------------------------------------------------
1976 AC_MSG_CHECKING(how to get filesystem type)
1978 # The order of these tests is important.
1981 #include <sys/statvfs.h>
1982 #include <sys/fstyp.h>
1984 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1986 if test $fstype = no; then
1989 #include <sys/statfs.h>
1990 #include <sys/fstyp.h>
1992 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1995 if test $fstype = no; then
1998 #include <sys/statfs.h>
1999 #include <sys/vmount.h>
2001 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2004 if test $fstype = no; then
2009 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2012 if test $fstype = no; then
2013 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2015 if test $fstype = no; then
2018 #include <sys/mount.h>
2019 #include <sys/fs_types.h>
2021 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2024 AC_MSG_RESULT($fstype)
2026 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2028 dnl --------------------------------------------------------------------------
2029 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2030 dnl --------------------------------------------------------------------------
2040 AC_CHECK_TYPE(ino_t, unsigned long)
2041 AC_CHECK_TYPE(dev_t, unsigned long)
2042 AC_CHECK_TYPE(daddr_t, long)
2043 AC_CHECK_TYPE(major_t, int)
2044 AC_CHECK_TYPE(minor_t, int)
2045 AC_CHECK_TYPE(ssize_t, int)
2051 AC_CHECK_SIZEOF(char, 1)
2052 AC_CHECK_SIZEOF(short int, 2)
2053 AC_CHECK_SIZEOF(int, 4)
2054 AC_CHECK_SIZEOF(long int, 4)
2055 AC_CHECK_SIZEOF(long long int, 8)
2056 AC_CHECK_SIZEOF(int *, 4)
2058 dnl Check for sys/types.h types
2059 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2063 #include <sys/types.h>
2067 ac_cv_have_u_int="yes"
2069 ac_cv_have_u_int="no"
2074 if test "x$ac_cv_have_u_int" = "xyes" ; then
2075 AC_DEFINE(HAVE_U_INT)
2079 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2083 #include <sys/types.h>
2087 ac_cv_have_intmax_t="yes"
2095 ac_cv_have_intmax_t="yes"
2097 ac_cv_have_intmax_t="no"
2104 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2105 AC_DEFINE(HAVE_INTMAX_T)
2109 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2113 #include <sys/types.h>
2115 u_intmax_t a; a = 1;
2117 ac_cv_have_u_intmax_t="yes"
2123 u_intmax_t a; a = 1;
2125 ac_cv_have_u_intmax_t="yes"
2127 ac_cv_have_u_intmax_t="no"
2134 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2135 AC_DEFINE(HAVE_U_INTMAX_T)
2139 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2143 #include <sys/types.h>
2145 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2147 ac_cv_have_intxx_t="yes"
2149 ac_cv_have_intxx_t="no"
2154 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2155 AC_DEFINE(HAVE_INTXX_T)
2159 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2163 #include <sys/types.h>
2167 ac_cv_have_int64_t="yes"
2169 ac_cv_have_int64_t="no"
2174 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2175 AC_DEFINE(HAVE_INT64_T)
2179 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2183 #include <sys/types.h>
2185 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2187 ac_cv_have_u_intxx_t="yes"
2189 ac_cv_have_u_intxx_t="no"
2194 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2195 AC_DEFINE(HAVE_U_INTXX_T)
2199 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2203 #include <sys/types.h>
2207 ac_cv_have_u_int64_t="yes"
2209 ac_cv_have_u_int64_t="no"
2214 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2215 AC_DEFINE(HAVE_U_INT64_T)
2219 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2220 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2222 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2225 #include <sys/bitypes.h>
2227 int8_t a; int16_t b; int32_t c;
2228 u_int8_t e; u_int16_t f; u_int32_t g;
2229 a = b = c = e = f = g = 1;
2231 AC_DEFINE(HAVE_U_INTXX_T)
2232 AC_DEFINE(HAVE_INTXX_T)
2233 AC_DEFINE(HAVE_SYS_BITYPES_H)
2241 if test -z "$have_u_intxx_t" ; then
2242 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2246 #include <sys/types.h>
2248 uint8_t a; uint16_t b;
2249 uint32_t c; a = b = c = 1;
2251 ac_cv_have_uintxx_t="yes"
2253 ac_cv_have_uintxx_t="no"
2258 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2259 AC_DEFINE(HAVE_UINTXX_T)
2263 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2264 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2266 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2269 #include <sys/bitypes.h>
2271 int64_t a; u_int64_t b;
2274 AC_DEFINE(HAVE_U_INT64_T)
2275 AC_DEFINE(HAVE_INT64_T)
2283 if (test -z "$have_uintxx_t" && \
2284 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2286 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2289 #include <sys/bitypes.h>
2291 uint8_t a; uint16_t b;
2292 uint32_t c; a = b = c = 1;
2294 AC_DEFINE(HAVE_UINTXX_T)
2302 dnl --------------------------------------------------------------------------
2303 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2304 dnl --------------------------------------------------------------------------
2320 [echo 'configure: cannot find needed function.'; exit 1]
2323 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2324 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2325 AC_CHECK_FUNCS(posix_fadvise)
2326 AC_CHECK_FUNCS(fdatasync)
2328 AC_CHECK_FUNCS(chflags)
2330 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2332 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2337 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2338 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2340 call_use_va_copy(1,2,3)
2349 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2351 dnl --------------------------------------------------------------------------
2352 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2353 dnl --------------------------------------------------------------------------
2354 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2356 # If resolver functions are not in libc check for -lnsl or -lresolv.
2357 AC_CHECK_FUNC(gethostbyname_r,
2358 AC_MSG_RESULT(using libc's resolver),
2359 AC_CHECK_LIB(nsl,gethostbyname_r)
2360 AC_CHECK_LIB(resolv,gethostbyname_r))
2362 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2363 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2364 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2366 dnl ----------------------------
2367 dnl check sa_len of sockaddr
2368 dnl ----------------------------
2369 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2373 #include <sys/socket.h>
2375 struct sockaddr s; s.sa_len;
2377 ac_cv_struct_sockaddr_sa_len=yes
2378 ], [ac_cv_struct_sockaddr_sa_len=no
2384 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2385 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2392 AC_FUNC_CLOSEDIR_VOID
2393 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2394 # AC_FUNC_FNMATCH dnl use local version
2396 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2398 AC_CHECK_LIB(sun, getpwnam)
2400 AC_CHECK_HEADERS(zlib.h)
2401 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2403 if test x$FDLIBS = x-lz; then
2404 AC_DEFINE(HAVE_LIBZ)
2409 dnl Check for ACL support and libraries
2413 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2415 if test x$enableval = xyes; then
2417 elif test x$enableval = xno; then
2424 have_extended_acl=no
2425 if test x$support_acl = xyes -o x$support_acl = xauto; then
2426 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2427 AC_CHECK_FUNC(acl_get_file,
2431 AC_CHECK_LIB(acl, acl_get_file,
2434 FDLIBS="-lacl $FDLIBS"
2436 AC_CHECK_LIB(pacl, acl_get_file,
2439 FDLIBS="-lpacl $FDLIBS"
2441 AC_CHECK_LIB(sec, acltotext,
2444 FDLIBS="-lsec $FDLIBS"
2446 AC_CHECK_LIB(sec, acl_totext,
2448 have_extended_acl=yes
2460 if test x$support_acl = xyes -a $have_acl != yes; then
2461 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2462 please either load the acl libraries or rerun configure without --enable-acl])
2464 if test $have_acl = yes; then
2465 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2468 if test $have_extended_acl = yes; then
2469 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2475 dnl Check for XATTR support
2478 AC_ARG_ENABLE(xattr,
2479 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2481 if test x$enableval = xyes; then
2483 elif test x$enableval = xno; then
2490 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2492 dnl First check for *BSD support
2494 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2495 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2496 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2499 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2500 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2501 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2505 if test $have_xattr = no; then
2506 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2509 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2510 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2511 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2516 if test $have_xattr = yes; then
2517 have_extattr_string_in_libc=no
2518 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2520 have_extattr_string_in_libc=yes
2521 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2522 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2527 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2529 if test $have_extattr_string_in_libc = no; then
2530 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2532 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2533 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2534 FDLIBS="-lutil $FDLIBS"
2541 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2543 if test $have_xattr = no; then
2544 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2545 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2548 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2549 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2550 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2554 if test $have_xattr = no; then
2555 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2558 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2559 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2560 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2567 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2569 if test $have_xattr = no; then
2570 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2571 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2572 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2574 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2577 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2578 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2579 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2580 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2581 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2585 if test $have_xattr = yes; then
2586 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2588 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2589 FDLIBS="-lnvpair $FDLIBS"
2595 if test x$support_xattr = xyes -a $have_xattr != yes; then
2596 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2597 please either load the xattr libraries or rerun configure without --enable-xattr])
2599 if test $have_xattr = yes; then
2600 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2606 dnl Check for pthread libraries
2609 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2611 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2613 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2615 AC_CHECK_FUNC(pthread_create)
2624 dnl Check for headers, functions and libraries required to support
2625 dnl keeping readall capabilities
2627 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2628 AC_CHECK_FUNCS(prctl setreuid)
2629 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2630 if test x$CAP_LIBS = x-lcap; then
2631 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2640 if test x$have_gcc = xyes ; then
2641 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2642 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2644 LDFLAGS=${LDFLAGS--O}
2645 DB_LIBS="${SQL_LFLAGS}"
2646 CPPFLAGS="$CPPFLAGS"
2659 AC_SUBST(X_EXTRA_LIBS)
2664 dnl extra configurable objects
2675 dnl Finally we set appropriate distribution specific
2676 dnl variables and defaults
2678 dnl PFILES are platform specific files
2679 PFILES="platforms/Makefile"
2684 hostname=`uname -n | cut -d '.' -f 1`
2685 if test x${hostname} = x ; then
2686 hostname="localhost"
2688 dnl Make sure hostname is resolved
2689 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2690 if test ! $? = 0; then
2691 hostname="localhost"
2697 PSCMD="ps -e -o pid,comm"
2699 platforms/aix/Makefile"
2700 TAPEDRIVE="/dev/rmt0.1"
2704 PTHREAD_LIB="-lpthread -lexc"
2705 if test "${CC}" = "gcc" ; then
2712 TAPEDRIVE="/dev/nrmt0"
2715 DISTVER=`uname -a |awk '{print $3}'`
2716 TAPEDRIVE="/dev/nrmt0"
2717 PTHREAD_LIB="-pthread"
2718 CFLAGS="${CFLAGS} -pthread"
2719 PSCMD="ps -ax -o pid,command"
2723 platforms/bsdi/Makefile \
2724 platforms/bsdi/bacula-fd \
2725 platforms/bsdi/bacula-sd \
2726 platforms/bsdi/bacula-dir"
2727 largefile_support="yes"
2730 DISTVER=`uname -a |awk '{print $3}'`
2731 TAPEDRIVE="/dev/nrst0"
2734 WLDFLAGS="-mwindows"
2738 TAPEDRIVE="/dev/nst0"
2739 PSCMD="ps -e -o pid,command"
2742 platforms/darwin/Makefile"
2746 TAPEDRIVE="/dev/nst0"
2747 PSCMD="ps -e -o pid,command"
2750 platforms/osx/Makefile"
2753 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2756 DISTVER=`cat /etc/debian_version`
2757 if test -f /etc/lsb-release ; then
2759 if test "x$DISTRIB_ID" != "x" ; then
2760 DISTNAME=$DISTRIB_ID
2762 if test "x$DISTRIB_RELEASE" != "x" ; then
2763 DISTVER=$DISTRIB_RELEASE
2766 if test "$DISTNAME" = "Ubuntu" ; then
2769 TAPEDRIVE="/dev/nst0"
2770 PSCMD="ps -e -o pid,command"
2771 if test "$DISTNAME" = "ubuntu" ; then
2773 platforms/ubuntu/Makefile \
2774 platforms/ubuntu/bacula-fd \
2775 platforms/ubuntu/bacula-sd \
2776 platforms/ubuntu/bacula-dir"
2779 platforms/debian/Makefile \
2780 platforms/debian/bacula-fd \
2781 platforms/debian/bacula-sd \
2782 platforms/debian/bacula-dir"
2786 DISTVER=`uname -a |awk '{print $3}'`
2787 VER=`echo $DISTVER | cut -c 1`
2788 if test x$VER = x4 ; then
2789 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2790 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2794 TAPEDRIVE="/dev/nrsa0"
2795 PSCMD="ps -ax -o pid,command"
2797 platforms/freebsd/Makefile \
2798 platforms/freebsd/bacula-fd \
2799 platforms/freebsd/bacula-sd \
2800 platforms/freebsd/bacula-dir"
2801 largefile_support="yes"
2804 PSCMD="UNIX95=1; ps -e -o pid,comm"
2805 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2807 TAPEDRIVE="/dev/rmt/0hnb"
2808 PTHREAD_LIB="-lpthread"
2809 AC_DEFINE([_INCLUDE_LONGLONG])
2813 TAPEDRIVE="/dev/rmt/0cbn"
2814 PSCMD="ps -e -o pid,comm"
2816 platforms/irix/Makefile \
2817 platforms/irix/bacula-fd \
2818 platforms/irix/bacula-sd \
2819 platforms/irix/bacula-dir"
2822 DISTVER=`uname -a |awk '{print $3}'`
2825 TAPEDRIVE="/dev/nrst0"
2826 PSCMD="ps -ax -o pid,command"
2827 PTHREAD_LIB="-pthread"
2828 CFLAGS="${CFLAGS} -pthread"
2831 DISTVER=`uname -a |awk '{print $3}'`
2834 TAPEDRIVE="/dev/nrst0"
2835 PSCMD="ps -ax -o pid,command"
2836 PTHREAD_LIB="-pthread"
2837 CFLAGS="${CFLAGS} -pthread"
2839 platforms/openbsd/Makefile \
2840 platforms/openbsd/bacula-fd \
2841 platforms/openbsd/bacula-sd \
2842 platforms/openbsd/bacula-dir"
2845 if test -f /etc/whitebox-release ; then
2846 f=/etc/whitebox-release
2848 f=/etc/redhat-release
2850 if test `cat $f | grep release |\
2851 cut -f 3 -d ' '`x = "Enterprise"x ; then
2852 DISTVER="Enterprise "`cat $f | grep release |\
2855 DISTVER=`cat /etc/redhat-release | grep release |\
2858 TAPEDRIVE="/dev/nst0"
2859 PSCMD="ps -e -o pid,command"
2861 platforms/redhat/Makefile \
2862 platforms/redhat/bacula-fd \
2863 platforms/redhat/bacula-sd \
2864 platforms/redhat/bacula-dir
2868 DISTVER=`cat /etc/mandrake-release | grep release |\
2870 TAPEDRIVE="/dev/nst0"
2871 PSCMD="ps -e -o pid,command"
2873 platforms/mandrake/Makefile \
2874 platforms/mandrake/bacula-fd \
2875 platforms/mandrake/bacula-sd \
2876 platforms/mandrake/bacula-dir \
2880 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2881 TAPEDRIVE="/dev/nst0"
2882 PSCMD="ps -e -o pid,command"
2884 platforms/gentoo/Makefile \
2885 platforms/gentoo/bacula-init \
2886 platforms/gentoo/bacula-fd \
2887 platforms/gentoo/bacula-sd \
2888 platforms/gentoo/bacula-dir"
2891 DISTVER=`cat /etc/slackware-version`
2892 TAPEDRIVE="/dev/nst0"
2893 PSCMD="ps -e -o pid,command"
2895 platforms/slackware/Makefile \
2896 platforms/slackware/rc.bacula-fd \
2897 platforms/slackware/rc.bacula-sd \
2898 platforms/slackware/rc.bacula-dir\
2899 platforms/slackware/functions.bacula"
2903 TAPEDRIVE="/dev/rmt/0cbn"
2904 PSCMD="ps -e -o pid,comm"
2906 platforms/solaris/Makefile \
2907 platforms/solaris/bacula-fd \
2908 platforms/solaris/bacula-sd \
2909 platforms/solaris/bacula-dir"
2910 if test x$DISTVER = x5.6 ; then
2911 AC_DEFINE(HAVE_OLD_SOCKOPT)
2913 LIBS="$LIBS -lresolv -lrt"
2916 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2918 TAPEDRIVE="/dev/nst0"
2919 PSCMD="ps -e -o pid,command"
2921 platforms/suse/Makefile \
2922 platforms/suse/bacula-fd \
2923 platforms/suse/bacula-sd \
2924 platforms/suse/bacula-dir"
2929 TAPEDRIVE="/dev/nst0"
2930 PSCMD="ps -e -o pid,command"
2932 platforms/suse/Makefile \
2933 platforms/suse/bacula-fd \
2934 platforms/suse/bacula-sd \
2935 platforms/suse/bacula-dir"
2939 TAPEDRIVE="/dev/nst0"
2942 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2948 LIBS="$PTHREAD_LIB $LIBS"
2950 AC_DEFINE_UNQUOTED(lld, "$lld")
2951 AC_DEFINE_UNQUOTED(llu, "$llu")
2959 dnl common parts of the Makefile
2960 MCOMMON=./autoconf/Make.common
2961 AC_SUBST_FILE(MCOMMON)
2964 if test "x${subsysdir}" = "x${sbindir}" ; then
2967 echo "You have set both --sbindir and --with-subsys-dir"
2968 echo " equal to: ${subsysdir} "
2969 echo "This is not permitted. Please reconfigure."
2971 echo "Aborting configuration ..."
2977 AC_OUTPUT([autoconf/Make.common \
2980 scripts/startmysql \
2982 scripts/btraceback \
2988 scripts/bacula-ctl-dir \
2989 scripts/bacula-ctl-fd \
2990 scripts/bacula-ctl-sd \
2991 scripts/devel_bacula \
2994 scripts/bacula.desktop.gnome1 \
2995 scripts/bacula.desktop.gnome2 \
2996 scripts/bacula.desktop.gnome1.consolehelper \
2997 scripts/bacula.desktop.gnome2.consolehelper \
2998 scripts/bacula.desktop.gnome1.xsu \
2999 scripts/bacula.desktop.gnome2.xsu \
3000 scripts/bgnome-console.console_apps \
3001 scripts/mtx-changer \
3002 scripts/disk-changer \
3003 scripts/dvd-handler \
3004 scripts/dvd-simulator \
3005 scripts/bacula-tray-monitor.desktop \
3006 scripts/logwatch/Makefile \
3007 scripts/logwatch/logfile.bacula.conf \
3008 scripts/wxconsole.console_apps \
3009 scripts/wxconsole.desktop.consolehelper \
3010 scripts/wxconsole.desktop.xsu \
3011 scripts/bat.desktop \
3012 scripts/bat.desktop.xsu \
3013 scripts/bat.desktop.consolehelper \
3014 scripts/bat.console_apps \
3017 src/console/Makefile \
3018 src/console/bconsole.conf \
3019 src/qt-console/bat.conf \
3020 src/qt-console/bat.pro \
3021 src/qt-console/bat.pro.mingw32 \
3022 src/qt-console/install_conf_file \
3023 src/wx-console/Makefile \
3024 src/wx-console/bwx-console.conf \
3025 src/tray-monitor/Makefile \
3026 src/tray-monitor/tray-monitor.conf \
3028 src/dird/bacula-dir.conf \
3030 src/stored/Makefile \
3031 src/stored/bacula-sd.conf \
3032 src/filed/Makefile \
3033 src/filed/bacula-fd.conf \
3035 src/cats/make_catalog_backup.pl \
3036 src/cats/make_catalog_backup \
3037 src/cats/delete_catalog_backup \
3038 src/cats/create_postgresql_database \
3039 src/cats/update_postgresql_tables \
3040 src/cats/make_postgresql_tables \
3041 src/cats/grant_postgresql_privileges \
3042 src/cats/drop_postgresql_tables \
3043 src/cats/drop_postgresql_database \
3044 src/cats/create_mysql_database \
3045 src/cats/update_mysql_tables \
3046 src/cats/make_mysql_tables \
3047 src/cats/grant_mysql_privileges \
3048 src/cats/drop_mysql_tables \
3049 src/cats/drop_mysql_database \
3050 src/cats/create_sqlite3_database \
3051 src/cats/update_sqlite3_tables \
3052 src/cats/make_sqlite3_tables \
3053 src/cats/grant_sqlite3_privileges \
3054 src/cats/drop_sqlite3_tables \
3055 src/cats/drop_sqlite3_database \
3056 src/cats/create_ingres_database \
3057 src/cats/update_ingres_tables \
3058 src/cats/make_ingres_tables \
3059 src/cats/grant_ingres_privileges \
3060 src/cats/drop_ingres_tables \
3061 src/cats/drop_ingres_database \
3064 src/cats/create_bdb_database \
3065 src/cats/update_bdb_tables \
3066 src/cats/make_bdb_tables \
3067 src/cats/grant_bdb_privileges \
3068 src/cats/drop_bdb_tables \
3069 src/cats/drop_bdb_database \
3070 src/cats/create_bacula_database \
3071 src/cats/update_bacula_tables \
3072 src/cats/grant_bacula_privileges \
3073 src/cats/make_bacula_tables \
3074 src/cats/drop_bacula_tables \
3075 src/cats/drop_bacula_database \
3076 src/findlib/Makefile \
3077 src/tools/Makefile \
3078 src/plugins/fd/Makefile \
3079 src/plugins/sd/Makefile \
3080 src/plugins/dir/Makefile \
3081 src/win32/Makefile.inc \
3083 updatedb/update_mysql_tables_9_to_10 \
3084 updatedb/update_sqlite3_tables_9_to_10 \
3085 updatedb/update_postgresql_tables_9_to_10 \
3086 updatedb/update_mysql_tables_10_to_11 \
3087 updatedb/update_sqlite3_tables_10_to_11 \
3088 updatedb/update_postgresql_tables_10_to_11 \
3089 examples/nagios/check_bacula/Makefile \
3094 if test "${support_bat}" = "yes" ; then
3095 if test "x$QMAKE" = "xnone"; then
3096 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3101 echo "Creating bat Makefile"
3111 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3112 dnl requires gcc). If it's not, don't rebuild dependencies
3114 if test X"$GCC" = "Xyes" ; then
3115 echo "Doing make of dependencies"
3116 ${MAKE:-make} depend
3120 chmod 755 install_conf_file build-depkgs-qt-console
3124 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3125 chmod 755 dvd-handler dvd-simulator
3126 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3130 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3131 chmod 755 $c/update_postgresql_tables_10_to_11
3135 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3136 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3138 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3139 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3141 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3142 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3144 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3145 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3147 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3148 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3151 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3155 chmod 755 src/win32/build-depkgs-mingw32
3157 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3158 largefile_support="yes"
3161 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3162 if test X"$GCC" = "Xyes" ; then
3164 dnl A whole lot of hand springs to get the compiler version.
3165 dnl This is because gcc changed the output in version 3.0
3167 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3168 if test "x${CCVERSION}" = "x" ; then
3169 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3171 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3172 if test x"${CXXVERSION}" = x ; then
3173 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3177 # clean up any old junk
3183 if test "x${db_type}" = "xInternal" ; then
3186 echo "You have not specified either --enable-client-only or one of the"
3187 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3188 echo " This is not permitted. Please reconfigure."
3190 echo "Aborting the configuration ..."
3197 Configuration on `date`:
3199 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3200 Bacula version: ${BACULA} ${VERSION} (${DATE})
3201 Source code location: ${srcdir}
3202 Install binaries: ${sbindir}
3203 Install libraries: ${libdir}
3204 Install config files: ${sysconfdir}
3205 Scripts directory: ${scriptdir}
3206 Archive directory: ${archivedir}
3207 Working directory: ${working_dir}
3208 PID directory: ${piddir}
3209 Subsys directory: ${subsysdir}
3210 Man directory: ${mandir}
3211 Data directory: ${datarootdir}
3212 Plugin directory: ${plugindir}
3213 C Compiler: ${CC} ${CCVERSION}
3214 C++ Compiler: ${CXX} ${CXXVERSION}
3215 Compiler flags: ${WCFLAGS} ${CFLAGS}
3216 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3218 Statically Linked Tools: ${support_static_tools}
3219 Statically Linked FD: ${support_static_fd}
3220 Statically Linked SD: ${support_static_sd}
3221 Statically Linked DIR: ${support_static_dir}
3222 Statically Linked CONS: ${support_static_cons}
3223 Database type: ${db_type}
3224 Database port: ${db_port}
3225 Database lib: ${DB_LIBS}
3226 Database name: ${db_name}
3227 Database user: ${db_user}
3229 Job Output Email: ${job_email}
3230 Traceback Email: ${dump_email}
3231 SMTP Host Address: ${smtp_host}
3233 Director Port: ${dir_port}
3234 File daemon Port: ${fd_port}
3235 Storage daemon Port: ${sd_port}
3237 Director User: ${dir_user}
3238 Director Group: ${dir_group}
3239 Storage Daemon User: ${sd_user}
3240 Storage DaemonGroup: ${sd_group}
3241 File Daemon User: ${fd_user}
3242 File Daemon Group: ${fd_group}
3244 SQL binaries Directory ${SQL_BINDIR}
3246 Large file support: $largefile_support
3247 Bacula conio support: ${got_conio} ${CONS_LIBS}
3248 readline support: ${got_readline} ${PRTREADLINE_SRC}
3249 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3250 TLS support: ${support_tls}
3251 Encryption support: ${support_crypto}
3252 ZLIB support: ${have_zlib}
3253 enable-smartalloc: ${support_smartalloc}
3254 enable-lockmgr: ${support_lockmgr}
3255 bat support: ${support_bat}
3256 enable-gnome: ${support_gnome} ${gnome_version}
3257 enable-bwx-console: ${support_wx_console} ${wx_version}
3258 enable-tray-monitor: ${support_tray_monitor}
3259 client-only: ${build_client_only}
3260 build-dird: ${build_dird}
3261 build-stored: ${build_stored}
3262 Plugin support: ${have_plugins}
3263 ACL support: ${have_acl}
3264 XATTR support: ${have_xattr}
3265 Python support: ${support_python} ${PYTHON_LIBS}
3266 Batch insert enabled: ${support_batch_insert}
3270 # create a small shell script useful for support with
3271 # configure options and config.out info
3272 cat > scripts/bacula_config << EOF
3275 $ $0 $ac_configure_args
3277 cat config.out >> scripts/bacula_config
3278 echo __EOC__ >> scripts/bacula_config
3279 chmod 755 scripts/bacula_config
3283 # Display a warning message if postgresql client lib is <= 8.1
3284 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3285 -a x$support_batch_insert = xyes
3287 echo "WARNING: Your PostgreSQL client library is too old to detect "
3288 echo " if it was compiled with --enable-thread-safety, consider to"
3289 echo " upgrade it in order to avoid problems with Batch insert mode"