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 LIBS="${saved_LIBS}"
1175 CFLAGS="${saved_CFLAGS}"
1177 if test "$support_tls" = "yes"; then
1178 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1179 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1180 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1183 if test "$ac_cv_openssl_sha2" = "yes"; then
1184 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1187 if test "$ac_cv_openssl_export" = "yes"; then
1188 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1197 if test "$support_tls" = "no"; then
1201 if test "$support_crypto" = "no"; then
1205 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1208 AC_MSG_RESULT([$support_tls])
1209 AC_SUBST(OPENSSL_LIBS)
1210 AC_SUBST(OPENSSL_INC)
1212 dnl -----------------------------------------------------------
1213 dnl dlopen is needed for plugins
1214 dnl -----------------------------------------------------------
1215 AC_SEARCH_LIBS(dlopen, [dl])
1217 dnl ------------------------------------------
1218 dnl Where to place working dir
1219 dnl ------------------------------------------
1220 working_dir=`eval echo ${prefix}/var/bacula/working`
1221 AC_ARG_WITH(working-dir,
1222 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1224 if test "x$withval" != "xno" ; then
1225 working_dir=$withval
1230 AC_SUBST(working_dir)
1232 dnl ------------------------------------------------------------------
1233 dnl If the user has not set archivedir, we set our default as /tmp
1234 dnl ------------------------------------------------------------------
1236 AC_ARG_WITH(archivedir,
1237 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1239 if test "x$withval" != "xno" ; then
1245 AC_SUBST(archivedir)
1247 dnl ------------------------------------------------------------------
1248 dnl Allow the user to specify the daemon resource name default hostname
1249 dnl ------------------------------------------------------------------
1251 AC_ARG_WITH(basename,
1252 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1254 if test "x$withval" != "xno" ; then
1262 dnl ------------------------------------------------------------------
1263 dnl Allow the user to override the hostname (default = machine hostname)
1264 dnl ------------------------------------------------------------------
1265 hostname=`uname -n | cut -d '.' -f 1`
1266 if test x${hostname} = x ; then
1267 hostname="localhost"
1269 AC_ARG_WITH(hostname,
1270 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1272 if test "x$withval" != "xno" ; then
1281 dnl ------------------------------------------
1282 dnl Where to place scriptdir (script files)
1283 dnl ------------------------------------------
1284 scriptdir=`eval echo ${sysconfdir}`
1285 AC_ARG_WITH(scriptdir,
1286 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1288 if test "x$withval" != "xno" ; then
1297 dnl ------------------------------------------
1298 dnl Where to place bsrdir (bsr files)
1299 dnl ------------------------------------------
1302 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1304 if test "x$withval" != "xno" ; then
1312 dnl ------------------------------------------
1313 dnl Where to place logdir (bsr files)
1314 dnl ------------------------------------------
1317 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1319 if test "x$withval" != "xno" ; then
1328 # ------------------------------------------
1329 # Where to place plugindir (plugin files)
1330 # ------------------------------------------
1331 plugindir=`eval echo ${libdir}`
1332 AC_ARG_WITH(plugindir,
1333 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1335 if test "x$withval" != "xno" ; then
1343 dnl ------------------------------------------
1344 dnl Where to send dump email
1345 dnl ------------------------------------------
1346 dump_email=root@localhost
1347 AC_ARG_WITH(dump-email,
1348 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1350 if test "x$withval" != "xno" ; then
1356 AC_SUBST(dump_email)
1358 dnl ------------------------------------------
1359 dnl Where to send job email
1360 dnl ------------------------------------------
1361 job_email=root@localhost
1362 AC_ARG_WITH(job-email,
1363 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1365 if test "x$withval" != "xno" ; then
1373 dnl ------------------------------------------
1374 dnl Where to find smtp host
1375 dnl ------------------------------------------
1377 AC_ARG_WITH(smtp_host,
1378 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1380 if test "x$withval" != "xno" ; then
1388 dnl ------------------------------------
1389 dnl Where to place pid files
1390 dnl ------------------------------------
1392 AC_ARG_WITH(pid-dir,
1393 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1395 if test "x$withval" != "xno" ; then
1401 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1404 dnl ------------------------------------
1405 dnl Where to place subsys "lock file"
1406 dnl ------------------------------------
1407 subsysdir=/var/run/subsys
1408 if test -d /var/run/subsys; then
1409 subsysdir=/var/run/subsys
1410 elif test -d /var/lock/subsys; then
1411 subsysdir=/var/lock/subsys
1413 subsysdir=/var/run/subsys
1415 AC_ARG_WITH(subsys-dir,
1416 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1418 if test "x$withval" != "xno" ; then
1426 dnl ------------------------------------
1427 dnl Where to start assigning ports
1428 dnl ------------------------------------
1430 AC_ARG_WITH(baseport,
1431 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1433 if test "x$withval" != "xno" ; then
1440 dir_port=`expr $baseport`
1441 fd_port=`expr $baseport + 1`
1442 sd_port=`expr $fd_port + 1`
1448 dnl ------------------------------------------
1449 dnl Generate passwords
1450 dnl ------------------------------------------
1452 AC_ARG_WITH(dir-password,
1453 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1455 if test "x$withval" != "xno" ; then
1456 dir_password=$withval
1461 if test "x$dir_password" = "x" ; then
1462 if test "x$OPENSSL" = "xnone" ; then
1463 key=`autoconf/randpass 33`
1465 key=`openssl rand -base64 33`
1471 AC_ARG_WITH(fd-password,
1472 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1474 if test "x$withval" != "xno" ; then
1475 fd_password=$withval
1480 if test "x$fd_password" = "x" ; then
1481 if test "x$OPENSSL" = "xnone" ; then
1482 key=`autoconf/randpass 37`
1484 key=`openssl rand -base64 33`
1490 AC_ARG_WITH(sd-password,
1491 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1493 if test "x$withval" != "xno" ; then
1494 sd_password=$withval
1499 if test "x$sd_password" = "x" ; then
1500 if test "x$OPENSSL" = "xnone" ; then
1501 key=`autoconf/randpass 41`
1503 key=`openssl rand -base64 33`
1509 AC_ARG_WITH(mon-dir-password,
1510 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1512 if test "x$withval" != "xno" ; then
1513 mon_dir_password=$withval
1518 if test "x$mon_dir_password" = "x" ; then
1519 if test "x$OPENSSL" = "xnone" ; then
1520 key=`autoconf/randpass 33`
1522 key=`openssl rand -base64 33`
1524 mon_dir_password=$key
1528 AC_ARG_WITH(mon-fd-password,
1529 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1531 if test "x$withval" != "xno" ; then
1532 mon_fd_password=$withval
1537 if test "x$mon_fd_password" = "x" ; then
1538 if test "x$OPENSSL" = "xnone" ; then
1539 key=`autoconf/randpass 37`
1541 key=`openssl rand -base64 33`
1543 mon_fd_password=$key
1547 AC_ARG_WITH(mon-sd-password,
1548 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1550 if test "x$withval" != "xno" ; then
1551 mon_sd_password=$withval
1556 if test "x$mon_sd_password" = "x" ; then
1557 if test "x$OPENSSL" = "xnone" ; then
1558 key=`autoconf/randpass 41`
1560 key=`openssl rand -base64 33`
1562 mon_sd_password=$key
1565 AC_SUBST(dir_password)
1566 AC_SUBST(fd_password)
1567 AC_SUBST(sd_password)
1568 AC_SUBST(mon_dir_password)
1569 AC_SUBST(mon_fd_password)
1570 AC_SUBST(mon_sd_password)
1573 dnl Pickup any database name
1576 AC_ARG_WITH(db_name,
1577 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1579 if test "x$withval" != "x" ; then
1587 AC_ARG_WITH(db_user,
1588 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1590 if test "x$withval" != "x" ; then
1598 AC_ARG_WITH(db_password,
1599 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1601 if test "x$withval" != "x" ; then
1602 db_password=$withval
1606 AC_SUBST(db_password)
1609 dnl Pickup a database port
1612 AC_ARG_WITH(db_port,
1613 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1615 if test "x$withval" != "x" ; then
1623 # Handle users and groups for each daemon
1626 AC_ARG_WITH(dir_user,
1627 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1629 if test "x$withval" != "x" ; then
1636 AC_ARG_WITH(dir_group,
1637 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1639 if test "x$withval" != "x" ; then
1646 AC_ARG_WITH(sd_user,
1647 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1649 if test "x$withval" != "x" ; then
1656 AC_ARG_WITH(sd_group,
1657 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1659 if test "x$withval" != "x" ; then
1666 AC_ARG_WITH(fd_user,
1667 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1669 if test "x$withval" != "x" ; then
1676 AC_ARG_WITH(fd_group,
1677 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1679 if test "x$withval" != "x" ; then
1693 dnl allow setting default executable permissions
1696 AC_ARG_WITH(sbin-perm,
1697 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0750@:>@]),
1699 if test "x$withval" != "x" ; then
1707 dnl ------------------------------------------------
1708 dnl Bacula check for various SQL database engines
1709 dnl ------------------------------------------------
1711 BA_CHECK_POSTGRESQL_DB
1719 # BA_CHECK_SQLITE_DB
1728 dnl -------------------------------------------
1729 dnl enable batch attribute DB insert (default on)
1730 dnl -------------------------------------------
1731 support_batch_insert=no
1732 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1734 if test $pkg = 0; then
1735 support_batch_insert=yes
1736 AC_ARG_ENABLE(batch-insert,
1737 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1739 if test x$enableval = xno; then
1740 support_batch_insert=no
1742 support_batch_insert=yes
1748 dnl For postgresql checking
1749 saved_LIBS="${LIBS}"
1750 LIBS="${saved_LIBS} ${SQL_LFLAGS}"
1752 dnl Check if postgresql can support batch mode
1753 if test x$DB_TYPE = xpostgresql; then
1754 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1755 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1756 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1758 support_batch_insert=no
1762 if test x$DB_TYPE = xdbi; then
1766 dnl Check for batch insert
1767 if test $DB_PROG = postgresql; then
1768 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1769 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1770 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1774 if test $DB_PROG = mysql; then
1775 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1779 if test $DB_PROG = sqlite3; then
1780 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1782 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1785 if test $pkg = 0; then
1786 AC_ARG_ENABLE(batch-insert,
1787 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1789 if test x$enableval = xno; then
1790 support_batch_insert=no
1792 support_batch_insert=yes
1798 dnl If dbi was not chosen, let the comment in file
1802 dnl revert after postgresql checks
1803 LIBS="${saved_LIBS}"
1805 AC_SUBST(uncomment_dbi)
1807 if test $support_batch_insert = yes ; then
1808 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1811 AC_DEFINE(PROTOTYPES)
1813 dnl --------------------------------------------------------------------------
1814 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1816 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1817 if test -z "$CCOPTS"; then
1818 CCOPTS='-g -O2 -Wall'
1826 dnl See if we can use 64 bit file addresses
1827 largefile_support="no"
1832 dnl --------------------------------------------------------------------------
1833 dnl CHECKING FOR HEADER FILES
1834 dnl --------------------------------------------------------------------------
1872 AC_STRUCT_ST_BLKSIZE
1876 dnl --------------------------------------------------------------------------
1877 dnl Check for utime.h structure
1878 dnl --------------------------------------------------------------------------
1879 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1883 #include <sys/types.h>
1888 ba_cv_header_utime_h=yes
1890 ba_cv_header_utime_h=no
1895 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1897 dnl --------------------------------------------------------------------------
1898 dnl Check for socklen_t
1899 dnl --------------------------------------------------------------------------
1900 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1904 #include <sys/types.h>
1905 #include <sys/socket.h>
1909 ba_cv_header_socklen_t=yes
1911 ba_cv_header_socklen_t=no
1916 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1918 dnl --------------------------------------------------------------------------
1919 dnl Check for ioctl request type
1920 dnl --------------------------------------------------------------------------
1922 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1927 #include <sys/types.h>
1928 #include <sys/ioctl.h>
1930 int (*d_ioctl)(int fd, unsigned long int request, ...);
1933 ba_cv_header_ioctl_req_t=yes
1935 ba_cv_header_ioctl_req_t=no
1940 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1942 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1943 dnl *BSD systems still use old style C prototypes, which are wrong with
1944 dnl compiled with a C++ compiler.
1947 dnl --------------------------------------------------------------------------
1948 dnl Check for typeof()
1949 dnl --------------------------------------------------------------------------
1951 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1955 main(){char *a = 0; a = (typeof a)a;}
1957 ba_cv_have_typeof=yes
1959 ba_cv_have_typeof=no
1961 ba_cv_have_typeof=no
1966 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1971 dnl --------------------------------------------------------------------------
1972 dnl CHECKING FOR FILESYSTEM TYPE
1973 dnl --------------------------------------------------------------------------
1974 AC_MSG_CHECKING(how to get filesystem type)
1976 # The order of these tests is important.
1979 #include <sys/statvfs.h>
1980 #include <sys/fstyp.h>
1982 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1984 if test $fstype = no; then
1987 #include <sys/statfs.h>
1988 #include <sys/fstyp.h>
1990 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1993 if test $fstype = no; then
1996 #include <sys/statfs.h>
1997 #include <sys/vmount.h>
1999 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2002 if test $fstype = no; then
2007 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2010 if test $fstype = no; then
2011 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2013 if test $fstype = no; then
2016 #include <sys/mount.h>
2017 #include <sys/fs_types.h>
2019 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2022 AC_MSG_RESULT($fstype)
2024 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2026 dnl --------------------------------------------------------------------------
2027 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2028 dnl --------------------------------------------------------------------------
2038 AC_CHECK_TYPE(ino_t, unsigned long)
2039 AC_CHECK_TYPE(dev_t, unsigned long)
2040 AC_CHECK_TYPE(daddr_t, long)
2041 AC_CHECK_TYPE(major_t, int)
2042 AC_CHECK_TYPE(minor_t, int)
2043 AC_CHECK_TYPE(ssize_t, int)
2049 AC_CHECK_SIZEOF(char, 1)
2050 AC_CHECK_SIZEOF(short int, 2)
2051 AC_CHECK_SIZEOF(int, 4)
2052 AC_CHECK_SIZEOF(long int, 4)
2053 AC_CHECK_SIZEOF(long long int, 8)
2054 AC_CHECK_SIZEOF(int *, 4)
2056 dnl Check for sys/types.h types
2057 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2061 #include <sys/types.h>
2065 ac_cv_have_u_int="yes"
2067 ac_cv_have_u_int="no"
2072 if test "x$ac_cv_have_u_int" = "xyes" ; then
2073 AC_DEFINE(HAVE_U_INT)
2077 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2081 #include <sys/types.h>
2085 ac_cv_have_intmax_t="yes"
2093 ac_cv_have_intmax_t="yes"
2095 ac_cv_have_intmax_t="no"
2102 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2103 AC_DEFINE(HAVE_INTMAX_T)
2107 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2111 #include <sys/types.h>
2113 u_intmax_t a; a = 1;
2115 ac_cv_have_u_intmax_t="yes"
2121 u_intmax_t a; a = 1;
2123 ac_cv_have_u_intmax_t="yes"
2125 ac_cv_have_u_intmax_t="no"
2132 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2133 AC_DEFINE(HAVE_U_INTMAX_T)
2137 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2141 #include <sys/types.h>
2143 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2145 ac_cv_have_intxx_t="yes"
2147 ac_cv_have_intxx_t="no"
2152 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2153 AC_DEFINE(HAVE_INTXX_T)
2157 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2161 #include <sys/types.h>
2165 ac_cv_have_int64_t="yes"
2167 ac_cv_have_int64_t="no"
2172 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2173 AC_DEFINE(HAVE_INT64_T)
2177 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2181 #include <sys/types.h>
2183 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2185 ac_cv_have_u_intxx_t="yes"
2187 ac_cv_have_u_intxx_t="no"
2192 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2193 AC_DEFINE(HAVE_U_INTXX_T)
2197 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2201 #include <sys/types.h>
2205 ac_cv_have_u_int64_t="yes"
2207 ac_cv_have_u_int64_t="no"
2212 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2213 AC_DEFINE(HAVE_U_INT64_T)
2217 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2218 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2220 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2223 #include <sys/bitypes.h>
2225 int8_t a; int16_t b; int32_t c;
2226 u_int8_t e; u_int16_t f; u_int32_t g;
2227 a = b = c = e = f = g = 1;
2229 AC_DEFINE(HAVE_U_INTXX_T)
2230 AC_DEFINE(HAVE_INTXX_T)
2231 AC_DEFINE(HAVE_SYS_BITYPES_H)
2239 if test -z "$have_u_intxx_t" ; then
2240 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2244 #include <sys/types.h>
2246 uint8_t a; uint16_t b;
2247 uint32_t c; a = b = c = 1;
2249 ac_cv_have_uintxx_t="yes"
2251 ac_cv_have_uintxx_t="no"
2256 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2257 AC_DEFINE(HAVE_UINTXX_T)
2261 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2262 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2264 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2267 #include <sys/bitypes.h>
2269 int64_t a; u_int64_t b;
2272 AC_DEFINE(HAVE_U_INT64_T)
2273 AC_DEFINE(HAVE_INT64_T)
2281 if (test -z "$have_uintxx_t" && \
2282 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2284 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2287 #include <sys/bitypes.h>
2289 uint8_t a; uint16_t b;
2290 uint32_t c; a = b = c = 1;
2292 AC_DEFINE(HAVE_UINTXX_T)
2300 dnl --------------------------------------------------------------------------
2301 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2302 dnl --------------------------------------------------------------------------
2318 [echo 'configure: cannot find needed function.'; exit 1]
2321 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2322 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2323 AC_CHECK_FUNCS(posix_fadvise)
2324 AC_CHECK_FUNCS(fdatasync)
2326 AC_CHECK_FUNCS(chflags)
2328 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2330 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2335 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2336 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2338 call_use_va_copy(1,2,3)
2347 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2349 dnl --------------------------------------------------------------------------
2350 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2351 dnl --------------------------------------------------------------------------
2352 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2354 # If resolver functions are not in libc check for -lnsl or -lresolv.
2355 AC_CHECK_FUNC(gethostbyname_r,
2356 AC_MSG_RESULT(using libc's resolver),
2357 AC_CHECK_LIB(nsl,gethostbyname_r)
2358 AC_CHECK_LIB(resolv,gethostbyname_r))
2360 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2361 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2362 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2364 dnl ----------------------------
2365 dnl check sa_len of sockaddr
2366 dnl ----------------------------
2367 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2371 #include <sys/socket.h>
2373 struct sockaddr s; s.sa_len;
2375 ac_cv_struct_sockaddr_sa_len=yes
2376 ], [ac_cv_struct_sockaddr_sa_len=no
2382 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2383 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2390 AC_FUNC_CLOSEDIR_VOID
2391 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2392 # AC_FUNC_FNMATCH dnl use local version
2394 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2396 AC_CHECK_LIB(sun, getpwnam)
2398 AC_CHECK_HEADERS(zlib.h)
2399 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2401 if test x$FDLIBS = x-lz; then
2402 AC_DEFINE(HAVE_LIBZ)
2407 dnl Check for ACL support and libraries
2411 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2413 if test x$enableval = xyes; then
2415 elif test x$enableval = xno; then
2422 have_extended_acl=no
2423 if test x$support_acl = xyes -o x$support_acl = xauto; then
2424 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2425 AC_CHECK_FUNC(acl_get_file,
2429 AC_CHECK_LIB(acl, acl_get_file,
2432 FDLIBS="-lacl $FDLIBS"
2434 AC_CHECK_LIB(pacl, acl_get_file,
2437 FDLIBS="-lpacl $FDLIBS"
2439 AC_CHECK_LIB(sec, acltotext,
2442 FDLIBS="-lsec $FDLIBS"
2444 AC_CHECK_LIB(sec, acl_totext,
2446 have_extended_acl=yes
2458 if test x$support_acl = xyes -a $have_acl != yes; then
2459 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2460 please either load the acl libraries or rerun configure without --enable-acl])
2462 if test $have_acl = yes; then
2463 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2466 if test $have_extended_acl = yes; then
2467 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2473 dnl Check for XATTR support
2476 AC_ARG_ENABLE(xattr,
2477 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2479 if test x$enableval = xyes; then
2481 elif test x$enableval = xno; then
2488 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2490 dnl First check for *BSD support
2492 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2493 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2494 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2497 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2498 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2499 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2503 if test $have_xattr = no; then
2504 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2507 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2508 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2509 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2514 if test $have_xattr = yes; then
2515 have_extattr_string_in_libc=no
2516 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2518 have_extattr_string_in_libc=yes
2519 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2520 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2525 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2527 if test $have_extattr_string_in_libc = no; then
2528 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2530 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2531 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2532 FDLIBS="-lutil $FDLIBS"
2539 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2541 if test $have_xattr = no; then
2542 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2543 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2546 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2547 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2548 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2552 if test $have_xattr = no; then
2553 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2556 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2557 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2558 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2565 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2567 if test $have_xattr = no; then
2568 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2569 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2570 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2572 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2575 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2576 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2577 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2578 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2579 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2583 if test $have_xattr = yes; then
2584 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2586 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2587 FDLIBS="-lnvpair $FDLIBS"
2593 if test x$support_xattr = xyes -a $have_xattr != yes; then
2594 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2595 please either load the xattr libraries or rerun configure without --enable-xattr])
2597 if test $have_xattr = yes; then
2598 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2604 dnl Check for pthread libraries
2607 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2609 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2611 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2613 AC_CHECK_FUNC(pthread_create)
2622 dnl Check for headers, functions and libraries required to support
2623 dnl keeping readall capabilities
2625 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2626 AC_CHECK_FUNCS(prctl setreuid)
2627 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2628 if test x$CAP_LIBS = x-lcap; then
2629 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2638 if test x$have_gcc = xyes ; then
2639 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2640 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2642 LDFLAGS=${LDFLAGS--O}
2643 DB_LIBS="${SQL_LFLAGS}"
2644 CPPFLAGS="$CPPFLAGS"
2657 AC_SUBST(X_EXTRA_LIBS)
2662 dnl extra configurable objects
2673 dnl Finally we set appropriate distribution specific
2674 dnl variables and defaults
2676 dnl PFILES are platform specific files
2677 PFILES="platforms/Makefile"
2682 hostname=`uname -n | cut -d '.' -f 1`
2683 if test x${hostname} = x ; then
2684 hostname="localhost"
2686 dnl Make sure hostname is resolved
2687 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2688 if test ! $? = 0; then
2689 hostname="localhost"
2695 PSCMD="ps -e -o pid,comm"
2697 platforms/aix/Makefile"
2698 TAPEDRIVE="/dev/rmt0.1"
2702 PTHREAD_LIB="-lpthread -lexc"
2703 if test "${CC}" = "gcc" ; then
2710 TAPEDRIVE="/dev/nrmt0"
2713 DISTVER=`uname -a |awk '{print $3}'`
2714 TAPEDRIVE="/dev/nrmt0"
2715 PTHREAD_LIB="-pthread"
2716 CFLAGS="${CFLAGS} -pthread"
2717 PSCMD="ps -ax -o pid,command"
2721 platforms/bsdi/Makefile \
2722 platforms/bsdi/bacula-fd \
2723 platforms/bsdi/bacula-sd \
2724 platforms/bsdi/bacula-dir"
2725 largefile_support="yes"
2728 DISTVER=`uname -a |awk '{print $3}'`
2729 TAPEDRIVE="/dev/nrst0"
2732 WLDFLAGS="-mwindows"
2736 TAPEDRIVE="/dev/nst0"
2737 PSCMD="ps -e -o pid,command"
2740 platforms/darwin/Makefile"
2744 TAPEDRIVE="/dev/nst0"
2745 PSCMD="ps -e -o pid,command"
2748 platforms/osx/Makefile"
2751 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2754 DISTVER=`cat /etc/debian_version`
2755 if test -f /etc/lsb-release ; then
2757 if test "x$DISTRIB_ID" != "x" ; then
2758 DISTNAME=$DISTRIB_ID
2760 if test "x$DISTRIB_RELEASE" != "x" ; then
2761 DISTVER=$DISTRIB_RELEASE
2764 if test "$DISTNAME" = "Ubuntu" ; then
2767 TAPEDRIVE="/dev/nst0"
2768 PSCMD="ps -e -o pid,command"
2769 if test "$DISTNAME" = "ubuntu" ; then
2771 platforms/ubuntu/Makefile \
2772 platforms/ubuntu/bacula-fd \
2773 platforms/ubuntu/bacula-sd \
2774 platforms/ubuntu/bacula-dir"
2777 platforms/debian/Makefile \
2778 platforms/debian/bacula-fd \
2779 platforms/debian/bacula-sd \
2780 platforms/debian/bacula-dir"
2784 DISTVER=`uname -a |awk '{print $3}'`
2785 VER=`echo $DISTVER | cut -c 1`
2786 if test x$VER = x4 ; then
2787 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2788 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2792 TAPEDRIVE="/dev/nrsa0"
2793 PSCMD="ps -ax -o pid,command"
2795 platforms/freebsd/Makefile \
2796 platforms/freebsd/bacula-fd \
2797 platforms/freebsd/bacula-sd \
2798 platforms/freebsd/bacula-dir"
2799 largefile_support="yes"
2802 PSCMD="UNIX95=1; ps -e -o pid,comm"
2803 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2805 TAPEDRIVE="/dev/rmt/0hnb"
2806 PTHREAD_LIB="-lpthread"
2807 AC_DEFINE([_INCLUDE_LONGLONG])
2811 TAPEDRIVE="/dev/rmt/0cbn"
2812 PSCMD="ps -e -o pid,comm"
2814 platforms/irix/Makefile \
2815 platforms/irix/bacula-fd \
2816 platforms/irix/bacula-sd \
2817 platforms/irix/bacula-dir"
2820 DISTVER=`uname -a |awk '{print $3}'`
2823 TAPEDRIVE="/dev/nrst0"
2824 PSCMD="ps -ax -o pid,command"
2825 PTHREAD_LIB="-pthread"
2826 CFLAGS="${CFLAGS} -pthread"
2829 DISTVER=`uname -a |awk '{print $3}'`
2832 TAPEDRIVE="/dev/nrst0"
2833 PSCMD="ps -ax -o pid,command"
2834 PTHREAD_LIB="-pthread"
2835 CFLAGS="${CFLAGS} -pthread"
2837 platforms/openbsd/Makefile \
2838 platforms/openbsd/bacula-fd \
2839 platforms/openbsd/bacula-sd \
2840 platforms/openbsd/bacula-dir"
2843 if test -f /etc/whitebox-release ; then
2844 f=/etc/whitebox-release
2846 f=/etc/redhat-release
2848 if test `cat $f | grep release |\
2849 cut -f 3 -d ' '`x = "Enterprise"x ; then
2850 DISTVER="Enterprise "`cat $f | grep release |\
2853 DISTVER=`cat /etc/redhat-release | grep release |\
2856 TAPEDRIVE="/dev/nst0"
2857 PSCMD="ps -e -o pid,command"
2859 platforms/redhat/Makefile \
2860 platforms/redhat/bacula-fd \
2861 platforms/redhat/bacula-sd \
2862 platforms/redhat/bacula-dir
2866 DISTVER=`cat /etc/mandrake-release | grep release |\
2868 TAPEDRIVE="/dev/nst0"
2869 PSCMD="ps -e -o pid,command"
2871 platforms/mandrake/Makefile \
2872 platforms/mandrake/bacula-fd \
2873 platforms/mandrake/bacula-sd \
2874 platforms/mandrake/bacula-dir \
2878 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2879 TAPEDRIVE="/dev/nst0"
2880 PSCMD="ps -e -o pid,command"
2882 platforms/gentoo/Makefile \
2883 platforms/gentoo/bacula-init \
2884 platforms/gentoo/bacula-fd \
2885 platforms/gentoo/bacula-sd \
2886 platforms/gentoo/bacula-dir"
2889 DISTVER=`cat /etc/slackware-version`
2890 TAPEDRIVE="/dev/nst0"
2891 PSCMD="ps -e -o pid,command"
2893 platforms/slackware/Makefile \
2894 platforms/slackware/rc.bacula-fd \
2895 platforms/slackware/rc.bacula-sd \
2896 platforms/slackware/rc.bacula-dir\
2897 platforms/slackware/functions.bacula"
2901 TAPEDRIVE="/dev/rmt/0cbn"
2902 PSCMD="ps -e -o pid,comm"
2904 platforms/solaris/Makefile \
2905 platforms/solaris/bacula-fd \
2906 platforms/solaris/bacula-sd \
2907 platforms/solaris/bacula-dir"
2908 if test x$DISTVER = x5.6 ; then
2909 AC_DEFINE(HAVE_OLD_SOCKOPT)
2911 LIBS="$LIBS -lresolv -lrt"
2914 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2916 TAPEDRIVE="/dev/nst0"
2917 PSCMD="ps -e -o pid,command"
2919 platforms/suse/Makefile \
2920 platforms/suse/bacula-fd \
2921 platforms/suse/bacula-sd \
2922 platforms/suse/bacula-dir"
2927 TAPEDRIVE="/dev/nst0"
2928 PSCMD="ps -e -o pid,command"
2930 platforms/suse/Makefile \
2931 platforms/suse/bacula-fd \
2932 platforms/suse/bacula-sd \
2933 platforms/suse/bacula-dir"
2937 TAPEDRIVE="/dev/nst0"
2940 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2946 LIBS="$PTHREAD_LIB $LIBS"
2948 AC_DEFINE_UNQUOTED(lld, "$lld")
2949 AC_DEFINE_UNQUOTED(llu, "$llu")
2957 dnl common parts of the Makefile
2958 MCOMMON=./autoconf/Make.common
2959 AC_SUBST_FILE(MCOMMON)
2962 if test "x${subsysdir}" = "x${sbindir}" ; then
2965 echo "You have set both --sbindir and --with-subsys-dir"
2966 echo " equal to: ${subsysdir} "
2967 echo "This is not permitted. Please reconfigure."
2969 echo "Aborting configuration ..."
2975 AC_OUTPUT([autoconf/Make.common \
2978 scripts/startmysql \
2980 scripts/btraceback \
2986 scripts/bacula-ctl-dir \
2987 scripts/bacula-ctl-fd \
2988 scripts/bacula-ctl-sd \
2989 scripts/devel_bacula \
2992 scripts/bacula.desktop.gnome1 \
2993 scripts/bacula.desktop.gnome2 \
2994 scripts/bacula.desktop.gnome1.consolehelper \
2995 scripts/bacula.desktop.gnome2.consolehelper \
2996 scripts/bacula.desktop.gnome1.xsu \
2997 scripts/bacula.desktop.gnome2.xsu \
2998 scripts/bgnome-console.console_apps \
2999 scripts/mtx-changer \
3000 scripts/disk-changer \
3001 scripts/dvd-handler \
3002 scripts/dvd-simulator \
3003 scripts/bacula-tray-monitor.desktop \
3004 scripts/logwatch/Makefile \
3005 scripts/logwatch/logfile.bacula.conf \
3006 scripts/wxconsole.console_apps \
3007 scripts/wxconsole.desktop.consolehelper \
3008 scripts/wxconsole.desktop.xsu \
3009 scripts/bat.desktop \
3010 scripts/bat.desktop.xsu \
3011 scripts/bat.desktop.consolehelper \
3012 scripts/bat.console_apps \
3015 src/console/Makefile \
3016 src/console/bconsole.conf \
3017 src/qt-console/bat.conf \
3018 src/qt-console/bat.pro \
3019 src/qt-console/bat.pro.mingw32 \
3020 src/qt-console/install_conf_file \
3021 src/wx-console/Makefile \
3022 src/wx-console/bwx-console.conf \
3023 src/tray-monitor/Makefile \
3024 src/tray-monitor/tray-monitor.conf \
3026 src/dird/bacula-dir.conf \
3028 src/stored/Makefile \
3029 src/stored/bacula-sd.conf \
3030 src/filed/Makefile \
3031 src/filed/bacula-fd.conf \
3033 src/cats/make_catalog_backup.pl \
3034 src/cats/make_catalog_backup \
3035 src/cats/delete_catalog_backup \
3036 src/cats/create_postgresql_database \
3037 src/cats/update_postgresql_tables \
3038 src/cats/make_postgresql_tables \
3039 src/cats/grant_postgresql_privileges \
3040 src/cats/drop_postgresql_tables \
3041 src/cats/drop_postgresql_database \
3042 src/cats/create_mysql_database \
3043 src/cats/update_mysql_tables \
3044 src/cats/make_mysql_tables \
3045 src/cats/grant_mysql_privileges \
3046 src/cats/drop_mysql_tables \
3047 src/cats/drop_mysql_database \
3048 src/cats/create_sqlite3_database \
3049 src/cats/update_sqlite3_tables \
3050 src/cats/make_sqlite3_tables \
3051 src/cats/grant_sqlite3_privileges \
3052 src/cats/drop_sqlite3_tables \
3053 src/cats/drop_sqlite3_database \
3054 src/cats/create_ingres_database \
3055 src/cats/update_ingres_tables \
3056 src/cats/make_ingres_tables \
3057 src/cats/grant_ingres_privileges \
3058 src/cats/drop_ingres_tables \
3059 src/cats/drop_ingres_database \
3062 src/cats/create_bdb_database \
3063 src/cats/update_bdb_tables \
3064 src/cats/make_bdb_tables \
3065 src/cats/grant_bdb_privileges \
3066 src/cats/drop_bdb_tables \
3067 src/cats/drop_bdb_database \
3068 src/cats/create_bacula_database \
3069 src/cats/update_bacula_tables \
3070 src/cats/grant_bacula_privileges \
3071 src/cats/make_bacula_tables \
3072 src/cats/drop_bacula_tables \
3073 src/cats/drop_bacula_database \
3074 src/findlib/Makefile \
3075 src/tools/Makefile \
3076 src/plugins/fd/Makefile \
3077 src/plugins/sd/Makefile \
3078 src/plugins/dir/Makefile \
3079 src/win32/Makefile.inc \
3081 updatedb/update_mysql_tables_9_to_10 \
3082 updatedb/update_sqlite3_tables_9_to_10 \
3083 updatedb/update_postgresql_tables_9_to_10 \
3084 updatedb/update_mysql_tables_10_to_11 \
3085 updatedb/update_sqlite3_tables_10_to_11 \
3086 updatedb/update_postgresql_tables_10_to_11 \
3087 examples/nagios/check_bacula/Makefile \
3092 if test "${support_bat}" = "yes" ; then
3093 if test "x$QMAKE" = "xnone"; then
3094 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3099 echo "Creating bat Makefile"
3109 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3110 dnl requires gcc). If it's not, don't rebuild dependencies
3112 if test X"$GCC" = "Xyes" ; then
3113 echo "Doing make of dependencies"
3114 ${MAKE:-make} depend
3118 chmod 755 install_conf_file build-depkgs-qt-console
3122 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3123 chmod 755 dvd-handler dvd-simulator
3124 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3128 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3129 chmod 755 $c/update_postgresql_tables_10_to_11
3133 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3134 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3136 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3137 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3139 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3140 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3142 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3143 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3145 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3146 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3149 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3153 chmod 755 src/win32/build-depkgs-mingw32
3155 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3156 largefile_support="yes"
3159 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3160 if test X"$GCC" = "Xyes" ; then
3162 dnl A whole lot of hand springs to get the compiler version.
3163 dnl This is because gcc changed the output in version 3.0
3165 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3166 if test "x${CCVERSION}" = "x" ; then
3167 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3169 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3170 if test x"${CXXVERSION}" = x ; then
3171 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3175 # clean up any old junk
3181 if test "x${db_type}" = "xInternal" ; then
3184 echo "You have not specified either --enable-client-only or one of the"
3185 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3186 echo " This is not permitted. Please reconfigure."
3188 echo "Aborting the configuration ..."
3195 Configuration on `date`:
3197 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3198 Bacula version: ${BACULA} ${VERSION} (${DATE})
3199 Source code location: ${srcdir}
3200 Install binaries: ${sbindir}
3201 Install libraries: ${libdir}
3202 Install config files: ${sysconfdir}
3203 Scripts directory: ${scriptdir}
3204 Archive directory: ${archivedir}
3205 Working directory: ${working_dir}
3206 PID directory: ${piddir}
3207 Subsys directory: ${subsysdir}
3208 Man directory: ${mandir}
3209 Data directory: ${datarootdir}
3210 Plugin directory: ${plugindir}
3211 C Compiler: ${CC} ${CCVERSION}
3212 C++ Compiler: ${CXX} ${CXXVERSION}
3213 Compiler flags: ${WCFLAGS} ${CFLAGS}
3214 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3216 Statically Linked Tools: ${support_static_tools}
3217 Statically Linked FD: ${support_static_fd}
3218 Statically Linked SD: ${support_static_sd}
3219 Statically Linked DIR: ${support_static_dir}
3220 Statically Linked CONS: ${support_static_cons}
3221 Database type: ${db_type}
3222 Database port: ${db_port}
3223 Database lib: ${DB_LIBS}
3224 Database name: ${db_name}
3225 Database user: ${db_user}
3227 Job Output Email: ${job_email}
3228 Traceback Email: ${dump_email}
3229 SMTP Host Address: ${smtp_host}
3231 Director Port: ${dir_port}
3232 File daemon Port: ${fd_port}
3233 Storage daemon Port: ${sd_port}
3235 Director User: ${dir_user}
3236 Director Group: ${dir_group}
3237 Storage Daemon User: ${sd_user}
3238 Storage DaemonGroup: ${sd_group}
3239 File Daemon User: ${fd_user}
3240 File Daemon Group: ${fd_group}
3242 SQL binaries Directory ${SQL_BINDIR}
3244 Large file support: $largefile_support
3245 Bacula conio support: ${got_conio} ${CONS_LIBS}
3246 readline support: ${got_readline} ${PRTREADLINE_SRC}
3247 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3248 TLS support: ${support_tls}
3249 Encryption support: ${support_crypto}
3250 ZLIB support: ${have_zlib}
3251 enable-smartalloc: ${support_smartalloc}
3252 enable-lockmgr: ${support_lockmgr}
3253 bat support: ${support_bat}
3254 enable-gnome: ${support_gnome} ${gnome_version}
3255 enable-bwx-console: ${support_wx_console} ${wx_version}
3256 enable-tray-monitor: ${support_tray_monitor}
3257 client-only: ${build_client_only}
3258 build-dird: ${build_dird}
3259 build-stored: ${build_stored}
3260 Plugin support: ${have_plugins}
3261 ACL support: ${have_acl}
3262 XATTR support: ${have_xattr}
3263 Python support: ${support_python} ${PYTHON_LIBS}
3264 Batch insert enabled: ${support_batch_insert}
3268 # create a small shell script useful for support with
3269 # configure options and config.out info
3270 cat > scripts/bacula_config << EOF
3273 $ $0 $ac_configure_args
3275 cat config.out >> scripts/bacula_config
3276 echo __EOC__ >> scripts/bacula_config
3277 chmod 755 scripts/bacula_config
3281 # Display a warning message if postgresql client lib is <= 8.1
3282 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3283 -a x$support_batch_insert = xyes
3285 echo "WARNING: Your PostgreSQL client library is too old to detect "
3286 echo " if it was compiled with --enable-thread-safety, consider to"
3287 echo " upgrade it in order to avoid problems with Batch insert mode"