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 dnl -------------------------------------------------------
69 dnl Check for programs.
70 dnl ------------------------------------------------------
72 AC_PATH_PROG(MV, mv, mv)
74 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
75 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
76 dnl of strange output of the configure script (like things don't exist etc.).
77 dnl So we name it REMOVE (more software has run into this problem)
78 AC_PATH_PROG(REMOVE, rm, rm)
79 AC_PATH_PROG(CP, cp, cp)
80 AC_PATH_PROG(SED, sed, sed)
81 AC_PATH_PROG(ECHO, echo, echo)
82 AC_PATH_PROG(CMP, cmp, cmp)
83 AC_PATH_PROG(TBL, tbl, tbl)
84 AC_PATH_PROG(AR, ar, ar)
85 AC_PATH_PROG(OPENSSL, openssl, none)
86 AC_PATH_PROG(MTX, mtx, mtx)
87 AC_PATH_PROG(DD, dd, dd)
88 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
89 AC_PATH_PROG(PYTHON, python, python)
90 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
91 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
92 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
93 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
94 AC_PATH_PROG(QMAKE, qmake, none)
95 AC_PATH_PROG(GMAKE, gmake, none)
96 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
97 if test "x$WXCONFIG" = x; then
100 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
101 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
102 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
103 AC_PATH_PROG(PIDOF, pidof, pidof)
105 # Some AWK programs fail, so test it and warn the user
106 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 }
107 { if ((prog == $2) || (("(" prog ")") == $2) ||
108 (("[" prog "]") == $2) ||
109 ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
111 AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
112 The regex engine of $AWK is too broken to be used you
113 might want to install GNU AWK.
114 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
117 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
120 test -n "$ARFLAG" || ARFLAGS="cr"
127 AC_SUBST(LOCAL_CFLAGS)
128 AC_SUBST(LOCAL_LDFLAGS)
131 dnl --------------------------------------------------
133 dnl --------------------------------------------------
135 AC_ARG_ENABLE(libtool,
136 AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
138 if test x$enableval = xno; then
143 LT_INIT([shared disable-static])
146 if test x$use_libtool != xno; then
147 DEFAULT_OBJECT_TYPE=".lo"
148 DEFAULT_ARCHIVE_TYPE=".la"
149 DEFAULT_SHARED_OBJECT_TYPE=".la"
150 LIBTOOL="\$(LIBTOOL)"
151 LIBTOOL_INSTALL_TARGET="libtool-install"
152 LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
153 LIBTOOL_CLEAN_TARGET="libtool-clean"
154 QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
155 FD_PLUGIN_DIR="src/plugins/fd"
158 DEFAULT_OBJECT_TYPE=".o"
159 DEFAULT_ARCHIVE_TYPE=".a"
160 DEFAULT_SHARED_OBJECT_TYPE=".so"
161 LIBTOOL="# \$(LIBTOOL)"
162 LIBTOOL_INSTALL_TARGET=""
163 LIBTOOL_UNINSTALL_TARGET=""
164 LIBTOOL_CLEAN_TARGET=""
165 QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
170 AC_SUBST(DEFAULT_OBJECT_TYPE)
171 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
172 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
174 AC_SUBST(LIBTOOL_INSTALL_TARGET)
175 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
176 AC_SUBST(LIBTOOL_CLEAN_TARGET)
177 AC_SUBST(QMAKE_LIBTOOL)
178 AC_SUBST(FD_PLUGIN_DIR)
180 dnl --------------------------------------------------
181 dnl Include file handling
182 dnl --------------------------------------------------
183 AC_ARG_ENABLE(includes,
184 AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
186 if test x$enableval = xyes; then
192 dnl It only makes sense to install include files when you install libraries which only happens when
193 dnl libtool is enabled
195 if test x$use_libtool != xno -a x$install_includes = xyes; then
196 INCLUDE_INSTALL_TARGET="install-includes"
197 INCLUDE_UNINSTALL_TARGET="uninstall-includes"
199 INCLUDE_INSTALL_TARGET=""
200 INCLUDE_UNINSTALL_TARGET=""
202 AC_SUBST(INCLUDE_INSTALL_TARGET)
203 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
205 dnl --------------------------------------------------
206 dnl Bacula OP Sys determination (see aclocal.m4)
207 dnl --------------------------------------------------
210 dnl -----------------------------------------------------------
211 dnl Bacula OPSys Distribution determination (see aclocal.m4)
212 dnl ----------------------------------------------------------
213 BA_CHECK_OPSYS_DISTNAME
215 dnl --------------------------------------------------
216 dnl Suppport for gettext (translations)
217 dnl By default, $datarootdir is ${prefix}/share
218 dnl --------------------------------------------------
219 AM_GNU_GETTEXT([external])
221 dnl ------------------------------------------------------------------
222 dnl If the user has not set --prefix, we set our default to nothing.
223 dnl In this case, if the user has not set --sysconfdir, we set it
224 dnl to the package default of /etc/bacula. If either --prefix or
225 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
226 dnl If the user has not set --libdir, we set it to the package
227 dnl default of /usr/lib. If either --prefix or --libdir is set,
228 dnl we leave libdir alone except to eval it. If the user has not set
229 dnl --includedir, we set it to the package default of /usr/include.
230 dnl If either --prefix or --includedir is set, we leave includedir
231 dnl alone except to eval it
232 dnl ------------------------------------------------------------------
233 os_name=`uname -s 2>/dev/null`
234 if test x${prefix} = xNONE ; then
235 if test `eval echo ${sysconfdir}` = NONE/etc ; then
236 sysconfdir=/etc/bacula
239 if test `eval echo ${libdir}` = NONE/lib ; then
242 os_processor=`uname -p 2>/dev/null`
243 case ${os_processor} in
258 if test `eval echo ${includedir}` = NONE/include ; then
259 includedir=/usr/include
262 if test `eval echo ${datarootdir}` = NONE/share ; then
263 datarootdir=/usr/share
268 dnl -------------------------------------------------------------------------
269 dnl If the user has not set --exec-prefix, we default to ${prefix}
270 dnl -------------------------------------------------------------------------
271 if test x${exec_prefix} = xNONE ; then
272 exec_prefix=${prefix}
275 sysconfdir=`eval echo ${sysconfdir}`
276 datarootdir=`eval echo ${datarootdir}`
277 docdir=`eval echo ${docdir}`
278 htmldir=`eval echo ${htmldir}`
279 libdir=`eval echo ${libdir}`
280 includedir=`eval echo ${includedir}`
281 localedir=`eval echo ${datarootdir}/locale`
282 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
283 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir")
285 dnl ------------------------------------------------------------------
286 dnl If the user has not set --sbindir, we set our default as /sbin
287 dnl ------------------------------------------------------------------
288 if test x$sbindir = x'${exec_prefix}/sbin' ; then
289 sbindir=${exec_prefix}/sbin
291 sbindir=`eval echo ${sbindir}`
293 dnl -------------------------------------------------------------------------
294 dnl If the user has not set --mandir, we default to /usr/share/man
295 dnl -------------------------------------------------------------------------
296 if test x$mandir = x'${prefix}/man' ; then
297 mandir=/usr/share/man
300 dnl -------------------------------------------------------------------------
301 dnl If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
302 dnl -------------------------------------------------------------------------
303 if test x$htmldir = x${docdir} ; then
304 htmldir=`eval echo ${docdir}bacula/html`
307 dnl -------------------------------------------------------------------------
308 dnl If the user has not set --docdir, we default to /usr/share/doc/
309 dnl -------------------------------------------------------------------------
310 if test x$docdir = x'/usr/share/doc/' ; then
311 docdir=`eval echo ${docdir}bacula`
315 AC_PATH_PROGS(MSGFMT, msgfmt, no)
316 if test "$MSGFMT" = "no"
318 echo 'msgfmt program not found, disabling NLS !'
320 USE_INCLUDED_LIBINTL=no
328 support_postgresql=no
331 support_smartalloc=yes
336 support_wx_console=no
337 support_tray_monitor=no
342 support_static_tools=no
345 support_static_dir=no
346 support_static_cons=no
356 dnl --------------------------------------------------------------------------
357 dnl CHECKING COMMAND LINE OPTIONS
358 dnl --------------------------------------------------------------------------
360 dnl -------------------------------------------
361 dnl gnome (default off)
362 dnl -------------------------------------------
364 AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
366 if test x$enableval = xyes; then
373 if test x$support_gnome = xyes; then
374 AC_MSG_ERROR(bgnome-console no longer supported)
375 AC_MSG_ERROR(--enable-gnome option no longer supported)
377 # AC_SUBST(GNOME_DIR)
379 dnl -------------------------------------------
380 dnl bat (default off)
381 dnl -------------------------------------------
383 AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
385 if test x$enableval = xyes; then
386 AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled])
393 if test x$support_bat = xyes; then
394 abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
396 if test $pkg = 0; then
397 BAT_DIR=src/qt-console
399 AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
404 dnl The qwt library was used with bat, but that is no longer the case
412 dnl if test x$support_bat = xyes; then
413 dnl AC_MSG_CHECKING(for qwt support)
415 dnl AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
417 dnl case "$with_qwt" in
422 dnl if test -f ${with_qwt}/include/qwt.h; then
423 dnl QWT_INC="${with_qwt}/include"
424 dnl QWT_LDFLAGS="-L${with_qwt}/lib"
434 dnl dnl Search in standard places, or --with-qwt not specified
436 dnl if test $no_qwt = no; then
437 dnl if test x$QWT_INC = x; then
438 dnl for root in /usr /usr/local; do
439 dnl for ver in qwt qwt5 qwt-qt4; do
440 dnl if test -f ${root}/include/${ver}/qwt.h; then
441 dnl QWT_INC="${root}/include/${ver}"
442 dnl if test -d ${root}/lib64/; then
443 dnl QWT_LDFLAGS="-L${root}/lib64"
444 dnl elif test -d ${root}/lib/64/; then
445 dnl QWT_LDFLAGS="-L${root}/64"
447 dnl QWT_LDFLAGS="-L${root}/lib"
458 dnl if test x$QWT_INC = x; then
459 dnl AC_MSG_RESULT(no)
461 dnl AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
462 dnl AC_MSG_RESULT(yes)
468 AC_SUBST(QWT_LDFLAGS)
472 dnl -------------------------------------------
473 dnl bwx-console (default off)
474 dnl -------------------------------------------
475 AC_ARG_ENABLE(bwx-console,
476 AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
478 if test x$enableval = xyes; then
479 support_wx_console=yes
485 if test x$support_wx_console = xyes; then
486 abc=`$WXCONFIG $WXFLAGS --cppflags`
488 if test $pkg = 0; then
489 wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
490 WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
491 WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
493 AC_SUBST(WXCONS_CPPFLAGS)
494 AC_SUBST(WXCONS_LDFLAGS)
495 WX_DIR="src/wx-console"
498 echo "wx-config program not found. bwx-console disabled."
500 support_wx_console=no
505 dnl -------------------------------------------
506 dnl tray-monitor (default off)
507 dnl -------------------------------------------
508 AC_ARG_ENABLE(tray-monitor,
509 AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
511 if test x$enableval = xyes; then
512 support_tray_monitor=yes
518 if test x$support_tray_monitor = xyes; then
519 abc=`$PKGCONFIG --exists gtk+-2.0`
521 if test $pkg = 0; then
522 TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
523 TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
524 AC_SUBST(TRAY_MONITOR_CPPFLAGS)
525 AC_SUBST(TRAY_MONITOR_LDFLAGS)
526 TRAY_MONITOR_DIR=src/tray-monitor
527 abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
529 if test $pkg = 0; then
530 AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
534 AC_SUBST(TRAY_MONITOR_DIR)
536 dnl -------------------------------------------
537 dnl smartalloc (default off)
538 dnl -------------------------------------------
539 AC_ARG_ENABLE(smartalloc,
540 AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
542 if test x$enableval = xno; then
543 support_smartalloc=no
548 if test x$support_smartalloc = xyes; then
549 AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
552 dnl -------------------------------------------
553 dnl Lock Manager (default off)
554 dnl -------------------------------------------
555 AC_ARG_ENABLE(lockmgr,
556 AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
558 if test x$enableval = xyes; then
564 if test x$support_lockmgr = xyes; then
565 AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
569 dnl -------------------------------------------
570 dnl static-tools (default off)
571 dnl -------------------------------------------
572 AC_ARG_ENABLE(static-tools,
573 AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
575 if test x$enableval = xyes; then
576 if test x$use_libtool = xyes; then
577 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
578 please rerun configure with --disable-libtool])
580 support_static_tools=yes
586 if test x$support_static_tools = xyes; then
587 TTOOL_LDFLAGS="-static"
589 AC_SUBST(TTOOL_LDFLAGS)
591 dnl -------------------------------------------
592 dnl static-fd (default off)
593 dnl -------------------------------------------
594 AC_ARG_ENABLE(static-fd,
595 AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
597 if test x$enableval = xyes; then
598 if test x$use_libtool = xyes; then
599 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
600 please rerun configure with --disable-libtool])
602 support_static_fd=yes
608 if test x$support_static_fd = xyes; then
609 STATIC_FD="static-bacula-fd"
613 dnl -------------------------------------------
614 dnl static-sd (default off)
615 dnl -------------------------------------------
616 AC_ARG_ENABLE(static-sd,
617 AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
619 if test x$enableval = xyes; then
620 if test x$use_libtool = xyes; then
621 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
622 please rerun configure with --disable-libtool])
624 support_static_sd=yes
630 if test x$support_static_sd = xyes; then
631 STATIC_SD="static-bacula-sd"
635 dnl -------------------------------------------
636 dnl static-dir (default off)
637 dnl -------------------------------------------
638 AC_ARG_ENABLE(static-dir,
639 AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
641 if test x$enableval = xyes; then
642 if test x$use_libtool = xyes; then
643 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
644 please rerun configure with --disable-libtool])
646 support_static_dir=yes
652 if test x$support_static_dir = xyes; then
653 STATIC_DIR="static-bacula-dir"
657 dnl -------------------------------------------
658 dnl static-cons (default off)
659 dnl -------------------------------------------
660 AC_ARG_ENABLE(static-cons,
661 AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
663 if test x$enableval = xyes; then
664 if test x$use_libtool = xyes; then
665 AC_MSG_ERROR([Libtool is enabled, not compatible with static tools,
666 please rerun configure with --disable-libtool])
668 support_static_cons=yes
676 if test x$support_static_cons = xyes; then
677 STATIC_CONS="static-bconsole"
678 STATIC_GNOME_CONS="static-bgnome-console"
679 STATIC_WX_CONS="static-bwx-console"
681 AC_SUBST(STATIC_CONS)
682 AC_SUBST(STATIC_GNOME_CONS)
683 AC_SUBST(STATIC_WX_CONS)
685 dnl -------------------------------------------
686 dnl client_only (default off)
687 dnl -------------------------------------------
688 AC_ARG_ENABLE(client-only,
689 AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
691 if test x$enableval = xyes; then
692 build_client_only=yes
698 if test x$build_client_only = xno; then
705 dnl -------------------------------------------
706 dnl director (default on)
707 dnl -------------------------------------------
708 AC_ARG_ENABLE(build-dird,
709 AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
711 if test x$enableval = xno; then
716 if test x$build_dird = xyes; then
721 DIR_TOOLS="NODIRTOOLS"
726 dnl -------------------------------------------
727 dnl stored (default on)
728 dnl -------------------------------------------
729 AC_ARG_ENABLE(build-stored,
730 AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
732 if test x$enableval = xno; then
737 if test x$build_stored = xyes; then
738 STORED_DIR="src/stored"
744 dnl ---------------------------------------------------
745 dnl Check for conio (Bacula readline substitute)(
746 dnl ---------------------------------------------------
747 dnl this allows you to turn it completely off
749 AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
751 if test x$enableval = xno; then
758 dnl ---------------------------------------------------
759 dnl Check for IPv6 support
760 dnl ---------------------------------------------------
761 dnl this allows you to turn it completely off
764 AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
766 if test x$enableval = xno; then
772 if test x$support_ipv6 = xyes; then
773 AC_TRY_LINK([ #include <sys/types.h>
774 #include <sys/socket.h>
775 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
776 [support_ipv6=yes], [support_ipv6=no])
779 if test x$support_ipv6 = xyes; then
780 AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
784 if test x$support_conio = xyes; then
785 AC_CHECK_HEADER(termcap.h,
786 [ AC_CHECK_LIB(termcap, tgetent,
787 [ CONS_LIBS="-ltermcap"
792 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
794 [ AC_CHECK_LIB(ncurses, tgetent,
795 [ CONS_LIBS="-lncurses"
800 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
805 AC_CHECK_HEADERS(curses.h)
806 AC_CHECK_HEADER(term.h,
807 [ AC_CHECK_LIB(curses, tgetent,
808 [ CONS_LIBS="-lcurses"
813 AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled])
816 [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
825 dnl ---------------------------------------------------
826 dnl Check for readline support/directory (default off)
827 dnl ---------------------------------------------------
828 dnl this allows you to turn it completely off
829 AC_ARG_ENABLE(readline,
830 AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
832 if test x$enableval = xno; then
840 if test x$support_readline = xyes; then
841 AC_ARG_WITH(readline,
842 AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
844 case "$with_readline" in
849 if test -f ${with_readline}/readline.h; then
850 CONS_INC="-I${with_readline}"
851 CONS_LDFLAGS="-L$with_readline"
852 elif test -f ${with_readline}/include/readline/readline.h; then
853 CONS_INC="-I${with_readline}/include/readline"
854 CONS_LDFLAGS="-L${with_readline}/lib"
855 with_readline="${with_readline}/include/readline"
857 with_readline="/usr/include/readline"
860 AC_CHECK_HEADER(${with_readline}/readline.h,
862 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
863 CONS_LIBS="-lreadline -lhistory -ltermcap"
867 echo "readline.h not found. readline turned off ..."
874 dnl check for standard readline library
875 AC_CHECK_HEADER(/usr/include/readline/readline.h,
877 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
879 CONS_INC="-I/usr/include/readline"
880 CONS_LIBS="-lreadline -ltermcap"
882 dnl Did not find standard library, so try Bacula's default
883 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h,
885 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
887 CONS_INC="-I${TOP_DIR}/depkgs/readline"
888 CONS_LIBS="-lreadline -lhistory -ltermcap"
889 CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
890 PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
893 echo "readline.h not found. readline turned off ..."
907 AC_SUBST(CONS_LDFLAGS)
908 AC_SUBST(READLINE_SRC)
910 dnl Minimal stuff for readline Makefile configuration
915 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
916 AC_CHECK_FUNCS(nanosleep nl_langinfo)
917 AC_CHECK_HEADERS(varargs.h)
919 dnl End of readline/conio stuff
920 dnl -----------------------------------------------------------------------
922 dnl -----------------------------------------------------------------------
923 dnl Check for Python support
925 AC_MSG_CHECKING(for Python support)
927 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.]),
931 if test "$withval" != "no"; then
932 if test "$withval" = "yes"; then
933 if test -e /usr/bin/python-config ; then
934 PYTHON_INCDIR=`/usr/bin/python-config --includes`
935 PYTHON_LIBS=`/usr/bin/python-config --libs`
937 for python_root in /usr /usr/local /usr/sfw; do
938 for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
939 if test -f $python_root/include/${ver}/Python.h; then
940 PYTHON_INCDIR=-I$python_root/include/${ver}
941 if test -d $python_root/lib64/${ver}/config; then
942 PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
944 PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
951 if test x$PYTHON_INCDIR = x; then
952 if test -f $prefix/include/Python.h; then
953 PYTHON_INCDIR=-I$prefix/include
954 if test -d $prefix/lib64/config; then
955 PYTHON_LIBS="-L$prefix/lib64/config -lpython"
957 PYTHON_LIBS="-L$prefix/lib/config -lpython"
961 AC_MSG_ERROR(Unable to find Python.h in standard locations)
966 if test -e $withval/bin/python-config ; then
967 PYTHON_INCDIR=`$withval/bin/python-config --includes`
968 PYTHON_LIBS=`$withval/bin/python-config --libs`
969 elif test -f $withval/Python.h; then
970 PYTHON_INCDIR=-I$withval
971 PYTHON_LIBS="-L$withval/config -lpython"
972 elif test -f $withval/include/Python.h; then
973 PYTHON_INCDIR=-I$withval/include
974 if test -d $withval/lib64/config; then
975 PYTHON_LIBS="-L$withval/lib64/config -lpython"
977 PYTHON_LIBS="-L$withval/lib/config -lpython"
979 elif test -f $withval/include/python/Python.h; then
980 PYTHON_INCDIR=-I$withval/include/python
981 if test -d $withval/lib64/python/config; then
982 PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
984 PYTHON_LIBS="-L$withval/lib/python/config -lpython"
988 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
992 AC_DEFINE([HAVE_PYTHON], 1)
995 AC_MSG_NOTICE(checking for more Python libs)
996 saved_LIBS="$LIBS"; LIBS=
997 AC_SEARCH_LIBS(shm_open, [rt])
998 AC_CHECK_LIB(util, openpty)
999 PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1008 AC_SUBST(PYTHON_LIBS)
1009 AC_SUBST(PYTHON_INCDIR)
1012 dnl Find where sockets are (especially for Solaris)
1013 dnl Do this before the TCP Wrappers test since tcp wrappers
1014 dnl uses the socket library and some linkers are stupid.
1016 AC_CHECK_FUNC(socket,
1017 AC_MSG_RESULT(using libc's socket),
1018 AC_CHECK_LIB(xnet,socket)
1019 AC_CHECK_LIB(socket,socket)
1020 AC_CHECK_LIB(inet,socket))
1022 dnl -----------------------------------------------------------
1023 dnl Check whether user wants TCP wrappers support (default off)
1024 dnl -----------------------------------------------------------
1027 AC_ARG_WITH(tcp-wrappers,
1028 AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1030 if test "x$withval" != "xno" ; then
1032 LIBS="$saved_LIBS -lwrap"
1033 AC_SEARCH_LIBS(nanosleep, [rt])
1034 AC_MSG_CHECKING(for libwrap)
1037 #include <sys/types.h>
1039 int deny_severity = 0;
1040 int allow_severity = 0;
1041 struct request_info *req;
1046 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1051 LIBS="$saved_LIBS -lwrap -lnsl"
1052 WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1055 #include <sys/types.h>
1057 int deny_severity = 0;
1058 int allow_severity = 0;
1059 struct request_info *req;
1064 AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1069 AC_MSG_ERROR([*** libwrap missing])
1078 dnl -----------------------------------------------------------
1079 dnl Check whether OpenSSL is available
1080 dnl -----------------------------------------------------------
1081 AC_MSG_CHECKING([for OpenSSL])
1082 dnl The following uses quadrigraphs:
1085 AC_ARG_WITH(openssl,
1086 AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1088 with_openssl_directory=${withval}
1092 if test "x$with_openssl_directory" != "xno"; then
1093 OPENSSL_LIBS="-lssl -lcrypto"
1096 if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1098 # Make sure the $with_openssl_directory also makes sense
1100 if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1101 OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1102 OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1106 saved_LIBS="${LIBS}"
1107 saved_CFLAGS="${CFLAGS}"
1108 LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1109 CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1113 #include <openssl/ssl.h>
1115 CRYPTO_set_id_callback(NULL);
1118 support_crypto="yes"
1127 #include <openssl/evp.h>
1131 ac_cv_openssl_sha2="yes"
1133 ac_cv_openssl_sha2="no"
1137 dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1138 dnl implementation, presumably for export reasons. If 192bit AES
1139 dnl is available, we assume that we're running with a 'non-export'
1140 dnl openssl library.
1143 #include <openssl/evp.h>
1147 ac_cv_openssl_export="no"
1149 ac_cv_openssl_export="yes"
1153 LIBS="${saved_LIBS}"
1154 CFLAGS="${saved_CFLAGS}"
1156 if test "$support_tls" = "yes"; then
1157 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1158 AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1159 AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1162 if test "$ac_cv_openssl_sha2" = "yes"; then
1163 AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1166 if test "$ac_cv_openssl_export" = "yes"; then
1167 AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1176 if test "$support_tls" = "no"; then
1180 if test "$support_crypto" = "no"; then
1185 AC_MSG_RESULT([$support_tls])
1186 AC_SUBST(OPENSSL_LIBS)
1187 AC_SUBST(OPENSSL_INC)
1189 dnl -----------------------------------------------------------
1190 dnl dlopen is needed for plugins
1191 dnl -----------------------------------------------------------
1192 AC_SEARCH_LIBS(dlopen, [dl])
1194 dnl ------------------------------------------
1195 dnl Where to place working dir
1196 dnl ------------------------------------------
1197 working_dir=`eval echo ${prefix}/var/bacula/working`
1198 AC_ARG_WITH(working-dir,
1199 AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1201 if test "x$withval" != "xno" ; then
1202 working_dir=$withval
1207 AC_SUBST(working_dir)
1209 dnl ------------------------------------------------------------------
1210 dnl If the user has not set archivedir, we set our default as /tmp
1211 dnl ------------------------------------------------------------------
1213 AC_ARG_WITH(archivedir,
1214 AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1216 if test "x$withval" != "xno" ; then
1222 AC_SUBST(archivedir)
1224 dnl ------------------------------------------------------------------
1225 dnl Allow the user to specify the daemon resource name default hostname
1226 dnl ------------------------------------------------------------------
1228 AC_ARG_WITH(basename,
1229 AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1231 if test "x$withval" != "xno" ; then
1239 dnl ------------------------------------------------------------------
1240 dnl Allow the user to override the hostname (default = machine hostname)
1241 dnl ------------------------------------------------------------------
1242 hostname=`uname -n | cut -d '.' -f 1`
1243 if test x${hostname} = x ; then
1244 hostname="localhost"
1246 AC_ARG_WITH(hostname,
1247 AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1249 if test "x$withval" != "xno" ; then
1258 dnl ------------------------------------------
1259 dnl Where to place scriptdir (script files)
1260 dnl ------------------------------------------
1261 scriptdir=`eval echo ${sysconfdir}`
1262 AC_ARG_WITH(scriptdir,
1263 AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1265 if test "x$withval" != "xno" ; then
1274 dnl ------------------------------------------
1275 dnl Where to place bsrdir (bsr files)
1276 dnl ------------------------------------------
1279 AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1281 if test "x$withval" != "xno" ; then
1289 dnl ------------------------------------------
1290 dnl Where to place logdir (bsr files)
1291 dnl ------------------------------------------
1294 AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1296 if test "x$withval" != "xno" ; then
1305 # ------------------------------------------
1306 # Where to place plugindir (plugin files)
1307 # ------------------------------------------
1308 plugindir=`eval echo ${libdir}`
1309 AC_ARG_WITH(plugindir,
1310 AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1312 if test "x$withval" != "xno" ; then
1320 dnl ------------------------------------------
1321 dnl Where to send dump email
1322 dnl ------------------------------------------
1323 dump_email=root@localhost
1324 AC_ARG_WITH(dump-email,
1325 AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1327 if test "x$withval" != "xno" ; then
1333 AC_SUBST(dump_email)
1335 dnl ------------------------------------------
1336 dnl Where to send job email
1337 dnl ------------------------------------------
1338 job_email=root@localhost
1339 AC_ARG_WITH(job-email,
1340 AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1342 if test "x$withval" != "xno" ; then
1350 dnl ------------------------------------------
1351 dnl Where to find smtp host
1352 dnl ------------------------------------------
1354 AC_ARG_WITH(smtp_host,
1355 AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1357 if test "x$withval" != "xno" ; then
1365 dnl ------------------------------------
1366 dnl Where to place pid files
1367 dnl ------------------------------------
1369 AC_ARG_WITH(pid-dir,
1370 AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1372 if test "x$withval" != "xno" ; then
1378 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1381 dnl ------------------------------------
1382 dnl Where to place subsys "lock file"
1383 dnl ------------------------------------
1384 subsysdir=/var/run/subsys
1385 if test -d /var/run/subsys; then
1386 subsysdir=/var/run/subsys
1387 elif test -d /var/lock/subsys; then
1388 subsysdir=/var/lock/subsys
1390 subsysdir=/var/run/subsys
1392 AC_ARG_WITH(subsys-dir,
1393 AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1395 if test "x$withval" != "xno" ; then
1403 dnl ------------------------------------
1404 dnl Where to start assigning ports
1405 dnl ------------------------------------
1407 AC_ARG_WITH(baseport,
1408 AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1410 if test "x$withval" != "xno" ; then
1417 dir_port=`expr $baseport`
1418 fd_port=`expr $baseport + 1`
1419 sd_port=`expr $fd_port + 1`
1425 dnl ------------------------------------------
1426 dnl Generate passwords
1427 dnl ------------------------------------------
1429 AC_ARG_WITH(dir-password,
1430 AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1432 if test "x$withval" != "xno" ; then
1433 dir_password=$withval
1438 if test "x$dir_password" = "x" ; then
1439 if test "x$OPENSSL" = "xnone" ; then
1440 key=`autoconf/randpass 33`
1442 key=`openssl rand -base64 33`
1448 AC_ARG_WITH(fd-password,
1449 AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1451 if test "x$withval" != "xno" ; then
1452 fd_password=$withval
1457 if test "x$fd_password" = "x" ; then
1458 if test "x$OPENSSL" = "xnone" ; then
1459 key=`autoconf/randpass 37`
1461 key=`openssl rand -base64 33`
1467 AC_ARG_WITH(sd-password,
1468 AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1470 if test "x$withval" != "xno" ; then
1471 sd_password=$withval
1476 if test "x$sd_password" = "x" ; then
1477 if test "x$OPENSSL" = "xnone" ; then
1478 key=`autoconf/randpass 41`
1480 key=`openssl rand -base64 33`
1486 AC_ARG_WITH(mon-dir-password,
1487 AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1489 if test "x$withval" != "xno" ; then
1490 mon_dir_password=$withval
1495 if test "x$mon_dir_password" = "x" ; then
1496 if test "x$OPENSSL" = "xnone" ; then
1497 key=`autoconf/randpass 33`
1499 key=`openssl rand -base64 33`
1501 mon_dir_password=$key
1505 AC_ARG_WITH(mon-fd-password,
1506 AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1508 if test "x$withval" != "xno" ; then
1509 mon_fd_password=$withval
1514 if test "x$mon_fd_password" = "x" ; then
1515 if test "x$OPENSSL" = "xnone" ; then
1516 key=`autoconf/randpass 37`
1518 key=`openssl rand -base64 33`
1520 mon_fd_password=$key
1524 AC_ARG_WITH(mon-sd-password,
1525 AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1527 if test "x$withval" != "xno" ; then
1528 mon_sd_password=$withval
1533 if test "x$mon_sd_password" = "x" ; then
1534 if test "x$OPENSSL" = "xnone" ; then
1535 key=`autoconf/randpass 41`
1537 key=`openssl rand -base64 33`
1539 mon_sd_password=$key
1542 AC_SUBST(dir_password)
1543 AC_SUBST(fd_password)
1544 AC_SUBST(sd_password)
1545 AC_SUBST(mon_dir_password)
1546 AC_SUBST(mon_fd_password)
1547 AC_SUBST(mon_sd_password)
1550 dnl Pickup any database name
1553 AC_ARG_WITH(db_name,
1554 AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1556 if test "x$withval" != "x" ; then
1564 AC_ARG_WITH(db_user,
1565 AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1567 if test "x$withval" != "x" ; then
1575 AC_ARG_WITH(db_password,
1576 AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1578 if test "x$withval" != "x" ; then
1579 db_password=$withval
1583 AC_SUBST(db_password)
1586 dnl Pickup a database port
1589 AC_ARG_WITH(db_port,
1590 AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1592 if test "x$withval" != "x" ; then
1600 # Handle users and groups for each daemon
1603 AC_ARG_WITH(dir_user,
1604 AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1606 if test "x$withval" != "x" ; then
1613 AC_ARG_WITH(dir_group,
1614 AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1616 if test "x$withval" != "x" ; then
1623 AC_ARG_WITH(sd_user,
1624 AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1626 if test "x$withval" != "x" ; then
1633 AC_ARG_WITH(sd_group,
1634 AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1636 if test "x$withval" != "x" ; then
1643 AC_ARG_WITH(fd_user,
1644 AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1646 if test "x$withval" != "x" ; then
1653 AC_ARG_WITH(fd_group,
1654 AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1656 if test "x$withval" != "x" ; then
1670 dnl allow setting default executable permissions
1673 AC_ARG_WITH(sbin-perm,
1674 AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0754@:>@]),
1676 if test "x$withval" != "x" ; then
1684 dnl ------------------------------------------------
1685 dnl Bacula check for various SQL database engines
1686 dnl ------------------------------------------------
1688 BA_CHECK_POSTGRESQL_DB
1696 # BA_CHECK_SQLITE_DB
1705 dnl -------------------------------------------
1706 dnl enable batch attribute DB insert (default on)
1707 dnl -------------------------------------------
1708 support_batch_insert=no
1709 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1711 if test $pkg = 0; then
1712 support_batch_insert=yes
1713 AC_ARG_ENABLE(batch-insert,
1714 AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1716 if test x$enableval = xno; then
1717 support_batch_insert=no
1719 support_batch_insert=yes
1725 dnl Check if postgresql can support batch mode
1726 if test x$DB_TYPE = xpostgresql; then
1727 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1728 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1729 if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1731 support_batch_insert=no
1735 if test x$DB_TYPE = xdbi; then
1739 dnl Check for batch insert
1740 if test $DB_PROG = postgresql; then
1741 AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1742 AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1743 test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1747 if test $DB_PROG = mysql; then
1748 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1752 if test $DB_PROG = sqlite3; then
1753 A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1757 if test $pkg = 0; then
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
1770 dnl If dbi was not chosen, let the comment in file
1774 AC_SUBST(uncomment_dbi)
1776 if test $support_batch_insert = yes ; then
1777 AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1780 AC_DEFINE(PROTOTYPES)
1782 dnl --------------------------------------------------------------------------
1783 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1785 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1786 if test -z "$CCOPTS"; then
1787 CCOPTS='-g -O2 -Wall'
1795 dnl See if we can use 64 bit file addresses
1796 largefile_support="no"
1801 dnl --------------------------------------------------------------------------
1802 dnl CHECKING FOR HEADER FILES
1803 dnl --------------------------------------------------------------------------
1841 AC_STRUCT_ST_BLKSIZE
1845 dnl --------------------------------------------------------------------------
1846 dnl Check for utime.h structure
1847 dnl --------------------------------------------------------------------------
1848 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1852 #include <sys/types.h>
1857 ba_cv_header_utime_h=yes
1859 ba_cv_header_utime_h=no
1864 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1866 dnl --------------------------------------------------------------------------
1867 dnl Check for socklen_t
1868 dnl --------------------------------------------------------------------------
1869 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1873 #include <sys/types.h>
1874 #include <sys/socket.h>
1878 ba_cv_header_socklen_t=yes
1880 ba_cv_header_socklen_t=no
1885 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1887 dnl --------------------------------------------------------------------------
1888 dnl Check for ioctl request type
1889 dnl --------------------------------------------------------------------------
1891 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1896 #include <sys/types.h>
1897 #include <sys/ioctl.h>
1899 int (*d_ioctl)(int fd, unsigned long int request, ...);
1902 ba_cv_header_ioctl_req_t=yes
1904 ba_cv_header_ioctl_req_t=no
1909 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1911 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1912 dnl *BSD systems still use old style C prototypes, which are wrong with
1913 dnl compiled with a C++ compiler.
1916 dnl --------------------------------------------------------------------------
1917 dnl Check for typeof()
1918 dnl --------------------------------------------------------------------------
1920 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1924 main(){char *a = 0; a = (typeof a)a;}
1926 ba_cv_have_typeof=yes
1928 ba_cv_have_typeof=no
1930 ba_cv_have_typeof=no
1935 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1940 dnl --------------------------------------------------------------------------
1941 dnl CHECKING FOR FILESYSTEM TYPE
1942 dnl --------------------------------------------------------------------------
1943 AC_MSG_CHECKING(how to get filesystem type)
1945 # The order of these tests is important.
1948 #include <sys/statvfs.h>
1949 #include <sys/fstyp.h>
1951 AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1953 if test $fstype = no; then
1956 #include <sys/statfs.h>
1957 #include <sys/fstyp.h>
1959 AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1962 if test $fstype = no; then
1965 #include <sys/statfs.h>
1966 #include <sys/vmount.h>
1968 AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
1971 if test $fstype = no; then
1976 AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
1979 if test $fstype = no; then
1980 AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
1982 if test $fstype = no; then
1985 #include <sys/mount.h>
1986 #include <sys/fs_types.h>
1988 AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
1991 AC_MSG_RESULT($fstype)
1993 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
1995 dnl --------------------------------------------------------------------------
1996 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
1997 dnl --------------------------------------------------------------------------
2007 AC_CHECK_TYPE(ino_t, unsigned long)
2008 AC_CHECK_TYPE(dev_t, unsigned long)
2009 AC_CHECK_TYPE(daddr_t, long)
2010 AC_CHECK_TYPE(major_t, int)
2011 AC_CHECK_TYPE(minor_t, int)
2012 AC_CHECK_TYPE(ssize_t, int)
2018 AC_CHECK_SIZEOF(char, 1)
2019 AC_CHECK_SIZEOF(short int, 2)
2020 AC_CHECK_SIZEOF(int, 4)
2021 AC_CHECK_SIZEOF(long int, 4)
2022 AC_CHECK_SIZEOF(long long int, 8)
2023 AC_CHECK_SIZEOF(int *, 4)
2025 dnl Check for sys/types.h types
2026 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2030 #include <sys/types.h>
2034 ac_cv_have_u_int="yes"
2036 ac_cv_have_u_int="no"
2041 if test "x$ac_cv_have_u_int" = "xyes" ; then
2042 AC_DEFINE(HAVE_U_INT)
2046 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2050 #include <sys/types.h>
2054 ac_cv_have_intmax_t="yes"
2062 ac_cv_have_intmax_t="yes"
2064 ac_cv_have_intmax_t="no"
2071 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2072 AC_DEFINE(HAVE_INTMAX_T)
2076 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2080 #include <sys/types.h>
2082 u_intmax_t a; a = 1;
2084 ac_cv_have_u_intmax_t="yes"
2090 u_intmax_t a; a = 1;
2092 ac_cv_have_u_intmax_t="yes"
2094 ac_cv_have_u_intmax_t="no"
2101 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2102 AC_DEFINE(HAVE_U_INTMAX_T)
2106 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2110 #include <sys/types.h>
2112 int8_t a; int16_t b; int32_t c; a = b = c = 1;
2114 ac_cv_have_intxx_t="yes"
2116 ac_cv_have_intxx_t="no"
2121 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2122 AC_DEFINE(HAVE_INTXX_T)
2126 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2130 #include <sys/types.h>
2134 ac_cv_have_int64_t="yes"
2136 ac_cv_have_int64_t="no"
2141 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2142 AC_DEFINE(HAVE_INT64_T)
2146 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2150 #include <sys/types.h>
2152 u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2154 ac_cv_have_u_intxx_t="yes"
2156 ac_cv_have_u_intxx_t="no"
2161 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2162 AC_DEFINE(HAVE_U_INTXX_T)
2166 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2170 #include <sys/types.h>
2174 ac_cv_have_u_int64_t="yes"
2176 ac_cv_have_u_int64_t="no"
2181 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2182 AC_DEFINE(HAVE_U_INT64_T)
2186 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2187 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2189 AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2192 #include <sys/bitypes.h>
2194 int8_t a; int16_t b; int32_t c;
2195 u_int8_t e; u_int16_t f; u_int32_t g;
2196 a = b = c = e = f = g = 1;
2198 AC_DEFINE(HAVE_U_INTXX_T)
2199 AC_DEFINE(HAVE_INTXX_T)
2200 AC_DEFINE(HAVE_SYS_BITYPES_H)
2208 if test -z "$have_u_intxx_t" ; then
2209 AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2213 #include <sys/types.h>
2215 uint8_t a; uint16_t b;
2216 uint32_t c; a = b = c = 1;
2218 ac_cv_have_uintxx_t="yes"
2220 ac_cv_have_uintxx_t="no"
2225 if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2226 AC_DEFINE(HAVE_UINTXX_T)
2230 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2231 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2233 AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2236 #include <sys/bitypes.h>
2238 int64_t a; u_int64_t b;
2241 AC_DEFINE(HAVE_U_INT64_T)
2242 AC_DEFINE(HAVE_INT64_T)
2250 if (test -z "$have_uintxx_t" && \
2251 test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2253 AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2256 #include <sys/bitypes.h>
2258 uint8_t a; uint16_t b;
2259 uint32_t c; a = b = c = 1;
2261 AC_DEFINE(HAVE_UINTXX_T)
2269 dnl --------------------------------------------------------------------------
2270 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2271 dnl --------------------------------------------------------------------------
2287 [echo 'configure: cannot find needed function.'; exit 1]
2290 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2291 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2292 AC_CHECK_FUNCS(posix_fadvise)
2293 AC_CHECK_FUNCS(fdatasync)
2295 AC_CHECK_FUNCS(chflags)
2297 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2299 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2304 void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2305 void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2307 call_use_va_copy(1,2,3)
2316 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2318 dnl --------------------------------------------------------------------------
2319 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2320 dnl --------------------------------------------------------------------------
2321 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2323 # If resolver functions are not in libc check for -lnsl or -lresolv.
2324 AC_CHECK_FUNC(gethostbyname_r,
2325 AC_MSG_RESULT(using libc's resolver),
2326 AC_CHECK_LIB(nsl,gethostbyname_r)
2327 AC_CHECK_LIB(resolv,gethostbyname_r))
2329 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2330 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2331 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2333 dnl ----------------------------
2334 dnl check sa_len of sockaddr
2335 dnl ----------------------------
2336 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2340 #include <sys/socket.h>
2342 struct sockaddr s; s.sa_len;
2344 ac_cv_struct_sockaddr_sa_len=yes
2345 ], [ac_cv_struct_sockaddr_sa_len=no
2351 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2352 AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2359 AC_FUNC_CLOSEDIR_VOID
2360 AC_FUNC_SETPGRP dnl check for BSD setpgrp.
2361 # AC_FUNC_FNMATCH dnl use local version
2363 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2365 AC_CHECK_LIB(sun, getpwnam)
2367 AC_CHECK_HEADERS(zlib.h)
2368 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2370 if test x$FDLIBS = x-lz; then
2371 AC_DEFINE(HAVE_LIBZ)
2376 dnl Check for ACL support and libraries
2380 AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2382 if test x$enableval = xyes; then
2384 elif test x$enableval = xno; then
2391 have_extended_acl=no
2392 if test x$support_acl = xyes -o x$support_acl = xauto; then
2393 AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2394 AC_CHECK_FUNC(acl_get_file,
2398 AC_CHECK_LIB(acl, acl_get_file,
2401 FDLIBS="-lacl $FDLIBS"
2403 AC_CHECK_LIB(pacl, acl_get_file,
2406 FDLIBS="-lpacl $FDLIBS"
2408 AC_CHECK_LIB(sec, acltotext,
2411 FDLIBS="-lsec $FDLIBS"
2413 AC_CHECK_LIB(sec, acl_totext,
2415 have_extended_acl=yes
2427 if test x$support_acl = xyes -a $have_acl != yes; then
2428 AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found,
2429 please either load the acl libraries or rerun configure without --enable-acl])
2431 if test $have_acl = yes; then
2432 AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2435 if test $have_extended_acl = yes; then
2436 AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2442 dnl Check for XATTR support
2445 AC_ARG_ENABLE(xattr,
2446 AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2448 if test x$enableval = xyes; then
2450 elif test x$enableval = xno; then
2457 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2459 dnl First check for *BSD support
2461 AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2462 AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2463 AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2466 AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2467 AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2468 AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2472 if test $have_xattr = no; then
2473 AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2476 AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2477 AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2478 AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2483 if test $have_xattr = yes; then
2484 have_extattr_string_in_libc=no
2485 AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2487 have_extattr_string_in_libc=yes
2488 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2489 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2494 dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2496 if test $have_extattr_string_in_libc = no; then
2497 AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2499 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2500 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2501 FDLIBS="-lutil $FDLIBS"
2508 dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2510 if test $have_xattr = no; then
2511 AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2512 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2515 AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2516 AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2517 AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2521 if test $have_xattr = no; then
2522 AC_CHECK_FUNCS(listxattr getxattr setxattr,
2525 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2526 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2527 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2534 dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2536 if test $have_xattr = no; then
2537 AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2538 AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2539 AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2541 AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2544 AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2545 AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2546 AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2547 AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2548 AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2552 if test $have_xattr = yes; then
2553 AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2555 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2556 FDLIBS="-lnvpair $FDLIBS"
2562 if test x$support_xattr = xyes -a $have_xattr != yes; then
2563 AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found,
2564 please either load the xattr libraries or rerun configure without --enable-xattr])
2566 if test $have_xattr = yes; then
2567 AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2573 dnl Check for pthread libraries
2576 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2578 AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2580 AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2582 AC_CHECK_FUNC(pthread_create)
2591 dnl Check for headers, functions and libraries required to support
2592 dnl keeping readall capabilities
2594 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2595 AC_CHECK_FUNCS(prctl setreuid)
2596 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2597 if test x$CAP_LIBS = x-lcap; then
2598 AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2607 if test x$have_gcc = xyes ; then
2608 CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2609 CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2611 LDFLAGS=${LDFLAGS--O}
2612 DB_LIBS="${SQL_LFLAGS}"
2613 CPPFLAGS="$CPPFLAGS"
2626 AC_SUBST(X_EXTRA_LIBS)
2631 dnl extra configurable objects
2642 dnl Finally we set appropriate distribution specific
2643 dnl variables and defaults
2645 dnl PFILES are platform specific files
2646 PFILES="platforms/Makefile"
2651 hostname=`uname -n | cut -d '.' -f 1`
2652 if test x${hostname} = x ; then
2653 hostname="localhost"
2655 dnl Make sure hostname is resolved
2656 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2657 if test ! $? = 0; then
2658 hostname="localhost"
2664 PSCMD="ps -e -o pid,comm"
2666 platforms/aix/Makefile"
2667 TAPEDRIVE="/dev/rmt0.1"
2671 PTHREAD_LIB="-lpthread -lexc"
2672 if test "${CC}" = "gcc" ; then
2679 TAPEDRIVE="/dev/nrmt0"
2682 DISTVER=`uname -a |awk '{print $3}'`
2683 TAPEDRIVE="/dev/nrmt0"
2684 PTHREAD_LIB="-pthread"
2685 CFLAGS="${CFLAGS} -pthread"
2686 PSCMD="ps -ax -o pid,command"
2690 platforms/bsdi/Makefile \
2691 platforms/bsdi/bacula-fd \
2692 platforms/bsdi/bacula-sd \
2693 platforms/bsdi/bacula-dir"
2694 largefile_support="yes"
2697 DISTVER=`uname -a |awk '{print $3}'`
2698 TAPEDRIVE="/dev/nrst0"
2701 WLDFLAGS="-mwindows"
2705 TAPEDRIVE="/dev/nst0"
2706 PSCMD="ps -e -o pid,command"
2709 platforms/darwin/Makefile"
2713 TAPEDRIVE="/dev/nst0"
2714 PSCMD="ps -e -o pid,command"
2717 platforms/osx/Makefile"
2720 if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2723 DISTVER=`cat /etc/debian_version`
2724 if test -f /etc/lsb-release ; then
2726 if test "x$DISTRIB_ID" != "x" ; then
2727 DISTNAME=$DISTRIB_ID
2729 if test "x$DISTRIB_RELEASE" != "x" ; then
2730 DISTVER=$DISTRIB_RELEASE
2733 if test "$DISTNAME" = "Ubuntu" ; then
2736 TAPEDRIVE="/dev/nst0"
2737 PSCMD="ps -e -o pid,command"
2738 if test "$DISTNAME" = "ubuntu" ; then
2740 platforms/ubuntu/Makefile \
2741 platforms/ubuntu/bacula-fd \
2742 platforms/ubuntu/bacula-sd \
2743 platforms/ubuntu/bacula-dir"
2746 platforms/debian/Makefile \
2747 platforms/debian/bacula-fd \
2748 platforms/debian/bacula-sd \
2749 platforms/debian/bacula-dir"
2753 DISTVER=`uname -a |awk '{print $3}'`
2754 VER=`echo $DISTVER | cut -c 1`
2755 if test x$VER = x4 ; then
2756 PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2757 CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2761 TAPEDRIVE="/dev/nrsa0"
2762 PSCMD="ps -ax -o pid,command"
2764 platforms/freebsd/Makefile \
2765 platforms/freebsd/bacula-fd \
2766 platforms/freebsd/bacula-sd \
2767 platforms/freebsd/bacula-dir"
2768 largefile_support="yes"
2771 PSCMD="UNIX95=1; ps -e -o pid,comm"
2772 CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2774 TAPEDRIVE="/dev/rmt/0hnb"
2775 PTHREAD_LIB="-lpthread"
2776 AC_DEFINE([_INCLUDE_LONGLONG])
2780 TAPEDRIVE="/dev/rmt/0cbn"
2781 PSCMD="ps -e -o pid,comm"
2783 platforms/irix/Makefile \
2784 platforms/irix/bacula-fd \
2785 platforms/irix/bacula-sd \
2786 platforms/irix/bacula-dir"
2789 DISTVER=`uname -a |awk '{print $3}'`
2792 TAPEDRIVE="/dev/nrst0"
2793 PSCMD="ps -ax -o pid,command"
2794 PTHREAD_LIB="-pthread"
2795 CFLAGS="${CFLAGS} -pthread"
2798 DISTVER=`uname -a |awk '{print $3}'`
2801 TAPEDRIVE="/dev/nrst0"
2802 PSCMD="ps -ax -o pid,command"
2803 PTHREAD_LIB="-pthread"
2804 CFLAGS="${CFLAGS} -pthread"
2806 platforms/openbsd/Makefile \
2807 platforms/openbsd/bacula-fd \
2808 platforms/openbsd/bacula-sd \
2809 platforms/openbsd/bacula-dir"
2812 if test -f /etc/whitebox-release ; then
2813 f=/etc/whitebox-release
2815 f=/etc/redhat-release
2817 if test `cat $f | grep release |\
2818 cut -f 3 -d ' '`x = "Enterprise"x ; then
2819 DISTVER="Enterprise "`cat $f | grep release |\
2822 DISTVER=`cat /etc/redhat-release | grep release |\
2825 TAPEDRIVE="/dev/nst0"
2826 PSCMD="ps -e -o pid,command"
2828 platforms/redhat/Makefile \
2829 platforms/redhat/bacula-fd \
2830 platforms/redhat/bacula-sd \
2831 platforms/redhat/bacula-dir
2835 DISTVER=`cat /etc/mandrake-release | grep release |\
2837 TAPEDRIVE="/dev/nst0"
2838 PSCMD="ps -e -o pid,command"
2840 platforms/mandrake/Makefile \
2841 platforms/mandrake/bacula-fd \
2842 platforms/mandrake/bacula-sd \
2843 platforms/mandrake/bacula-dir \
2844 platforms/mandrake/bacula.spec \
2848 DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2849 TAPEDRIVE="/dev/nst0"
2850 PSCMD="ps -e -o pid,command"
2852 platforms/gentoo/Makefile \
2853 platforms/gentoo/bacula-init \
2854 platforms/gentoo/bacula-fd \
2855 platforms/gentoo/bacula-sd \
2856 platforms/gentoo/bacula-dir"
2859 DISTVER=`cat /etc/slackware-version`
2860 TAPEDRIVE="/dev/nst0"
2861 PSCMD="ps -e -o pid,command"
2863 platforms/slackware/Makefile \
2864 platforms/slackware/rc.bacula-fd \
2865 platforms/slackware/rc.bacula-sd \
2866 platforms/slackware/rc.bacula-dir\
2867 platforms/slackware/functions.bacula"
2871 TAPEDRIVE="/dev/rmt/0cbn"
2872 PSCMD="ps -e -o pid,comm"
2874 platforms/solaris/Makefile \
2875 platforms/solaris/bacula-fd \
2876 platforms/solaris/bacula-sd \
2877 platforms/solaris/bacula-dir"
2878 if test x$DISTVER = x5.6 ; then
2879 AC_DEFINE(HAVE_OLD_SOCKOPT)
2881 LIBS="$LIBS -lresolv"
2884 DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2886 TAPEDRIVE="/dev/nst0"
2887 PSCMD="ps -e -o pid,command"
2889 platforms/suse/Makefile \
2890 platforms/suse/bacula-fd \
2891 platforms/suse/bacula-sd \
2892 platforms/suse/bacula-dir \
2893 platforms/suse/bacula \
2894 platforms/suse/bacula.spec"
2899 TAPEDRIVE="/dev/nst0"
2900 PSCMD="ps -e -o pid,command"
2902 platforms/suse/Makefile \
2903 platforms/suse/bacula-fd \
2904 platforms/suse/bacula-sd \
2905 platforms/suse/bacula-dir"
2909 TAPEDRIVE="/dev/nst0"
2912 echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2918 LIBS="$PTHREAD_LIB $LIBS"
2920 AC_DEFINE_UNQUOTED(lld, "$lld")
2921 AC_DEFINE_UNQUOTED(llu, "$llu")
2929 dnl common parts of the Makefile
2930 MCOMMON=./autoconf/Make.common
2931 AC_SUBST_FILE(MCOMMON)
2934 if test "x${subsysdir}" = "x${sbindir}" ; then
2937 echo "You have set both --sbindir and --with-subsys-dir"
2938 echo " equal to: ${subsysdir} "
2939 echo "This is not permitted. Please reconfigure."
2941 echo "Aborting configuration ..."
2947 AC_OUTPUT([autoconf/Make.common \
2950 scripts/startmysql \
2952 scripts/btraceback \
2958 scripts/bacula-ctl-dir \
2959 scripts/bacula-ctl-fd \
2960 scripts/bacula-ctl-sd \
2961 scripts/devel_bacula \
2964 scripts/bacula.desktop.gnome1 \
2965 scripts/bacula.desktop.gnome2 \
2966 scripts/bacula.desktop.gnome1.consolehelper \
2967 scripts/bacula.desktop.gnome2.consolehelper \
2968 scripts/bacula.desktop.gnome1.xsu \
2969 scripts/bacula.desktop.gnome2.xsu \
2970 scripts/bgnome-console.console_apps \
2971 scripts/mtx-changer \
2972 scripts/disk-changer \
2973 scripts/dvd-handler \
2974 scripts/dvd-simulator \
2975 scripts/bacula-tray-monitor.desktop \
2976 scripts/logwatch/Makefile \
2977 scripts/logwatch/logfile.bacula.conf \
2978 scripts/wxconsole.console_apps \
2979 scripts/wxconsole.desktop.consolehelper \
2980 scripts/wxconsole.desktop.xsu \
2981 scripts/bat.desktop \
2982 scripts/bat.desktop.xsu \
2983 scripts/bat.desktop.consolehelper \
2984 scripts/bat.console_apps \
2987 src/console/Makefile \
2988 src/console/bconsole.conf \
2989 src/qt-console/bat.conf \
2990 src/qt-console/bat.pro \
2991 src/qt-console/bat.pro.mingw32 \
2992 src/qt-console/install_conf_file \
2993 src/wx-console/Makefile \
2994 src/wx-console/bwx-console.conf \
2995 src/tray-monitor/Makefile \
2996 src/tray-monitor/tray-monitor.conf \
2998 src/dird/bacula-dir.conf \
3000 src/stored/Makefile \
3001 src/stored/bacula-sd.conf \
3002 src/filed/Makefile \
3003 src/filed/bacula-fd.conf \
3005 src/cats/make_catalog_backup.pl \
3006 src/cats/make_catalog_backup \
3007 src/cats/delete_catalog_backup \
3008 src/cats/create_postgresql_database \
3009 src/cats/update_postgresql_tables \
3010 src/cats/make_postgresql_tables \
3011 src/cats/grant_postgresql_privileges \
3012 src/cats/drop_postgresql_tables \
3013 src/cats/drop_postgresql_database \
3014 src/cats/create_mysql_database \
3015 src/cats/update_mysql_tables \
3016 src/cats/make_mysql_tables \
3017 src/cats/grant_mysql_privileges \
3018 src/cats/drop_mysql_tables \
3019 src/cats/drop_mysql_database \
3020 src/cats/create_sqlite3_database \
3021 src/cats/update_sqlite3_tables \
3022 src/cats/make_sqlite3_tables \
3023 src/cats/grant_sqlite3_privileges \
3024 src/cats/drop_sqlite3_tables \
3025 src/cats/drop_sqlite3_database \
3026 src/cats/create_ingres_database \
3027 src/cats/update_ingres_tables \
3028 src/cats/make_ingres_tables \
3029 src/cats/grant_ingres_privileges \
3030 src/cats/drop_ingres_tables \
3031 src/cats/drop_ingres_database \
3034 src/cats/create_bdb_database \
3035 src/cats/update_bdb_tables \
3036 src/cats/make_bdb_tables \
3037 src/cats/grant_bdb_privileges \
3038 src/cats/drop_bdb_tables \
3039 src/cats/drop_bdb_database \
3040 src/cats/create_bacula_database \
3041 src/cats/update_bacula_tables \
3042 src/cats/grant_bacula_privileges \
3043 src/cats/make_bacula_tables \
3044 src/cats/drop_bacula_tables \
3045 src/cats/drop_bacula_database \
3046 src/findlib/Makefile \
3047 src/tools/Makefile \
3048 src/plugins/fd/Makefile \
3049 src/plugins/sd/Makefile \
3050 src/plugins/dir/Makefile \
3051 src/win32/Makefile.inc \
3053 updatedb/update_mysql_tables_9_to_10 \
3054 updatedb/update_sqlite3_tables_9_to_10 \
3055 updatedb/update_postgresql_tables_9_to_10 \
3056 updatedb/update_mysql_tables_10_to_11 \
3057 updatedb/update_sqlite3_tables_10_to_11 \
3058 updatedb/update_postgresql_tables_10_to_11 \
3059 examples/nagios/check_bacula/Makefile \
3064 if test "${support_bat}" = "yes" ; then
3065 if test "x$QMAKE" = "xnone"; then
3066 AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3071 echo "Creating bat Makefile"
3081 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3082 dnl requires gcc). If it's not, don't rebuild dependencies
3084 if test X"$GCC" = "Xyes" ; then
3085 echo "Doing make of dependencies"
3086 ${MAKE:-make} depend
3090 chmod 755 install_conf_file build-depkgs-qt-console
3094 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3095 chmod 755 dvd-handler dvd-simulator
3096 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3100 chmod 755 $c/update_mysql_tables_10_to_11 $c/update_sqlite3_tables_10_to_11
3101 chmod 755 $c/update_postgresql_tables_10_to_11
3105 chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables
3106 chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database
3108 chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables
3109 chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database
3111 chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables
3112 chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database
3114 chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables
3115 chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database
3117 chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables
3118 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database
3120 chmod 755 $c/create_ingres_database $c/update_ingres_tables $c/make_ingres_tables
3121 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables $c/drop_ingres_database
3124 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup $c/make_catalog_backup.pl
3128 chmod 755 src/win32/build-depkgs-mingw32
3130 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3131 largefile_support="yes"
3134 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3135 if test X"$GCC" = "Xyes" ; then
3137 dnl A whole lot of hand springs to get the compiler version.
3138 dnl This is because gcc changed the output in version 3.0
3140 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3141 if test "x${CCVERSION}" = "x" ; then
3142 CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3144 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3145 if test x"${CXXVERSION}" = x ; then
3146 CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3150 # clean up any old junk
3156 if test "x${db_type}" = "xInternal" ; then
3159 echo "You have not specified either --enable-client-only or one of the"
3160 echo " supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3161 echo " This is not permitted. Please reconfigure."
3163 echo "Aborting the configuration ..."
3170 Configuration on `date`:
3172 Host: ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3173 Bacula version: ${BACULA} ${VERSION} (${DATE})
3174 Source code location: ${srcdir}
3175 Install binaries: ${sbindir}
3176 Install libraries: ${libdir}
3177 Install config files: ${sysconfdir}
3178 Scripts directory: ${scriptdir}
3179 Archive directory: ${archivedir}
3180 Working directory: ${working_dir}
3181 PID directory: ${piddir}
3182 Subsys directory: ${subsysdir}
3183 Man directory: ${mandir}
3184 Data directory: ${datarootdir}
3185 Plugin directory: ${plugindir}
3186 C Compiler: ${CC} ${CCVERSION}
3187 C++ Compiler: ${CXX} ${CXXVERSION}
3188 Compiler flags: ${WCFLAGS} ${CFLAGS}
3189 Linker flags: ${WLDFLAGS} ${LDFLAGS}
3191 Statically Linked Tools: ${support_static_tools}
3192 Statically Linked FD: ${support_static_fd}
3193 Statically Linked SD: ${support_static_sd}
3194 Statically Linked DIR: ${support_static_dir}
3195 Statically Linked CONS: ${support_static_cons}
3196 Database type: ${db_type}
3197 Database port: ${db_port}
3198 Database lib: ${DB_LIBS}
3199 Database name: ${db_name}
3200 Database user: ${db_user}
3202 Job Output Email: ${job_email}
3203 Traceback Email: ${dump_email}
3204 SMTP Host Address: ${smtp_host}
3206 Director Port: ${dir_port}
3207 File daemon Port: ${fd_port}
3208 Storage daemon Port: ${sd_port}
3210 Director User: ${dir_user}
3211 Director Group: ${dir_group}
3212 Storage Daemon User: ${sd_user}
3213 Storage DaemonGroup: ${sd_group}
3214 File Daemon User: ${fd_user}
3215 File Daemon Group: ${fd_group}
3217 SQL binaries Directory ${SQL_BINDIR}
3219 Large file support: $largefile_support
3220 Bacula conio support: ${got_conio} ${CONS_LIBS}
3221 readline support: ${got_readline} ${PRTREADLINE_SRC}
3222 TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS}
3223 TLS support: ${support_tls}
3224 Encryption support: ${support_crypto}
3225 ZLIB support: ${have_zlib}
3226 enable-smartalloc: ${support_smartalloc}
3227 enable-lockmgr: ${support_lockmgr}
3228 bat support: ${support_bat}
3229 enable-gnome: ${support_gnome} ${gnome_version}
3230 enable-bwx-console: ${support_wx_console} ${wx_version}
3231 enable-tray-monitor: ${support_tray_monitor}
3232 client-only: ${build_client_only}
3233 build-dird: ${build_dird}
3234 build-stored: ${build_stored}
3235 Plugin support: ${have_plugins}
3236 ACL support: ${have_acl}
3237 XATTR support: ${have_xattr}
3238 Python support: ${support_python} ${PYTHON_LIBS}
3239 Batch insert enabled: ${support_batch_insert}
3243 # create a small shell script useful for support with
3244 # configure options and config.out info
3245 cat > scripts/bacula_config << EOF
3248 $ $0 $ac_configure_args
3250 cat config.out >> scripts/bacula_config
3251 echo __EOC__ >> scripts/bacula_config
3252 chmod 755 scripts/bacula_config
3256 # Display a warning message if postgresql client lib is <= 8.1
3257 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3258 -a x$support_batch_insert = xyes
3260 echo "WARNING: Your PostgreSQL client library is too old to detect "
3261 echo " if it was compiled with --enable-thread-safety, consider to"
3262 echo " upgrade it in order to avoid problems with Batch insert mode"