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`
39 BDB_VERSION=`sed -n -e 's/^.*BDB_VERSION \(.*\)$/\1/p' ${srcdir}/src/cats/cats.h`
44 AC_SUBST(post_host)dnl
45 AC_SUBST(BDB_VERSION)dnl
48 dnl can be overwritten by specific values from version.h
49 LIBBAC_LT_RELEASE=`sed -n -e 's/^#.*LIBBAC_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
50 LIBBACCFG_LT_RELEASE=`sed -n -e 's/^#.*LIBBACCFG_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
51 LIBBACPY_LT_RELEASE=`sed -n -e 's/^#.*LIBBACPY_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
53 LIBBAC_LT_RELEASE=${LIBBAC_LT_RELEASE:-$VERSION}
54 LIBBACCFG_LT_RELEASE=${LIBBACCFG_LT_RELEASE:-$VERSION}
55 LIBBACPY_LT_RELEASE=${LIBBACPY_LT_RELEASE:-$VERSION}
57 AC_SUBST(LIBBAC_LT_RELEASE)dnl
58 AC_SUBST(LIBBACCFG_LT_RELEASE)dnl
59 AC_SUBST(LIBBACPY_LT_RELEASE)dnl
62 dnl can be overwritten by specific values from version.h
63 LIBBACSQL_LT_RELEASE=`sed -n -e 's/^#.*LIBBACSQL_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
65 LIBBACSQL_LT_RELEASE=${LIBBACSQL_LT_RELEASE:-$VERSION}
67 AC_SUBST(LIBBACSQL_LT_RELEASE)dnl
70 dnl can be overwritten by specific values from version.h
71 LIBBACFIND_LT_RELEASE=`sed -n -e 's/^#.*LIBBACFIND_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
73 LIBBACFIND_LT_RELEASE=${LIBBACFIND_LT_RELEASE:-$VERSION}
75 AC_SUBST(LIBBACFIND_LT_RELEASE)dnl
77 echo "configuring for ${BACULA} $VERSION ($DATE)"
80 dnl -------------------------------------------------------
81 dnl Check for compiler.
82 dnl ------------------------------------------------------
86 AC_PROG_CC_C_O dnl Determine if C compiler support -c -o.
87 AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional.
91 if test "x$BASECC" = xgcc; then
95 AC_PATH_PROG(CXX, $CXX, $CXX)
96 if test ! -e $CXX; then
97 AC_MSG_ERROR(Unable to find C++ compiler)
100 dnl -------------------------------------------------------
101 dnl Check for programs.
102 dnl ------------------------------------------------------
104 AC_PATH_PROG(MV, mv, mv)
106 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
107 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
108 dnl of strange output of the configure script (like things don't exist etc.).
109 dnl So we name it REMOVE (more software has run into this problem)
110 AC_PATH_PROG(REMOVE, rm, rm)
111 AC_PATH_PROG(CP, cp, cp)
112 AC_PATH_PROG(SED, sed, sed)
113 AC_PATH_PROG(ECHO, echo, echo)
114 AC_PATH_PROG(CMP, cmp, cmp)
115 AC_PATH_PROG(TBL, tbl, tbl)
116 AC_PATH_PROG(AR, ar, ar)
117 AC_PATH_PROG(OPENSSL, openssl, none)
118 AC_PATH_PROG(MTX, mtx, mtx)
119 AC_PATH_PROG(DD, dd, dd)
120 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
121 AC_PATH_PROG(PYTHON, python, python)
122 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
123 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
124 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
125 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
126 AC_PATH_PROG(QMAKE, qmake, none)
127 AC_PATH_PROG(GMAKE, gmake, none)
128 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
129 if test "x$WXCONFIG" = x; then
132 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
133 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
134 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
135 AC_PATH_PROG(PIDOF, pidof, pidof)
137 # Some AWK programs fail, so test it and warn the user
138 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
139 { if ((prog == $2) || (("(" prog ")") == $2) ||
140 (("[" prog "]") == $2) ||
141 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
143 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
144 The regex engine of $AWK is too broken to be used you
145 might want to install GNU AWK.
146 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
149 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
152 test -n "$ARFLAG" || ARFLAGS="cr"
159 AC_SUBST(LOCAL_CFLAGS)
160 AC_SUBST(LOCAL_LDFLAGS)
163 dnl --------------------------------------------------
165 dnl --------------------------------------------------
167 AC_ARG_ENABLE(libtool,
168 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
170 if test x$enableval = xno; then
175 LT_INIT([shared disable-static])
178 if test x$use_libtool != xno; then
179 DEFAULT_OBJECT_TYPE=".lo"
180 DEFAULT_ARCHIVE_TYPE=".la"
181 DEFAULT_SHARED_OBJECT_TYPE=".la"
182 LIBTOOL="\$(LIBTOOL)"
183 LIBTOOL_INSTALL_TARGET="libtool-install"
184 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
185 LIBTOOL_CLEAN_TARGET="libtool-clean"
186 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
187 FD_PLUGIN_DIR="src/plugins/fd"
190 DEFAULT_OBJECT_TYPE=".o"
191 DEFAULT_ARCHIVE_TYPE=".a"
192 DEFAULT_SHARED_OBJECT_TYPE=".so"
193 LIBTOOL="# \$(LIBTOOL)"
194 LIBTOOL_INSTALL_TARGET=""
195 LIBTOOL_UNINSTALL_TARGET=""
196 LIBTOOL_CLEAN_TARGET=""
197 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
202 AC_SUBST(DEFAULT_OBJECT_TYPE)
203 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
204 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
206 AC_SUBST(LIBTOOL_INSTALL_TARGET)
207 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
208 AC_SUBST(LIBTOOL_CLEAN_TARGET)
209 AC_SUBST(QMAKE_LIBTOOL)
210 AC_SUBST(FD_PLUGIN_DIR)
212 dnl --------------------------------------------------
213 dnl Include file handling
214 dnl --------------------------------------------------
215 AC_ARG_ENABLE(includes,
216 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
218 if test x$enableval = xyes; then
224 dnl It only makes sense to install include files when you install libraries which only happens when
225 dnl libtool is enabled
227 if test x$use_libtool != xno -a x$install_includes = xyes; then
228 INCLUDE_INSTALL_TARGET="install-includes"
229 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
231 INCLUDE_INSTALL_TARGET=""
232 INCLUDE_UNINSTALL_TARGET=""
234 AC_SUBST(INCLUDE_INSTALL_TARGET)
235 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
237 dnl --------------------------------------------------
238 dnl Bacula OP Sys determination (see aclocal.m4)
239 dnl --------------------------------------------------
242 dnl -----------------------------------------------------------
243 dnl Bacula OPSys Distribution determination (see aclocal.m4)
244 dnl ----------------------------------------------------------
245 BA_CHECK_OPSYS_DISTNAME
247 dnl --------------------------------------------------
248 dnl Suppport for gettext (translations)
249 dnl By default, $datarootdir is ${prefix}/share
250 dnl --------------------------------------------------
251 AM_GNU_GETTEXT([external])
253 dnl ------------------------------------------------------------------
254 dnl If the user has not set --prefix, we set our default to nothing.
255 dnl In this case, if the user has not set --sysconfdir, we set it
256 dnl to the package default of /etc/bacula. If either --prefix or
257 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
258 dnl If the user has not set --libdir, we set it to the package
259 dnl default of /usr/lib. If either --prefix or --libdir is set,
260 dnl we leave libdir alone except to eval it. If the user has not set
261 dnl --includedir, we set it to the package default of /usr/include.
262 dnl If either --prefix or --includedir is set, we leave includedir
263 dnl alone except to eval it
264 dnl ------------------------------------------------------------------
265 os_name=`uname -s 2>/dev/null`
266 if test x${prefix} = xNONE ; then
267 if test `eval echo ${sysconfdir}` = NONE/etc ; then
268 sysconfdir=/etc/bacula
271 if test `eval echo ${libdir}` = NONE/lib ; then
274 os_processor=`uname -p 2>/dev/null`
275 case ${os_processor} in
290 if test `eval echo ${includedir}` = NONE/include ; then
291 includedir=/usr/include
294 if test `eval echo ${datarootdir}` = NONE/share ; then
295 datarootdir=/usr/share
300 dnl -------------------------------------------------------------------------
301 dnl If the user has not set --exec-prefix, we default to ${prefix}
302 dnl -------------------------------------------------------------------------
303 if test x${exec_prefix} = xNONE ; then
304 exec_prefix=${prefix}
307 sysconfdir=`eval echo ${sysconfdir}`
308 datarootdir=`eval echo ${datarootdir}`
309 docdir=`eval echo ${docdir}`
310 htmldir=`eval echo ${htmldir}`
311 libdir=`eval echo ${libdir}`
312 includedir=`eval echo ${includedir}`
313 localedir=`eval echo ${datarootdir}/locale`
314 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
315 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
317 dnl ------------------------------------------------------------------
318 dnl If the user has not set --sbindir, we set our default as /sbin
319 dnl ------------------------------------------------------------------
320 if test x$sbindir = x'${exec_prefix}/sbin' ; then
321 sbindir=${exec_prefix}/sbin
323 sbindir=`eval echo ${sbindir}`
325 dnl -------------------------------------------------------------------------
326 dnl If the user has not set --mandir, we default to /usr/share/man
327 dnl -------------------------------------------------------------------------
328 if test x$mandir = x'${prefix}/man' ; then
329 mandir=/usr/share/man
332 dnl -------------------------------------------------------------------------
333 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
334 dnl -------------------------------------------------------------------------
335 if test x$htmldir = x${docdir} ; then
336 htmldir=`eval echo ${docdir}bacula/html`
339 dnl -------------------------------------------------------------------------
340 dnl If the user has not set --docdir, we default to /usr/share/doc/
341 dnl -------------------------------------------------------------------------
342 if test x$docdir = x'/usr/share/doc/' ; then
343 docdir=`eval echo ${docdir}bacula`
347 AC_PATH_PROGS(MSGFMT, msgfmt, no)
348 if test "$MSGFMT" = "no"
350 echo 'msgfmt program not found, disabling NLS !'
352 USE_INCLUDED_LIBINTL=no
360 support_postgresql=no
363 support_smartalloc=yes
368 support_wx_console=no
369 support_tray_monitor=no
374 support_static_tools=no
377 support_static_dir=no
378 support_static_cons=no
388 dnl --------------------------------------------------------------------------
389 dnl CHECKING COMMAND LINE OPTIONS
390 dnl --------------------------------------------------------------------------
392 dnl -------------------------------------------
393 dnl gnome (default off)
394 dnl -------------------------------------------
396 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
398 if test x$enableval = xyes; then
405 if test x$support_gnome = xyes; then
406 AC_MSG_ERROR(bgnome-console no longer supported)
407 AC_MSG_ERROR(--enable-gnome option no longer supported)
409 # AC_SUBST(GNOME_DIR)
411 dnl -------------------------------------------
412 dnl bat (default off)
413 dnl -------------------------------------------
415 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
417 if test x$enableval = xyes; then
418 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
425 if test x$support_bat = xyes; then
426 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
428 if test $pkg = 0; then
429 BAT_DIR=src/qt-console
431 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
436 dnl The qwt library was used with bat, but that is no longer the case
444 dnl if test x$support_bat = xyes; then
445 dnl AC_MSG_CHECKING(for qwt support)
447 dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
449 dnl case "$with_qwt" in
454 dnl if test -f ${with_qwt}/include/qwt.h; then
455 dnl QWT_INC="${with_qwt}/include"
456 dnl QWT_LDFLAGS="-L${with_qwt}/lib"
466 dnl dnl Search in standard places, or --with-qwt not specified
468 dnl if test $no_qwt = no; then
469 dnl if test x$QWT_INC = x; then
470 dnl for root in /usr /usr/local; do
471 dnl for ver in qwt qwt5 qwt-qt4; do
472 dnl if test -f ${root}/include/${ver}/qwt.h; then
473 dnl QWT_INC="${root}/include/${ver}"
474 dnl if test -d ${root}/lib64/; then
475 dnl QWT_LDFLAGS="-L${root}/lib64"
476 dnl elif test -d ${root}/lib/64/; then
477 dnl QWT_LDFLAGS="-L${root}/64"
479 dnl QWT_LDFLAGS="-L${root}/lib"
490 dnl if test x$QWT_INC = x; then
491 dnl AC_MSG_RESULT(no)
493 dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
494 dnl AC_MSG_RESULT(yes)
500 AC_SUBST(QWT_LDFLAGS)
504 dnl -------------------------------------------
505 dnl bwx-console (default off)
506 dnl -------------------------------------------
507 AC_ARG_ENABLE(bwx-console,
508 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
510 if test x$enableval = xyes; then
511 support_wx_console=yes
517 if test x$support_wx_console = xyes; then
518 abc=`$WXCONFIG $WXFLAGS --cppflags`
520 if test $pkg = 0; then
521 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
522 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
523 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
525 AC_SUBST(WXCONS_CPPFLAGS)
526 AC_SUBST(WXCONS_LDFLAGS)
527 WX_DIR="src/wx-console"
530 echo "wx-config program not found. bwx-console disabled."
532 support_wx_console=no
537 dnl -------------------------------------------
538 dnl tray-monitor (default off)
539 dnl -------------------------------------------
540 AC_ARG_ENABLE(tray-monitor,
541 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
543 if test x$enableval = xyes; then
544 support_tray_monitor=yes
550 if test x$support_tray_monitor = xyes; then
551 abc=`$PKGCONFIG --exists gtk+-2.0`
553 if test $pkg = 0; then
554 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
555 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
556 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
557 AC_SUBST(TRAY_MONITOR_LDFLAGS)
558 TRAY_MONITOR_DIR=src/tray-monitor
559 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
561 if test $pkg = 0; then
562 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
566 AC_SUBST(TRAY_MONITOR_DIR)
568 dnl -------------------------------------------
569 dnl smartalloc (default off)
570 dnl -------------------------------------------
571 AC_ARG_ENABLE(smartalloc,
572 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
574 if test x$enableval = xno; then
575 support_smartalloc=no
580 if test x$support_smartalloc = xyes; then
581 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
584 dnl -------------------------------------------
585 dnl Lock Manager (default off)
586 dnl -------------------------------------------
587 AC_ARG_ENABLE(lockmgr,
588 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
590 if test x$enableval = xyes; then
596 if test x$support_lockmgr = xyes; then
597 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
601 dnl -------------------------------------------
602 dnl static-tools (default off)
603 dnl -------------------------------------------
604 AC_ARG_ENABLE(static-tools,
605 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
607 if test x$enableval = xyes; then
608 if test x$use_libtool = xyes; then
609 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
610 please rerun configure with --disable-libtool])
612 support_static_tools=yes
618 if test x$support_static_tools = xyes; then
619 TTOOL_LDFLAGS="-static"
621 AC_SUBST(TTOOL_LDFLAGS)
623 dnl -------------------------------------------
624 dnl static-fd (default off)
625 dnl -------------------------------------------
626 AC_ARG_ENABLE(static-fd,
627 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
629 if test x$enableval = xyes; then
630 if test x$use_libtool = xyes; then
631 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
632 please rerun configure with --disable-libtool])
634 support_static_fd=yes
640 if test x$support_static_fd = xyes; then
641 STATIC_FD="static-bacula-fd"
645 dnl -------------------------------------------
646 dnl static-sd (default off)
647 dnl -------------------------------------------
648 AC_ARG_ENABLE(static-sd,
649 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
651 if test x$enableval = xyes; then
652 if test x$use_libtool = xyes; then
653 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
654 please rerun configure with --disable-libtool])
656 support_static_sd=yes
662 if test x$support_static_sd = xyes; then
663 STATIC_SD="static-bacula-sd"
667 dnl -------------------------------------------
668 dnl static-dir (default off)
669 dnl -------------------------------------------
670 AC_ARG_ENABLE(static-dir,
671 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
673 if test x$enableval = xyes; then
674 if test x$use_libtool = xyes; then
675 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
676 please rerun configure with --disable-libtool])
678 support_static_dir=yes
684 if test x$support_static_dir = xyes; then
685 STATIC_DIR="static-bacula-dir"
689 dnl -------------------------------------------
690 dnl static-cons (default off)
691 dnl -------------------------------------------
692 AC_ARG_ENABLE(static-cons,
693 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
695 if test x$enableval = xyes; then
696 if test x$use_libtool = xyes; then
697 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
698 please rerun configure with --disable-libtool])
700 support_static_cons=yes
708 if test x$support_static_cons = xyes; then
709 STATIC_CONS="static-bconsole"
710 STATIC_GNOME_CONS="static-bgnome-console"
711 STATIC_WX_CONS="static-bwx-console"
713 AC_SUBST(STATIC_CONS)
714 AC_SUBST(STATIC_GNOME_CONS)
715 AC_SUBST(STATIC_WX_CONS)
717 dnl -------------------------------------------
718 dnl client_only (default off)
719 dnl -------------------------------------------
720 AC_ARG_ENABLE(client-only,
721 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
723 if test x$enableval = xyes; then
724 build_client_only=yes
730 if test x$build_client_only = xno; then
737 dnl -------------------------------------------
738 dnl director (default on)
739 dnl -------------------------------------------
740 AC_ARG_ENABLE(build-dird,
741 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
743 if test x$enableval = xno; then
748 if test x$build_dird = xyes; then
753 DIR_TOOLS="NODIRTOOLS"
758 dnl -------------------------------------------
759 dnl stored (default on)
760 dnl -------------------------------------------
761 AC_ARG_ENABLE(build-stored,
762 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
764 if test x$enableval = xno; then
769 if test x$build_stored = xyes; then
770 STORED_DIR="src/stored"
776 dnl ---------------------------------------------------
777 dnl Check for conio (Bacula readline substitute)(
778 dnl ---------------------------------------------------
779 dnl this allows you to turn it completely off
781 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
783 if test x$enableval = xno; then
790 dnl ---------------------------------------------------
791 dnl Check for IPv6 support
792 dnl ---------------------------------------------------
793 dnl this allows you to turn it completely off
796 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
798 if test x$enableval = xno; then
804 if test x$support_ipv6 = xyes; then
805 AC_TRY_LINK([ #include <sys/types.h>
806 #include <sys/socket.h>
807 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
808 [support_ipv6=yes], [support_ipv6=no])
811 if test x$support_ipv6 = xyes; then
812 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
816 AC_CHECK_HEADER(curses.h,
817 [ AC_CHECK_LIB(ncurses, tgetent,
818 [ TERM_LIB="-lncurses" ],
819 [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
822 [ AC_CHECK_HEADERS(curses.h)
823 AC_CHECK_HEADER(term.h,
824 [ AC_CHECK_LIB(curses, tgetent,
825 [ TERM_LIB="-lcurses" ] )
831 if test x$support_conio = xyes; then
832 if test x$TERM_LIB != x; then
838 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
840 echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
845 dnl ---------------------------------------------------
846 dnl Check for readline support/directory (default off)
847 dnl ---------------------------------------------------
848 dnl this allows you to turn it completely off
849 AC_ARG_ENABLE(readline,
850 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
852 if test x$enableval = xno; then
857 if test x$TERM_LIB = x ; then
863 if test x$support_readline = xyes; then
864 AC_ARG_WITH(readline,
865 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
867 case "$with_readline" in
872 if test -f ${with_readline}/readline.h; then
873 CONS_INC="-I${with_readline}"
874 CONS_LDFLAGS="-L$with_readline"
875 elif test -f ${with_readline}/include/readline/readline.h; then
876 CONS_INC="-I${with_readline}/include/readline"
877 CONS_LDFLAGS="-L${with_readline}/lib"
878 with_readline="${with_readline}/include/readline"
880 with_readline="/usr/include/readline"
883 AC_CHECK_HEADER(${with_readline}/readline.h,
885 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
886 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
890 echo "readline.h not found. readline turned off ..."
897 dnl check for standard readline library
898 AC_CHECK_HEADER(/usr/include/readline/readline.h,
900 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
902 CONS_INC="-I/usr/include/readline"
903 CONS_LIBS="-lreadline $TERM_LIB"
905 dnl Did not find standard library, so try Bacula's default
906 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
908 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
910 CONS_INC="-I${TOP_DIR}/depkgs/readline"
911 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
912 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
913 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
916 echo "readline.h not found. readline turned off ..."
930 AC_SUBST(CONS_LDFLAGS)
931 AC_SUBST(READLINE_SRC)
933 dnl Minimal stuff for readline Makefile configuration
938 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
939 AC_CHECK_FUNCS(nanosleep nl_langinfo)
940 AC_CHECK_HEADERS(varargs.h)
942 dnl End of readline/conio stuff
943 dnl -----------------------------------------------------------------------
945 dnl -----------------------------------------------------------------------
946 dnl Check for Python support
948 AC_MSG_CHECKING(for Python support)
950 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.]),
954 if test "$withval" != "no"; then
955 if test "$withval" = "yes"; then
956 if test -e /usr/bin/python-config ; then
957 PYTHON_INCDIR=`/usr/bin/python-config --includes`
958 PYTHON_LIBS=`/usr/bin/python-config --libs`
960 for python_root in /usr /usr/local /usr/sfw; do
961 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
962 if test -f $python_root/include/${ver}/Python.h; then
963 PYTHON_INCDIR=-I$python_root/include/${ver}
964 if test -d $python_root/lib64/${ver}/config; then
965 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
967 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
974 if test x$PYTHON_INCDIR = x; then
975 if test -f $prefix/include/Python.h; then
976 PYTHON_INCDIR=-I$prefix/include
977 if test -d $prefix/lib64/config; then
978 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
980 PYTHON_LIBS="-L$prefix/lib/config -lpython"
984 AC_MSG_ERROR(Unable to find Python.h in standard locations)
989 if test -e $withval/bin/python-config ; then
990 PYTHON_INCDIR=`$withval/bin/python-config --includes`
991 PYTHON_LIBS=`$withval/bin/python-config --libs`
992 elif test -f $withval/Python.h; then
993 PYTHON_INCDIR=-I$withval
994 PYTHON_LIBS="-L$withval/config -lpython"
995 elif test -f $withval/include/Python.h; then
996 PYTHON_INCDIR=-I$withval/include
997 if test -d $withval/lib64/config; then
998 PYTHON_LIBS="-L$withval/lib64/config -lpython"
1000 PYTHON_LIBS="-L$withval/lib/config -lpython"
1002 elif test -f $withval/include/python/Python.h; then
1003 PYTHON_INCDIR=-I$withval/include/python
1004 if test -d $withval/lib64/python/config; then
1005 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1007 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1011 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1015 AC_DEFINE([HAVE_PYTHON], 1)
1018 AC_MSG_NOTICE(checking for more Python libs)
1019 saved_LIBS="$LIBS"; LIBS=
1020 AC_SEARCH_LIBS(shm_open, [rt])
1021 AC_CHECK_LIB(util, openpty)
1022 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1031 AC_SUBST(PYTHON_LIBS)
1032 AC_SUBST(PYTHON_INCDIR)
1035 dnl Find where sockets are (especially for Solaris)
1036 dnl Do this before the TCP Wrappers test since tcp wrappers
1037 dnl uses the socket library and some linkers are stupid.
1039 AC_CHECK_FUNC(socket,
1040 AC_MSG_RESULT(using libc's socket),
1041 AC_CHECK_LIB(xnet,socket)
1042 AC_CHECK_LIB(socket,socket)
1043 AC_CHECK_LIB(inet,socket))
1045 dnl -----------------------------------------------------------
1046 dnl Check whether user wants TCP wrappers support (default off)
1047 dnl -----------------------------------------------------------
1050 AC_ARG_WITH(tcp-wrappers,
1051 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1053 if test "x$withval" != "xno" ; then
1055 LIBS="$saved_LIBS -lwrap"
1056 AC_SEARCH_LIBS(nanosleep, [rt])
1057 AC_MSG_CHECKING(for libwrap)
1060 #include <sys/types.h>
1062 int deny_severity = 0;
1063 int allow_severity = 0;
1064 struct request_info *req;
1069 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1074 LIBS="$saved_LIBS -lwrap -lnsl"
1075 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1078 #include <sys/types.h>
1080 int deny_severity = 0;
1081 int allow_severity = 0;
1082 struct request_info *req;
1087 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1092 AC_MSG_ERROR([*** libwrap missing])
1101 dnl -----------------------------------------------------------
1102 dnl Check whether OpenSSL is available
1103 dnl -----------------------------------------------------------
1104 AC_MSG_CHECKING([for OpenSSL])
1105 dnl The following uses quadrigraphs:
1108 AC_ARG_WITH(openssl,
1109 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1111 with_openssl_directory=${withval}
1115 if test "x$with_openssl_directory" != "xno"; then
1116 OPENSSL_LIBS="-lssl -lcrypto"
1119 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1121 # Make sure the $with_openssl_directory also makes sense
1123 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1124 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1125 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1129 saved_LIBS="${LIBS}"
1130 saved_CFLAGS="${CFLAGS}"
1131 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1132 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1136 #include <openssl/ssl.h>
1138 CRYPTO_set_id_callback(NULL);
1141 support_crypto="yes"
1150 #include <openssl/evp.h>
1154 ac_cv_openssl_sha2="yes"
1156 ac_cv_openssl_sha2="no"
1160 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1161 dnl implementation, presumably for export reasons. If 192bit AES
1162 dnl is available, we assume that we're running with a 'non-export'
1163 dnl openssl library.
1166 #include <openssl/evp.h>
1170 ac_cv_openssl_export="no"
1172 ac_cv_openssl_export="yes"
1176 LIBS="${saved_LIBS}"
1177 CFLAGS="${saved_CFLAGS}"
1179 if test "$support_tls" = "yes"; then
1180 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1181 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1182 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1185 if test "$ac_cv_openssl_sha2" = "yes"; then
1186 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1189 if test "$ac_cv_openssl_export" = "yes"; then
1190 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1198 AC_MSG_RESULT([$support_tls])
1200 if test "$support_tls" = "no"; then
1204 if test "$support_crypto" = "no"; then
1208 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
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 Check if postgresql can support batch mode
1751 if test x$DB_TYPE = xpostgresql; then
1752 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1753 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1754 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1756 support_batch_insert=no
1760 if test x$DB_TYPE = xdbi; then
1764 dnl Check for batch insert
1765 if test $DB_PROG = postgresql; then
1766 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1767 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1768 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1772 if test $DB_PROG = mysql; then
1773 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1777 if test $DB_PROG = sqlite3; then
1778 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1780 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1783 if test $pkg = 0; then
1784 AC_ARG_ENABLE(batch-insert,
1785 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1787 if test x$enableval = xno; then
1788 support_batch_insert=no
1790 support_batch_insert=yes
1796 dnl If dbi was not chosen, let the comment in file
1800 AC_SUBST(uncomment_dbi)
1802 dnl For Ingres always enable batch inserts.
1803 if test x$DB_TYPE = xingres; then
1804 support_batch_insert=yes
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_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)])
2391 AC_FUNC_CLOSEDIR_VOID
2392 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2393 # AC_FUNC_FNMATCH dnl use local version
2395 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2397 AC_CHECK_LIB(sun, getpwnam)
2399 AC_CHECK_HEADERS(zlib.h)
2400 AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
2402 if test x$ZLIBS = x-lz; then
2403 AC_DEFINE(HAVE_LIBZ)
2409 dnl Check if we have AFS on this system
2415 AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]),
2417 if test x$enableval = xyes; then
2419 elif test x$enableval = xno; then
2426 if test x$support_afs = xyes -o x$support_afs = xauto; then
2428 AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]),
2429 with_afsdir=$withval
2433 dnl Search in standard places, or --with-afsdir not specified
2435 if test x$with_afsdir = x; then
2436 for root in /usr /usr/local; do
2437 if test -d ${root}/include/afs/ ; then
2444 AFS_CFLAGS="-I${with_afsdir}/include"
2446 saved_CFLAGS="${CFLAGS}"
2447 CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}"
2449 AC_CHECK_HEADERS(afs/stds.h)
2451 CFLAGS="${saved_CFLAGS}"
2454 dnl See if we can find a libsys with the pioctl symbol in there
2456 for dir in ${with_afsdir}/lib ${with_afsdir}/lib/afs
2458 for arch_type in .a .so
2460 A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} | grep pioctl`
2462 if test $pkg = 0; then
2464 AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util.a"
2470 if test x$support_afs = xyes -a $have_afs != yes; then
2471 AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found,
2472 please either load the afs libraries or rerun configure without --enable-afs])
2474 if test $have_afs = yes; then
2475 AC_DEFINE([HAVE_AFS],1,[Defines if your system has AFS support])
2476 AC_DEFINE([HAVE_AFS_ACL],1,[Andrew FileSystem ACL support])
2481 AC_SUBST(AFS_CFLAGS)
2485 dnl Check for ACL support and libraries
2489 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2491 if test x$enableval = xyes; then
2493 elif test x$enableval = xno; then
2500 have_extended_acl=no
2501 if test x$support_acl = xyes -o x$support_acl = xauto; then
2502 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2503 AC_CHECK_FUNC(acl_get_file,
2507 AC_CHECK_LIB(acl, acl_get_file,
2510 if test $have_afs = yes; then
2512 dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!!
2514 if test -d /usr/lib64/; then
2515 FDLIBS="-L/usr/lib64 -lacl $FDLIBS"
2517 FDLIBS="-L/usr/lib -lacl $FDLIBS"
2520 FDLIBS="-lacl $FDLIBS"
2523 AC_CHECK_LIB(pacl, acl_get_file,
2526 FDLIBS="-lpacl $FDLIBS"
2528 AC_CHECK_LIB(sec, acltotext,
2531 FDLIBS="-lsec $FDLIBS"
2533 AC_CHECK_LIB(sec, acl_totext,
2535 have_extended_acl=yes
2547 if test x$support_acl = xyes -a $have_acl != yes; then
2548 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2549 please either load the acl libraries or rerun configure without --enable-acl])
2551 if test $have_acl = yes; then
2552 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2555 if test $have_extended_acl = yes; then
2556 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2562 dnl Check for XATTR support
2565 AC_ARG_ENABLE(xattr,
2566 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2568 if test x$enableval = xyes; then
2570 elif test x$enableval = xno; then
2577 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2579 dnl First check for *BSD support
2581 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2582 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2583 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2586 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2587 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2588 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2592 if test $have_xattr = no; then
2593 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2596 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2597 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2598 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2603 if test $have_xattr = yes; then
2604 have_extattr_string_in_libc=no
2605 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2607 have_extattr_string_in_libc=yes
2608 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2609 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2614 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2616 if test $have_extattr_string_in_libc = no; then
2617 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2619 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2620 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2621 FDLIBS="-lutil $FDLIBS"
2628 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2630 if test $have_xattr = no; then
2631 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2632 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2635 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2636 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2637 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2641 if test $have_xattr = no; then
2642 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2645 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2646 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2647 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2654 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2656 if test $have_xattr = no; then
2657 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2658 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2659 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2661 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2664 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2665 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2666 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2667 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2668 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2672 if test $have_xattr = yes; then
2673 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2675 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2676 FDLIBS="-lnvpair $FDLIBS"
2682 if test x$support_xattr = xyes -a $have_xattr != yes; then
2683 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2684 please either load the xattr libraries or rerun configure without --enable-xattr])
2686 if test $have_xattr = yes; then
2687 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2693 dnl Check for pthread libraries
2696 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2698 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2700 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2702 AC_CHECK_FUNC(pthread_create)
2711 dnl Check for headers, functions and libraries required to support
2712 dnl keeping readall capabilities
2714 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2715 AC_CHECK_FUNCS(prctl setreuid)
2716 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2717 if test x$CAP_LIBS = x-lcap; then
2718 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2727 if test x$have_gcc = xyes ; then
2728 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2729 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2731 LDFLAGS=${LDFLAGS--O}
2732 DB_LIBS="${SQL_LFLAGS}"
2733 CPPFLAGS="$CPPFLAGS"
2746 AC_SUBST(X_EXTRA_LIBS)
2751 dnl extra configurable objects
2762 dnl Finally we set appropriate distribution specific
2763 dnl variables and defaults
2765 dnl PFILES are platform specific files
2766 PFILES="platforms/Makefile"
2771 hostname=`uname -n | cut -d '.' -f 1`
2772 if test x${hostname} = x ; then
2773 hostname="localhost"
2775 dnl Make sure hostname is resolved
2776 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2777 if test ! $? = 0; then
2778 hostname="localhost"
2784 PSCMD="ps -e -o pid,comm"
2786 platforms/aix/Makefile"
2787 TAPEDRIVE="/dev/rmt0.1"
2791 PTHREAD_LIB="-lpthread -lexc"
2792 if test "${CC}" = "gcc" ; then
2799 TAPEDRIVE="/dev/nrmt0"
2802 DISTVER=`uname -a |awk '{print $3}'`
2803 TAPEDRIVE="/dev/nrmt0"
2804 PTHREAD_LIB="-pthread"
2805 CFLAGS="${CFLAGS} -pthread"
2806 PSCMD="ps -ax -o pid,command"
2810 platforms/bsdi/Makefile \
2811 platforms/bsdi/bacula-fd \
2812 platforms/bsdi/bacula-sd \
2813 platforms/bsdi/bacula-dir"
2814 largefile_support="yes"
2817 DISTVER=`uname -a |awk '{print $3}'`
2818 TAPEDRIVE="/dev/nrst0"
2821 WLDFLAGS="-mwindows"
2825 TAPEDRIVE="/dev/nst0"
2826 PSCMD="ps -e -o pid,command"
2829 platforms/darwin/Makefile"
2833 TAPEDRIVE="/dev/nst0"
2834 PSCMD="ps -e -o pid,command"
2837 platforms/osx/Makefile"
2840 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2843 DISTVER=`cat /etc/debian_version`
2844 if test -f /etc/lsb-release ; then
2846 if test "x$DISTRIB_ID" != "x" ; then
2847 DISTNAME=$DISTRIB_ID
2849 if test "x$DISTRIB_RELEASE" != "x" ; then
2850 DISTVER=$DISTRIB_RELEASE
2853 if test "$DISTNAME" = "Ubuntu" ; then
2856 TAPEDRIVE="/dev/nst0"
2857 PSCMD="ps -e -o pid,command"
2858 if test "$DISTNAME" = "ubuntu" ; then
2860 platforms/ubuntu/Makefile \
2861 platforms/ubuntu/bacula-fd \
2862 platforms/ubuntu/bacula-sd \
2863 platforms/ubuntu/bacula-dir"
2866 platforms/debian/Makefile \
2867 platforms/debian/bacula-fd \
2868 platforms/debian/bacula-sd \
2869 platforms/debian/bacula-dir"
2873 DISTVER=`uname -a |awk '{print $3}'`
2874 VER=`echo $DISTVER | cut -c 1`
2875 if test x$VER = x4 ; then
2876 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2877 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2881 TAPEDRIVE="/dev/nrsa0"
2882 PSCMD="ps -ax -o pid,command"
2884 platforms/freebsd/Makefile \
2885 platforms/freebsd/bacula-fd \
2886 platforms/freebsd/bacula-sd \
2887 platforms/freebsd/bacula-dir"
2888 largefile_support="yes"
2891 PSCMD="UNIX95=1; ps -e -o pid,comm"
2892 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2894 TAPEDRIVE="/dev/rmt/0hnb"
2895 PTHREAD_LIB="-lpthread"
2896 AC_DEFINE([_INCLUDE_LONGLONG])
2900 TAPEDRIVE="/dev/rmt/0cbn"
2901 PSCMD="ps -e -o pid,comm"
2903 platforms/irix/Makefile \
2904 platforms/irix/bacula-fd \
2905 platforms/irix/bacula-sd \
2906 platforms/irix/bacula-dir"
2909 DISTVER=`uname -a |awk '{print $3}'`
2912 TAPEDRIVE="/dev/nrst0"
2913 PSCMD="ps -ax -o pid,command"
2914 PTHREAD_LIB="-pthread"
2915 CFLAGS="${CFLAGS} -pthread"
2918 DISTVER=`uname -a |awk '{print $3}'`
2921 TAPEDRIVE="/dev/nrst0"
2922 PSCMD="ps -ax -o pid,command"
2923 PTHREAD_LIB="-pthread"
2924 CFLAGS="${CFLAGS} -pthread"
2926 platforms/openbsd/Makefile \
2927 platforms/openbsd/bacula-fd \
2928 platforms/openbsd/bacula-sd \
2929 platforms/openbsd/bacula-dir"
2932 if test -f /etc/whitebox-release ; then
2933 f=/etc/whitebox-release
2935 f=/etc/redhat-release
2937 if test `cat $f | grep release |\
2938 cut -f 3 -d ' '`x = "Enterprise"x ; then
2939 DISTVER="Enterprise "`cat $f | grep release |\
2942 DISTVER=`cat /etc/redhat-release | grep release |\
2945 TAPEDRIVE="/dev/nst0"
2946 PSCMD="ps -e -o pid,command"
2948 platforms/redhat/Makefile \
2949 platforms/redhat/bacula-fd \
2950 platforms/redhat/bacula-sd \
2951 platforms/redhat/bacula-dir
2955 DISTVER=`cat /etc/mandrake-release | grep release |\
2957 TAPEDRIVE="/dev/nst0"
2958 PSCMD="ps -e -o pid,command"
2960 platforms/mandrake/Makefile \
2961 platforms/mandrake/bacula-fd \
2962 platforms/mandrake/bacula-sd \
2963 platforms/mandrake/bacula-dir \
2967 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2968 TAPEDRIVE="/dev/nst0"
2969 PSCMD="ps -e -o pid,command"
2971 platforms/gentoo/Makefile \
2972 platforms/gentoo/bacula-init \
2973 platforms/gentoo/bacula-fd \
2974 platforms/gentoo/bacula-sd \
2975 platforms/gentoo/bacula-dir"
2978 DISTVER=`cat /etc/slackware-version`
2979 TAPEDRIVE="/dev/nst0"
2980 PSCMD="ps -e -o pid,command"
2982 platforms/slackware/Makefile \
2983 platforms/slackware/rc.bacula-fd \
2984 platforms/slackware/rc.bacula-sd \
2985 platforms/slackware/rc.bacula-dir\
2986 platforms/slackware/functions.bacula"
2990 TAPEDRIVE="/dev/rmt/0cbn"
2991 PSCMD="ps -e -o pid,comm"
2993 platforms/solaris/Makefile \
2994 platforms/solaris/bacula-fd \
2995 platforms/solaris/bacula-sd \
2996 platforms/solaris/bacula-dir"
2997 if test x$DISTVER = x5.6 ; then
2998 AC_DEFINE(HAVE_OLD_SOCKOPT)
3000 LIBS="$LIBS -lresolv -lrt"
3003 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
3005 TAPEDRIVE="/dev/nst0"
3006 PSCMD="ps -e -o pid,command"
3008 platforms/suse/Makefile \
3009 platforms/suse/bacula-fd \
3010 platforms/suse/bacula-sd \
3011 platforms/suse/bacula-dir \
3012 platforms/suse/bacula"
3017 TAPEDRIVE="/dev/nst0"
3018 PSCMD="ps -e -o pid,command"
3020 platforms/suse/Makefile \
3021 platforms/suse/bacula-fd \
3022 platforms/suse/bacula-sd \
3023 platforms/suse/bacula-dir"
3027 TAPEDRIVE="/dev/nst0"
3030 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
3036 LIBS="$PTHREAD_LIB $LIBS"
3038 AC_DEFINE_UNQUOTED(lld, "$lld")
3039 AC_DEFINE_UNQUOTED(llu, "$llu")
3047 dnl common parts of the Makefile
3048 MCOMMON=./autoconf/Make.common
3049 AC_SUBST_FILE(MCOMMON)
3052 if test "x${subsysdir}" = "x${sbindir}" ; then
3055 echo "You have set both --sbindir and --with-subsys-dir"
3056 echo " equal to: ${subsysdir} "
3057 echo "This is not permitted. Please reconfigure."
3059 echo "Aborting configuration ..."
3065 AC_OUTPUT([autoconf/Make.common \
3068 scripts/startmysql \
3070 scripts/btraceback \
3076 scripts/bacula-ctl-dir \
3077 scripts/bacula-ctl-fd \
3078 scripts/bacula-ctl-sd \
3079 scripts/devel_bacula \
3082 scripts/bacula.desktop.gnome1 \
3083 scripts/bacula.desktop.gnome2 \
3084 scripts/bacula.desktop.gnome1.consolehelper \
3085 scripts/bacula.desktop.gnome2.consolehelper \
3086 scripts/bacula.desktop.gnome1.xsu \
3087 scripts/bacula.desktop.gnome2.xsu \
3088 scripts/bgnome-console.console_apps \
3089 scripts/mtx-changer \
3090 scripts/disk-changer \
3091 scripts/dvd-handler \
3092 scripts/dvd-simulator \
3093 scripts/bacula-tray-monitor.desktop \
3094 scripts/logwatch/Makefile \
3095 scripts/logwatch/logfile.bacula.conf \
3096 scripts/wxconsole.console_apps \
3097 scripts/wxconsole.desktop.consolehelper \
3098 scripts/wxconsole.desktop.xsu \
3099 scripts/bat.desktop \
3100 scripts/bat.desktop.xsu \
3101 scripts/bat.desktop.consolehelper \
3102 scripts/bat.console_apps \
3105 src/console/Makefile \
3106 src/console/bconsole.conf \
3107 src/qt-console/bat.conf \
3108 src/qt-console/bat.pro \
3109 src/qt-console/bat.pro.mingw32 \
3110 src/qt-console/install_conf_file \
3111 src/wx-console/Makefile \
3112 src/wx-console/bwx-console.conf \
3113 src/tray-monitor/Makefile \
3114 src/tray-monitor/tray-monitor.conf \
3116 src/dird/bacula-dir.conf \
3118 src/stored/Makefile \
3119 src/stored/bacula-sd.conf \
3120 src/filed/Makefile \
3121 src/filed/bacula-fd.conf \
3123 src/cats/make_catalog_backup.pl \
3124 src/cats/make_catalog_backup \
3125 src/cats/delete_catalog_backup \
3126 src/cats/create_postgresql_database \
3127 src/cats/update_postgresql_tables \
3128 src/cats/make_postgresql_tables \
3129 src/cats/grant_postgresql_privileges \
3130 src/cats/drop_postgresql_tables \
3131 src/cats/drop_postgresql_database \
3132 src/cats/create_mysql_database \
3133 src/cats/update_mysql_tables \
3134 src/cats/make_mysql_tables \
3135 src/cats/grant_mysql_privileges \
3136 src/cats/drop_mysql_tables \
3137 src/cats/drop_mysql_database \
3138 src/cats/create_sqlite3_database \
3139 src/cats/update_sqlite3_tables \
3140 src/cats/make_sqlite3_tables \
3141 src/cats/grant_sqlite3_privileges \
3142 src/cats/drop_sqlite3_tables \
3143 src/cats/drop_sqlite3_database \
3144 src/cats/create_ingres_database \
3145 src/cats/update_ingres_tables \
3146 src/cats/make_ingres_tables \
3147 src/cats/grant_ingres_privileges \
3148 src/cats/drop_ingres_tables \
3149 src/cats/drop_ingres_database \
3152 src/cats/create_bacula_database \
3153 src/cats/update_bacula_tables \
3154 src/cats/grant_bacula_privileges \
3155 src/cats/make_bacula_tables \
3156 src/cats/drop_bacula_tables \
3157 src/cats/drop_bacula_database \
3158 src/findlib/Makefile \
3159 src/tools/Makefile \
3160 src/plugins/fd/Makefile \
3161 src/plugins/sd/Makefile \
3162 src/plugins/dir/Makefile \
3163 src/win32/Makefile.inc \
3165 updatedb/update_mysql_tables_9_to_10 \
3166 updatedb/update_sqlite3_tables_9_to_10 \
3167 updatedb/update_postgresql_tables_9_to_10 \
3168 updatedb/update_mysql_tables_10_to_11 \
3169 updatedb/update_sqlite3_tables_10_to_11 \
3170 updatedb/update_postgresql_tables_10_to_11 \
3171 updatedb/update_mysql_tables_11_to_12 \
3172 updatedb/update_sqlite3_tables_11_to_12 \
3173 updatedb/update_postgresql_tables_11_to_12 \
3174 examples/nagios/check_bacula/Makefile \
3179 if test "${support_bat}" = "yes" ; then
3180 if test "x$QMAKE" = "xnone"; then
3181 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3186 echo "Creating bat Makefile"
3196 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3197 dnl requires gcc). If it's not, don't rebuild dependencies
3199 if test X"$GCC" = "Xyes" ; then
3200 echo "Doing make of dependencies"
3201 ${MAKE:-make} depend
3205 chmod 755 install_conf_file build-depkgs-qt-console
3209 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3210 chmod 755 dvd-handler dvd-simulator
3211 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3215 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3216 chmod 755 $c/update_postgresql_tables_10_to_11
3217 chmod 755 $c/update_mysql_tables_11_to_12 $c/update_sqlite3_tables_11_to_12
3218 chmod 755 $c/update_postgresql_tables_11_to_12
3223 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3224 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3226 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3227 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3229 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3230 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3232 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3233 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3235 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3236 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3238 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3239 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3242 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3246 chmod 755 src/win32/build-depkgs-mingw32
3248 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3249 largefile_support="yes"
3252 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3253 if test X"$GCC" = "Xyes" ; then
3255 dnl A whole lot of hand springs to get the compiler version.
3256 dnl This is because gcc changed the output in version 3.0
3258 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3259 if test "x${CCVERSION}" = "x" ; then
3260 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3262 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3263 if test x"${CXXVERSION}" = x ; then
3264 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3268 # clean up any old junk
3274 if test "x${db_type}" = "xInternal" ; then
3277 echo "You have not specified either --enable-client-only or one of the"
3278 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3279 echo " This is not permitted. Please reconfigure."
3281 echo "Aborting the configuration ..."
3288 Configuration on `date`:
3290 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3291 Bacula version: ${BACULA} ${VERSION} (${DATE})
3292 Source code location: ${srcdir}
3293 Install binaries: ${sbindir}
3294 Install libraries: ${libdir}
3295 Install config files: ${sysconfdir}
3296 Scripts directory: ${scriptdir}
3297 Archive directory: ${archivedir}
3298 Working directory: ${working_dir}
3299 PID directory: ${piddir}
3300 Subsys directory: ${subsysdir}
3301 Man directory: ${mandir}
3302 Data directory: ${datarootdir}
3303 Plugin directory: ${plugindir}
3304 C Compiler: ${CC} ${CCVERSION}
3305 C++ Compiler: ${CXX} ${CXXVERSION}
3306 Compiler flags: ${WCFLAGS} ${CFLAGS}
3307 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3309 Statically Linked Tools: ${support_static_tools}
3310 Statically Linked FD: ${support_static_fd}
3311 Statically Linked SD: ${support_static_sd}
3312 Statically Linked DIR: ${support_static_dir}
3313 Statically Linked CONS: ${support_static_cons}
3314 Database type: ${db_type}
3315 Database port: ${db_port}
3316 Database lib: ${DB_LIBS}
3317 Database name: ${db_name}
3318 Database user: ${db_user}
3320 Job Output Email: ${job_email}
3321 Traceback Email: ${dump_email}
3322 SMTP Host Address: ${smtp_host}
3324 Director Port: ${dir_port}
3325 File daemon Port: ${fd_port}
3326 Storage daemon Port: ${sd_port}
3328 Director User: ${dir_user}
3329 Director Group: ${dir_group}
3330 Storage Daemon User: ${sd_user}
3331 Storage DaemonGroup: ${sd_group}
3332 File Daemon User: ${fd_user}
3333 File Daemon Group: ${fd_group}
3335 SQL binaries Directory ${SQL_BINDIR}
3337 Large file support: $largefile_support
3338 Bacula conio support: ${got_conio} ${CONS_LIBS}
3339 readline support: ${got_readline} ${PRTREADLINE_SRC}
3340 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3341 TLS support: ${support_tls}
3342 Encryption support: ${support_crypto}
3343 ZLIB support: ${have_zlib}
3344 enable-smartalloc: ${support_smartalloc}
3345 enable-lockmgr: ${support_lockmgr}
3346 bat support: ${support_bat}
3347 enable-gnome: ${support_gnome} ${gnome_version}
3348 enable-bwx-console: ${support_wx_console} ${wx_version}
3349 enable-tray-monitor: ${support_tray_monitor}
3350 client-only: ${build_client_only}
3351 build-dird: ${build_dird}
3352 build-stored: ${build_stored}
3353 Plugin support: ${have_plugins}
3354 AFS support: ${have_afs}
3355 ACL support: ${have_acl}
3356 XATTR support: ${have_xattr}
3357 Python support: ${support_python} ${PYTHON_LIBS}
3358 Batch insert enabled: ${support_batch_insert}
3362 # create a small shell script useful for support with
3363 # configure options and config.out info
3364 cat > scripts/bacula_config << EOF
3367 $ $0 $ac_configure_args
3369 cat config.out >> scripts/bacula_config
3370 echo __EOC__ >> scripts/bacula_config
3371 chmod 755 scripts/bacula_config
3375 # Display a warning message if postgresql client lib is <= 8.1
3376 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3377 -a x$support_batch_insert = xyes
3379 echo "WARNING: Your PostgreSQL client library is too old to detect "
3380 echo " if it was compiled with --enable-thread-safety, consider to"
3381 echo " upgrade it in order to avoid problems with Batch insert mode"