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)
2481 AC_DEFINE(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 examples/nagios/check_bacula/Makefile \
3176 if test "${support_bat}" = "yes" ; then
3177 if test "x$QMAKE" = "xnone"; then
3178 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3183 echo "Creating bat Makefile"
3193 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3194 dnl requires gcc). If it's not, don't rebuild dependencies
3196 if test X"$GCC" = "Xyes" ; then
3197 echo "Doing make of dependencies"
3198 ${MAKE:-make} depend
3202 chmod 755 install_conf_file build-depkgs-qt-console
3206 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3207 chmod 755 dvd-handler dvd-simulator
3208 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3212 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3213 chmod 755 $c/update_postgresql_tables_10_to_11
3217 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3218 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3220 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3221 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3223 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3224 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3226 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3227 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3229 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3230 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3232 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3233 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3236 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3240 chmod 755 src/win32/build-depkgs-mingw32
3242 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3243 largefile_support="yes"
3246 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3247 if test X"$GCC" = "Xyes" ; then
3249 dnl A whole lot of hand springs to get the compiler version.
3250 dnl This is because gcc changed the output in version 3.0
3252 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3253 if test "x${CCVERSION}" = "x" ; then
3254 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3256 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3257 if test x"${CXXVERSION}" = x ; then
3258 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3262 # clean up any old junk
3268 if test "x${db_type}" = "xInternal" ; then
3271 echo "You have not specified either --enable-client-only or one of the"
3272 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3273 echo " This is not permitted. Please reconfigure."
3275 echo "Aborting the configuration ..."
3282 Configuration on `date`:
3284 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3285 Bacula version: ${BACULA} ${VERSION} (${DATE})
3286 Source code location: ${srcdir}
3287 Install binaries: ${sbindir}
3288 Install libraries: ${libdir}
3289 Install config files: ${sysconfdir}
3290 Scripts directory: ${scriptdir}
3291 Archive directory: ${archivedir}
3292 Working directory: ${working_dir}
3293 PID directory: ${piddir}
3294 Subsys directory: ${subsysdir}
3295 Man directory: ${mandir}
3296 Data directory: ${datarootdir}
3297 Plugin directory: ${plugindir}
3298 C Compiler: ${CC} ${CCVERSION}
3299 C++ Compiler: ${CXX} ${CXXVERSION}
3300 Compiler flags: ${WCFLAGS} ${CFLAGS}
3301 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3303 Statically Linked Tools: ${support_static_tools}
3304 Statically Linked FD: ${support_static_fd}
3305 Statically Linked SD: ${support_static_sd}
3306 Statically Linked DIR: ${support_static_dir}
3307 Statically Linked CONS: ${support_static_cons}
3308 Database type: ${db_type}
3309 Database port: ${db_port}
3310 Database lib: ${DB_LIBS}
3311 Database name: ${db_name}
3312 Database user: ${db_user}
3314 Job Output Email: ${job_email}
3315 Traceback Email: ${dump_email}
3316 SMTP Host Address: ${smtp_host}
3318 Director Port: ${dir_port}
3319 File daemon Port: ${fd_port}
3320 Storage daemon Port: ${sd_port}
3322 Director User: ${dir_user}
3323 Director Group: ${dir_group}
3324 Storage Daemon User: ${sd_user}
3325 Storage DaemonGroup: ${sd_group}
3326 File Daemon User: ${fd_user}
3327 File Daemon Group: ${fd_group}
3329 SQL binaries Directory ${SQL_BINDIR}
3331 Large file support: $largefile_support
3332 Bacula conio support: ${got_conio} ${CONS_LIBS}
3333 readline support: ${got_readline} ${PRTREADLINE_SRC}
3334 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3335 TLS support: ${support_tls}
3336 Encryption support: ${support_crypto}
3337 ZLIB support: ${have_zlib}
3338 enable-smartalloc: ${support_smartalloc}
3339 enable-lockmgr: ${support_lockmgr}
3340 bat support: ${support_bat}
3341 enable-gnome: ${support_gnome} ${gnome_version}
3342 enable-bwx-console: ${support_wx_console} ${wx_version}
3343 enable-tray-monitor: ${support_tray_monitor}
3344 client-only: ${build_client_only}
3345 build-dird: ${build_dird}
3346 build-stored: ${build_stored}
3347 Plugin support: ${have_plugins}
3348 AFS support: ${have_afs}
3349 ACL support: ${have_acl}
3350 XATTR support: ${have_xattr}
3351 Python support: ${support_python} ${PYTHON_LIBS}
3352 Batch insert enabled: ${support_batch_insert}
3356 # create a small shell script useful for support with
3357 # configure options and config.out info
3358 cat > scripts/bacula_config << EOF
3361 $ $0 $ac_configure_args
3363 cat config.out >> scripts/bacula_config
3364 echo __EOC__ >> scripts/bacula_config
3365 chmod 755 scripts/bacula_config
3369 # Display a warning message if postgresql client lib is <= 8.1
3370 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3371 -a x$support_batch_insert = xyes
3373 echo "WARNING: Your PostgreSQL client library is too old to detect "
3374 echo " if it was compiled with --enable-thread-safety, consider to"
3375 echo " upgrade it in order to avoid problems with Batch insert mode"