3 dnl Process this file with autoconf to produce a configure script.
12 AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)
13 AC_CONFIG_HEADER(src/config.h:autoconf/config.h.in)
15 dnl minimal Win32 stuff for "make clean"
16 WIN32BUILDDIR=${BUILD_DIR}/src/win32
17 WIN32MAINDIR=${BUILD_DIR}
18 WIN32TOPDIR=${TOP_DIR}
19 AC_SUBST(WIN32BUILDDIR)
20 AC_SUBST(WIN32MAINDIR)
23 dnl require a recent autoconf
27 dnl search for true and false programs.
28 AC_PATH_PROGS(TRUEPRG, true, :)
29 AC_PATH_PROGS(FALSEPRG, false, :)
34 if test "x$BACULA" != x; then
35 post_host=`echo -${BACULA} | tr 'A-Z ' 'a-z-'`
37 BACULA=${BACULA:-Bacula}
38 VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
39 DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
40 LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
45 AC_SUBST(post_host)dnl
46 echo "configuring for ${BACULA} $VERSION ($DATE)"
48 dnl -------------------------------------------------------
49 dnl Check for compiler.
50 dnl ------------------------------------------------------
54 AC_PROG_CC_C_O dnl Determine if C compiler support -c -o.
55 AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional.
59 if test "x$BASECC" = xgcc; then
63 AC_PATH_PROG(CXX, $CXX, $CXX)
64 if test ! -e $CXX; then
65 AC_MSG_ERROR(Unable to find C++ compiler)
68 CXXFLAGS="-g -O2 -Wall"
71 dnl -------------------------------------------------------
72 dnl Check for programs.
73 dnl ------------------------------------------------------
75 AC_PATH_PROG(MV, mv, mv)
77 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
78 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
79 dnl of strange output of the configure script (like things don't exist etc.).
80 dnl So we name it REMOVE (more software has run into this problem)
81 AC_PATH_PROG(REMOVE, rm, rm)
82 AC_PATH_PROG(CP, cp, cp)
83 AC_PATH_PROG(SED, sed, sed)
84 AC_PATH_PROG(ECHO, echo, echo)
85 AC_PATH_PROG(CMP, cmp, cmp)
86 AC_PATH_PROG(TBL, tbl, tbl)
87 AC_PATH_PROG(AR, ar, ar)
88 AC_PATH_PROG(OPENSSL, openssl, none)
89 AC_PATH_PROG(MTX, mtx, mtx)
90 AC_PATH_PROG(DD, dd, dd)
91 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
92 AC_PATH_PROG(PYTHON, python, python)
93 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
94 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
95 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
96 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
97 AC_PATH_PROG(QMAKE, qmake, none)
98 AC_PATH_PROG(QMAKEQT4, qmake-qt4, none)
99 AC_PATH_PROG(GMAKE, gmake, none)
100 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
101 if test "x$WXCONFIG" = x; then
104 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
105 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
106 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
107 AC_PATH_PROG(PIDOF, pidof, pidof)
109 # Some AWK programs fail, so test it and warn the user
110 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
111 { if ((prog == $2) || (("(" prog ")") == $2) ||
112 (("[" prog "]") == $2) ||
113 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
115 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
116 The regex engine of $AWK is too broken to be used you
117 might want to install GNU AWK.
118 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
121 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
124 test -n "$ARFLAG" || ARFLAGS="cr"
131 AC_SUBST(LOCAL_CFLAGS)
132 AC_SUBST(LOCAL_LDFLAGS)
135 dnl --------------------------------------------------
137 dnl --------------------------------------------------
139 AC_ARG_ENABLE(libtool,
140 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
142 if test x$enableval = xno; then
147 LT_INIT([shared disable-static])
150 if test x$use_libtool != xno; then
151 DEFAULT_OBJECT_TYPE=".lo"
152 DEFAULT_ARCHIVE_TYPE=".la"
153 DEFAULT_SHARED_OBJECT_TYPE=".la"
154 LIBTOOL="\$(LIBTOOL)"
155 LIBTOOL_INSTALL_TARGET="libtool-install"
156 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
157 LIBTOOL_CLEAN_TARGET="libtool-clean"
158 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
159 FD_PLUGIN_DIR="src/plugins/fd"
162 DEFAULT_OBJECT_TYPE=".o"
163 DEFAULT_ARCHIVE_TYPE=".a"
164 DEFAULT_SHARED_OBJECT_TYPE=".so"
165 LIBTOOL="# \$(LIBTOOL)"
166 LIBTOOL_INSTALL_TARGET=""
167 LIBTOOL_UNINSTALL_TARGET=""
168 LIBTOOL_CLEAN_TARGET=""
169 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
174 AC_SUBST(DEFAULT_OBJECT_TYPE)
175 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
176 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
178 AC_SUBST(LIBTOOL_INSTALL_TARGET)
179 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
180 AC_SUBST(LIBTOOL_CLEAN_TARGET)
181 AC_SUBST(QMAKE_LIBTOOL)
182 AC_SUBST(FD_PLUGIN_DIR)
184 dnl --------------------------------------------------
185 dnl Include file handling
186 dnl --------------------------------------------------
187 AC_ARG_ENABLE(includes,
188 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
190 if test x$enableval = xyes; then
196 dnl It only makes sense to install include files when you install libraries which only happens when
197 dnl libtool is enabled
199 if test x$use_libtool != xno -a x$install_includes = xyes; then
200 INCLUDE_INSTALL_TARGET="install-includes"
201 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
203 INCLUDE_INSTALL_TARGET=""
204 INCLUDE_UNINSTALL_TARGET=""
206 AC_SUBST(INCLUDE_INSTALL_TARGET)
207 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
209 dnl --------------------------------------------------
210 dnl Bacula OP Sys determination (see aclocal.m4)
211 dnl --------------------------------------------------
214 dnl -----------------------------------------------------------
215 dnl Bacula OPSys Distribution determination (see aclocal.m4)
216 dnl ----------------------------------------------------------
217 BA_CHECK_OPSYS_DISTNAME
219 dnl --------------------------------------------------
220 dnl Suppport for gettext (translations)
221 dnl By default, $datarootdir is ${prefix}/share
222 dnl --------------------------------------------------
223 AM_GNU_GETTEXT([external])
225 dnl ------------------------------------------------------------------
226 dnl If the user has not set --prefix, we set our default to nothing.
227 dnl In this case, if the user has not set --sysconfdir, we set it
228 dnl to the package default of /etc/bacula. If either --prefix or
229 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
230 dnl If the user has not set --libdir, we set it to the package
231 dnl default of /usr/lib. If either --prefix or --libdir is set,
232 dnl we leave libdir alone except to eval it. If the user has not set
233 dnl --includedir, we set it to the package default of /usr/include.
234 dnl If either --prefix or --includedir is set, we leave includedir
235 dnl alone except to eval it
236 dnl ------------------------------------------------------------------
237 os_name=`uname -s 2>/dev/null`
238 if test x${prefix} = xNONE ; then
239 if test `eval echo ${sysconfdir}` = NONE/etc ; then
240 sysconfdir=/etc/bacula
243 if test `eval echo ${libdir}` = NONE/lib ; then
246 os_processor=`uname -p 2>/dev/null`
247 case ${os_processor} in
262 if test `eval echo ${includedir}` = NONE/include ; then
263 includedir=/usr/include
266 if test `eval echo ${datarootdir}` = NONE/share ; then
267 datarootdir=/usr/share
272 dnl -------------------------------------------------------------------------
273 dnl If the user has not set --exec-prefix, we default to ${prefix}
274 dnl -------------------------------------------------------------------------
275 if test x${exec_prefix} = xNONE ; then
276 exec_prefix=${prefix}
279 sysconfdir=`eval echo ${sysconfdir}`
280 datarootdir=`eval echo ${datarootdir}`
281 docdir=`eval echo ${docdir}`
282 htmldir=`eval echo ${htmldir}`
283 libdir=`eval echo ${libdir}`
284 includedir=`eval echo ${includedir}`
285 localedir=`eval echo ${datarootdir}/locale`
286 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
287 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
289 dnl ------------------------------------------------------------------
290 dnl If the user has not set --sbindir, we set our default as /sbin
291 dnl ------------------------------------------------------------------
292 if test x$sbindir = x'${exec_prefix}/sbin' ; then
293 sbindir=${exec_prefix}/sbin
295 sbindir=`eval echo ${sbindir}`
297 dnl -------------------------------------------------------------------------
298 dnl If the user has not set --mandir, we default to /usr/share/man
299 dnl -------------------------------------------------------------------------
300 if test x$mandir = x'${prefix}/man' ; then
301 mandir=/usr/share/man
304 dnl -------------------------------------------------------------------------
305 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
306 dnl -------------------------------------------------------------------------
307 if test x$htmldir = x${docdir} ; then
308 htmldir=`eval echo ${docdir}bacula/html`
311 dnl -------------------------------------------------------------------------
312 dnl If the user has not set --docdir, we default to /usr/share/doc/
313 dnl -------------------------------------------------------------------------
314 if test x$docdir = x'/usr/share/doc/' ; then
315 docdir=`eval echo ${docdir}bacula`
319 AC_PATH_PROGS(MSGFMT, msgfmt, no)
320 if test "$MSGFMT" = "no"
322 echo 'msgfmt program not found, disabling NLS !'
324 USE_INCLUDED_LIBINTL=no
332 support_postgresql=no
334 support_smartalloc=yes
339 support_wx_console=no
340 support_tray_monitor=no
345 support_static_tools=no
348 support_static_dir=no
349 support_static_cons=no
359 dnl --------------------------------------------------------------------------
360 dnl CHECKING COMMAND LINE OPTIONS
361 dnl --------------------------------------------------------------------------
363 dnl -------------------------------------------
364 dnl gnome (default off)
365 dnl -------------------------------------------
367 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
369 if test x$enableval = xyes; then
376 if test x$support_gnome = xyes; then
377 AC_MSG_ERROR(bgnome-console no longer supported)
378 AC_MSG_ERROR(--enable-gnome option no longer supported)
380 # AC_SUBST(GNOME_DIR)
382 dnl -------------------------------------------
383 dnl bat (default off)
384 dnl -------------------------------------------
386 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
388 if test x$enableval = xyes; then
389 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
396 if test x$support_bat = xyes; then
397 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
399 if test $pkg = 0; then
400 BAT_DIR=src/qt-console
402 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
407 dnl If bat is enabled, we need the qwt library
415 if test x$support_bat = xyes; then
416 AC_MSG_CHECKING(for qwt support)
418 AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
425 if test -f ${with_qwt}/include/qwt.h; then
426 QWT_INC="${with_qwt}/include"
427 QWT_LDFLAGS="-L${with_qwt}/lib"
437 dnl Search in standard places, or --with-qwt not specified
439 if test $no_qwt = no; then
440 if test x$QWT_INC = x; then
441 for root in /usr /usr/local; do
442 for ver in qwt qwt5 qwt-qt4; do
443 if test -f ${root}/include/${ver}/qwt.h; then
444 QWT_INC="${root}/include/${ver}"
445 if test -d ${root}/lib64/; then
446 QWT_LDFLAGS="-L${root}/lib64"
447 elif test -d ${root}/lib/64/; then
448 QWT_LDFLAGS="-L${root}/64"
450 QWT_LDFLAGS="-L${root}/lib"
461 if test x$QWT_INC = x; then
464 AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
471 AC_SUBST(QWT_LDFLAGS)
475 dnl -------------------------------------------
476 dnl bwx-console (default off)
477 dnl -------------------------------------------
478 AC_ARG_ENABLE(bwx-console,
479 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
481 if test x$enableval = xyes; then
482 support_wx_console=yes
488 if test x$support_wx_console = xyes; then
489 abc=`$WXCONFIG $WXFLAGS --cppflags`
491 if test $pkg = 0; then
492 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
493 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
494 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
496 AC_SUBST(WXCONS_CPPFLAGS)
497 AC_SUBST(WXCONS_LDFLAGS)
498 WX_DIR="src/wx-console"
501 echo "wx-config program not found. bwx-console disabled."
503 support_wx_console=no
508 dnl -------------------------------------------
509 dnl tray-monitor (default off)
510 dnl -------------------------------------------
511 AC_ARG_ENABLE(tray-monitor,
512 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
514 if test x$enableval = xyes; then
515 support_tray_monitor=yes
521 if test x$support_tray_monitor = xyes; then
522 abc=`$PKGCONFIG --exists gtk+-2.0`
524 if test $pkg = 0; then
525 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
526 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
527 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
528 AC_SUBST(TRAY_MONITOR_LDFLAGS)
529 TRAY_MONITOR_DIR=src/tray-monitor
530 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
532 if test $pkg = 0; then
533 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
537 AC_SUBST(TRAY_MONITOR_DIR)
539 dnl -------------------------------------------
540 dnl smartalloc (default off)
541 dnl -------------------------------------------
542 AC_ARG_ENABLE(smartalloc,
543 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
545 if test x$enableval = xno; then
546 support_smartalloc=no
551 if test x$support_smartalloc = xyes; then
552 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
555 dnl -------------------------------------------
556 dnl Lock Manager (default off)
557 dnl -------------------------------------------
558 AC_ARG_ENABLE(lockmgr,
559 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
561 if test x$enableval = xyes; then
567 if test x$support_lockmgr = xyes; then
568 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
572 dnl -------------------------------------------
573 dnl static-tools (default off)
574 dnl -------------------------------------------
575 AC_ARG_ENABLE(static-tools,
576 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
578 if test x$enableval = xyes; then
579 if test x$use_libtool = xyes; then
580 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
581 please rerun configure with --disable-libtool])
583 support_static_tools=yes
589 if test x$support_static_tools = xyes; then
590 TTOOL_LDFLAGS="-static"
592 AC_SUBST(TTOOL_LDFLAGS)
594 dnl -------------------------------------------
595 dnl static-fd (default off)
596 dnl -------------------------------------------
597 AC_ARG_ENABLE(static-fd,
598 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
600 if test x$enableval = xyes; then
601 if test x$use_libtool = xyes; then
602 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
603 please rerun configure with --disable-libtool])
605 support_static_fd=yes
611 if test x$support_static_fd = xyes; then
612 STATIC_FD="static-bacula-fd"
616 dnl -------------------------------------------
617 dnl static-sd (default off)
618 dnl -------------------------------------------
619 AC_ARG_ENABLE(static-sd,
620 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
622 if test x$enableval = xyes; then
623 if test x$use_libtool = xyes; then
624 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
625 please rerun configure with --disable-libtool])
627 support_static_sd=yes
633 if test x$support_static_sd = xyes; then
634 STATIC_SD="static-bacula-sd"
638 dnl -------------------------------------------
639 dnl static-dir (default off)
640 dnl -------------------------------------------
641 AC_ARG_ENABLE(static-dir,
642 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
644 if test x$enableval = xyes; then
645 if test x$use_libtool = xyes; then
646 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
647 please rerun configure with --disable-libtool])
649 support_static_dir=yes
655 if test x$support_static_dir = xyes; then
656 STATIC_DIR="static-bacula-dir"
660 dnl -------------------------------------------
661 dnl static-cons (default off)
662 dnl -------------------------------------------
663 AC_ARG_ENABLE(static-cons,
664 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
666 if test x$enableval = xyes; then
667 if test x$use_libtool = xyes; then
668 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
669 please rerun configure with --disable-libtool])
671 support_static_cons=yes
679 if test x$support_static_cons = xyes; then
680 STATIC_CONS="static-bconsole"
681 STATIC_GNOME_CONS="static-bgnome-console"
682 STATIC_WX_CONS="static-bwx-console"
684 AC_SUBST(STATIC_CONS)
685 AC_SUBST(STATIC_GNOME_CONS)
686 AC_SUBST(STATIC_WX_CONS)
688 dnl -------------------------------------------
689 dnl client_only (default off)
690 dnl -------------------------------------------
691 AC_ARG_ENABLE(client-only,
692 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
694 if test x$enableval = xyes; then
695 build_client_only=yes
701 if test x$build_client_only = xno; then
708 dnl -------------------------------------------
709 dnl director (default on)
710 dnl -------------------------------------------
711 AC_ARG_ENABLE(build-dird,
712 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
714 if test x$enableval = xno; then
719 if test x$build_dird = xyes; then
724 DIR_TOOLS="NODIRTOOLS"
729 dnl -------------------------------------------
730 dnl stored (default on)
731 dnl -------------------------------------------
732 AC_ARG_ENABLE(build-stored,
733 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
735 if test x$enableval = xno; then
740 if test x$build_stored = xyes; then
741 STORED_DIR="src/stored"
747 dnl ---------------------------------------------------
748 dnl Check for conio (Bacula readline substitute)(
749 dnl ---------------------------------------------------
750 dnl this allows you to turn it completely off
752 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
754 if test x$enableval = xno; then
761 dnl ---------------------------------------------------
762 dnl Check for IPv6 support
763 dnl ---------------------------------------------------
764 dnl this allows you to turn it completely off
767 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
769 if test x$enableval = xno; then
775 if test x$support_ipv6 = xyes; then
776 AC_TRY_LINK([ #include <sys/types.h>
777 #include <sys/socket.h>
778 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
779 [support_ipv6=yes], [support_ipv6=no])
782 if test x$support_ipv6 = xyes; then
783 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
787 if test x$support_conio = xyes; then
788 AC_CHECK_HEADER(termcap.h,
789 [ AC_CHECK_LIB(termcap, tgetent,
790 [ CONS_LIBS="-ltermcap"
795 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
797 [ AC_CHECK_LIB(ncurses, tgetent,
798 [ CONS_LIBS="-lncurses"
803 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
808 AC_CHECK_HEADERS(curses.h)
809 AC_CHECK_HEADER(term.h,
810 [ AC_CHECK_LIB(curses, tgetent,
811 [ CONS_LIBS="-lcurses"
816 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
819 [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
828 dnl ---------------------------------------------------
829 dnl Check for readline support/directory (default off)
830 dnl ---------------------------------------------------
831 dnl this allows you to turn it completely off
832 AC_ARG_ENABLE(readline,
833 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
835 if test x$enableval = xno; then
843 if test x$support_readline = xyes; then
844 AC_ARG_WITH(readline,
845 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
847 case "$with_readline" in
852 if test -f ${with_readline}/readline.h; then
853 CONS_INC="-I${with_readline}"
854 CONS_LDFLAGS="-L$with_readline"
855 elif test -f ${with_readline}/include/readline/readline.h; then
856 CONS_INC="-I${with_readline}/include/readline"
857 CONS_LDFLAGS="-L${with_readline}/lib"
858 with_readline="${with_readline}/include/readline"
860 with_readline="/usr/include/readline"
863 AC_CHECK_HEADER(${with_readline}/readline.h,
865 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
866 CONS_LIBS="-lreadline -lhistory -ltermcap"
870 echo "readline.h not found. readline turned off ..."
877 dnl check for standard readline library
878 AC_CHECK_HEADER(/usr/include/readline/readline.h,
880 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
882 CONS_INC="-I/usr/include/readline"
883 CONS_LIBS="-lreadline -ltermcap"
885 dnl Did not find standard library, so try Bacula's default
886 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
888 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
890 CONS_INC="-I${TOP_DIR}/depkgs/readline"
891 CONS_LIBS="-lreadline -lhistory -ltermcap"
892 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
893 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
896 echo "readline.h not found. readline turned off ..."
910 AC_SUBST(CONS_LDFLAGS)
911 AC_SUBST(READLINE_SRC)
913 dnl Minimal stuff for readline Makefile configuration
918 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
919 AC_CHECK_FUNCS(nanosleep nl_langinfo)
920 AC_CHECK_HEADERS(varargs.h)
922 dnl End of readline/conio stuff
923 dnl -----------------------------------------------------------------------
925 dnl -----------------------------------------------------------------------
926 dnl Check for Python support
928 AC_MSG_CHECKING(for Python support)
930 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.]),
934 if test "$withval" != "no"; then
935 if test "$withval" = "yes"; then
936 if test -e /usr/bin/python-config ; then
937 PYTHON_INCDIR=`/usr/bin/python-config --includes`
938 PYTHON_LIBS=`/usr/bin/python-config --libs`
940 for python_root in /usr /usr/local /usr/sfw; do
941 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
942 if test -f $python_root/include/${ver}/Python.h; then
943 PYTHON_INCDIR=-I$python_root/include/${ver}
944 if test -d $python_root/lib64/${ver}/config; then
945 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
947 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
954 if test x$PYTHON_INCDIR = x; then
955 if test -f $prefix/include/Python.h; then
956 PYTHON_INCDIR=-I$prefix/include
957 if test -d $prefix/lib64/config; then
958 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
960 PYTHON_LIBS="-L$prefix/lib/config -lpython"
964 AC_MSG_ERROR(Unable to find Python.h in standard locations)
969 if test -e $withval/bin/python-config ; then
970 PYTHON_INCDIR=`$withval/bin/python-config --includes`
971 PYTHON_LIBS=`$withval/bin/python-config --libs`
972 elif test -f $withval/Python.h; then
973 PYTHON_INCDIR=-I$withval
974 PYTHON_LIBS="-L$withval/config -lpython"
975 elif test -f $withval/include/Python.h; then
976 PYTHON_INCDIR=-I$withval/include
977 if test -d $withval/lib64/config; then
978 PYTHON_LIBS="-L$withval/lib64/config -lpython"
980 PYTHON_LIBS="-L$withval/lib/config -lpython"
982 elif test -f $withval/include/python/Python.h; then
983 PYTHON_INCDIR=-I$withval/include/python
984 if test -d $withval/lib64/python/config; then
985 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
987 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
991 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
995 AC_DEFINE([HAVE_PYTHON], 1)
998 AC_MSG_NOTICE(checking for more Python libs)
999 saved_LIBS="$LIBS"; LIBS=
1000 AC_SEARCH_LIBS(shm_open, [rt])
1001 AC_CHECK_LIB(util, openpty)
1002 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1011 AC_SUBST(PYTHON_LIBS)
1012 AC_SUBST(PYTHON_INCDIR)
1015 dnl Find where sockets are (especially for Solaris)
1016 dnl Do this before the TCP Wrappers test since tcp wrappers
1017 dnl uses the socket library and some linkers are stupid.
1019 AC_CHECK_FUNC(socket,
1020 AC_MSG_RESULT(using libc's socket),
1021 AC_CHECK_LIB(xnet,socket)
1022 AC_CHECK_LIB(socket,socket)
1023 AC_CHECK_LIB(inet,socket))
1025 dnl -----------------------------------------------------------
1026 dnl Check whether user wants TCP wrappers support (default off)
1027 dnl -----------------------------------------------------------
1030 AC_ARG_WITH(tcp-wrappers,
1031 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1033 if test "x$withval" != "xno" ; then
1035 LIBS="$saved_LIBS -lwrap"
1036 AC_SEARCH_LIBS(nanosleep, [rt])
1037 AC_MSG_CHECKING(for libwrap)
1040 #include <sys/types.h>
1042 int deny_severity = 0;
1043 int allow_severity = 0;
1044 struct request_info *req;
1049 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1054 LIBS="$saved_LIBS -lwrap -lnsl"
1055 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
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 AC_MSG_ERROR([*** libwrap missing])
1081 dnl -----------------------------------------------------------
1082 dnl Check whether OpenSSL is available
1083 dnl -----------------------------------------------------------
1084 AC_MSG_CHECKING([for OpenSSL])
1085 dnl The following uses quadrigraphs:
1088 AC_ARG_WITH(openssl,
1089 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1091 with_openssl_directory=${withval}
1095 if test "x$with_openssl_directory" != "xno"; then
1096 OPENSSL_LIBS="-lssl -lcrypto"
1099 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1101 # Make sure the $with_openssl_directory also makes sense
1103 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1104 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1105 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1109 saved_LIBS="${LIBS}"
1110 saved_CFLAGS="${CFLAGS}"
1111 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1112 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1116 #include <openssl/ssl.h>
1118 CRYPTO_set_id_callback(NULL);
1121 support_crypto="yes"
1129 #include <openssl/evp.h>
1133 ac_cv_openssl_sha2="yes"
1135 ac_cv_openssl_sha2="no"
1139 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1140 dnl implementation, presumably for export reasons. If 192bit AES
1141 dnl is available, we assume that we're running with a 'non-export'
1142 dnl openssl library.
1145 #include <openssl/evp.h>
1149 ac_cv_openssl_export="no"
1151 ac_cv_openssl_export="yes"
1155 LIBS="${saved_LIBS}"
1156 CFLAGS="${saved_CFLAGS}"
1158 if test "$support_tls" = "yes"; then
1159 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1160 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1161 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1164 if test "$ac_cv_openssl_sha2" = "yes"; then
1165 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1168 if test "$ac_cv_openssl_export" = "yes"; then
1169 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1178 if test "$support_tls" = "no"; then
1183 AC_MSG_RESULT([$support_tls])
1184 AC_SUBST(OPENSSL_LIBS)
1185 AC_SUBST(OPENSSL_INC)
1187 dnl -----------------------------------------------------------
1188 dnl dlopen is needed for plugins
1189 dnl -----------------------------------------------------------
1190 AC_SEARCH_LIBS(dlopen, [dl])
1192 dnl ------------------------------------------
1193 dnl Where to place working dir
1194 dnl ------------------------------------------
1195 working_dir=`eval echo ${prefix}/var/bacula/working`
1196 AC_ARG_WITH(working-dir,
1197 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1199 if test "x$withval" != "xno" ; then
1200 working_dir=$withval
1205 AC_SUBST(working_dir)
1207 dnl ------------------------------------------------------------------
1208 dnl If the user has not set archivedir, we set our default as /tmp
1209 dnl ------------------------------------------------------------------
1211 AC_ARG_WITH(archivedir,
1212 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1214 if test "x$withval" != "xno" ; then
1220 AC_SUBST(archivedir)
1222 dnl ------------------------------------------------------------------
1223 dnl Allow the user to specify the daemon resource name default hostname
1224 dnl ------------------------------------------------------------------
1226 AC_ARG_WITH(basename,
1227 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1229 if test "x$withval" != "xno" ; then
1237 dnl ------------------------------------------------------------------
1238 dnl Allow the user to override the hostname (default = machine hostname)
1239 dnl ------------------------------------------------------------------
1240 hostname=`uname -n | cut -d '.' -f 1`
1241 if test x${hostname} = x ; then
1242 hostname="localhost"
1244 AC_ARG_WITH(hostname,
1245 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1247 if test "x$withval" != "xno" ; then
1256 dnl ------------------------------------------
1257 dnl Where to place scriptdir (script files)
1258 dnl ------------------------------------------
1259 scriptdir=`eval echo ${sysconfdir}`
1260 AC_ARG_WITH(scriptdir,
1261 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1263 if test "x$withval" != "xno" ; then
1272 dnl ------------------------------------------
1273 dnl Where to place bsrdir (bsr files)
1274 dnl ------------------------------------------
1277 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1279 if test "x$withval" != "xno" ; then
1287 dnl ------------------------------------------
1288 dnl Where to place logdir (bsr files)
1289 dnl ------------------------------------------
1292 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1294 if test "x$withval" != "xno" ; then
1303 # ------------------------------------------
1304 # Where to place plugindir (plugin files)
1305 # ------------------------------------------
1306 plugindir=`eval echo ${libdir}`
1307 AC_ARG_WITH(plugindir,
1308 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1310 if test "x$withval" != "xno" ; then
1318 dnl ------------------------------------------
1319 dnl Where to send dump email
1320 dnl ------------------------------------------
1321 dump_email=root@localhost
1322 AC_ARG_WITH(dump-email,
1323 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1325 if test "x$withval" != "xno" ; then
1331 AC_SUBST(dump_email)
1333 dnl ------------------------------------------
1334 dnl Where to send job email
1335 dnl ------------------------------------------
1336 job_email=root@localhost
1337 AC_ARG_WITH(job-email,
1338 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1340 if test "x$withval" != "xno" ; then
1348 dnl ------------------------------------------
1349 dnl Where to find smtp host
1350 dnl ------------------------------------------
1352 AC_ARG_WITH(smtp_host,
1353 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1355 if test "x$withval" != "xno" ; then
1363 dnl ------------------------------------
1364 dnl Where to place pid files
1365 dnl ------------------------------------
1367 AC_ARG_WITH(pid-dir,
1368 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1370 if test "x$withval" != "xno" ; then
1376 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1379 dnl ------------------------------------
1380 dnl Where to place subsys "lock file"
1381 dnl ------------------------------------
1382 subsysdir=/var/run/subsys
1383 if test -d /var/run/subsys; then
1384 subsysdir=/var/run/subsys
1385 elif test -d /var/lock/subsys; then
1386 subsysdir=/var/lock/subsys
1388 subsysdir=/var/run/subsys
1390 AC_ARG_WITH(subsys-dir,
1391 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1393 if test "x$withval" != "xno" ; then
1401 dnl ------------------------------------
1402 dnl Where to start assigning ports
1403 dnl ------------------------------------
1405 AC_ARG_WITH(baseport,
1406 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1408 if test "x$withval" != "xno" ; then
1415 dir_port=`expr $baseport`
1416 fd_port=`expr $baseport + 1`
1417 sd_port=`expr $fd_port + 1`
1423 dnl ------------------------------------------
1424 dnl Generate passwords
1425 dnl ------------------------------------------
1427 AC_ARG_WITH(dir-password,
1428 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1430 if test "x$withval" != "xno" ; then
1431 dir_password=$withval
1436 if test "x$dir_password" = "x" ; then
1437 if test "x$OPENSSL" = "xnone" ; then
1438 key=`autoconf/randpass 33`
1440 key=`openssl rand -base64 33`
1446 AC_ARG_WITH(fd-password,
1447 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1449 if test "x$withval" != "xno" ; then
1450 fd_password=$withval
1455 if test "x$fd_password" = "x" ; then
1456 if test "x$OPENSSL" = "xnone" ; then
1457 key=`autoconf/randpass 37`
1459 key=`openssl rand -base64 33`
1465 AC_ARG_WITH(sd-password,
1466 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1468 if test "x$withval" != "xno" ; then
1469 sd_password=$withval
1474 if test "x$sd_password" = "x" ; then
1475 if test "x$OPENSSL" = "xnone" ; then
1476 key=`autoconf/randpass 41`
1478 key=`openssl rand -base64 33`
1484 AC_ARG_WITH(mon-dir-password,
1485 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1487 if test "x$withval" != "xno" ; then
1488 mon_dir_password=$withval
1493 if test "x$mon_dir_password" = "x" ; then
1494 if test "x$OPENSSL" = "xnone" ; then
1495 key=`autoconf/randpass 33`
1497 key=`openssl rand -base64 33`
1499 mon_dir_password=$key
1503 AC_ARG_WITH(mon-fd-password,
1504 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1506 if test "x$withval" != "xno" ; then
1507 mon_fd_password=$withval
1512 if test "x$mon_fd_password" = "x" ; then
1513 if test "x$OPENSSL" = "xnone" ; then
1514 key=`autoconf/randpass 37`
1516 key=`openssl rand -base64 33`
1518 mon_fd_password=$key
1522 AC_ARG_WITH(mon-sd-password,
1523 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1525 if test "x$withval" != "xno" ; then
1526 mon_sd_password=$withval
1531 if test "x$mon_sd_password" = "x" ; then
1532 if test "x$OPENSSL" = "xnone" ; then
1533 key=`autoconf/randpass 41`
1535 key=`openssl rand -base64 33`
1537 mon_sd_password=$key
1540 AC_SUBST(dir_password)
1541 AC_SUBST(fd_password)
1542 AC_SUBST(sd_password)
1543 AC_SUBST(mon_dir_password)
1544 AC_SUBST(mon_fd_password)
1545 AC_SUBST(mon_sd_password)
1548 dnl Pickup any database name
1551 AC_ARG_WITH(db_name,
1552 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1554 if test "x$withval" != "x" ; then
1562 AC_ARG_WITH(db_user,
1563 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1565 if test "x$withval" != "x" ; then
1573 AC_ARG_WITH(db_password,
1574 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1576 if test "x$withval" != "x" ; then
1577 db_password=$withval
1581 AC_SUBST(db_password)
1584 dnl Pickup a database port
1587 AC_ARG_WITH(db_port,
1588 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1590 if test "x$withval" != "x" ; then
1598 # Handle users and groups for each daemon
1601 AC_ARG_WITH(dir_user,
1602 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1604 if test "x$withval" != "x" ; then
1611 AC_ARG_WITH(dir_group,
1612 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1614 if test "x$withval" != "x" ; then
1621 AC_ARG_WITH(sd_user,
1622 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1624 if test "x$withval" != "x" ; then
1631 AC_ARG_WITH(sd_group,
1632 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1634 if test "x$withval" != "x" ; then
1641 AC_ARG_WITH(fd_user,
1642 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1644 if test "x$withval" != "x" ; then
1651 AC_ARG_WITH(fd_group,
1652 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1654 if test "x$withval" != "x" ; then
1668 dnl allow setting default executable permissions
1671 AC_ARG_WITH(sbin-perm,
1672 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0754@:>@]),
1674 if test "x$withval" != "x" ; then
1682 dnl ------------------------------------------------
1683 dnl Bacula check for various SQL database engines
1684 dnl ------------------------------------------------
1686 BA_CHECK_POSTGRESQL_DB
1692 # BA_CHECK_SQLITE_DB
1701 dnl -------------------------------------------
1702 dnl enable batch attribute DB insert (default on)
1703 dnl -------------------------------------------
1704 support_batch_insert=no
1705 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1707 if test $pkg = 0; then
1708 support_batch_insert=yes
1709 AC_ARG_ENABLE(batch-insert,
1710 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1712 if test x$enableval = xno; then
1713 support_batch_insert=no
1715 support_batch_insert=yes
1721 dnl Check if postgresql can support batch mode
1722 if test x$DB_TYPE = xpostgresql; then
1723 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1724 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1725 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1727 support_batch_insert=no
1731 if test x$DB_TYPE = xdbi; then
1735 dnl Check for batch insert
1736 if test $DB_PROG = postgresql; then
1737 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1738 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1739 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1743 if test $DB_PROG = mysql; then
1744 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1748 if test $DB_PROG = sqlite3; then
1749 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1753 if test $pkg = 0; then
1754 AC_ARG_ENABLE(batch-insert,
1755 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1757 if test x$enableval = xno; then
1758 support_batch_insert=no
1760 support_batch_insert=yes
1766 dnl If dbi was not chosen, let the comment in file
1770 AC_SUBST(uncomment_dbi)
1772 if test $support_batch_insert = yes ; then
1773 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1776 AC_DEFINE(PROTOTYPES)
1778 dnl --------------------------------------------------------------------------
1779 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1781 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1782 if test -z "$CCOPTS"; then
1783 CCOPTS='-g -O2 -Wall'
1791 dnl See if we can use 64 bit file addresses
1792 largefile_support="no"
1797 dnl --------------------------------------------------------------------------
1798 dnl CHECKING FOR HEADER FILES
1799 dnl --------------------------------------------------------------------------
1837 AC_STRUCT_ST_BLKSIZE
1841 dnl --------------------------------------------------------------------------
1842 dnl Check for utime.h structure
1843 dnl --------------------------------------------------------------------------
1844 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1848 #include <sys/types.h>
1853 ba_cv_header_utime_h=yes
1855 ba_cv_header_utime_h=no
1860 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1862 dnl --------------------------------------------------------------------------
1863 dnl Check for socklen_t
1864 dnl --------------------------------------------------------------------------
1865 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1869 #include <sys/types.h>
1870 #include <sys/socket.h>
1874 ba_cv_header_socklen_t=yes
1876 ba_cv_header_socklen_t=no
1881 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1883 dnl --------------------------------------------------------------------------
1884 dnl Check for ioctl request type
1885 dnl --------------------------------------------------------------------------
1886 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1891 #include <sys/types.h>
1892 #include <sys/ioctl.h>
1894 unsigned long int req = 0;
1898 ba_cv_header_ioctl_req_t=yes
1900 ba_cv_header_ioct_req_t_t=no
1905 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1908 dnl --------------------------------------------------------------------------
1909 dnl Check for typeof()
1910 dnl --------------------------------------------------------------------------
1912 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1916 main(){char *a = 0; a = (typeof a)a;}
1918 ba_cv_have_typeof=yes
1920 ba_cv_have_typeof=no
1922 ba_cv_have_typeof=no
1927 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1932 dnl --------------------------------------------------------------------------
1933 dnl CHECKING FOR FILESYSTEM TYPE
1934 dnl --------------------------------------------------------------------------
1935 AC_MSG_CHECKING(how to get filesystem type)
1937 # The order of these tests is important.
1940 #include <sys/statvfs.h>
1941 #include <sys/fstyp.h>
1943 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1945 if test $fstype = no; then
1948 #include <sys/statfs.h>
1949 #include <sys/fstyp.h>
1951 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1954 if test $fstype = no; then
1957 #include <sys/statfs.h>
1958 #include <sys/vmount.h>
1960 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
1963 if test $fstype = no; then
1968 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
1971 if test $fstype = no; then
1972 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
1974 if test $fstype = no; then
1977 #include <sys/mount.h>
1978 #include <sys/fs_types.h>
1980 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
1983 AC_MSG_RESULT($fstype)
1985 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
1987 dnl --------------------------------------------------------------------------
1988 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
1989 dnl --------------------------------------------------------------------------
1999 AC_CHECK_TYPE(ino_t, unsigned long)
2000 AC_CHECK_TYPE(dev_t, unsigned long)
2001 AC_CHECK_TYPE(daddr_t, long)
2002 AC_CHECK_TYPE(major_t, int)
2003 AC_CHECK_TYPE(minor_t, int)
2004 AC_CHECK_TYPE(ssize_t, int)
2010 AC_CHECK_SIZEOF(char, 1)
2011 AC_CHECK_SIZEOF(short int, 2)
2012 AC_CHECK_SIZEOF(int, 4)
2013 AC_CHECK_SIZEOF(long int, 4)
2014 AC_CHECK_SIZEOF(long long int, 8)
2015 AC_CHECK_SIZEOF(int *, 4)
2017 dnl Check for sys/types.h types
2018 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2022 #include <sys/types.h>
2026 ac_cv_have_u_int="yes"
2028 ac_cv_have_u_int="no"
2033 if test "x$ac_cv_have_u_int" = "xyes" ; then
2034 AC_DEFINE(HAVE_U_INT)
2038 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2042 #include <sys/types.h>
2046 ac_cv_have_intmax_t="yes"
2054 ac_cv_have_intmax_t="yes"
2056 ac_cv_have_intmax_t="no"
2063 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2064 AC_DEFINE(HAVE_INTMAX_T)
2068 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2072 #include <sys/types.h>
2074 u_intmax_t a; a = 1;
2076 ac_cv_have_u_intmax_t="yes"
2082 u_intmax_t a; a = 1;
2084 ac_cv_have_u_intmax_t="yes"
2086 ac_cv_have_u_intmax_t="no"
2093 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2094 AC_DEFINE(HAVE_U_INTMAX_T)
2098 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2102 #include <sys/types.h>
2104 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2106 ac_cv_have_intxx_t="yes"
2108 ac_cv_have_intxx_t="no"
2113 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2114 AC_DEFINE(HAVE_INTXX_T)
2118 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2122 #include <sys/types.h>
2126 ac_cv_have_int64_t="yes"
2128 ac_cv_have_int64_t="no"
2133 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2134 AC_DEFINE(HAVE_INT64_T)
2138 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2142 #include <sys/types.h>
2144 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2146 ac_cv_have_u_intxx_t="yes"
2148 ac_cv_have_u_intxx_t="no"
2153 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2154 AC_DEFINE(HAVE_U_INTXX_T)
2158 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2162 #include <sys/types.h>
2166 ac_cv_have_u_int64_t="yes"
2168 ac_cv_have_u_int64_t="no"
2173 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2174 AC_DEFINE(HAVE_U_INT64_T)
2178 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2179 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2181 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2184 #include <sys/bitypes.h>
2186 int8_t a; int16_t b; int32_t c;
2187 u_int8_t e; u_int16_t f; u_int32_t g;
2188 a = b = c = e = f = g = 1;
2190 AC_DEFINE(HAVE_U_INTXX_T)
2191 AC_DEFINE(HAVE_INTXX_T)
2192 AC_DEFINE(HAVE_SYS_BITYPES_H)
2200 if test -z "$have_u_intxx_t" ; then
2201 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2205 #include <sys/types.h>
2207 uint8_t a; uint16_t b;
2208 uint32_t c; a = b = c = 1;
2210 ac_cv_have_uintxx_t="yes"
2212 ac_cv_have_uintxx_t="no"
2217 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2218 AC_DEFINE(HAVE_UINTXX_T)
2222 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2223 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2225 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2228 #include <sys/bitypes.h>
2230 int64_t a; u_int64_t b;
2233 AC_DEFINE(HAVE_U_INT64_T)
2234 AC_DEFINE(HAVE_INT64_T)
2242 if (test -z "$have_uintxx_t" && \
2243 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2245 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2248 #include <sys/bitypes.h>
2250 uint8_t a; uint16_t b;
2251 uint32_t c; a = b = c = 1;
2253 AC_DEFINE(HAVE_UINTXX_T)
2261 dnl --------------------------------------------------------------------------
2262 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2263 dnl --------------------------------------------------------------------------
2279 [echo 'configure: cannot find needed function.'; exit 1]
2282 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2283 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2284 AC_CHECK_FUNCS(posix_fadvise)
2285 AC_CHECK_FUNCS(fdatasync)
2287 AC_CHECK_FUNCS(chflags)
2289 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2291 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2296 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2297 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2299 call_use_va_copy(1,2,3)
2308 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2310 dnl --------------------------------------------------------------------------
2311 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2312 dnl --------------------------------------------------------------------------
2313 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2315 # If resolver functions are not in libc check for -lnsl or -lresolv.
2316 AC_CHECK_FUNC(gethostbyname_r,
2317 AC_MSG_RESULT(using libc's resolver),
2318 AC_CHECK_LIB(nsl,gethostbyname_r)
2319 AC_CHECK_LIB(resolv,gethostbyname_r))
2321 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2322 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2323 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2325 dnl ----------------------------
2326 dnl check sa_len of sockaddr
2327 dnl ----------------------------
2328 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2332 #include <sys/socket.h>
2334 struct sockaddr s; s.sa_len;
2336 ac_cv_struct_sockaddr_sa_len=yes
2337 ], [ac_cv_struct_sockaddr_sa_len=no
2343 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2344 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2351 AC_FUNC_CLOSEDIR_VOID
2352 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2353 # AC_FUNC_FNMATCH dnl use local version
2355 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2357 AC_CHECK_LIB(sun, getpwnam)
2359 AC_CHECK_HEADERS(zlib.h)
2360 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2362 if test x$FDLIBS = x-lz; then
2363 AC_DEFINE(HAVE_LIBZ)
2368 dnl Check for ACL support and libraries
2372 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2374 if test x$enableval = xyes; then
2376 elif test x$enableval = xno; then
2383 have_extended_acl=no
2384 if test x$support_acl = xyes -o x$support_acl = xauto; then
2385 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2386 AC_CHECK_FUNC(acl_get_file,
2390 AC_CHECK_LIB(acl, acl_get_file,
2393 FDLIBS="-lacl $FDLIBS"
2395 AC_CHECK_LIB(pacl, acl_get_file,
2398 FDLIBS="-lpacl $FDLIBS"
2400 AC_CHECK_LIB(sec, acltotext,
2403 FDLIBS="-lsec $FDLIBS"
2405 AC_CHECK_LIB(sec, acl_totext,
2407 have_extended_acl=yes
2419 if test x$support_acl = xyes -a $have_acl != yes; then
2420 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2421 please either load the acl libraries or rerun configure without --enable-acl])
2423 if test $have_acl = yes; then
2424 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2427 if test $have_extended_acl = yes; then
2428 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2434 dnl Check for XATTR support
2437 AC_ARG_ENABLE(xattr,
2438 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2440 if test x$enableval = xyes; then
2442 elif test x$enableval = xno; then
2449 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2451 dnl First check for *BSD support
2453 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2454 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2455 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2458 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2459 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2460 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2464 if test $have_xattr = no; then
2465 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2468 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2469 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2470 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2475 if test $have_xattr = yes; then
2476 have_extattr_string_in_libc=no
2477 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2479 have_extattr_string_in_libc=yes
2480 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2481 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2486 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2488 if test $have_extattr_string_in_libc = no; then
2489 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2491 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2492 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2493 FDLIBS="-lutil $FDLIBS"
2500 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2502 if test $have_xattr = no; then
2503 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2504 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2507 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2508 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2509 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2513 if test $have_xattr = no; then
2514 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2517 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2518 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2519 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2526 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2528 if test $have_xattr = no; then
2529 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2530 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2531 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2533 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2536 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2537 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2538 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2539 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2540 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2544 if test $have_xattr = yes; then
2545 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2547 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2548 FDLIBS="-lnvpair $FDLIBS"
2554 if test x$support_xattr = xyes -a $have_xattr != yes; then
2555 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2556 please either load the xattr libraries or rerun configure without --enable-xattr])
2558 if test $have_xattr = yes; then
2559 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2565 dnl Check for pthread libraries
2568 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2570 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2572 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2574 AC_CHECK_FUNC(pthread_create)
2583 dnl Check for headers, functions and libraries required to support
2584 dnl keeping readall capabilities
2586 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2587 AC_CHECK_FUNCS(prctl setreuid)
2588 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2589 if test x$CAP_LIBS = x-lcap; then
2590 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2599 if test x$have_gcc = xyes ; then
2600 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2601 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2603 LDFLAGS=${LDFLAGS--O}
2604 DB_LIBS="${SQL_LFLAGS}"
2605 CPPFLAGS="$CPPFLAGS"
2618 AC_SUBST(X_EXTRA_LIBS)
2623 dnl extra configurable objects
2634 dnl Finally we set appropriate distribution specific
2635 dnl variables and defaults
2637 dnl PFILES are platform specific files
2638 PFILES="platforms/Makefile"
2643 hostname=`uname -n | cut -d '.' -f 1`
2644 if test x${hostname} = x ; then
2645 hostname="localhost"
2647 dnl Make sure hostname is resolved
2648 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2649 if test ! $? = 0; then
2650 hostname="localhost"
2656 PSCMD="ps -e -o pid,comm"
2658 platforms/aix/Makefile"
2659 TAPEDRIVE="/dev/rmt0.1"
2663 PTHREAD_LIB="-lpthread -lexc"
2664 if test "${CC}" = "gcc" ; then
2671 TAPEDRIVE="/dev/nrmt0"
2674 DISTVER=`uname -a |awk '{print $3}'`
2675 TAPEDRIVE="/dev/nrmt0"
2676 PTHREAD_LIB="-pthread"
2677 CFLAGS="${CFLAGS} -pthread"
2678 PSCMD="ps -ax -o pid,command"
2682 platforms/bsdi/Makefile \
2683 platforms/bsdi/bacula-fd \
2684 platforms/bsdi/bacula-sd \
2685 platforms/bsdi/bacula-dir"
2686 largefile_support="yes"
2689 DISTVER=`uname -a |awk '{print $3}'`
2690 TAPEDRIVE="/dev/nrst0"
2693 WLDFLAGS="-mwindows"
2697 TAPEDRIVE="/dev/nst0"
2698 PSCMD="ps -e -o pid,command"
2701 platforms/darwin/Makefile"
2705 TAPEDRIVE="/dev/nst0"
2706 PSCMD="ps -e -o pid,command"
2709 platforms/osx/Makefile"
2712 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2715 DISTVER=`cat /etc/debian_version`
2716 if test -f /etc/lsb-release ; then
2718 if test "x$DISTRIB_ID" != "x" ; then
2719 DISTNAME=$DISTRIB_ID
2721 if test "x$DISTRIB_RELEASE" != "x" ; then
2722 DISTVER=$DISTRIB_RELEASE
2725 if test "$DISTNAME" = "Ubuntu" ; then
2728 TAPEDRIVE="/dev/nst0"
2729 PSCMD="ps -e -o pid,command"
2730 if test "$DISTNAME" = "ubuntu" ; then
2732 platforms/ubuntu/Makefile \
2733 platforms/ubuntu/bacula-fd \
2734 platforms/ubuntu/bacula-sd \
2735 platforms/ubuntu/bacula-dir"
2738 platforms/debian/Makefile \
2739 platforms/debian/bacula-fd \
2740 platforms/debian/bacula-sd \
2741 platforms/debian/bacula-dir"
2745 DISTVER=`uname -a |awk '{print $3}'`
2746 VER=`echo $DISTVER | cut -c 1`
2747 if test x$VER = x4 ; then
2748 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2749 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2753 TAPEDRIVE="/dev/nrsa0"
2754 PSCMD="ps -ax -o pid,command"
2756 platforms/freebsd/Makefile \
2757 platforms/freebsd/bacula-fd \
2758 platforms/freebsd/bacula-sd \
2759 platforms/freebsd/bacula-dir"
2760 largefile_support="yes"
2763 PSCMD="UNIX95=1; ps -e -o pid,comm"
2764 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2766 TAPEDRIVE="/dev/rmt/0hnb"
2767 PTHREAD_LIB="-lpthread"
2768 AC_DEFINE([_INCLUDE_LONGLONG])
2772 TAPEDRIVE="/dev/rmt/0cbn"
2773 PSCMD="ps -e -o pid,comm"
2775 platforms/irix/Makefile \
2776 platforms/irix/bacula-fd \
2777 platforms/irix/bacula-sd \
2778 platforms/irix/bacula-dir"
2781 DISTVER=`uname -a |awk '{print $3}'`
2784 TAPEDRIVE="/dev/nrst0"
2785 PSCMD="ps -ax -o pid,command"
2786 PTHREAD_LIB="-pthread"
2787 CFLAGS="${CFLAGS} -pthread"
2790 DISTVER=`uname -a |awk '{print $3}'`
2793 TAPEDRIVE="/dev/nrst0"
2794 PSCMD="ps -ax -o pid,command"
2795 PTHREAD_LIB="-pthread"
2796 CFLAGS="${CFLAGS} -pthread"
2798 platforms/openbsd/Makefile \
2799 platforms/openbsd/bacula-fd \
2800 platforms/openbsd/bacula-sd \
2801 platforms/openbsd/bacula-dir"
2804 if test -f /etc/whitebox-release ; then
2805 f=/etc/whitebox-release
2807 f=/etc/redhat-release
2809 if test `cat $f | grep release |\
2810 cut -f 3 -d ' '`x = "Enterprise"x ; then
2811 DISTVER="Enterprise "`cat $f | grep release |\
2814 DISTVER=`cat /etc/redhat-release | grep release |\
2817 TAPEDRIVE="/dev/nst0"
2818 PSCMD="ps -e -o pid,command"
2820 platforms/redhat/Makefile \
2821 platforms/redhat/bacula-fd \
2822 platforms/redhat/bacula-sd \
2823 platforms/redhat/bacula-dir
2827 DISTVER=`cat /etc/mandrake-release | grep release |\
2829 TAPEDRIVE="/dev/nst0"
2830 PSCMD="ps -e -o pid,command"
2832 platforms/mandrake/Makefile \
2833 platforms/mandrake/bacula-fd \
2834 platforms/mandrake/bacula-sd \
2835 platforms/mandrake/bacula-dir \
2836 platforms/mandrake/bacula.spec \
2840 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2841 TAPEDRIVE="/dev/nst0"
2842 PSCMD="ps -e -o pid,command"
2844 platforms/gentoo/Makefile \
2845 platforms/gentoo/bacula-init \
2846 platforms/gentoo/bacula-fd \
2847 platforms/gentoo/bacula-sd \
2848 platforms/gentoo/bacula-dir"
2851 DISTVER=`cat /etc/slackware-version`
2852 TAPEDRIVE="/dev/nst0"
2853 PSCMD="ps -e -o pid,command"
2855 platforms/slackware/Makefile \
2856 platforms/slackware/rc.bacula-fd \
2857 platforms/slackware/rc.bacula-sd \
2858 platforms/slackware/rc.bacula-dir\
2859 platforms/slackware/functions.bacula"
2863 TAPEDRIVE="/dev/rmt/0cbn"
2864 PSCMD="ps -e -o pid,comm"
2866 platforms/solaris/Makefile \
2867 platforms/solaris/bacula-fd \
2868 platforms/solaris/bacula-sd \
2869 platforms/solaris/bacula-dir"
2870 if test x$DISTVER = x5.6 ; then
2871 AC_DEFINE(HAVE_OLD_SOCKOPT)
2873 LIBS="$LIBS -lresolv"
2876 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2878 TAPEDRIVE="/dev/nst0"
2879 PSCMD="ps -e -o pid,command"
2881 platforms/suse/Makefile \
2882 platforms/suse/bacula-fd \
2883 platforms/suse/bacula-sd \
2884 platforms/suse/bacula-dir \
2885 platforms/suse/bacula \
2886 platforms/suse/bacula.spec"
2891 TAPEDRIVE="/dev/nst0"
2892 PSCMD="ps -e -o pid,command"
2894 platforms/suse/Makefile \
2895 platforms/suse/bacula-fd \
2896 platforms/suse/bacula-sd \
2897 platforms/suse/bacula-dir"
2901 TAPEDRIVE="/dev/nst0"
2904 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2910 LIBS="$PTHREAD_LIB $LIBS"
2912 AC_DEFINE_UNQUOTED(lld, "$lld")
2913 AC_DEFINE_UNQUOTED(llu, "$llu")
2921 dnl common parts of the Makefile
2922 MCOMMON=./autoconf/Make.common
2923 AC_SUBST_FILE(MCOMMON)
2926 if test "x${subsysdir}" = "x${sbindir}" ; then
2929 echo "You have set both --sbindir and --with-subsys-dir"
2930 echo " equal to: ${subsysdir} "
2931 echo "This is not permitted. Please reconfigure."
2933 echo "Aborting configuration ..."
2939 AC_OUTPUT([autoconf/Make.common \
2942 scripts/startmysql \
2944 scripts/btraceback \
2950 scripts/bacula-ctl-dir \
2951 scripts/bacula-ctl-fd \
2952 scripts/bacula-ctl-sd \
2953 scripts/devel_bacula \
2956 scripts/bacula.desktop.gnome1 \
2957 scripts/bacula.desktop.gnome2 \
2958 scripts/bacula.desktop.gnome1.consolehelper \
2959 scripts/bacula.desktop.gnome2.consolehelper \
2960 scripts/bacula.desktop.gnome1.xsu \
2961 scripts/bacula.desktop.gnome2.xsu \
2962 scripts/bgnome-console.console_apps \
2963 scripts/mtx-changer \
2964 scripts/disk-changer \
2965 scripts/dvd-handler \
2966 scripts/dvd-simulator \
2967 scripts/bacula-tray-monitor.desktop \
2968 scripts/logwatch/Makefile \
2969 scripts/logwatch/logfile.bacula.conf \
2970 scripts/wxconsole.console_apps \
2971 scripts/wxconsole.desktop.consolehelper \
2972 scripts/wxconsole.desktop.xsu \
2973 scripts/bat.desktop \
2974 scripts/bat.desktop.xsu \
2975 scripts/bat.desktop.consolehelper \
2976 scripts/bat.console_apps \
2979 src/console/Makefile \
2980 src/console/bconsole.conf \
2981 src/qt-console/bat.conf \
2982 src/qt-console/bat.pro \
2983 src/qt-console/bat.pro.mingw32 \
2984 src/qt-console/install_conf_file \
2985 src/wx-console/Makefile \
2986 src/wx-console/bwx-console.conf \
2987 src/tray-monitor/Makefile \
2988 src/tray-monitor/tray-monitor.conf \
2990 src/dird/bacula-dir.conf \
2992 src/stored/Makefile \
2993 src/stored/bacula-sd.conf \
2994 src/filed/Makefile \
2995 src/filed/bacula-fd.conf \
2997 src/cats/make_catalog_backup \
2998 src/cats/delete_catalog_backup \
2999 src/cats/create_postgresql_database \
3000 src/cats/update_postgresql_tables \
3001 src/cats/make_postgresql_tables \
3002 src/cats/grant_postgresql_privileges \
3003 src/cats/drop_postgresql_tables \
3004 src/cats/drop_postgresql_database \
3005 src/cats/create_mysql_database \
3006 src/cats/update_mysql_tables \
3007 src/cats/make_mysql_tables \
3008 src/cats/grant_mysql_privileges \
3009 src/cats/drop_mysql_tables \
3010 src/cats/drop_mysql_database \
3011 src/cats/create_sqlite3_database \
3012 src/cats/update_sqlite3_tables \
3013 src/cats/make_sqlite3_tables \
3014 src/cats/grant_sqlite3_privileges \
3015 src/cats/drop_sqlite3_tables \
3016 src/cats/drop_sqlite3_database \
3019 src/cats/create_bdb_database \
3020 src/cats/update_bdb_tables \
3021 src/cats/make_bdb_tables \
3022 src/cats/grant_bdb_privileges \
3023 src/cats/drop_bdb_tables \
3024 src/cats/drop_bdb_database \
3025 src/cats/create_bacula_database \
3026 src/cats/update_bacula_tables \
3027 src/cats/grant_bacula_privileges \
3028 src/cats/make_bacula_tables \
3029 src/cats/drop_bacula_tables \
3030 src/cats/drop_bacula_database \
3031 src/findlib/Makefile \
3032 src/tools/Makefile \
3033 src/plugins/fd/Makefile \
3034 src/plugins/sd/Makefile \
3035 src/plugins/dir/Makefile \
3036 src/win32/Makefile.inc \
3038 updatedb/update_mysql_tables_9_to_10 \
3039 updatedb/update_sqlite3_tables_9_to_10 \
3040 updatedb/update_postgresql_tables_9_to_10 \
3041 updatedb/update_mysql_tables_10_to_11 \
3042 updatedb/update_sqlite3_tables_10_to_11 \
3043 updatedb/update_postgresql_tables_10_to_11 \
3044 examples/nagios/check_bacula/Makefile \
3049 if test "${support_bat}" = "yes" ; then
3050 if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then
3051 AC_MSG_ERROR([Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation])
3056 if test "x$QMAKEQT4" != "xnone"; then
3061 echo "Creating bat Makefile"
3070 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3071 dnl requires gcc). If it's not, don't rebuild dependencies
3073 if test X"$GCC" = "Xyes" ; then
3074 echo "Doing make of dependencies"
3075 ${MAKE:-make} depend
3079 chmod 755 install_conf_file build-depkgs-qt-console
3083 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3084 chmod 755 dvd-handler dvd-simulator breload make_catalog_backup.pl
3085 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3089 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3090 chmod 755 $c/update_postgresql_tables_10_to_11
3094 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3095 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3097 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3098 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3100 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3101 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3103 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3104 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3106 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3107 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3109 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup
3113 chmod 755 src/win32/build-depkgs-mingw32
3115 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3116 largefile_support="yes"
3119 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3120 if test X"$GCC" = "Xyes" ; then
3122 dnl A whole lot of hand springs to get the compiler version.
3123 dnl This is because gcc changed the output in version 3.0
3125 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3126 if test "x${CCVERSION}" = "x" ; then
3127 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3129 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3130 if test x"${CXXVERSION}" = x ; then
3131 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3135 # clean up any old junk
3141 if test "x${db_type}" = "xInternal" ; then
3144 echo "You have not specified either --enable-client-only or one of the"
3145 echo " supported databases: MySQL, PostgreSQL, SQLite3, SQLite or DBI."
3146 echo " This is not permitted. Please reconfigure."
3148 echo "Aborting the configuration ..."
3155 Configuration on `date`:
3157 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3158 Bacula version: ${BACULA} ${VERSION} (${DATE})
3159 Source code location: ${srcdir}
3160 Install binaries: ${sbindir}
3161 Install libraries: ${libdir}
3162 Install config files: ${sysconfdir}
3163 Scripts directory: ${scriptdir}
3164 Archive directory: ${archivedir}
3165 Working directory: ${working_dir}
3166 PID directory: ${piddir}
3167 Subsys directory: ${subsysdir}
3168 Man directory: ${mandir}
3169 Data directory: ${datarootdir}
3170 Plugin directory: ${plugindir}
3171 C Compiler: ${CC} ${CCVERSION}
3172 C++ Compiler: ${CXX} ${CXXVERSION}
3173 Compiler flags: ${WCFLAGS} ${CFLAGS}
3174 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3176 Statically Linked Tools: ${support_static_tools}
3177 Statically Linked FD: ${support_static_fd}
3178 Statically Linked SD: ${support_static_sd}
3179 Statically Linked DIR: ${support_static_dir}
3180 Statically Linked CONS: ${support_static_cons}
3181 Database type: ${db_type}
3182 Database port: ${db_port}
3183 Database lib: ${DB_LIBS}
3184 Database name: ${db_name}
3185 Database user: ${db_user}
3187 Job Output Email: ${job_email}
3188 Traceback Email: ${dump_email}
3189 SMTP Host Address: ${smtp_host}
3191 Director Port: ${dir_port}
3192 File daemon Port: ${fd_port}
3193 Storage daemon Port: ${sd_port}
3195 Director User: ${dir_user}
3196 Director Group: ${dir_group}
3197 Storage Daemon User: ${sd_user}
3198 Storage DaemonGroup: ${sd_group}
3199 File Daemon User: ${fd_user}
3200 File Daemon Group: ${fd_group}
3202 SQL binaries Directory ${SQL_BINDIR}
3204 Large file support: $largefile_support
3205 Bacula conio support: ${got_conio} ${CONS_LIBS}
3206 readline support: ${got_readline} ${PRTREADLINE_SRC}
3207 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3208 TLS support: ${support_tls}
3209 Encryption support: ${support_crypto}
3210 ZLIB support: ${have_zlib}
3211 enable-smartalloc: ${support_smartalloc}
3212 enable-lockmgr: ${support_lockmgr}
3213 bat support: ${support_bat} ${QWT_LDFLAGS}
3214 enable-gnome: ${support_gnome} ${gnome_version}
3215 enable-bwx-console: ${support_wx_console} ${wx_version}
3216 enable-tray-monitor: ${support_tray_monitor}
3217 client-only: ${build_client_only}
3218 build-dird: ${build_dird}
3219 build-stored: ${build_stored}
3220 Plugin support: ${have_plugins}
3221 ACL support: ${have_acl}
3222 XATTR support: ${have_xattr}
3223 Python support: ${support_python} ${PYTHON_LIBS}
3224 Batch insert enabled: ${support_batch_insert}
3228 # create a small shell script useful for support with
3229 # configure options and config.out info
3230 cat > scripts/bacula_config << EOF
3233 $ $0 $ac_configure_args
3235 cat config.out >> scripts/bacula_config
3236 echo __EOC__ >> scripts/bacula_config
3237 chmod 755 scripts/bacula_config
3241 # Display a warning message if postgresql client lib is <= 8.1
3242 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3243 -a x$support_batch_insert = xyes
3245 echo "WARNING: Your PostgreSQL client library is too old to detect "
3246 echo " if it was compiled with --enable-thread-safety, consider to"
3247 echo " upgrade it in order to avoid problems with Batch insert mode"