3 dnl Process this file with autoconf to produce a configure script.
5 dnl require a recent autoconf
14 AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)
15 AC_CONFIG_HEADERS(src/config.h:autoconf/config.h.in)
17 dnl minimal Win32 stuff for "make clean"
18 WIN32BUILDDIR=${BUILD_DIR}/src/win32
19 WIN32MAINDIR=${BUILD_DIR}
20 WIN32TOPDIR=${TOP_DIR}
21 AC_SUBST(WIN32BUILDDIR)
22 AC_SUBST(WIN32MAINDIR)
25 dnl search for true and false programs.
26 AC_PATH_PROGS(TRUEPRG, true, :)
27 AC_PATH_PROGS(FALSEPRG, false, :)
32 if test "x$BACULA" != x; then
33 post_host=`echo -${BACULA} | tr 'A-Z ' 'a-z-'`
35 BACULA=${BACULA:-Bacula}
36 VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
37 DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
38 LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
39 BDB_VERSION=`sed -n -e 's/^.*BDB_VERSION \(.*\)$/\1/p' ${srcdir}/src/cats/cats.h`
44 AC_SUBST(post_host)dnl
45 AC_SUBST(BDB_VERSION)dnl
48 dnl can be overwritten by specific values from version.h
49 LIBBAC_LT_RELEASE=`sed -n -e 's/^#.*LIBBAC_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
50 LIBBACCFG_LT_RELEASE=`sed -n -e 's/^#.*LIBBACCFG_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
51 LIBBACPY_LT_RELEASE=`sed -n -e 's/^#.*LIBBACPY_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
53 LIBBAC_LT_RELEASE=${LIBBAC_LT_RELEASE:-$VERSION}
54 LIBBACCFG_LT_RELEASE=${LIBBACCFG_LT_RELEASE:-$VERSION}
55 LIBBACPY_LT_RELEASE=${LIBBACPY_LT_RELEASE:-$VERSION}
57 AC_SUBST(LIBBAC_LT_RELEASE)dnl
58 AC_SUBST(LIBBACCFG_LT_RELEASE)dnl
59 AC_SUBST(LIBBACPY_LT_RELEASE)dnl
62 dnl can be overwritten by specific values from version.h
63 LIBBACSQL_LT_RELEASE=`sed -n -e 's/^#.*LIBBACSQL_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
65 LIBBACSQL_LT_RELEASE=${LIBBACSQL_LT_RELEASE:-$VERSION}
67 AC_SUBST(LIBBACSQL_LT_RELEASE)dnl
70 dnl can be overwritten by specific values from version.h
71 LIBBACFIND_LT_RELEASE=`sed -n -e 's/^#.*LIBBACFIND_LT_RELEASE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
73 LIBBACFIND_LT_RELEASE=${LIBBACFIND_LT_RELEASE:-$VERSION}
75 AC_SUBST(LIBBACFIND_LT_RELEASE)dnl
77 echo "configuring for ${BACULA} $VERSION ($DATE)"
80 dnl -------------------------------------------------------
81 dnl Check for compiler.
82 dnl ------------------------------------------------------
86 AC_PROG_CC_C_O dnl Determine if C compiler support -c -o.
87 AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional.
91 if test "x$BASECC" = xgcc; then
95 AC_PATH_PROG(CXX, $CXX, $CXX)
96 if test ! -e $CXX; then
97 AC_MSG_ERROR(Unable to find C++ compiler)
100 dnl -------------------------------------------------------
101 dnl Check for programs.
102 dnl ------------------------------------------------------
104 AC_PATH_PROG(MV, mv, mv)
106 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
107 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
108 dnl of strange output of the configure script (like things don't exist etc.).
109 dnl So we name it REMOVE (more software has run into this problem)
110 AC_PATH_PROG(REMOVE, rm, rm)
111 AC_PATH_PROG(CP, cp, cp)
112 AC_PATH_PROG(SED, sed, sed)
113 AC_PATH_PROG(ECHO, echo, echo)
114 AC_PATH_PROG(CMP, cmp, cmp)
115 AC_PATH_PROG(TBL, tbl, tbl)
116 AC_PATH_PROG(AR, ar, ar)
117 AC_PATH_PROG(OPENSSL, openssl, none)
118 AC_PATH_PROG(MTX, mtx, mtx)
119 AC_PATH_PROG(DD, dd, dd)
120 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
121 AC_PATH_PROG(PYTHON, python, python)
122 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
123 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
124 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
125 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
126 AC_PATH_PROG(QMAKE, qmake, none)
127 AC_PATH_PROG(GMAKE, gmake, none)
128 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
129 if test "x$WXCONFIG" = x; then
132 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
133 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
134 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
135 AC_PATH_PROG(PIDOF, pidof, pidof)
137 # Some AWK programs fail, so test it and warn the user
138 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
139 { if ((prog == $2) || (("(" prog ")") == $2) ||
140 (("[" prog "]") == $2) ||
141 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
143 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
144 The regex engine of $AWK is too broken to be used you
145 might want to install GNU AWK.
146 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
149 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
152 test -n "$ARFLAG" || ARFLAGS="cr"
159 AC_SUBST(LOCAL_CFLAGS)
160 AC_SUBST(LOCAL_LDFLAGS)
163 dnl --------------------------------------------------
165 dnl --------------------------------------------------
167 AC_ARG_ENABLE(libtool,
168 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
170 if test x$enableval = xno; then
175 LT_INIT([shared disable-static])
178 if test x$use_libtool != xno; then
179 DEFAULT_OBJECT_TYPE=".lo"
180 DEFAULT_ARCHIVE_TYPE=".la"
181 DEFAULT_SHARED_OBJECT_TYPE=".la"
182 LIBTOOL="\$(LIBTOOL)"
183 LIBTOOL_INSTALL_TARGET="libtool-install"
184 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
185 LIBTOOL_CLEAN_TARGET="libtool-clean"
186 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
187 FD_PLUGIN_DIR="src/plugins/fd"
190 DEFAULT_OBJECT_TYPE=".o"
191 DEFAULT_ARCHIVE_TYPE=".a"
192 DEFAULT_SHARED_OBJECT_TYPE=".so"
193 LIBTOOL="# \$(LIBTOOL)"
194 LIBTOOL_INSTALL_TARGET=""
195 LIBTOOL_UNINSTALL_TARGET=""
196 LIBTOOL_CLEAN_TARGET=""
197 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
202 AC_SUBST(DEFAULT_OBJECT_TYPE)
203 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
204 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
206 AC_SUBST(LIBTOOL_INSTALL_TARGET)
207 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
208 AC_SUBST(LIBTOOL_CLEAN_TARGET)
209 AC_SUBST(QMAKE_LIBTOOL)
210 AC_SUBST(FD_PLUGIN_DIR)
212 dnl --------------------------------------------------
213 dnl Include file handling
214 dnl --------------------------------------------------
215 AC_ARG_ENABLE(includes,
216 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
218 if test x$enableval = xyes; then
224 dnl It only makes sense to install include files when you install libraries which only happens when
225 dnl libtool is enabled
227 if test x$use_libtool != xno -a x$install_includes = xyes; then
228 INCLUDE_INSTALL_TARGET="install-includes"
229 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
231 INCLUDE_INSTALL_TARGET=""
232 INCLUDE_UNINSTALL_TARGET=""
234 AC_SUBST(INCLUDE_INSTALL_TARGET)
235 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
237 dnl --------------------------------------------------
238 dnl Bacula OP Sys determination (see aclocal.m4)
239 dnl --------------------------------------------------
242 dnl -----------------------------------------------------------
243 dnl Bacula OPSys Distribution determination (see aclocal.m4)
244 dnl ----------------------------------------------------------
245 BA_CHECK_OPSYS_DISTNAME
247 dnl --------------------------------------------------
248 dnl Suppport for gettext (translations)
249 dnl By default, $datarootdir is ${prefix}/share
250 dnl --------------------------------------------------
251 AM_GNU_GETTEXT([external])
253 dnl ------------------------------------------------------------------
254 dnl If the user has not set --prefix, we set our default to nothing.
255 dnl In this case, if the user has not set --sysconfdir, we set it
256 dnl to the package default of /etc/bacula. If either --prefix or
257 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
258 dnl If the user has not set --libdir, we set it to the package
259 dnl default of /usr/lib. If either --prefix or --libdir is set,
260 dnl we leave libdir alone except to eval it. If the user has not set
261 dnl --includedir, we set it to the package default of /usr/include.
262 dnl If either --prefix or --includedir is set, we leave includedir
263 dnl alone except to eval it
264 dnl ------------------------------------------------------------------
265 os_name=`uname -s 2>/dev/null`
266 if test x${prefix} = xNONE ; then
267 if test `eval echo ${sysconfdir}` = NONE/etc ; then
268 sysconfdir=/etc/bacula
271 if test `eval echo ${libdir}` = NONE/lib ; then
274 os_processor=`uname -p 2>/dev/null`
275 case ${os_processor} in
290 if test `eval echo ${includedir}` = NONE/include ; then
291 includedir=/usr/include
294 if test `eval echo ${datarootdir}` = NONE/share ; then
295 datarootdir=/usr/share
300 dnl -------------------------------------------------------------------------
301 dnl If the user has not set --exec-prefix, we default to ${prefix}
302 dnl -------------------------------------------------------------------------
303 if test x${exec_prefix} = xNONE ; then
304 exec_prefix=${prefix}
307 sysconfdir=`eval echo ${sysconfdir}`
308 datarootdir=`eval echo ${datarootdir}`
309 docdir=`eval echo ${docdir}`
310 htmldir=`eval echo ${htmldir}`
311 libdir=`eval echo ${libdir}`
312 includedir=`eval echo ${includedir}`
313 localedir=`eval echo ${datarootdir}/locale`
314 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
315 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
317 dnl ------------------------------------------------------------------
318 dnl If the user has not set --sbindir, we set our default as /sbin
319 dnl ------------------------------------------------------------------
320 if test x$sbindir = x'${exec_prefix}/sbin' ; then
321 sbindir=${exec_prefix}/sbin
323 sbindir=`eval echo ${sbindir}`
325 dnl -------------------------------------------------------------------------
326 dnl If the user has not set --mandir, we default to /usr/share/man
327 dnl -------------------------------------------------------------------------
328 if test x$mandir = x'${prefix}/man' ; then
329 mandir=/usr/share/man
332 dnl -------------------------------------------------------------------------
333 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
334 dnl -------------------------------------------------------------------------
335 if test x$htmldir = x${docdir} ; then
336 htmldir=`eval echo ${docdir}bacula/html`
339 dnl -------------------------------------------------------------------------
340 dnl If the user has not set --docdir, we default to /usr/share/doc/
341 dnl -------------------------------------------------------------------------
342 if test x$docdir = x'/usr/share/doc/' ; then
343 docdir=`eval echo ${docdir}bacula`
347 AC_PATH_PROGS(MSGFMT, msgfmt, no)
348 if test "$MSGFMT" = "no"
350 echo 'msgfmt program not found, disabling NLS !'
352 USE_INCLUDED_LIBINTL=no
360 support_postgresql=no
363 support_smartalloc=yes
368 support_wx_console=no
369 support_tray_monitor=no
374 support_static_tools=no
377 support_static_dir=no
378 support_static_cons=no
388 dnl --------------------------------------------------------------------------
389 dnl CHECKING COMMAND LINE OPTIONS
390 dnl --------------------------------------------------------------------------
392 dnl -------------------------------------------
393 dnl gnome (default off)
394 dnl -------------------------------------------
396 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
398 if test x$enableval = xyes; then
405 if test x$support_gnome = xyes; then
406 AC_MSG_ERROR(bgnome-console no longer supported)
407 AC_MSG_ERROR(--enable-gnome option no longer supported)
409 # AC_SUBST(GNOME_DIR)
411 dnl -------------------------------------------
412 dnl bat (default off)
413 dnl -------------------------------------------
415 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
417 if test x$enableval = xyes; then
418 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
425 if test x$support_bat = xyes; then
426 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
428 if test $pkg = 0; then
429 BAT_DIR=src/qt-console
431 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
436 dnl The qwt library was used with bat, but that is no longer the case
444 dnl if test x$support_bat = xyes; then
445 dnl AC_MSG_CHECKING(for qwt support)
447 dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
449 dnl case "$with_qwt" in
454 dnl if test -f ${with_qwt}/include/qwt.h; then
455 dnl QWT_INC="${with_qwt}/include"
456 dnl QWT_LDFLAGS="-L${with_qwt}/lib"
466 dnl dnl Search in standard places, or --with-qwt not specified
468 dnl if test $no_qwt = no; then
469 dnl if test x$QWT_INC = x; then
470 dnl for root in /usr /usr/local; do
471 dnl for ver in qwt qwt5 qwt-qt4; do
472 dnl if test -f ${root}/include/${ver}/qwt.h; then
473 dnl QWT_INC="${root}/include/${ver}"
474 dnl if test -d ${root}/lib64/; then
475 dnl QWT_LDFLAGS="-L${root}/lib64"
476 dnl elif test -d ${root}/lib/64/; then
477 dnl QWT_LDFLAGS="-L${root}/64"
479 dnl QWT_LDFLAGS="-L${root}/lib"
490 dnl if test x$QWT_INC = x; then
491 dnl AC_MSG_RESULT(no)
493 dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
494 dnl AC_MSG_RESULT(yes)
500 AC_SUBST(QWT_LDFLAGS)
504 dnl -------------------------------------------
505 dnl bwx-console (default off)
506 dnl -------------------------------------------
507 AC_ARG_ENABLE(bwx-console,
508 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
510 if test x$enableval = xyes; then
511 support_wx_console=yes
517 if test x$support_wx_console = xyes; then
518 abc=`$WXCONFIG $WXFLAGS --cppflags`
520 if test $pkg = 0; then
521 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
522 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
523 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
525 AC_SUBST(WXCONS_CPPFLAGS)
526 AC_SUBST(WXCONS_LDFLAGS)
527 WX_DIR="src/wx-console"
530 echo "wx-config program not found. bwx-console disabled."
532 support_wx_console=no
537 dnl -------------------------------------------
538 dnl tray-monitor (default off)
539 dnl -------------------------------------------
540 AC_ARG_ENABLE(tray-monitor,
541 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
543 if test x$enableval = xyes; then
544 support_tray_monitor=yes
550 if test x$support_tray_monitor = xyes; then
551 abc=`$PKGCONFIG --exists gtk+-2.0`
553 if test $pkg = 0; then
554 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
555 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
556 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
557 AC_SUBST(TRAY_MONITOR_LDFLAGS)
558 TRAY_MONITOR_DIR=src/tray-monitor
559 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
561 if test $pkg = 0; then
562 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
566 AC_SUBST(TRAY_MONITOR_DIR)
568 dnl -------------------------------------------
569 dnl smartalloc (default off)
570 dnl -------------------------------------------
571 AC_ARG_ENABLE(smartalloc,
572 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
574 if test x$enableval = xno; then
575 support_smartalloc=no
580 if test x$support_smartalloc = xyes; then
581 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
584 dnl -------------------------------------------
585 dnl Lock Manager (default off)
586 dnl -------------------------------------------
587 AC_ARG_ENABLE(lockmgr,
588 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
590 if test x$enableval = xyes; then
596 if test x$support_lockmgr = xyes; then
597 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
601 dnl -------------------------------------------
602 dnl static-tools (default off)
603 dnl -------------------------------------------
604 AC_ARG_ENABLE(static-tools,
605 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
607 if test x$enableval = xyes; then
608 if test x$use_libtool = xyes; then
609 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
610 please rerun configure with --disable-libtool])
612 support_static_tools=yes
618 if test x$support_static_tools = xyes; then
619 TTOOL_LDFLAGS="-static"
621 AC_SUBST(TTOOL_LDFLAGS)
623 dnl -------------------------------------------
624 dnl static-fd (default off)
625 dnl -------------------------------------------
626 AC_ARG_ENABLE(static-fd,
627 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
629 if test x$enableval = xyes; then
630 if test x$use_libtool = xyes; then
631 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
632 please rerun configure with --disable-libtool])
634 support_static_fd=yes
640 if test x$support_static_fd = xyes; then
641 STATIC_FD="static-bacula-fd"
645 dnl -------------------------------------------
646 dnl static-sd (default off)
647 dnl -------------------------------------------
648 AC_ARG_ENABLE(static-sd,
649 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
651 if test x$enableval = xyes; then
652 if test x$use_libtool = xyes; then
653 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
654 please rerun configure with --disable-libtool])
656 support_static_sd=yes
662 if test x$support_static_sd = xyes; then
663 STATIC_SD="static-bacula-sd"
667 dnl -------------------------------------------
668 dnl static-dir (default off)
669 dnl -------------------------------------------
670 AC_ARG_ENABLE(static-dir,
671 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
673 if test x$enableval = xyes; then
674 if test x$use_libtool = xyes; then
675 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
676 please rerun configure with --disable-libtool])
678 support_static_dir=yes
684 if test x$support_static_dir = xyes; then
685 STATIC_DIR="static-bacula-dir"
689 dnl -------------------------------------------
690 dnl static-cons (default off)
691 dnl -------------------------------------------
692 AC_ARG_ENABLE(static-cons,
693 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
695 if test x$enableval = xyes; then
696 if test x$use_libtool = xyes; then
697 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
698 please rerun configure with --disable-libtool])
700 support_static_cons=yes
708 if test x$support_static_cons = xyes; then
709 STATIC_CONS="static-bconsole"
710 STATIC_GNOME_CONS="static-bgnome-console"
711 STATIC_WX_CONS="static-bwx-console"
713 AC_SUBST(STATIC_CONS)
714 AC_SUBST(STATIC_GNOME_CONS)
715 AC_SUBST(STATIC_WX_CONS)
717 dnl -------------------------------------------
718 dnl client_only (default off)
719 dnl -------------------------------------------
720 AC_ARG_ENABLE(client-only,
721 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
723 if test x$enableval = xyes; then
724 build_client_only=yes
730 if test x$build_client_only = xno; then
737 dnl -------------------------------------------
738 dnl director (default on)
739 dnl -------------------------------------------
740 AC_ARG_ENABLE(build-dird,
741 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
743 if test x$enableval = xno; then
748 if test x$build_dird = xyes; then
753 DIR_TOOLS="NODIRTOOLS"
758 dnl -------------------------------------------
759 dnl stored (default on)
760 dnl -------------------------------------------
761 AC_ARG_ENABLE(build-stored,
762 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
764 if test x$enableval = xno; then
769 if test x$build_stored = xyes; then
770 STORED_DIR="src/stored"
776 dnl ---------------------------------------------------
777 dnl Check for conio (Bacula readline substitute)(
778 dnl ---------------------------------------------------
779 dnl this allows you to turn it completely off
781 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
783 if test x$enableval = xno; then
790 dnl ---------------------------------------------------
791 dnl Check for IPv6 support
792 dnl ---------------------------------------------------
793 dnl this allows you to turn it completely off
796 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
798 if test x$enableval = xno; then
804 if test x$support_ipv6 = xyes; then
805 AC_TRY_LINK([ #include <sys/types.h>
806 #include <sys/socket.h>
807 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
808 [support_ipv6=yes], [support_ipv6=no])
811 if test x$support_ipv6 = xyes; then
812 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
816 AC_CHECK_HEADER(curses.h,
817 [ AC_CHECK_LIB(ncurses, tgetent,
818 [ TERM_LIB="-lncurses" ],
819 [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
822 [ AC_CHECK_HEADERS(curses.h)
823 AC_CHECK_HEADER(term.h,
824 [ AC_CHECK_LIB(curses, tgetent,
825 [ TERM_LIB="-lcurses" ] )
831 if test x$support_conio = xyes; then
832 if test x$TERM_LIB != x; then
838 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
840 echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
845 dnl ---------------------------------------------------
846 dnl Check for readline support/directory (default off)
847 dnl ---------------------------------------------------
848 dnl this allows you to turn it completely off
849 AC_ARG_ENABLE(readline,
850 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
852 if test x$enableval = xno; then
857 if test x$TERM_LIB = x ; then
863 if test x$support_readline = xyes; then
864 AC_ARG_WITH(readline,
865 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
867 case "$with_readline" in
872 if test -f ${with_readline}/readline.h; then
873 CONS_INC="-I${with_readline}"
874 CONS_LDFLAGS="-L$with_readline"
875 elif test -f ${with_readline}/include/readline/readline.h; then
876 CONS_INC="-I${with_readline}/include/readline"
877 CONS_LDFLAGS="-L${with_readline}/lib"
878 with_readline="${with_readline}/include/readline"
880 with_readline="/usr/include/readline"
883 AC_CHECK_HEADER(${with_readline}/readline.h,
885 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
886 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
890 echo "readline.h not found. readline turned off ..."
897 dnl check for standard readline library
898 AC_CHECK_HEADER(/usr/include/readline/readline.h,
900 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
902 CONS_INC="-I/usr/include/readline"
903 CONS_LIBS="-lreadline $TERM_LIB"
905 dnl Did not find standard library, so try Bacula's default
906 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
908 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
910 CONS_INC="-I${TOP_DIR}/depkgs/readline"
911 CONS_LIBS="-lreadline -lhistory $TERM_LIB"
912 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
913 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
916 echo "readline.h not found. readline turned off ..."
930 AC_SUBST(CONS_LDFLAGS)
931 AC_SUBST(READLINE_SRC)
933 dnl Minimal stuff for readline Makefile configuration
938 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
939 AC_CHECK_FUNCS(nanosleep nl_langinfo)
940 AC_CHECK_HEADERS(varargs.h)
942 dnl End of readline/conio stuff
943 dnl -----------------------------------------------------------------------
945 dnl -----------------------------------------------------------------------
946 dnl Check for Python support
948 AC_MSG_CHECKING(for Python support)
950 AC_HELP_STRING([--with-python@<:@=DIR@:>@], [Include Python support. DIR is the Python base install directory, default is to search through a number of common places for the Python files.]),
954 if test "$withval" != "no"; then
955 if test "$withval" = "yes"; then
956 if test -e /usr/bin/python-config ; then
957 PYTHON_INCDIR=`/usr/bin/python-config --includes`
958 PYTHON_LIBS=`/usr/bin/python-config --libs`
960 for python_root in /usr /usr/local /usr/sfw; do
961 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
962 if test -f $python_root/include/${ver}/Python.h; then
963 PYTHON_INCDIR=-I$python_root/include/${ver}
964 if test -d $python_root/lib64/${ver}/config; then
965 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
967 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
974 if test x$PYTHON_INCDIR = x; then
975 if test -f $prefix/include/Python.h; then
976 PYTHON_INCDIR=-I$prefix/include
977 if test -d $prefix/lib64/config; then
978 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
980 PYTHON_LIBS="-L$prefix/lib/config -lpython"
984 AC_MSG_ERROR(Unable to find Python.h in standard locations)
989 if test -e $withval/bin/python-config ; then
990 PYTHON_INCDIR=`$withval/bin/python-config --includes`
991 PYTHON_LIBS=`$withval/bin/python-config --libs`
992 elif test -f $withval/Python.h; then
993 PYTHON_INCDIR=-I$withval
994 PYTHON_LIBS="-L$withval/config -lpython"
995 elif test -f $withval/include/Python.h; then
996 PYTHON_INCDIR=-I$withval/include
997 if test -d $withval/lib64/config; then
998 PYTHON_LIBS="-L$withval/lib64/config -lpython"
1000 PYTHON_LIBS="-L$withval/lib/config -lpython"
1002 elif test -f $withval/include/python/Python.h; then
1003 PYTHON_INCDIR=-I$withval/include/python
1004 if test -d $withval/lib64/python/config; then
1005 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1007 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1011 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1015 AC_DEFINE([HAVE_PYTHON], 1)
1018 AC_MSG_NOTICE(checking for more Python libs)
1019 saved_LIBS="$LIBS"; LIBS=
1020 AC_SEARCH_LIBS(shm_open, [rt])
1021 AC_CHECK_LIB(util, openpty)
1022 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1031 AC_SUBST(PYTHON_LIBS)
1032 AC_SUBST(PYTHON_INCDIR)
1035 dnl Find where sockets are (especially for Solaris)
1036 dnl Do this before the TCP Wrappers test since tcp wrappers
1037 dnl uses the socket library and some linkers are stupid.
1039 AC_CHECK_FUNC(socket,
1040 AC_MSG_RESULT(using libc's socket),
1041 AC_CHECK_LIB(xnet,socket)
1042 AC_CHECK_LIB(socket,socket)
1043 AC_CHECK_LIB(inet,socket))
1045 dnl -----------------------------------------------------------
1046 dnl Check whether user wants TCP wrappers support (default off)
1047 dnl -----------------------------------------------------------
1050 AC_ARG_WITH(tcp-wrappers,
1051 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1053 if test "x$withval" != "xno" ; then
1055 LIBS="$saved_LIBS -lwrap"
1056 AC_SEARCH_LIBS(nanosleep, [rt])
1057 AC_MSG_CHECKING(for libwrap)
1060 #include <sys/types.h>
1062 int deny_severity = 0;
1063 int allow_severity = 0;
1064 struct request_info *req;
1069 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1074 LIBS="$saved_LIBS -lwrap -lnsl"
1075 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1078 #include <sys/types.h>
1080 int deny_severity = 0;
1081 int allow_severity = 0;
1082 struct request_info *req;
1087 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1092 AC_MSG_ERROR([*** libwrap missing])
1101 dnl -----------------------------------------------------------
1102 dnl Check whether OpenSSL is available
1103 dnl -----------------------------------------------------------
1104 AC_MSG_CHECKING([for OpenSSL])
1105 dnl The following uses quadrigraphs:
1108 AC_ARG_WITH(openssl,
1109 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1111 with_openssl_directory=${withval}
1115 if test "x$with_openssl_directory" != "xno"; then
1116 OPENSSL_LIBS="-lssl -lcrypto"
1119 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1121 # Make sure the $with_openssl_directory also makes sense
1123 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1124 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1125 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1129 saved_LIBS="${LIBS}"
1130 saved_CFLAGS="${CFLAGS}"
1131 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1132 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1136 #include <openssl/ssl.h>
1138 CRYPTO_set_id_callback(NULL);
1141 support_crypto="yes"
1150 #include <openssl/evp.h>
1154 ac_cv_openssl_sha2="yes"
1156 ac_cv_openssl_sha2="no"
1160 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1161 dnl implementation, presumably for export reasons. If 192bit AES
1162 dnl is available, we assume that we're running with a 'non-export'
1163 dnl openssl library.
1166 #include <openssl/evp.h>
1170 ac_cv_openssl_export="no"
1172 ac_cv_openssl_export="yes"
1176 if test "$support_tls" = "yes"; then
1177 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1178 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1179 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1182 if test "$ac_cv_openssl_sha2" = "yes"; then
1183 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1186 if test "$ac_cv_openssl_export" = "yes"; then
1187 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1190 if test "$support_crypto" = "yes"; then
1191 AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1194 LIBS="${saved_LIBS}"
1195 CFLAGS="${saved_CFLAGS}"
1202 AC_MSG_RESULT([$support_tls])
1204 if test "$support_tls" = "no"; then
1208 if test "$support_crypto" = "no"; then
1213 AC_SUBST(OPENSSL_LIBS)
1214 AC_SUBST(OPENSSL_INC)
1216 dnl -----------------------------------------------------------
1217 dnl dlopen is needed for plugins
1218 dnl -----------------------------------------------------------
1219 AC_SEARCH_LIBS(dlopen, [dl])
1221 dnl ------------------------------------------
1222 dnl Where to place working dir
1223 dnl ------------------------------------------
1224 working_dir=`eval echo ${prefix}/var/bacula/working`
1225 AC_ARG_WITH(working-dir,
1226 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1228 if test "x$withval" != "xno" ; then
1229 working_dir=$withval
1234 AC_SUBST(working_dir)
1236 dnl ------------------------------------------------------------------
1237 dnl If the user has not set archivedir, we set our default as /tmp
1238 dnl ------------------------------------------------------------------
1240 AC_ARG_WITH(archivedir,
1241 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1243 if test "x$withval" != "xno" ; then
1249 AC_SUBST(archivedir)
1251 dnl ------------------------------------------------------------------
1252 dnl Allow the user to specify the daemon resource name default hostname
1253 dnl ------------------------------------------------------------------
1255 AC_ARG_WITH(basename,
1256 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1258 if test "x$withval" != "xno" ; then
1266 dnl ------------------------------------------------------------------
1267 dnl Allow the user to override the hostname (default = machine hostname)
1268 dnl ------------------------------------------------------------------
1269 hostname=`uname -n | cut -d '.' -f 1`
1270 if test x${hostname} = x ; then
1271 hostname="localhost"
1273 AC_ARG_WITH(hostname,
1274 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1276 if test "x$withval" != "xno" ; then
1285 dnl ------------------------------------------
1286 dnl Where to place scriptdir (script files)
1287 dnl ------------------------------------------
1288 scriptdir=`eval echo ${sysconfdir}`
1289 AC_ARG_WITH(scriptdir,
1290 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1292 if test "x$withval" != "xno" ; then
1301 dnl ------------------------------------------
1302 dnl Where to place bsrdir (bsr files)
1303 dnl ------------------------------------------
1306 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1308 if test "x$withval" != "xno" ; then
1316 dnl ------------------------------------------
1317 dnl Where to place logdir (bsr files)
1318 dnl ------------------------------------------
1321 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1323 if test "x$withval" != "xno" ; then
1332 # ------------------------------------------
1333 # Where to place plugindir (plugin files)
1334 # ------------------------------------------
1335 plugindir=`eval echo ${libdir}`
1336 AC_ARG_WITH(plugindir,
1337 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1339 if test "x$withval" != "xno" ; then
1347 dnl ------------------------------------------
1348 dnl Where to send dump email
1349 dnl ------------------------------------------
1350 dump_email=root@localhost
1351 AC_ARG_WITH(dump-email,
1352 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1354 if test "x$withval" != "xno" ; then
1360 AC_SUBST(dump_email)
1362 dnl ------------------------------------------
1363 dnl Where to send job email
1364 dnl ------------------------------------------
1365 job_email=root@localhost
1366 AC_ARG_WITH(job-email,
1367 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1369 if test "x$withval" != "xno" ; then
1377 dnl ------------------------------------------
1378 dnl Where to find smtp host
1379 dnl ------------------------------------------
1381 AC_ARG_WITH(smtp_host,
1382 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1384 if test "x$withval" != "xno" ; then
1392 dnl ------------------------------------
1393 dnl Where to place pid files
1394 dnl ------------------------------------
1396 AC_ARG_WITH(pid-dir,
1397 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1399 if test "x$withval" != "xno" ; then
1405 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1408 dnl ------------------------------------
1409 dnl Where to place subsys "lock file"
1410 dnl ------------------------------------
1411 subsysdir=/var/run/subsys
1412 if test -d /var/run/subsys; then
1413 subsysdir=/var/run/subsys
1414 elif test -d /var/lock/subsys; then
1415 subsysdir=/var/lock/subsys
1417 subsysdir=/var/run/subsys
1419 AC_ARG_WITH(subsys-dir,
1420 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1422 if test "x$withval" != "xno" ; then
1430 dnl ------------------------------------
1431 dnl Where to start assigning ports
1432 dnl ------------------------------------
1434 AC_ARG_WITH(baseport,
1435 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1437 if test "x$withval" != "xno" ; then
1444 dir_port=`expr $baseport`
1445 fd_port=`expr $baseport + 1`
1446 sd_port=`expr $fd_port + 1`
1452 dnl ------------------------------------------
1453 dnl Generate passwords
1454 dnl ------------------------------------------
1456 AC_ARG_WITH(dir-password,
1457 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1459 if test "x$withval" != "xno" ; then
1460 dir_password=$withval
1465 if test "x$dir_password" = "x" ; then
1466 if test "x$OPENSSL" = "xnone" ; then
1467 key=`autoconf/randpass 33`
1469 key=`openssl rand -base64 33`
1475 AC_ARG_WITH(fd-password,
1476 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1478 if test "x$withval" != "xno" ; then
1479 fd_password=$withval
1484 if test "x$fd_password" = "x" ; then
1485 if test "x$OPENSSL" = "xnone" ; then
1486 key=`autoconf/randpass 37`
1488 key=`openssl rand -base64 33`
1494 AC_ARG_WITH(sd-password,
1495 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1497 if test "x$withval" != "xno" ; then
1498 sd_password=$withval
1503 if test "x$sd_password" = "x" ; then
1504 if test "x$OPENSSL" = "xnone" ; then
1505 key=`autoconf/randpass 41`
1507 key=`openssl rand -base64 33`
1513 AC_ARG_WITH(mon-dir-password,
1514 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1516 if test "x$withval" != "xno" ; then
1517 mon_dir_password=$withval
1522 if test "x$mon_dir_password" = "x" ; then
1523 if test "x$OPENSSL" = "xnone" ; then
1524 key=`autoconf/randpass 33`
1526 key=`openssl rand -base64 33`
1528 mon_dir_password=$key
1532 AC_ARG_WITH(mon-fd-password,
1533 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1535 if test "x$withval" != "xno" ; then
1536 mon_fd_password=$withval
1541 if test "x$mon_fd_password" = "x" ; then
1542 if test "x$OPENSSL" = "xnone" ; then
1543 key=`autoconf/randpass 37`
1545 key=`openssl rand -base64 33`
1547 mon_fd_password=$key
1551 AC_ARG_WITH(mon-sd-password,
1552 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1554 if test "x$withval" != "xno" ; then
1555 mon_sd_password=$withval
1560 if test "x$mon_sd_password" = "x" ; then
1561 if test "x$OPENSSL" = "xnone" ; then
1562 key=`autoconf/randpass 41`
1564 key=`openssl rand -base64 33`
1566 mon_sd_password=$key
1569 AC_SUBST(dir_password)
1570 AC_SUBST(fd_password)
1571 AC_SUBST(sd_password)
1572 AC_SUBST(mon_dir_password)
1573 AC_SUBST(mon_fd_password)
1574 AC_SUBST(mon_sd_password)
1577 dnl Pickup any database name
1580 AC_ARG_WITH(db_name,
1581 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1583 if test "x$withval" != "x" ; then
1591 AC_ARG_WITH(db_user,
1592 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1594 if test "x$withval" != "x" ; then
1602 AC_ARG_WITH(db_password,
1603 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1605 if test "x$withval" != "x" ; then
1606 db_password=$withval
1610 AC_SUBST(db_password)
1613 dnl Pickup a database port
1616 AC_ARG_WITH(db_port,
1617 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1619 if test "x$withval" != "x" ; then
1627 # Handle users and groups for each daemon
1630 AC_ARG_WITH(dir_user,
1631 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1633 if test "x$withval" != "x" ; then
1640 AC_ARG_WITH(dir_group,
1641 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1643 if test "x$withval" != "x" ; then
1650 AC_ARG_WITH(sd_user,
1651 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1653 if test "x$withval" != "x" ; then
1660 AC_ARG_WITH(sd_group,
1661 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1663 if test "x$withval" != "x" ; then
1670 AC_ARG_WITH(fd_user,
1671 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1673 if test "x$withval" != "x" ; then
1680 AC_ARG_WITH(fd_group,
1681 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1683 if test "x$withval" != "x" ; then
1697 dnl allow setting default executable permissions
1700 AC_ARG_WITH(sbin-perm,
1701 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0750@:>@]),
1703 if test "x$withval" != "x" ; then
1711 dnl ------------------------------------------------
1712 dnl Bacula check for various SQL database engines
1713 dnl ------------------------------------------------
1715 BA_CHECK_POSTGRESQL_DB
1723 # BA_CHECK_SQLITE_DB
1732 dnl -------------------------------------------
1733 dnl enable batch attribute DB insert (default on)
1734 dnl -------------------------------------------
1735 support_batch_insert=no
1736 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1738 if test $pkg = 0; then
1739 support_batch_insert=yes
1740 AC_ARG_ENABLE(batch-insert,
1741 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1743 if test x$enableval = xno; then
1744 support_batch_insert=no
1746 support_batch_insert=yes
1752 if test x$support_batch_insert = xno; then
1753 if test x$DB_TYPE = xmysql; then
1754 A=`test -f $MYSQL_LIBDIR/libmysqlclient_r.so && nm -D $MYSQL_LIBDIR/libmysqlclient_r.so | grep pthread_mutex_lock`
1756 if test $pkg = 0; then
1757 support_batch_insert=yes
1758 AC_ARG_ENABLE(batch-insert,
1759 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1761 if test x$enableval = xno; then
1762 support_batch_insert=no
1764 support_batch_insert=yes
1772 dnl For postgresql checking
1773 saved_LIBS="${LIBS}"
1774 LIBS="${saved_LIBS} ${SQL_LFLAGS}"
1776 dnl Check if postgresql can support batch mode
1777 if test x$DB_TYPE = xpostgresql; then
1778 support_batch_insert=yes
1779 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1780 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1781 test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
1783 if test $pkg = 0; then
1784 AC_ARG_ENABLE(batch-insert,
1785 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1787 if test x$enableval = xno; then
1788 support_batch_insert=no
1793 support_batch_insert=no
1797 if test x$DB_TYPE = xdbi; then
1801 dnl Check for batch insert
1802 if test $DB_PROG = postgresql; then
1803 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1804 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1805 test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
1809 if test $DB_PROG = mysql; then
1810 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1814 if test $DB_PROG = sqlite3; then
1815 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1817 AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1820 if test $pkg = 0; then
1821 AC_ARG_ENABLE(batch-insert,
1822 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1824 if test x$enableval = xno; then
1825 support_batch_insert=no
1827 support_batch_insert=yes
1833 dnl If dbi was not chosen, let the comment in file
1837 dnl revert after postgresql checks
1838 LIBS="${saved_LIBS}"
1840 AC_SUBST(uncomment_dbi)
1842 dnl For Ingres always enable batch inserts.
1843 if test x$DB_TYPE = xingres; then
1844 support_batch_insert=yes
1847 if test $support_batch_insert = yes ; then
1848 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1851 AC_DEFINE(PROTOTYPES)
1853 dnl --------------------------------------------------------------------------
1854 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1856 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1857 if test -z "$CCOPTS"; then
1858 CCOPTS='-g -O2 -Wall'
1866 dnl See if we can use 64 bit file addresses
1867 largefile_support="no"
1872 dnl --------------------------------------------------------------------------
1873 dnl CHECKING FOR HEADER FILES
1874 dnl --------------------------------------------------------------------------
1912 AC_STRUCT_ST_BLKSIZE
1916 dnl --------------------------------------------------------------------------
1917 dnl Check for utime.h structure
1918 dnl --------------------------------------------------------------------------
1919 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1923 #include <sys/types.h>
1928 ba_cv_header_utime_h=yes
1930 ba_cv_header_utime_h=no
1935 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1937 dnl --------------------------------------------------------------------------
1938 dnl Check for socklen_t
1939 dnl --------------------------------------------------------------------------
1940 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1944 #include <sys/types.h>
1945 #include <sys/socket.h>
1949 ba_cv_header_socklen_t=yes
1951 ba_cv_header_socklen_t=no
1956 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1958 dnl --------------------------------------------------------------------------
1959 dnl Check for ioctl request type
1960 dnl --------------------------------------------------------------------------
1962 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1967 #include <sys/types.h>
1968 #include <sys/ioctl.h>
1970 int (*d_ioctl)(int fd, unsigned long int request, ...);
1973 ba_cv_header_ioctl_req_t=yes
1975 ba_cv_header_ioctl_req_t=no
1980 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1982 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1983 dnl *BSD systems still use old style C prototypes, which are wrong with
1984 dnl compiled with a C++ compiler.
1987 dnl --------------------------------------------------------------------------
1988 dnl Check for typeof()
1989 dnl --------------------------------------------------------------------------
1991 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1995 main(){char *a = 0; a = (typeof a)a;}
1997 ba_cv_have_typeof=yes
1999 ba_cv_have_typeof=no
2001 ba_cv_have_typeof=no
2006 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
2011 dnl --------------------------------------------------------------------------
2012 dnl CHECKING FOR FILESYSTEM TYPE
2013 dnl --------------------------------------------------------------------------
2014 AC_MSG_CHECKING(how to get filesystem type)
2016 # The order of these tests is important.
2019 #include <sys/statvfs.h>
2020 #include <sys/fstyp.h>
2022 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
2024 if test $fstype = no; then
2027 #include <sys/statfs.h>
2028 #include <sys/fstyp.h>
2030 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
2033 if test $fstype = no; then
2036 #include <sys/statfs.h>
2037 #include <sys/vmount.h>
2039 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2042 if test $fstype = no; then
2047 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2050 if test $fstype = no; then
2051 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2053 if test $fstype = no; then
2056 #include <sys/mount.h>
2057 #include <sys/fs_types.h>
2059 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2062 AC_MSG_RESULT($fstype)
2064 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2066 dnl --------------------------------------------------------------------------
2067 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2068 dnl --------------------------------------------------------------------------
2078 AC_CHECK_TYPE(ino_t, unsigned long)
2079 AC_CHECK_TYPE(dev_t, unsigned long)
2080 AC_CHECK_TYPE(daddr_t, long)
2081 AC_CHECK_TYPE(major_t, int)
2082 AC_CHECK_TYPE(minor_t, int)
2083 AC_CHECK_TYPE(ssize_t, int)
2089 AC_CHECK_SIZEOF(char, 1)
2090 AC_CHECK_SIZEOF(short int, 2)
2091 AC_CHECK_SIZEOF(int, 4)
2092 AC_CHECK_SIZEOF(long int, 4)
2093 AC_CHECK_SIZEOF(long long int, 8)
2094 AC_CHECK_SIZEOF(int *, 4)
2096 dnl Check for sys/types.h types
2097 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2101 #include <sys/types.h>
2105 ac_cv_have_u_int="yes"
2107 ac_cv_have_u_int="no"
2112 if test "x$ac_cv_have_u_int" = "xyes" ; then
2113 AC_DEFINE(HAVE_U_INT)
2117 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2121 #include <sys/types.h>
2125 ac_cv_have_intmax_t="yes"
2133 ac_cv_have_intmax_t="yes"
2135 ac_cv_have_intmax_t="no"
2142 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2143 AC_DEFINE(HAVE_INTMAX_T)
2147 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2151 #include <sys/types.h>
2153 u_intmax_t a; a = 1;
2155 ac_cv_have_u_intmax_t="yes"
2161 u_intmax_t a; a = 1;
2163 ac_cv_have_u_intmax_t="yes"
2165 ac_cv_have_u_intmax_t="no"
2172 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2173 AC_DEFINE(HAVE_U_INTMAX_T)
2177 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2181 #include <sys/types.h>
2183 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2185 ac_cv_have_intxx_t="yes"
2187 ac_cv_have_intxx_t="no"
2192 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2193 AC_DEFINE(HAVE_INTXX_T)
2197 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2201 #include <sys/types.h>
2205 ac_cv_have_int64_t="yes"
2207 ac_cv_have_int64_t="no"
2212 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2213 AC_DEFINE(HAVE_INT64_T)
2217 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2221 #include <sys/types.h>
2223 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2225 ac_cv_have_u_intxx_t="yes"
2227 ac_cv_have_u_intxx_t="no"
2232 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2233 AC_DEFINE(HAVE_U_INTXX_T)
2237 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2241 #include <sys/types.h>
2245 ac_cv_have_u_int64_t="yes"
2247 ac_cv_have_u_int64_t="no"
2252 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2253 AC_DEFINE(HAVE_U_INT64_T)
2257 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2258 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2260 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2263 #include <sys/bitypes.h>
2265 int8_t a; int16_t b; int32_t c;
2266 u_int8_t e; u_int16_t f; u_int32_t g;
2267 a = b = c = e = f = g = 1;
2269 AC_DEFINE(HAVE_U_INTXX_T)
2270 AC_DEFINE(HAVE_INTXX_T)
2271 AC_DEFINE(HAVE_SYS_BITYPES_H)
2279 if test -z "$have_u_intxx_t" ; then
2280 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2284 #include <sys/types.h>
2286 uint8_t a; uint16_t b;
2287 uint32_t c; a = b = c = 1;
2289 ac_cv_have_uintxx_t="yes"
2291 ac_cv_have_uintxx_t="no"
2296 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2297 AC_DEFINE(HAVE_UINTXX_T)
2301 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2302 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2304 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2307 #include <sys/bitypes.h>
2309 int64_t a; u_int64_t b;
2312 AC_DEFINE(HAVE_U_INT64_T)
2313 AC_DEFINE(HAVE_INT64_T)
2321 if (test -z "$have_uintxx_t" && \
2322 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2324 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2327 #include <sys/bitypes.h>
2329 uint8_t a; uint16_t b;
2330 uint32_t c; a = b = c = 1;
2332 AC_DEFINE(HAVE_UINTXX_T)
2340 dnl --------------------------------------------------------------------------
2341 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2342 dnl --------------------------------------------------------------------------
2358 [echo 'configure: cannot find needed function.'; exit 1]
2361 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2362 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2363 AC_CHECK_FUNCS(posix_fadvise)
2364 AC_CHECK_FUNCS(fdatasync)
2366 AC_CHECK_FUNCS(chflags)
2368 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2370 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2375 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2376 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2378 call_use_va_copy(1,2,3)
2387 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2389 dnl --------------------------------------------------------------------------
2390 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2391 dnl --------------------------------------------------------------------------
2392 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2394 # If resolver functions are not in libc check for -lnsl or -lresolv.
2395 AC_CHECK_FUNC(gethostbyname_r,
2396 AC_MSG_RESULT(using libc's resolver),
2397 AC_CHECK_LIB(nsl,gethostbyname_r)
2398 AC_CHECK_LIB(resolv,gethostbyname_r))
2400 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2401 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2402 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2404 dnl ----------------------------
2405 dnl check sa_len of sockaddr
2406 dnl ----------------------------
2407 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2411 #include <sys/socket.h>
2413 struct sockaddr s; s.sa_len;
2415 ac_cv_struct_sockaddr_sa_len=yes
2416 ], [ac_cv_struct_sockaddr_sa_len=no
2422 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2423 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2430 AC_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)])
2431 AC_FUNC_CLOSEDIR_VOID
2432 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2433 # AC_FUNC_FNMATCH dnl use local version
2435 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2437 AC_CHECK_LIB(sun, getpwnam)
2439 AC_CHECK_HEADERS(zlib.h)
2440 AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
2442 if test x$ZLIBS = x-lz; then
2443 AC_DEFINE(HAVE_LIBZ)
2449 dnl Check if we have AFS on this system
2455 AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]),
2457 if test x$enableval = xyes; then
2459 elif test x$enableval = xno; then
2466 if test x$support_afs = xyes -o x$support_afs = xauto; then
2468 AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]),
2469 with_afsdir=$withval
2473 dnl Search in standard places, or --with-afsdir not specified
2475 if test x$with_afsdir = x; then
2476 for root in /usr /usr/local; do
2477 if test -d ${root}/include/afs/ ; then
2484 AFS_CFLAGS="-I${with_afsdir}/include"
2486 saved_CFLAGS="${CFLAGS}"
2487 CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}"
2489 AC_CHECK_HEADERS(afs/stds.h)
2491 CFLAGS="${saved_CFLAGS}"
2494 dnl See if we can find a libsys with the pioctl symbol in there
2496 for dir in ${with_afsdir}/lib ${with_afsdir}/lib/afs
2498 for arch_type in .a .so
2500 A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} | grep pioctl`
2502 if test $pkg = 0; then
2504 AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util.a"
2510 if test x$support_afs = xyes -a $have_afs != yes; then
2511 AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found,
2512 please either load the afs libraries or rerun configure without --enable-afs])
2514 if test $have_afs = yes; then
2515 AC_DEFINE([HAVE_AFS],1,[Defines if your system has AFS support])
2516 AC_DEFINE([HAVE_AFS_ACL],1,[Andrew FileSystem ACL support])
2521 AC_SUBST(AFS_CFLAGS)
2525 dnl Check for ACL support and libraries
2529 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2531 if test x$enableval = xyes; then
2533 elif test x$enableval = xno; then
2540 have_extended_acl=no
2541 if test x$support_acl = xyes -o x$support_acl = xauto; then
2542 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2543 AC_CHECK_FUNC(acl_get_file,
2547 AC_CHECK_LIB(acl, acl_get_file,
2550 if test $have_afs = yes; then
2552 dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!!
2554 if test -d /usr/lib64/; then
2555 FDLIBS="-L/usr/lib64 -lacl $FDLIBS"
2557 FDLIBS="-L/usr/lib -lacl $FDLIBS"
2560 FDLIBS="-lacl $FDLIBS"
2563 AC_CHECK_LIB(pacl, acl_get_file,
2566 FDLIBS="-lpacl $FDLIBS"
2568 AC_CHECK_LIB(sec, acltotext,
2571 FDLIBS="-lsec $FDLIBS"
2573 AC_CHECK_LIB(sec, acl_totext,
2575 have_extended_acl=yes
2587 if test x$support_acl = xyes -a $have_acl != yes; then
2588 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2589 please either load the acl libraries or rerun configure without --enable-acl])
2591 if test $have_acl = yes; then
2592 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2595 if test $have_extended_acl = yes; then
2596 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2602 dnl Check for XATTR support
2605 AC_ARG_ENABLE(xattr,
2606 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2608 if test x$enableval = xyes; then
2610 elif test x$enableval = xno; then
2617 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2619 dnl First check for *BSD support
2621 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2622 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2623 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2626 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2627 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2628 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2632 if test $have_xattr = no; then
2633 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2636 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2637 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2638 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2643 if test $have_xattr = yes; then
2644 have_extattr_string_in_libc=no
2645 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2647 have_extattr_string_in_libc=yes
2648 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2649 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2654 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2656 if test $have_extattr_string_in_libc = no; then
2657 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2659 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2660 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2661 FDLIBS="-lutil $FDLIBS"
2668 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2670 if test $have_xattr = no; then
2671 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2672 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2675 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2676 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2677 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2681 if test $have_xattr = no; then
2682 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2685 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2686 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2687 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2694 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2696 if test $have_xattr = no; then
2697 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2698 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2699 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2701 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2704 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2705 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2706 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2707 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2708 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2712 if test $have_xattr = yes; then
2713 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2715 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2716 FDLIBS="-lnvpair $FDLIBS"
2722 if test x$support_xattr = xyes -a $have_xattr != yes; then
2723 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2724 please either load the xattr libraries or rerun configure without --enable-xattr])
2726 if test $have_xattr = yes; then
2727 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2733 dnl Check for pthread libraries
2736 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2738 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2740 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2742 AC_CHECK_FUNC(pthread_create)
2751 dnl Check for headers, functions and libraries required to support
2752 dnl keeping readall capabilities
2754 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2755 AC_CHECK_FUNCS(prctl setreuid)
2756 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2757 if test x$CAP_LIBS = x-lcap; then
2758 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2767 if test x$have_gcc = xyes ; then
2768 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2769 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2771 LDFLAGS=${LDFLAGS--O}
2772 DB_LIBS="${SQL_LFLAGS}"
2773 CPPFLAGS="$CPPFLAGS"
2786 AC_SUBST(X_EXTRA_LIBS)
2791 dnl extra configurable objects
2802 dnl Finally we set appropriate distribution specific
2803 dnl variables and defaults
2805 dnl PFILES are platform specific files
2806 PFILES="platforms/Makefile"
2811 hostname=`uname -n | cut -d '.' -f 1`
2812 if test x${hostname} = x ; then
2813 hostname="localhost"
2815 dnl Make sure hostname is resolved
2816 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2817 if test ! $? = 0; then
2818 hostname="localhost"
2824 PSCMD="ps -e -o pid,comm"
2826 platforms/aix/Makefile"
2827 TAPEDRIVE="/dev/rmt0.1"
2831 PTHREAD_LIB="-lpthread -lexc"
2832 if test "${CC}" = "gcc" ; then
2839 TAPEDRIVE="/dev/nrmt0"
2842 DISTVER=`uname -a |awk '{print $3}'`
2843 TAPEDRIVE="/dev/nrmt0"
2844 PTHREAD_LIB="-pthread"
2845 CFLAGS="${CFLAGS} -pthread"
2846 PSCMD="ps -ax -o pid,command"
2850 platforms/bsdi/Makefile \
2851 platforms/bsdi/bacula-fd \
2852 platforms/bsdi/bacula-sd \
2853 platforms/bsdi/bacula-dir"
2854 largefile_support="yes"
2857 DISTVER=`uname -a |awk '{print $3}'`
2858 TAPEDRIVE="/dev/nrst0"
2861 WLDFLAGS="-mwindows"
2865 TAPEDRIVE="/dev/nst0"
2866 PSCMD="ps -e -o pid,command"
2869 platforms/darwin/Makefile"
2873 TAPEDRIVE="/dev/nst0"
2874 PSCMD="ps -e -o pid,command"
2877 platforms/osx/Makefile"
2880 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2883 DISTVER=`cat /etc/debian_version`
2884 if test -f /etc/lsb-release ; then
2886 if test "x$DISTRIB_ID" != "x" ; then
2887 DISTNAME=$DISTRIB_ID
2889 if test "x$DISTRIB_RELEASE" != "x" ; then
2890 DISTVER=$DISTRIB_RELEASE
2893 if test "$DISTNAME" = "Ubuntu" ; then
2896 TAPEDRIVE="/dev/nst0"
2897 PSCMD="ps -e -o pid,command"
2898 if test "$DISTNAME" = "ubuntu" ; then
2900 platforms/ubuntu/Makefile \
2901 platforms/ubuntu/bacula-fd \
2902 platforms/ubuntu/bacula-sd \
2903 platforms/ubuntu/bacula-dir"
2906 platforms/debian/Makefile \
2907 platforms/debian/bacula-fd \
2908 platforms/debian/bacula-sd \
2909 platforms/debian/bacula-dir"
2913 DISTVER=`uname -a |awk '{print $3}'`
2914 VER=`echo $DISTVER | cut -c 1`
2915 if test x$VER = x4 ; then
2916 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2917 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2921 TAPEDRIVE="/dev/nrsa0"
2922 PSCMD="ps -ax -o pid,command"
2924 platforms/freebsd/Makefile \
2925 platforms/freebsd/bacula-fd \
2926 platforms/freebsd/bacula-sd \
2927 platforms/freebsd/bacula-dir"
2928 largefile_support="yes"
2931 PSCMD="UNIX95=1; ps -e -o pid,comm"
2932 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2934 TAPEDRIVE="/dev/rmt/0hnb"
2935 PTHREAD_LIB="-lpthread"
2936 AC_DEFINE([_INCLUDE_LONGLONG])
2940 TAPEDRIVE="/dev/rmt/0cbn"
2941 PSCMD="ps -e -o pid,comm"
2943 platforms/irix/Makefile \
2944 platforms/irix/bacula-fd \
2945 platforms/irix/bacula-sd \
2946 platforms/irix/bacula-dir"
2949 DISTVER=`uname -a |awk '{print $3}'`
2952 TAPEDRIVE="/dev/nrst0"
2953 PSCMD="ps -ax -o pid,command"
2954 PTHREAD_LIB="-pthread"
2955 CFLAGS="${CFLAGS} -pthread"
2958 DISTVER=`uname -a |awk '{print $3}'`
2961 TAPEDRIVE="/dev/nrst0"
2962 PSCMD="ps -ax -o pid,command"
2963 PTHREAD_LIB="-pthread"
2964 CFLAGS="${CFLAGS} -pthread"
2966 platforms/openbsd/Makefile \
2967 platforms/openbsd/bacula-fd \
2968 platforms/openbsd/bacula-sd \
2969 platforms/openbsd/bacula-dir"
2972 if test -f /etc/whitebox-release ; then
2973 f=/etc/whitebox-release
2975 f=/etc/redhat-release
2977 if test `cat $f | grep release |\
2978 cut -f 3 -d ' '`x = "Enterprise"x ; then
2979 DISTVER="Enterprise "`cat $f | grep release |\
2982 DISTVER=`cat /etc/redhat-release | grep release |\
2985 TAPEDRIVE="/dev/nst0"
2986 PSCMD="ps -e -o pid,command"
2988 platforms/redhat/Makefile \
2989 platforms/redhat/bacula-fd \
2990 platforms/redhat/bacula-sd \
2991 platforms/redhat/bacula-dir
2995 DISTVER=`cat /etc/mandrake-release | grep release |\
2997 TAPEDRIVE="/dev/nst0"
2998 PSCMD="ps -e -o pid,command"
3000 platforms/mandrake/Makefile \
3001 platforms/mandrake/bacula-fd \
3002 platforms/mandrake/bacula-sd \
3003 platforms/mandrake/bacula-dir \
3007 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
3008 TAPEDRIVE="/dev/nst0"
3009 PSCMD="ps -e -o pid,command"
3011 platforms/gentoo/Makefile \
3012 platforms/gentoo/bacula-init \
3013 platforms/gentoo/bacula-fd \
3014 platforms/gentoo/bacula-sd \
3015 platforms/gentoo/bacula-dir"
3018 DISTVER=`cat /etc/slackware-version`
3019 TAPEDRIVE="/dev/nst0"
3020 PSCMD="ps -e -o pid,command"
3022 platforms/slackware/Makefile \
3023 platforms/slackware/rc.bacula-fd \
3024 platforms/slackware/rc.bacula-sd \
3025 platforms/slackware/rc.bacula-dir\
3026 platforms/slackware/functions.bacula"
3030 TAPEDRIVE="/dev/rmt/0cbn"
3031 PSCMD="ps -e -o pid,comm"
3033 platforms/solaris/Makefile \
3034 platforms/solaris/bacula-fd \
3035 platforms/solaris/bacula-sd \
3036 platforms/solaris/bacula-dir"
3037 if test x$DISTVER = x5.6 ; then
3038 AC_DEFINE(HAVE_OLD_SOCKOPT)
3040 LIBS="$LIBS -lresolv -lrt"
3043 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
3045 TAPEDRIVE="/dev/nst0"
3046 PSCMD="ps -e -o pid,command"
3048 platforms/suse/Makefile \
3049 platforms/suse/bacula-fd \
3050 platforms/suse/bacula-sd \
3051 platforms/suse/bacula-dir \
3052 platforms/suse/bacula"
3057 TAPEDRIVE="/dev/nst0"
3058 PSCMD="ps -e -o pid,command"
3060 platforms/suse/Makefile \
3061 platforms/suse/bacula-fd \
3062 platforms/suse/bacula-sd \
3063 platforms/suse/bacula-dir"
3067 TAPEDRIVE="/dev/nst0"
3070 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
3076 LIBS="$PTHREAD_LIB $LIBS"
3078 AC_DEFINE_UNQUOTED(lld, "$lld")
3079 AC_DEFINE_UNQUOTED(llu, "$llu")
3087 dnl common parts of the Makefile
3088 MCOMMON=./autoconf/Make.common
3089 AC_SUBST_FILE(MCOMMON)
3092 if test "x${subsysdir}" = "x${sbindir}" ; then
3095 echo "You have set both --sbindir and --with-subsys-dir"
3096 echo " equal to: ${subsysdir} "
3097 echo "This is not permitted. Please reconfigure."
3099 echo "Aborting configuration ..."
3105 AC_OUTPUT([autoconf/Make.common \
3108 scripts/startmysql \
3110 scripts/btraceback \
3116 scripts/bacula-ctl-dir \
3117 scripts/bacula-ctl-fd \
3118 scripts/bacula-ctl-sd \
3119 scripts/devel_bacula \
3122 scripts/bacula.desktop.gnome1 \
3123 scripts/bacula.desktop.gnome2 \
3124 scripts/bacula.desktop.gnome1.consolehelper \
3125 scripts/bacula.desktop.gnome2.consolehelper \
3126 scripts/bacula.desktop.gnome1.xsu \
3127 scripts/bacula.desktop.gnome2.xsu \
3128 scripts/bgnome-console.console_apps \
3129 scripts/mtx-changer \
3130 scripts/disk-changer \
3131 scripts/dvd-handler \
3132 scripts/dvd-simulator \
3133 scripts/bacula-tray-monitor.desktop \
3134 scripts/logwatch/Makefile \
3135 scripts/logwatch/logfile.bacula.conf \
3136 scripts/wxconsole.console_apps \
3137 scripts/wxconsole.desktop.consolehelper \
3138 scripts/wxconsole.desktop.xsu \
3139 scripts/bat.desktop \
3140 scripts/bat.desktop.xsu \
3141 scripts/bat.desktop.consolehelper \
3142 scripts/bat.console_apps \
3145 src/console/Makefile \
3146 src/console/bconsole.conf \
3147 src/qt-console/bat.conf \
3148 src/qt-console/bat.pro \
3149 src/qt-console/bat.pro.mingw32 \
3150 src/qt-console/install_conf_file \
3151 src/wx-console/Makefile \
3152 src/wx-console/bwx-console.conf \
3153 src/tray-monitor/Makefile \
3154 src/tray-monitor/tray-monitor.conf \
3156 src/dird/bacula-dir.conf \
3158 src/stored/Makefile \
3159 src/stored/bacula-sd.conf \
3160 src/filed/Makefile \
3161 src/filed/bacula-fd.conf \
3163 src/cats/make_catalog_backup.pl \
3164 src/cats/make_catalog_backup \
3165 src/cats/delete_catalog_backup \
3166 src/cats/create_postgresql_database \
3167 src/cats/update_postgresql_tables \
3168 src/cats/make_postgresql_tables \
3169 src/cats/grant_postgresql_privileges \
3170 src/cats/drop_postgresql_tables \
3171 src/cats/drop_postgresql_database \
3172 src/cats/create_mysql_database \
3173 src/cats/update_mysql_tables \
3174 src/cats/make_mysql_tables \
3175 src/cats/grant_mysql_privileges \
3176 src/cats/drop_mysql_tables \
3177 src/cats/drop_mysql_database \
3178 src/cats/create_sqlite3_database \
3179 src/cats/update_sqlite3_tables \
3180 src/cats/make_sqlite3_tables \
3181 src/cats/grant_sqlite3_privileges \
3182 src/cats/drop_sqlite3_tables \
3183 src/cats/drop_sqlite3_database \
3184 src/cats/create_ingres_database \
3185 src/cats/update_ingres_tables \
3186 src/cats/make_ingres_tables \
3187 src/cats/grant_ingres_privileges \
3188 src/cats/drop_ingres_tables \
3189 src/cats/drop_ingres_database \
3192 src/cats/create_bacula_database \
3193 src/cats/update_bacula_tables \
3194 src/cats/grant_bacula_privileges \
3195 src/cats/make_bacula_tables \
3196 src/cats/drop_bacula_tables \
3197 src/cats/drop_bacula_database \
3198 src/findlib/Makefile \
3199 src/tools/Makefile \
3200 src/plugins/fd/Makefile \
3201 src/plugins/sd/Makefile \
3202 src/plugins/dir/Makefile \
3203 src/win32/Makefile.inc \
3205 updatedb/update_mysql_tables_9_to_10 \
3206 updatedb/update_sqlite3_tables_9_to_10 \
3207 updatedb/update_postgresql_tables_9_to_10 \
3208 updatedb/update_mysql_tables_10_to_11 \
3209 updatedb/update_sqlite3_tables_10_to_11 \
3210 updatedb/update_postgresql_tables_10_to_11 \
3211 examples/nagios/check_bacula/Makefile \
3216 if test "${support_bat}" = "yes" ; then
3217 if test "x$QMAKE" = "xnone"; then
3218 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3223 echo "Creating bat Makefile"
3233 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3234 dnl requires gcc). If it's not, don't rebuild dependencies
3236 if test X"$GCC" = "Xyes" ; then
3237 echo "Doing make of dependencies"
3238 ${MAKE:-make} depend
3242 chmod 755 install_conf_file build-depkgs-qt-console
3246 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3247 chmod 755 dvd-handler dvd-simulator
3248 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3252 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3253 chmod 755 $c/update_postgresql_tables_10_to_11
3258 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3259 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3261 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3262 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3264 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3265 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3267 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3268 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3270 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3271 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3274 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3278 chmod 755 src/win32/build-depkgs-mingw32
3280 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3281 largefile_support="yes"
3284 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3285 if test X"$GCC" = "Xyes" ; then
3287 dnl A whole lot of hand springs to get the compiler version.
3288 dnl This is because gcc changed the output in version 3.0
3290 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3291 if test "x${CCVERSION}" = "x" ; then
3292 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3294 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3295 if test x"${CXXVERSION}" = x ; then
3296 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3300 # clean up any old junk
3306 if test "x${db_type}" = "xInternal" ; then
3309 echo "You have not specified either --enable-client-only or one of the"
3310 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3311 echo " This is not permitted. Please reconfigure."
3313 echo "Aborting the configuration ..."
3320 Configuration on `date`:
3322 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3323 Bacula version: ${BACULA} ${VERSION} (${DATE})
3324 Source code location: ${srcdir}
3325 Install binaries: ${sbindir}
3326 Install libraries: ${libdir}
3327 Install config files: ${sysconfdir}
3328 Scripts directory: ${scriptdir}
3329 Archive directory: ${archivedir}
3330 Working directory: ${working_dir}
3331 PID directory: ${piddir}
3332 Subsys directory: ${subsysdir}
3333 Man directory: ${mandir}
3334 Data directory: ${datarootdir}
3335 Plugin directory: ${plugindir}
3336 C Compiler: ${CC} ${CCVERSION}
3337 C++ Compiler: ${CXX} ${CXXVERSION}
3338 Compiler flags: ${WCFLAGS} ${CFLAGS}
3339 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3341 Statically Linked Tools: ${support_static_tools}
3342 Statically Linked FD: ${support_static_fd}
3343 Statically Linked SD: ${support_static_sd}
3344 Statically Linked DIR: ${support_static_dir}
3345 Statically Linked CONS: ${support_static_cons}
3346 Database type: ${db_type}
3347 Database port: ${db_port}
3348 Database lib: ${DB_LIBS}
3349 Database name: ${db_name}
3350 Database user: ${db_user}
3352 Job Output Email: ${job_email}
3353 Traceback Email: ${dump_email}
3354 SMTP Host Address: ${smtp_host}
3356 Director Port: ${dir_port}
3357 File daemon Port: ${fd_port}
3358 Storage daemon Port: ${sd_port}
3360 Director User: ${dir_user}
3361 Director Group: ${dir_group}
3362 Storage Daemon User: ${sd_user}
3363 Storage DaemonGroup: ${sd_group}
3364 File Daemon User: ${fd_user}
3365 File Daemon Group: ${fd_group}
3367 SQL binaries Directory ${SQL_BINDIR}
3369 Large file support: $largefile_support
3370 Bacula conio support: ${got_conio} ${CONS_LIBS}
3371 readline support: ${got_readline} ${PRTREADLINE_SRC}
3372 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3373 TLS support: ${support_tls}
3374 Encryption support: ${support_crypto}
3375 ZLIB support: ${have_zlib}
3376 enable-smartalloc: ${support_smartalloc}
3377 enable-lockmgr: ${support_lockmgr}
3378 bat support: ${support_bat}
3379 enable-gnome: ${support_gnome} ${gnome_version}
3380 enable-bwx-console: ${support_wx_console} ${wx_version}
3381 enable-tray-monitor: ${support_tray_monitor}
3382 client-only: ${build_client_only}
3383 build-dird: ${build_dird}
3384 build-stored: ${build_stored}
3385 Plugin support: ${have_plugins}
3386 AFS support: ${have_afs}
3387 ACL support: ${have_acl}
3388 XATTR support: ${have_xattr}
3389 Python support: ${support_python} ${PYTHON_LIBS}
3390 Batch insert enabled: ${support_batch_insert}
3394 # create a small shell script useful for support with
3395 # configure options and config.out info
3396 cat > scripts/bacula_config << EOF
3399 $ $0 $ac_configure_args
3401 cat config.out >> scripts/bacula_config
3402 echo __EOC__ >> scripts/bacula_config
3403 chmod 755 scripts/bacula_config
3407 # Display a warning message if postgresql client lib is <= 8.1
3408 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3409 -a x$support_batch_insert = xyes
3411 echo "WARNING: Your PostgreSQL client library is too old to detect "
3412 echo " if it was compiled with --enable-thread-safety, consider to"
3413 echo " upgrade it in order to avoid problems with Batch insert mode"