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(curses.h,
815 [ AC_CHECK_LIB(ncurses, tgetent,
816 [ TERM_LIB="-lncurses" ],
817 [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
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])
1196 AC_MSG_RESULT([$support_tls])
1198 if test "$support_tls" = "no"; then
1202 if test "$support_crypto" = "no"; then
1206 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
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 Check if postgresql can support batch mode
1749 if test x$DB_TYPE = xpostgresql; then
1750 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1751 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1752 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1754 support_batch_insert=no
1758 if test x$DB_TYPE = xdbi; then
1762 dnl Check for batch insert
1763 if test $DB_PROG = postgresql; then
1764 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1765 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1766 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1770 if test $DB_PROG = mysql; then
1771 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1775 if test $DB_PROG = sqlite3; then
1776 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1778 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1781 if test $pkg = 0; then
1782 AC_ARG_ENABLE(batch-insert,
1783 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1785 if test x$enableval = xno; then
1786 support_batch_insert=no
1788 support_batch_insert=yes
1794 dnl If dbi was not chosen, let the comment in file
1798 AC_SUBST(uncomment_dbi)
1800 dnl For Ingres always enable batch inserts.
1801 if test x$DB_TYPE = xingres; then
1802 support_batch_insert=yes
1805 if test $support_batch_insert = yes ; then
1806 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1809 AC_DEFINE(PROTOTYPES)
1811 dnl --------------------------------------------------------------------------
1812 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1814 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1815 if test -z "$CCOPTS"; then
1816 CCOPTS='-g -O2 -Wall'
1824 dnl See if we can use 64 bit file addresses
1825 largefile_support="no"
1830 dnl --------------------------------------------------------------------------
1831 dnl CHECKING FOR HEADER FILES
1832 dnl --------------------------------------------------------------------------
1870 AC_STRUCT_ST_BLKSIZE
1874 dnl --------------------------------------------------------------------------
1875 dnl Check for utime.h structure
1876 dnl --------------------------------------------------------------------------
1877 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1881 #include <sys/types.h>
1886 ba_cv_header_utime_h=yes
1888 ba_cv_header_utime_h=no
1893 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1895 dnl --------------------------------------------------------------------------
1896 dnl Check for socklen_t
1897 dnl --------------------------------------------------------------------------
1898 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1902 #include <sys/types.h>
1903 #include <sys/socket.h>
1907 ba_cv_header_socklen_t=yes
1909 ba_cv_header_socklen_t=no
1914 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1916 dnl --------------------------------------------------------------------------
1917 dnl Check for ioctl request type
1918 dnl --------------------------------------------------------------------------
1920 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1925 #include <sys/types.h>
1926 #include <sys/ioctl.h>
1928 int (*d_ioctl)(int fd, unsigned long int request, ...);
1931 ba_cv_header_ioctl_req_t=yes
1933 ba_cv_header_ioctl_req_t=no
1938 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1940 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1941 dnl *BSD systems still use old style C prototypes, which are wrong with
1942 dnl compiled with a C++ compiler.
1945 dnl --------------------------------------------------------------------------
1946 dnl Check for typeof()
1947 dnl --------------------------------------------------------------------------
1949 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1953 main(){char *a = 0; a = (typeof a)a;}
1955 ba_cv_have_typeof=yes
1957 ba_cv_have_typeof=no
1959 ba_cv_have_typeof=no
1964 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1969 dnl --------------------------------------------------------------------------
1970 dnl CHECKING FOR FILESYSTEM TYPE
1971 dnl --------------------------------------------------------------------------
1972 AC_MSG_CHECKING(how to get filesystem type)
1974 # The order of these tests is important.
1977 #include <sys/statvfs.h>
1978 #include <sys/fstyp.h>
1980 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1982 if test $fstype = no; then
1985 #include <sys/statfs.h>
1986 #include <sys/fstyp.h>
1988 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1991 if test $fstype = no; then
1994 #include <sys/statfs.h>
1995 #include <sys/vmount.h>
1997 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2000 if test $fstype = no; then
2005 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2008 if test $fstype = no; then
2009 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2011 if test $fstype = no; then
2014 #include <sys/mount.h>
2015 #include <sys/fs_types.h>
2017 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2020 AC_MSG_RESULT($fstype)
2022 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2024 dnl --------------------------------------------------------------------------
2025 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2026 dnl --------------------------------------------------------------------------
2036 AC_CHECK_TYPE(ino_t, unsigned long)
2037 AC_CHECK_TYPE(dev_t, unsigned long)
2038 AC_CHECK_TYPE(daddr_t, long)
2039 AC_CHECK_TYPE(major_t, int)
2040 AC_CHECK_TYPE(minor_t, int)
2041 AC_CHECK_TYPE(ssize_t, int)
2047 AC_CHECK_SIZEOF(char, 1)
2048 AC_CHECK_SIZEOF(short int, 2)
2049 AC_CHECK_SIZEOF(int, 4)
2050 AC_CHECK_SIZEOF(long int, 4)
2051 AC_CHECK_SIZEOF(long long int, 8)
2052 AC_CHECK_SIZEOF(int *, 4)
2054 dnl Check for sys/types.h types
2055 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2059 #include <sys/types.h>
2063 ac_cv_have_u_int="yes"
2065 ac_cv_have_u_int="no"
2070 if test "x$ac_cv_have_u_int" = "xyes" ; then
2071 AC_DEFINE(HAVE_U_INT)
2075 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2079 #include <sys/types.h>
2083 ac_cv_have_intmax_t="yes"
2091 ac_cv_have_intmax_t="yes"
2093 ac_cv_have_intmax_t="no"
2100 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2101 AC_DEFINE(HAVE_INTMAX_T)
2105 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2109 #include <sys/types.h>
2111 u_intmax_t a; a = 1;
2113 ac_cv_have_u_intmax_t="yes"
2119 u_intmax_t a; a = 1;
2121 ac_cv_have_u_intmax_t="yes"
2123 ac_cv_have_u_intmax_t="no"
2130 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2131 AC_DEFINE(HAVE_U_INTMAX_T)
2135 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2139 #include <sys/types.h>
2141 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2143 ac_cv_have_intxx_t="yes"
2145 ac_cv_have_intxx_t="no"
2150 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2151 AC_DEFINE(HAVE_INTXX_T)
2155 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2159 #include <sys/types.h>
2163 ac_cv_have_int64_t="yes"
2165 ac_cv_have_int64_t="no"
2170 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2171 AC_DEFINE(HAVE_INT64_T)
2175 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2179 #include <sys/types.h>
2181 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2183 ac_cv_have_u_intxx_t="yes"
2185 ac_cv_have_u_intxx_t="no"
2190 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2191 AC_DEFINE(HAVE_U_INTXX_T)
2195 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2199 #include <sys/types.h>
2203 ac_cv_have_u_int64_t="yes"
2205 ac_cv_have_u_int64_t="no"
2210 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2211 AC_DEFINE(HAVE_U_INT64_T)
2215 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2216 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2218 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2221 #include <sys/bitypes.h>
2223 int8_t a; int16_t b; int32_t c;
2224 u_int8_t e; u_int16_t f; u_int32_t g;
2225 a = b = c = e = f = g = 1;
2227 AC_DEFINE(HAVE_U_INTXX_T)
2228 AC_DEFINE(HAVE_INTXX_T)
2229 AC_DEFINE(HAVE_SYS_BITYPES_H)
2237 if test -z "$have_u_intxx_t" ; then
2238 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2242 #include <sys/types.h>
2244 uint8_t a; uint16_t b;
2245 uint32_t c; a = b = c = 1;
2247 ac_cv_have_uintxx_t="yes"
2249 ac_cv_have_uintxx_t="no"
2254 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2255 AC_DEFINE(HAVE_UINTXX_T)
2259 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2260 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2262 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2265 #include <sys/bitypes.h>
2267 int64_t a; u_int64_t b;
2270 AC_DEFINE(HAVE_U_INT64_T)
2271 AC_DEFINE(HAVE_INT64_T)
2279 if (test -z "$have_uintxx_t" && \
2280 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2282 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2285 #include <sys/bitypes.h>
2287 uint8_t a; uint16_t b;
2288 uint32_t c; a = b = c = 1;
2290 AC_DEFINE(HAVE_UINTXX_T)
2298 dnl --------------------------------------------------------------------------
2299 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2300 dnl --------------------------------------------------------------------------
2316 [echo 'configure: cannot find needed function.'; exit 1]
2319 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2320 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2321 AC_CHECK_FUNCS(posix_fadvise)
2322 AC_CHECK_FUNCS(fdatasync)
2324 AC_CHECK_FUNCS(chflags)
2326 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2328 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2333 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2334 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2336 call_use_va_copy(1,2,3)
2345 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2347 dnl --------------------------------------------------------------------------
2348 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2349 dnl --------------------------------------------------------------------------
2350 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2352 # If resolver functions are not in libc check for -lnsl or -lresolv.
2353 AC_CHECK_FUNC(gethostbyname_r,
2354 AC_MSG_RESULT(using libc's resolver),
2355 AC_CHECK_LIB(nsl,gethostbyname_r)
2356 AC_CHECK_LIB(resolv,gethostbyname_r))
2358 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2359 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2360 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2362 dnl ----------------------------
2363 dnl check sa_len of sockaddr
2364 dnl ----------------------------
2365 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2369 #include <sys/socket.h>
2371 struct sockaddr s; s.sa_len;
2373 ac_cv_struct_sockaddr_sa_len=yes
2374 ], [ac_cv_struct_sockaddr_sa_len=no
2380 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2381 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2388 AC_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)])
2389 AC_FUNC_CLOSEDIR_VOID
2390 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2391 # AC_FUNC_FNMATCH dnl use local version
2393 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2395 AC_CHECK_LIB(sun, getpwnam)
2397 AC_CHECK_HEADERS(zlib.h)
2398 AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
2400 if test x$ZLIBS = x-lz; then
2401 AC_DEFINE(HAVE_LIBZ)
2407 dnl Check if we have AFS on this system
2413 AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]),
2415 if test x$enableval = xyes; then
2417 elif test x$enableval = xno; then
2424 if test x$support_afs = xyes -o x$support_afs = xauto; then
2426 AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]),
2427 with_afsdir=$withval
2431 dnl Search in standard places, or --with-afsdir not specified
2433 if test x$with_afsdir = x; then
2434 for root in /usr /usr/local; do
2435 if test -d ${root}/include/afs/ ; then
2442 AFS_CFLAGS="-I${with_afsdir}/include"
2444 saved_CFLAGS="${CFLAGS}"
2445 CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}"
2447 AC_CHECK_HEADERS(afs/stds.h)
2449 CFLAGS="${saved_CFLAGS}"
2452 dnl See if we can find a libsys with the pioctl symbol in there
2454 for dir in ${with_afsdir}/lib ${with_afsdir}/lib/afs
2456 for arch_type in .a .so
2458 A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} | grep pioctl`
2460 if test $pkg = 0; then
2462 AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util.a"
2468 if test x$support_afs = xyes -a $have_afs != yes; then
2469 AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found,
2470 please either load the afs libraries or rerun configure without --enable-afs])
2472 if test $have_afs = yes; then
2473 AC_DEFINE([HAVE_AFS],1,[Defines if your system has AFS support])
2474 AC_DEFINE([HAVE_AFS_ACL],1,[Andrew FileSystem ACL support])
2479 AC_SUBST(AFS_CFLAGS)
2483 dnl Check for ACL support and libraries
2487 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2489 if test x$enableval = xyes; then
2491 elif test x$enableval = xno; then
2498 have_extended_acl=no
2499 if test x$support_acl = xyes -o x$support_acl = xauto; then
2500 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2501 AC_CHECK_FUNC(acl_get_file,
2505 AC_CHECK_LIB(acl, acl_get_file,
2508 if test $have_afs = yes; then
2510 dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!!
2512 if test -d /usr/lib64/; then
2513 FDLIBS="-L/usr/lib64 -lacl $FDLIBS"
2515 FDLIBS="-L/usr/lib -lacl $FDLIBS"
2518 FDLIBS="-lacl $FDLIBS"
2521 AC_CHECK_LIB(pacl, acl_get_file,
2524 FDLIBS="-lpacl $FDLIBS"
2526 AC_CHECK_LIB(sec, acltotext,
2529 FDLIBS="-lsec $FDLIBS"
2531 AC_CHECK_LIB(sec, acl_totext,
2533 have_extended_acl=yes
2545 if test x$support_acl = xyes -a $have_acl != yes; then
2546 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2547 please either load the acl libraries or rerun configure without --enable-acl])
2549 if test $have_acl = yes; then
2550 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2553 if test $have_extended_acl = yes; then
2554 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2560 dnl Check for XATTR support
2563 AC_ARG_ENABLE(xattr,
2564 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2566 if test x$enableval = xyes; then
2568 elif test x$enableval = xno; then
2575 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2577 dnl First check for *BSD support
2579 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2580 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2581 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2584 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2585 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2586 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2590 if test $have_xattr = no; then
2591 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2594 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2595 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2596 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2601 if test $have_xattr = yes; then
2602 have_extattr_string_in_libc=no
2603 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2605 have_extattr_string_in_libc=yes
2606 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2607 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2612 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2614 if test $have_extattr_string_in_libc = no; then
2615 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2617 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2618 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2619 FDLIBS="-lutil $FDLIBS"
2626 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2628 if test $have_xattr = no; then
2629 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2630 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2633 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2634 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2635 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2639 if test $have_xattr = no; then
2640 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2643 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2644 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2645 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2652 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2654 if test $have_xattr = no; then
2655 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2656 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2657 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2659 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2662 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2663 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2664 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2665 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2666 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2670 if test $have_xattr = yes; then
2671 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2673 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2674 FDLIBS="-lnvpair $FDLIBS"
2680 if test x$support_xattr = xyes -a $have_xattr != yes; then
2681 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2682 please either load the xattr libraries or rerun configure without --enable-xattr])
2684 if test $have_xattr = yes; then
2685 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2691 dnl Check for pthread libraries
2694 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2696 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2698 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2700 AC_CHECK_FUNC(pthread_create)
2709 dnl Check for headers, functions and libraries required to support
2710 dnl keeping readall capabilities
2712 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2713 AC_CHECK_FUNCS(prctl setreuid)
2714 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2715 if test x$CAP_LIBS = x-lcap; then
2716 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2725 if test x$have_gcc = xyes ; then
2726 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2727 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2729 LDFLAGS=${LDFLAGS--O}
2730 DB_LIBS="${SQL_LFLAGS}"
2731 CPPFLAGS="$CPPFLAGS"
2744 AC_SUBST(X_EXTRA_LIBS)
2749 dnl extra configurable objects
2760 dnl Finally we set appropriate distribution specific
2761 dnl variables and defaults
2763 dnl PFILES are platform specific files
2764 PFILES="platforms/Makefile"
2769 hostname=`uname -n | cut -d '.' -f 1`
2770 if test x${hostname} = x ; then
2771 hostname="localhost"
2773 dnl Make sure hostname is resolved
2774 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2775 if test ! $? = 0; then
2776 hostname="localhost"
2782 PSCMD="ps -e -o pid,comm"
2784 platforms/aix/Makefile"
2785 TAPEDRIVE="/dev/rmt0.1"
2789 PTHREAD_LIB="-lpthread -lexc"
2790 if test "${CC}" = "gcc" ; then
2797 TAPEDRIVE="/dev/nrmt0"
2800 DISTVER=`uname -a |awk '{print $3}'`
2801 TAPEDRIVE="/dev/nrmt0"
2802 PTHREAD_LIB="-pthread"
2803 CFLAGS="${CFLAGS} -pthread"
2804 PSCMD="ps -ax -o pid,command"
2808 platforms/bsdi/Makefile \
2809 platforms/bsdi/bacula-fd \
2810 platforms/bsdi/bacula-sd \
2811 platforms/bsdi/bacula-dir"
2812 largefile_support="yes"
2815 DISTVER=`uname -a |awk '{print $3}'`
2816 TAPEDRIVE="/dev/nrst0"
2819 WLDFLAGS="-mwindows"
2823 TAPEDRIVE="/dev/nst0"
2824 PSCMD="ps -e -o pid,command"
2827 platforms/darwin/Makefile"
2831 TAPEDRIVE="/dev/nst0"
2832 PSCMD="ps -e -o pid,command"
2835 platforms/osx/Makefile"
2838 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2841 DISTVER=`cat /etc/debian_version`
2842 if test -f /etc/lsb-release ; then
2844 if test "x$DISTRIB_ID" != "x" ; then
2845 DISTNAME=$DISTRIB_ID
2847 if test "x$DISTRIB_RELEASE" != "x" ; then
2848 DISTVER=$DISTRIB_RELEASE
2851 if test "$DISTNAME" = "Ubuntu" ; then
2854 TAPEDRIVE="/dev/nst0"
2855 PSCMD="ps -e -o pid,command"
2856 if test "$DISTNAME" = "ubuntu" ; then
2858 platforms/ubuntu/Makefile \
2859 platforms/ubuntu/bacula-fd \
2860 platforms/ubuntu/bacula-sd \
2861 platforms/ubuntu/bacula-dir"
2864 platforms/debian/Makefile \
2865 platforms/debian/bacula-fd \
2866 platforms/debian/bacula-sd \
2867 platforms/debian/bacula-dir"
2871 DISTVER=`uname -a |awk '{print $3}'`
2872 VER=`echo $DISTVER | cut -c 1`
2873 if test x$VER = x4 ; then
2874 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2875 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2879 TAPEDRIVE="/dev/nrsa0"
2880 PSCMD="ps -ax -o pid,command"
2882 platforms/freebsd/Makefile \
2883 platforms/freebsd/bacula-fd \
2884 platforms/freebsd/bacula-sd \
2885 platforms/freebsd/bacula-dir"
2886 largefile_support="yes"
2889 PSCMD="UNIX95=1; ps -e -o pid,comm"
2890 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2892 TAPEDRIVE="/dev/rmt/0hnb"
2893 PTHREAD_LIB="-lpthread"
2894 AC_DEFINE([_INCLUDE_LONGLONG])
2898 TAPEDRIVE="/dev/rmt/0cbn"
2899 PSCMD="ps -e -o pid,comm"
2901 platforms/irix/Makefile \
2902 platforms/irix/bacula-fd \
2903 platforms/irix/bacula-sd \
2904 platforms/irix/bacula-dir"
2907 DISTVER=`uname -a |awk '{print $3}'`
2910 TAPEDRIVE="/dev/nrst0"
2911 PSCMD="ps -ax -o pid,command"
2912 PTHREAD_LIB="-pthread"
2913 CFLAGS="${CFLAGS} -pthread"
2916 DISTVER=`uname -a |awk '{print $3}'`
2919 TAPEDRIVE="/dev/nrst0"
2920 PSCMD="ps -ax -o pid,command"
2921 PTHREAD_LIB="-pthread"
2922 CFLAGS="${CFLAGS} -pthread"
2924 platforms/openbsd/Makefile \
2925 platforms/openbsd/bacula-fd \
2926 platforms/openbsd/bacula-sd \
2927 platforms/openbsd/bacula-dir"
2930 if test -f /etc/whitebox-release ; then
2931 f=/etc/whitebox-release
2933 f=/etc/redhat-release
2935 if test `cat $f | grep release |\
2936 cut -f 3 -d ' '`x = "Enterprise"x ; then
2937 DISTVER="Enterprise "`cat $f | grep release |\
2940 DISTVER=`cat /etc/redhat-release | grep release |\
2943 TAPEDRIVE="/dev/nst0"
2944 PSCMD="ps -e -o pid,command"
2946 platforms/redhat/Makefile \
2947 platforms/redhat/bacula-fd \
2948 platforms/redhat/bacula-sd \
2949 platforms/redhat/bacula-dir
2953 DISTVER=`cat /etc/mandrake-release | grep release |\
2955 TAPEDRIVE="/dev/nst0"
2956 PSCMD="ps -e -o pid,command"
2958 platforms/mandrake/Makefile \
2959 platforms/mandrake/bacula-fd \
2960 platforms/mandrake/bacula-sd \
2961 platforms/mandrake/bacula-dir \
2965 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2966 TAPEDRIVE="/dev/nst0"
2967 PSCMD="ps -e -o pid,command"
2969 platforms/gentoo/Makefile \
2970 platforms/gentoo/bacula-init \
2971 platforms/gentoo/bacula-fd \
2972 platforms/gentoo/bacula-sd \
2973 platforms/gentoo/bacula-dir"
2976 DISTVER=`cat /etc/slackware-version`
2977 TAPEDRIVE="/dev/nst0"
2978 PSCMD="ps -e -o pid,command"
2980 platforms/slackware/Makefile \
2981 platforms/slackware/rc.bacula-fd \
2982 platforms/slackware/rc.bacula-sd \
2983 platforms/slackware/rc.bacula-dir\
2984 platforms/slackware/functions.bacula"
2988 TAPEDRIVE="/dev/rmt/0cbn"
2989 PSCMD="ps -e -o pid,comm"
2991 platforms/solaris/Makefile \
2992 platforms/solaris/bacula-fd \
2993 platforms/solaris/bacula-sd \
2994 platforms/solaris/bacula-dir"
2995 if test x$DISTVER = x5.6 ; then
2996 AC_DEFINE(HAVE_OLD_SOCKOPT)
2998 LIBS="$LIBS -lresolv -lrt"
3001 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
3003 TAPEDRIVE="/dev/nst0"
3004 PSCMD="ps -e -o pid,command"
3006 platforms/suse/Makefile \
3007 platforms/suse/bacula-fd \
3008 platforms/suse/bacula-sd \
3009 platforms/suse/bacula-dir \
3010 platforms/suse/bacula"
3015 TAPEDRIVE="/dev/nst0"
3016 PSCMD="ps -e -o pid,command"
3018 platforms/suse/Makefile \
3019 platforms/suse/bacula-fd \
3020 platforms/suse/bacula-sd \
3021 platforms/suse/bacula-dir"
3025 TAPEDRIVE="/dev/nst0"
3028 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
3034 LIBS="$PTHREAD_LIB $LIBS"
3036 AC_DEFINE_UNQUOTED(lld, "$lld")
3037 AC_DEFINE_UNQUOTED(llu, "$llu")
3045 dnl common parts of the Makefile
3046 MCOMMON=./autoconf/Make.common
3047 AC_SUBST_FILE(MCOMMON)
3050 if test "x${subsysdir}" = "x${sbindir}" ; then
3053 echo "You have set both --sbindir and --with-subsys-dir"
3054 echo " equal to: ${subsysdir} "
3055 echo "This is not permitted. Please reconfigure."
3057 echo "Aborting configuration ..."
3063 AC_OUTPUT([autoconf/Make.common \
3066 scripts/startmysql \
3068 scripts/btraceback \
3074 scripts/bacula-ctl-dir \
3075 scripts/bacula-ctl-fd \
3076 scripts/bacula-ctl-sd \
3077 scripts/devel_bacula \
3080 scripts/bacula.desktop.gnome1 \
3081 scripts/bacula.desktop.gnome2 \
3082 scripts/bacula.desktop.gnome1.consolehelper \
3083 scripts/bacula.desktop.gnome2.consolehelper \
3084 scripts/bacula.desktop.gnome1.xsu \
3085 scripts/bacula.desktop.gnome2.xsu \
3086 scripts/bgnome-console.console_apps \
3087 scripts/mtx-changer \
3088 scripts/disk-changer \
3089 scripts/dvd-handler \
3090 scripts/dvd-simulator \
3091 scripts/bacula-tray-monitor.desktop \
3092 scripts/logwatch/Makefile \
3093 scripts/logwatch/logfile.bacula.conf \
3094 scripts/wxconsole.console_apps \
3095 scripts/wxconsole.desktop.consolehelper \
3096 scripts/wxconsole.desktop.xsu \
3097 scripts/bat.desktop \
3098 scripts/bat.desktop.xsu \
3099 scripts/bat.desktop.consolehelper \
3100 scripts/bat.console_apps \
3103 src/console/Makefile \
3104 src/console/bconsole.conf \
3105 src/qt-console/bat.conf \
3106 src/qt-console/bat.pro \
3107 src/qt-console/bat.pro.mingw32 \
3108 src/qt-console/install_conf_file \
3109 src/wx-console/Makefile \
3110 src/wx-console/bwx-console.conf \
3111 src/tray-monitor/Makefile \
3112 src/tray-monitor/tray-monitor.conf \
3114 src/dird/bacula-dir.conf \
3116 src/stored/Makefile \
3117 src/stored/bacula-sd.conf \
3118 src/filed/Makefile \
3119 src/filed/bacula-fd.conf \
3121 src/cats/make_catalog_backup.pl \
3122 src/cats/make_catalog_backup \
3123 src/cats/delete_catalog_backup \
3124 src/cats/create_postgresql_database \
3125 src/cats/update_postgresql_tables \
3126 src/cats/make_postgresql_tables \
3127 src/cats/grant_postgresql_privileges \
3128 src/cats/drop_postgresql_tables \
3129 src/cats/drop_postgresql_database \
3130 src/cats/create_mysql_database \
3131 src/cats/update_mysql_tables \
3132 src/cats/make_mysql_tables \
3133 src/cats/grant_mysql_privileges \
3134 src/cats/drop_mysql_tables \
3135 src/cats/drop_mysql_database \
3136 src/cats/create_sqlite3_database \
3137 src/cats/update_sqlite3_tables \
3138 src/cats/make_sqlite3_tables \
3139 src/cats/grant_sqlite3_privileges \
3140 src/cats/drop_sqlite3_tables \
3141 src/cats/drop_sqlite3_database \
3142 src/cats/create_ingres_database \
3143 src/cats/update_ingres_tables \
3144 src/cats/make_ingres_tables \
3145 src/cats/grant_ingres_privileges \
3146 src/cats/drop_ingres_tables \
3147 src/cats/drop_ingres_database \
3150 src/cats/create_bacula_database \
3151 src/cats/update_bacula_tables \
3152 src/cats/grant_bacula_privileges \
3153 src/cats/make_bacula_tables \
3154 src/cats/drop_bacula_tables \
3155 src/cats/drop_bacula_database \
3156 src/findlib/Makefile \
3157 src/tools/Makefile \
3158 src/plugins/fd/Makefile \
3159 src/plugins/sd/Makefile \
3160 src/plugins/dir/Makefile \
3161 src/win32/Makefile.inc \
3163 updatedb/update_mysql_tables_9_to_10 \
3164 updatedb/update_sqlite3_tables_9_to_10 \
3165 updatedb/update_postgresql_tables_9_to_10 \
3166 updatedb/update_mysql_tables_10_to_11 \
3167 updatedb/update_sqlite3_tables_10_to_11 \
3168 updatedb/update_postgresql_tables_10_to_11 \
3169 examples/nagios/check_bacula/Makefile \
3174 if test "${support_bat}" = "yes" ; then
3175 if test "x$QMAKE" = "xnone"; then
3176 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3181 echo "Creating bat Makefile"
3191 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3192 dnl requires gcc). If it's not, don't rebuild dependencies
3194 if test X"$GCC" = "Xyes" ; then
3195 echo "Doing make of dependencies"
3196 ${MAKE:-make} depend
3200 chmod 755 install_conf_file build-depkgs-qt-console
3204 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3205 chmod 755 dvd-handler dvd-simulator
3206 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3210 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3211 chmod 755 $c/update_postgresql_tables_10_to_11
3215 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3216 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3218 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3219 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3221 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3222 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3224 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3225 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3227 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3228 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3230 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3231 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3234 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3238 chmod 755 src/win32/build-depkgs-mingw32
3240 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3241 largefile_support="yes"
3244 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3245 if test X"$GCC" = "Xyes" ; then
3247 dnl A whole lot of hand springs to get the compiler version.
3248 dnl This is because gcc changed the output in version 3.0
3250 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3251 if test "x${CCVERSION}" = "x" ; then
3252 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3254 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3255 if test x"${CXXVERSION}" = x ; then
3256 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3260 # clean up any old junk
3266 if test "x${db_type}" = "xInternal" ; then
3269 echo "You have not specified either --enable-client-only or one of the"
3270 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3271 echo " This is not permitted. Please reconfigure."
3273 echo "Aborting the configuration ..."
3280 Configuration on `date`:
3282 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3283 Bacula version: ${BACULA} ${VERSION} (${DATE})
3284 Source code location: ${srcdir}
3285 Install binaries: ${sbindir}
3286 Install libraries: ${libdir}
3287 Install config files: ${sysconfdir}
3288 Scripts directory: ${scriptdir}
3289 Archive directory: ${archivedir}
3290 Working directory: ${working_dir}
3291 PID directory: ${piddir}
3292 Subsys directory: ${subsysdir}
3293 Man directory: ${mandir}
3294 Data directory: ${datarootdir}
3295 Plugin directory: ${plugindir}
3296 C Compiler: ${CC} ${CCVERSION}
3297 C++ Compiler: ${CXX} ${CXXVERSION}
3298 Compiler flags: ${WCFLAGS} ${CFLAGS}
3299 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3301 Statically Linked Tools: ${support_static_tools}
3302 Statically Linked FD: ${support_static_fd}
3303 Statically Linked SD: ${support_static_sd}
3304 Statically Linked DIR: ${support_static_dir}
3305 Statically Linked CONS: ${support_static_cons}
3306 Database type: ${db_type}
3307 Database port: ${db_port}
3308 Database lib: ${DB_LIBS}
3309 Database name: ${db_name}
3310 Database user: ${db_user}
3312 Job Output Email: ${job_email}
3313 Traceback Email: ${dump_email}
3314 SMTP Host Address: ${smtp_host}
3316 Director Port: ${dir_port}
3317 File daemon Port: ${fd_port}
3318 Storage daemon Port: ${sd_port}
3320 Director User: ${dir_user}
3321 Director Group: ${dir_group}
3322 Storage Daemon User: ${sd_user}
3323 Storage DaemonGroup: ${sd_group}
3324 File Daemon User: ${fd_user}
3325 File Daemon Group: ${fd_group}
3327 SQL binaries Directory ${SQL_BINDIR}
3329 Large file support: $largefile_support
3330 Bacula conio support: ${got_conio} ${CONS_LIBS}
3331 readline support: ${got_readline} ${PRTREADLINE_SRC}
3332 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3333 TLS support: ${support_tls}
3334 Encryption support: ${support_crypto}
3335 ZLIB support: ${have_zlib}
3336 enable-smartalloc: ${support_smartalloc}
3337 enable-lockmgr: ${support_lockmgr}
3338 bat support: ${support_bat}
3339 enable-gnome: ${support_gnome} ${gnome_version}
3340 enable-bwx-console: ${support_wx_console} ${wx_version}
3341 enable-tray-monitor: ${support_tray_monitor}
3342 client-only: ${build_client_only}
3343 build-dird: ${build_dird}
3344 build-stored: ${build_stored}
3345 Plugin support: ${have_plugins}
3346 AFS support: ${have_afs}
3347 ACL support: ${have_acl}
3348 XATTR support: ${have_xattr}
3349 Python support: ${support_python} ${PYTHON_LIBS}
3350 Batch insert enabled: ${support_batch_insert}
3354 # create a small shell script useful for support with
3355 # configure options and config.out info
3356 cat > scripts/bacula_config << EOF
3359 $ $0 $ac_configure_args
3361 cat config.out >> scripts/bacula_config
3362 echo __EOC__ >> scripts/bacula_config
3363 chmod 755 scripts/bacula_config
3367 # Display a warning message if postgresql client lib is <= 8.1
3368 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3369 -a x$support_batch_insert = xyes
3371 echo "WARNING: Your PostgreSQL client library is too old to detect "
3372 echo " if it was compiled with --enable-thread-safety, consider to"
3373 echo " upgrade it in order to avoid problems with Batch insert mode"