]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/configure.in
Move some AC_MSG_RESULT macros around so the configure output looks somewhat cleaner.
[bacula/bacula] / bacula / autoconf / configure.in
1 dnl
2 dnl
3 dnl Process this file with autoconf to produce a configure script.
4 dnl
5 dnl require a recent autoconf
6 AC_PREREQ(2.61)
7 AC_INIT(src/version.h)
8 BUILD_DIR=`pwd`
9 cd ..
10 TOP_DIR=`pwd`
11 cd ${BUILD_DIR}
12 AC_SUBST(BUILD_DIR)
13 AC_SUBST(TOP_DIR)
14 AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)
15 AC_CONFIG_HEADERS(src/config.h:autoconf/config.h.in)
16
17 dnl minimal Win32 stuff for "make clean"
18 WIN32BUILDDIR=${BUILD_DIR}/src/win32
19 WIN32MAINDIR=${BUILD_DIR}
20 WIN32TOPDIR=${TOP_DIR}    
21 AC_SUBST(WIN32BUILDDIR)
22 AC_SUBST(WIN32MAINDIR)
23 AC_SUBST(WIN32TOPDIR)
24
25 dnl search for true and false programs.
26 AC_PATH_PROGS(TRUEPRG, true, :)
27 AC_PATH_PROGS(FALSEPRG, false, :)
28
29
30 dnl bacula version
31 post_host=
32 if test "x$BACULA" != x; then
33    post_host=`echo -${BACULA} | tr 'A-Z ' 'a-z-'`
34 fi
35 BACULA=${BACULA:-Bacula}
36 VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
37 DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
38 LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
39 AC_SUBST(VERSION)dnl 
40 AC_SUBST(DATE)dnl 
41 AC_SUBST(LSMDATE)dnl 
42 AC_SUBST(BACULA)dnl
43 AC_SUBST(post_host)dnl
44
45 dnl src/lib
46 LIBBAC_LT_CURRENT=`sed -n -e 's/^.*LIBBAC_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
47 LIBBAC_LT_REVISION=`sed -n -e 's/^.*LIBBAC_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
48 LIBBAC_LT_AGE=`sed -n -e 's/^.*LIBBAC_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
49 LIBBACCFG_LT_CURRENT=`sed -n -e 's/^.*LIBBACCFG_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
50 LIBBACCFG_LT_REVISION=`sed -n -e 's/^.*LIBBACCFG_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
51 LIBBACCFG_LT_AGE=`sed -n -e 's/^.*LIBBACCFG_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
52 LIBBACPY_LT_CURRENT=`sed -n -e 's/^.*LIBBACPY_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
53 LIBBACPY_LT_REVISION=`sed -n -e 's/^.*LIBBACPY_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
54 LIBBACPY_LT_AGE=`sed -n -e 's/^.*LIBBACPY_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
55
56 AC_SUBST(LIBBAC_LT_CURRENT)dnl
57 AC_SUBST(LIBBAC_LT_REVISION)dnl
58 AC_SUBST(LIBBAC_LT_AGE)dnl
59 AC_SUBST(LIBBACCFG_LT_CURRENT)dnl
60 AC_SUBST(LIBBACCFG_LT_REVISION)dnl
61 AC_SUBST(LIBBACCFG_LT_AGE)dnl
62 AC_SUBST(LIBBACPY_LT_CURRENT)dnl
63 AC_SUBST(LIBBACPY_LT_REVISION)dnl
64 AC_SUBST(LIBBACPY_LT_AGE)dnl
65
66 dnl src/cats
67 LIBBACSQL_LT_CURRENT=`sed -n -e 's/^.*LIBBACSQL_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
68 LIBBACSQL_LT_REVISION=`sed -n -e 's/^.*LIBBACSQL_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
69 LIBBACSQL_LT_AGE=`sed -n -e 's/^.*LIBBACSQL_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
70 AC_SUBST(LIBBACSQL_LT_CURRENT)dnl
71 AC_SUBST(LIBBACSQL_LT_REVISION)dnl
72 AC_SUBST(LIBBACSQL_LT_AGE)dnl
73
74 dnl src/findlib
75 LIBBACFIND_LT_CURRENT=`sed -n -e 's/^.*LIBBACFIND_LT_CURRENT *\(.*\)$/\1/p' ${srcdir}/src/version.h`
76 LIBBACFIND_LT_REVISION=`sed -n -e 's/^.*LIBBACFIND_LT_REVISION *\(.*\)$/\1/p' ${srcdir}/src/version.h`
77 LIBBACFIND_LT_AGE=`sed -n -e 's/^.*LIBBACFIND_LT_AGE *\(.*\)$/\1/p' ${srcdir}/src/version.h`
78 AC_SUBST(LIBBACFIND_LT_CURRENT)dnl
79 AC_SUBST(LIBBACFIND_LT_REVISION)dnl
80 AC_SUBST(LIBBACFIND_LT_AGE)dnl
81
82 echo "configuring for ${BACULA} $VERSION ($DATE)"
83
84
85 dnl -------------------------------------------------------
86 dnl Check for compiler.
87 dnl ------------------------------------------------------
88
89 AC_PROG_CC
90 AC_PROG_CXX
91 AC_PROG_CC_C_O         dnl Determine if C compiler support -c -o.
92 AC_PROG_GCC_TRADITIONAL    dnl Determine if ioctl() need -traditional.
93
94 BASECC=`basename $CC`
95 have_gcc=no
96 if test "x$BASECC" = xgcc; then
97    AC_DEFINE(HAVE_GCC)
98    have_gcc=yes
99 fi
100 AC_PATH_PROG(CXX, $CXX, $CXX)
101 if test ! -e $CXX; then
102    AC_MSG_ERROR(Unable to find C++ compiler)
103 fi
104
105 dnl -------------------------------------------------------
106 dnl Check for programs.
107 dnl ------------------------------------------------------
108 AC_PROG_INSTALL
109 AC_PATH_PROG(MV, mv, mv)
110 dnl Alert !!!
111 dnl If we name the variable RM it will shadow the RM variable in the configure script and we overwrite the
112 dnl value with the name of the rm command and not rm -f which is its normal content. This gives all kind
113 dnl of strange output of the configure script (like things don't exist etc.).
114 dnl So we name it REMOVE (more software has run into this problem)
115 AC_PATH_PROG(REMOVE, rm, rm)
116 AC_PATH_PROG(CP, cp, cp)
117 AC_PATH_PROG(SED, sed, sed)
118 AC_PATH_PROG(ECHO, echo, echo)
119 AC_PATH_PROG(CMP, cmp, cmp)
120 AC_PATH_PROG(TBL, tbl, tbl)
121 AC_PATH_PROG(AR, ar, ar)
122 AC_PATH_PROG(OPENSSL, openssl, none)
123 AC_PATH_PROG(MTX, mtx, mtx)
124 AC_PATH_PROG(DD, dd, dd)
125 AC_PATH_PROG(MKISOFS, mkisofs, mkisofs)
126 AC_PATH_PROG(PYTHON, python, python)
127 AC_PATH_PROG(GROWISOFS, growisofs, growisofs)
128 AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo)
129 AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format)
130 AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config)
131 AC_PATH_PROG(QMAKE, qmake, none)
132 AC_PATH_PROG(GMAKE, gmake, none)
133 AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.])
134 if test "x$WXCONFIG" = x; then
135    WXCONFIG=wx-config
136 fi
137 AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG})
138 AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).])
139 AC_PATH_PROG(CDRECORD, cdrecord, cdrecord)
140 AC_PATH_PROG(PIDOF, pidof, pidof)
141 AC_PROG_AWK
142 # Some AWK programs fail, so test it and warn the user
143 if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 } 
144       { if ((prog == $2) || (("(" prog ")") == $2) ||
145       (("[" prog "]") == $2) ||
146       ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :;
147 else
148   AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!!
149    The regex engine of $AWK is too broken to be used you 
150    might want to install GNU AWK.
151    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!])
152 fi
153 THE_AWK=$AWK
154 AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK)
155
156
157 test -n "$ARFLAG" || ARFLAGS="cr"
158 AC_SUBST(ARFLAGS)
159
160 MAKE_SHELL=/bin/sh
161 AC_SUBST(MAKE_SHELL)
162
163 AC_SUBST(LOCAL_LIBS)
164 AC_SUBST(LOCAL_CFLAGS)
165 AC_SUBST(LOCAL_LDFLAGS)
166 AC_SUBST(LOCAL_DEFS)
167
168 dnl --------------------------------------------------
169 dnl Libtool config
170 dnl --------------------------------------------------
171 use_libtool=yes
172 AC_ARG_ENABLE(libtool,
173    AC_HELP_STRING([--enable-libtool], [enable building using GNU libtool @<:@default=yes@:>@]),
174    [
175        if test x$enableval = xno; then
176           use_libtool=no
177        fi
178    ]
179 )
180 LT_INIT([shared disable-static])
181 LT_LANG([C++])
182
183 if test x$use_libtool != xno; then
184    DEFAULT_OBJECT_TYPE=".lo"
185    DEFAULT_ARCHIVE_TYPE=".la"
186    DEFAULT_SHARED_OBJECT_TYPE=".la"
187    LIBTOOL="\$(LIBTOOL)"
188    LIBTOOL_INSTALL_TARGET="libtool-install"
189    LIBTOOL_UNINSTALL_TARGET="libtool-uninstall"
190    LIBTOOL_CLEAN_TARGET="libtool-clean"
191    QMAKE_LIBTOOL="${BUILD_DIR}/libtool"
192    FD_PLUGIN_DIR="src/plugins/fd"
193    have_plugins=yes
194 else
195    DEFAULT_OBJECT_TYPE=".o"
196    DEFAULT_ARCHIVE_TYPE=".a"
197    DEFAULT_SHARED_OBJECT_TYPE=".so"
198    LIBTOOL="# \$(LIBTOOL)"
199    LIBTOOL_INSTALL_TARGET=""
200    LIBTOOL_UNINSTALL_TARGET=""
201    LIBTOOL_CLEAN_TARGET=""
202    QMAKE_LIBTOOL="# ${BUILD_DIR}/libtool"
203    FD_PLUGIN_DIR=""
204    have_plugins=no
205 fi
206
207 AC_SUBST(DEFAULT_OBJECT_TYPE)
208 AC_SUBST(DEFAULT_ARCHIVE_TYPE)
209 AC_SUBST(DEFAULT_SHARED_OBJECT_TYPE)
210 AC_SUBST(LIBTOOL)
211 AC_SUBST(LIBTOOL_INSTALL_TARGET)
212 AC_SUBST(LIBTOOL_UNINSTALL_TARGET)
213 AC_SUBST(LIBTOOL_CLEAN_TARGET)
214 AC_SUBST(QMAKE_LIBTOOL)
215 AC_SUBST(FD_PLUGIN_DIR)
216
217 dnl --------------------------------------------------
218 dnl Include file handling
219 dnl --------------------------------------------------
220 AC_ARG_ENABLE(includes,
221    AC_HELP_STRING([--enable-includes], [enable installing of include files @<:@default=no@:>@]),
222    [
223        if test x$enableval = xyes; then
224           install_includes=yes
225        fi
226    ]
227 )
228
229 dnl It only makes sense to install include files when you install libraries which only happens when
230 dnl libtool is enabled
231
232 if test x$use_libtool != xno -a x$install_includes = xyes; then
233    INCLUDE_INSTALL_TARGET="install-includes"
234    INCLUDE_UNINSTALL_TARGET="uninstall-includes"
235 else
236    INCLUDE_INSTALL_TARGET=""
237    INCLUDE_UNINSTALL_TARGET=""
238 fi
239 AC_SUBST(INCLUDE_INSTALL_TARGET)
240 AC_SUBST(INCLUDE_UNINSTALL_TARGET)
241
242 dnl --------------------------------------------------
243 dnl Bacula OP Sys determination (see aclocal.m4)
244 dnl --------------------------------------------------
245 BA_CHECK_OPSYS
246
247 dnl -----------------------------------------------------------
248 dnl Bacula OPSys Distribution determination (see aclocal.m4)
249 dnl ----------------------------------------------------------
250 BA_CHECK_OPSYS_DISTNAME
251
252 dnl --------------------------------------------------
253 dnl Suppport for gettext (translations)
254 dnl By default, $datarootdir is ${prefix}/share
255 dnl --------------------------------------------------
256 AM_GNU_GETTEXT([external])
257
258 dnl ------------------------------------------------------------------
259 dnl If the user has not set --prefix, we set our default to nothing.
260 dnl In this case, if the user has not set --sysconfdir, we set it
261 dnl to the package default of /etc/bacula.  If either --prefix or
262 dnl --sysconfdir is set, we leave sysconfdir alone except to eval it.
263 dnl If the user has not set --libdir, we set it to the package
264 dnl default of /usr/lib. If either --prefix or --libdir is set,
265 dnl we leave libdir alone except to eval it. If the user has not set
266 dnl --includedir, we set it to the package default of /usr/include.
267 dnl If either --prefix or --includedir is set, we leave includedir
268 dnl alone except to eval it
269 dnl ------------------------------------------------------------------
270 os_name=`uname -s 2>/dev/null`
271 if test x${prefix} = xNONE ; then
272    if test `eval echo ${sysconfdir}` = NONE/etc ; then
273       sysconfdir=/etc/bacula
274    fi
275
276    if test `eval echo ${libdir}` = NONE/lib ; then
277       case ${os_name} in
278       Linux)
279          os_processor=`uname -p 2>/dev/null`
280          case ${os_processor} in
281          x86_64)
282             libdir=/usr/lib64
283             ;;
284          *)
285             libdir=/usr/lib
286             ;;
287          esac
288          ;;
289       *)
290          libdir=/usr/lib
291          ;;
292       esac
293    fi
294
295    if test `eval echo ${includedir}` = NONE/include ; then
296       includedir=/usr/include
297    fi
298
299    if test `eval echo ${datarootdir}` = NONE/share ; then
300       datarootdir=/usr/share
301    fi
302    prefix=
303 fi
304
305 dnl -------------------------------------------------------------------------
306 dnl  If the user has not set --exec-prefix, we default to ${prefix}
307 dnl -------------------------------------------------------------------------
308 if test x${exec_prefix} = xNONE ; then
309    exec_prefix=${prefix}
310 fi
311
312 sysconfdir=`eval echo ${sysconfdir}`
313 datarootdir=`eval echo ${datarootdir}`
314 docdir=`eval echo ${docdir}`
315 htmldir=`eval echo ${htmldir}`
316 libdir=`eval echo ${libdir}`
317 includedir=`eval echo ${includedir}`
318 localedir=`eval echo ${datarootdir}/locale`
319 AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir")
320 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir") 
321
322 dnl ------------------------------------------------------------------
323 dnl If the user has not set --sbindir, we set our default as /sbin
324 dnl ------------------------------------------------------------------
325 if test x$sbindir = x'${exec_prefix}/sbin' ; then
326    sbindir=${exec_prefix}/sbin
327 fi
328 sbindir=`eval echo ${sbindir}`
329
330 dnl -------------------------------------------------------------------------
331 dnl  If the user has not set --mandir, we default to /usr/share/man
332 dnl -------------------------------------------------------------------------
333 if test x$mandir = x'${prefix}/man' ; then
334    mandir=/usr/share/man
335 fi
336
337 dnl -------------------------------------------------------------------------
338 dnl  If the user has not set --htmldir, we default to /usr/share/doc/bacula/html
339 dnl -------------------------------------------------------------------------
340 if test x$htmldir = x${docdir} ; then
341    htmldir=`eval echo ${docdir}bacula/html`
342 fi
343
344 dnl -------------------------------------------------------------------------
345 dnl  If the user has not set --docdir, we default to /usr/share/doc/
346 dnl -------------------------------------------------------------------------
347 if test x$docdir = x'/usr/share/doc/' ; then
348    docdir=`eval echo ${docdir}bacula`
349 fi
350
351             
352 AC_PATH_PROGS(MSGFMT, msgfmt, no)
353 if test "$MSGFMT" = "no"
354 then
355    echo 'msgfmt program not found, disabling NLS !'
356    USE_NLS=no
357    USE_INCLUDED_LIBINTL=no
358 #else
359    AM_GNU_GETTEXT
360 fi
361
362 support_mysql=no
363 support_sqlite=no
364 support_sqlite3=no
365 support_postgresql=no
366 support_ingres=no
367 support_dbi=no
368 support_smartalloc=yes
369 support_readline=yes
370 support_conio=yes
371 support_gnome=no
372 support_bat=no
373 support_wx_console=no
374 support_tray_monitor=no
375 support_tls=no
376 support_crypto=no
377 gnome_version=
378 wx_version=
379 support_static_tools=no
380 support_static_fd=no
381 support_static_sd=no
382 support_static_dir=no
383 support_static_cons=no
384 support_python=no
385 build_client_only=no
386 build_dird=yes
387 build_stored=yes
388 cats=
389 db_type=Internal
390 support_lockmgr=no
391 DB_TYPE=bdb
392
393 dnl --------------------------------------------------------------------------
394 dnl CHECKING COMMAND LINE OPTIONS
395 dnl --------------------------------------------------------------------------
396
397 dnl -------------------------------------------
398 dnl gnome (default off)
399 dnl -------------------------------------------
400 AC_ARG_ENABLE(gnome,
401    AC_HELP_STRING([--enable-gnome], [enable build of bgnome-console GUI @<:@default=no@:>@]),
402    [
403        if test x$enableval = xyes; then
404           support_gnome=yes
405        fi
406    ]
407 )
408
409 GNOME_DIR=
410 if test x$support_gnome = xyes; then
411    AC_MSG_ERROR(bgnome-console no longer supported)
412    AC_MSG_ERROR(--enable-gnome option no longer supported)
413 fi
414 # AC_SUBST(GNOME_DIR)
415
416 dnl -------------------------------------------
417 dnl bat (default off)
418 dnl -------------------------------------------
419 AC_ARG_ENABLE(bat,
420    AC_HELP_STRING([--enable-bat], [enable build of bat Qt4 GUI @<:@default=no@:>@]),
421    [
422        if test x$enableval = xyes; then
423           AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled]) 
424           support_bat=yes
425        fi
426    ]
427 )
428
429 BAT_DIR=
430 if test x$support_bat = xyes; then
431    abc=`$PKGCONFIG --atleast-version=4.2 QtGui`
432    pkg=$?
433    if test $pkg = 0; then
434       BAT_DIR=src/qt-console
435    else
436       AC_MSG_ERROR(Unable to find Qt4 installation needed by bat)
437    fi
438 fi
439
440 dnl 
441 dnl  The qwt library was used with bat, but that is no longer the case
442 dnl 
443 got_qwt=no
444 QWT_INC=
445 QWT_LDFLAGS=
446 QWT_LIB=
447 QWT=
448 no_qwt=no
449 dnl if test x$support_bat = xyes; then
450 dnl    AC_MSG_CHECKING(for qwt support)
451 dnl    AC_ARG_WITH(qwt,
452 dnl       AC_HELP_STRING([--with-qwt@<:@=DIR@:>@], [specify qwt library directory]),
453 dnl       [
454 dnl           case "$with_qwt" in
455 dnl           no)
456 dnl              no_qwt=yes
457 dnl              ;;
458 dnl           yes|*)
459 dnl              if test -f ${with_qwt}/include/qwt.h; then
460 dnl                 QWT_INC="${with_qwt}/include"
461 dnl                 QWT_LDFLAGS="-L${with_qwt}/lib"
462 dnl                 QWT_LIB="-lqwt"
463 dnl                 QWT="qwt"
464 dnl              fi
465 dnl              ;;
466 dnl           esac
467 dnl       ]    
468 dnl    )
469
470 dnl    dnl
471 dnl    dnl Search in standard places, or --with-qwt not specified
472 dnl    dnl
473 dnl    if test $no_qwt = no; then 
474 dnl       if test x$QWT_INC = x; then
475 dnl          for root in /usr /usr/local; do
476 dnl             for ver in qwt qwt5 qwt-qt4; do
477 dnl                if test -f ${root}/include/${ver}/qwt.h; then
478 dnl                   QWT_INC="${root}/include/${ver}"
479 dnl                   if test -d ${root}/lib64/; then
480 dnl                      QWT_LDFLAGS="-L${root}/lib64"
481 dnl                   elif test -d ${root}/lib/64/; then
482 dnl                      QWT_LDFLAGS="-L${root}/64"
483 dnl                   else
484 dnl                      QWT_LDFLAGS="-L${root}/lib"
485 dnl                   fi
486 dnl                   QWT_LIB="-lqwt"
487 dnl                   QWT="qwt"
488 dnl                   got_qwt=yes
489 dnl                   break;
490 dnl                fi
491 dnl             done
492 dnl          done
493 dnl       fi
494 dnl    fi
495 dnl    if test x$QWT_INC = x; then
496 dnl       AC_MSG_RESULT(no)
497 dnl    else
498 dnl       AC_DEFINE(HAVE_QWT, 1, [Set if bat QWT library found])
499 dnl       AC_MSG_RESULT(yes)
500 dnl    fi
501 dnl fi
502
503 AC_SUBST(BAT_DIR)
504 AC_SUBST(QWT_INC)
505 AC_SUBST(QWT_LDFLAGS)
506 AC_SUBST(QWT_LIB)
507 AC_SUBST(QWT)
508
509 dnl -------------------------------------------
510 dnl bwx-console (default off)
511 dnl -------------------------------------------
512 AC_ARG_ENABLE(bwx-console,
513    AC_HELP_STRING([--enable-bwx-console], [enable build of wxWidgets console @<:@default=no@:>@]),
514    [
515        if test x$enableval = xyes; then
516           support_wx_console=yes
517        fi
518    ]
519 )
520
521 WX_DIR=
522 if test x$support_wx_console = xyes; then
523    abc=`$WXCONFIG $WXFLAGS --cppflags`
524    pkg=$?
525    if test $pkg = 0; then
526       wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`"
527       WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags`
528       WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs`
529
530       AC_SUBST(WXCONS_CPPFLAGS)
531       AC_SUBST(WXCONS_LDFLAGS)
532       WX_DIR="src/wx-console"
533    else
534       echo " "
535       echo "wx-config program not found. bwx-console disabled."
536       echo " "
537       support_wx_console=no
538    fi
539 fi
540 AC_SUBST(WX_DIR)
541
542 dnl -------------------------------------------
543 dnl tray-monitor (default off)
544 dnl -------------------------------------------
545 AC_ARG_ENABLE(tray-monitor,
546    AC_HELP_STRING([--enable-tray-monitor], [enable build of Gnome tray monitor (compatible with KDE @<:@default=no@:>@]),
547    [
548        if test x$enableval = xyes; then
549           support_tray_monitor=yes
550        fi
551    ]
552 )
553
554 TRAY_MONITOR_DIR=
555 if test x$support_tray_monitor = xyes; then
556    abc=`$PKGCONFIG --exists gtk+-2.0`
557    pkg=$?
558    if test $pkg = 0; then
559       TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0`
560       TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0`
561       AC_SUBST(TRAY_MONITOR_CPPFLAGS)
562       AC_SUBST(TRAY_MONITOR_LDFLAGS)
563       TRAY_MONITOR_DIR=src/tray-monitor
564       abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0`
565       pkg=$?
566       if test $pkg = 0; then
567          AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded])
568       fi
569    fi
570 fi
571 AC_SUBST(TRAY_MONITOR_DIR)
572
573 dnl -------------------------------------------
574 dnl smartalloc (default off)
575 dnl -------------------------------------------
576 AC_ARG_ENABLE(smartalloc,
577    AC_HELP_STRING([--enable-smartalloc], [enable smartalloc debugging support @<:@default=no@:>@]),
578    [
579        if test x$enableval = xno; then
580           support_smartalloc=no
581        fi
582    ]
583 )
584
585 if test x$support_smartalloc = xyes; then
586    AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled])
587 fi
588
589 dnl -------------------------------------------
590 dnl Lock Manager (default off)
591 dnl -------------------------------------------
592 AC_ARG_ENABLE(lockmgr,
593    AC_HELP_STRING([--enable-lockmgr], [enable lock manager support @<:@default=no@:>@]),
594    [
595        if test x$enableval = xyes; then
596           support_lockmgr=yes
597        fi
598    ]
599 )
600
601 if test x$support_lockmgr = xyes; then
602    AC_DEFINE(_USE_LOCKMGR, 1, [Set if you want Lock Manager enabled])
603 fi
604
605
606 dnl -------------------------------------------
607 dnl static-tools (default off)
608 dnl -------------------------------------------
609 AC_ARG_ENABLE(static-tools,
610    AC_HELP_STRING([--enable-static-tools], [enable static tape tools @<:@default=no@:>@]),
611    [
612        if test x$enableval = xyes; then
613           if test x$use_libtool = xyes; then
614              AC_MSG_ERROR([Libtool is enabled, not compatible with static tools, 
615   please rerun configure with --disable-libtool])
616           fi
617           support_static_tools=yes
618        fi
619    ]
620 )
621
622 TTOOL_LDFLAGS=
623 if test x$support_static_tools = xyes; then
624    TTOOL_LDFLAGS="-static"
625 fi
626 AC_SUBST(TTOOL_LDFLAGS)
627
628 dnl -------------------------------------------
629 dnl static-fd    (default off)
630 dnl -------------------------------------------
631 AC_ARG_ENABLE(static-fd,
632    AC_HELP_STRING([--enable-static-fd], [enable static File daemon @<:@default=no@:>@]),
633    [
634        if test x$enableval = xyes; then
635           if test x$use_libtool = xyes; then
636              AC_MSG_ERROR([Libtool is enabled, not compatible with static tools, 
637   please rerun configure with --disable-libtool])
638           fi
639           support_static_fd=yes
640        fi
641    ]
642 )
643
644 STATIC_FD=
645 if test x$support_static_fd = xyes; then
646    STATIC_FD="static-bacula-fd"
647 fi
648 AC_SUBST(STATIC_FD)
649
650 dnl -------------------------------------------
651 dnl static-sd    (default off)
652 dnl -------------------------------------------
653 AC_ARG_ENABLE(static-sd,
654    AC_HELP_STRING([--enable-static-sd], [enable static Storage daemon @<:@default=no@:>@]),
655    [
656        if test x$enableval = xyes; then
657           if test x$use_libtool = xyes; then
658              AC_MSG_ERROR([Libtool is enabled, not compatible with static tools, 
659   please rerun configure with --disable-libtool])
660           fi
661           support_static_sd=yes
662        fi
663    ]
664 )
665
666 STATIC_SD=
667 if test x$support_static_sd = xyes; then
668    STATIC_SD="static-bacula-sd"
669 fi
670 AC_SUBST(STATIC_SD)
671
672 dnl -------------------------------------------
673 dnl static-dir   (default off)
674 dnl -------------------------------------------
675 AC_ARG_ENABLE(static-dir,
676    AC_HELP_STRING([--enable-static-dir], [enable static Director @<:@default=no@:>@]),
677    [
678        if test x$enableval = xyes; then
679           if test x$use_libtool = xyes; then
680              AC_MSG_ERROR([Libtool is enabled, not compatible with static tools, 
681   please rerun configure with --disable-libtool])
682           fi
683           support_static_dir=yes
684        fi
685    ]
686 )
687
688 STATIC_DIR=
689 if test x$support_static_dir = xyes; then
690    STATIC_DIR="static-bacula-dir"
691 fi
692 AC_SUBST(STATIC_DIR)
693
694 dnl -------------------------------------------
695 dnl static-cons  (default off)
696 dnl -------------------------------------------
697 AC_ARG_ENABLE(static-cons,
698    AC_HELP_STRING([--enable-static-cons], [enable static Console @<:@default=no@:>@]),
699    [
700        if test x$enableval = xyes; then
701           if test x$use_libtool = xyes; then
702              AC_MSG_ERROR([Libtool is enabled, not compatible with static tools, 
703   please rerun configure with --disable-libtool])
704           fi
705           support_static_cons=yes
706        fi
707    ]
708 )
709
710 STATIC_CONS=
711 STATIC_GNOME_CONS=
712 STATIC_WX_CONS=
713 if test x$support_static_cons = xyes; then
714    STATIC_CONS="static-bconsole"
715    STATIC_GNOME_CONS="static-bgnome-console"
716    STATIC_WX_CONS="static-bwx-console"
717 fi
718 AC_SUBST(STATIC_CONS)
719 AC_SUBST(STATIC_GNOME_CONS)
720 AC_SUBST(STATIC_WX_CONS)
721
722 dnl -------------------------------------------
723 dnl client_only  (default off)
724 dnl -------------------------------------------
725 AC_ARG_ENABLE(client-only,
726    AC_HELP_STRING([--enable-client-only], [build client (File daemon) only @<:@default=no@:>@]),
727    [
728        if test x$enableval = xyes; then
729           build_client_only=yes
730           db_type=None
731           DB_TYPE=none
732        fi
733    ]
734 )
735 if test x$build_client_only = xno; then
736    ALL_DIRS="subdirs"
737 else
738    ALL_DIRS=""
739 fi
740 AC_SUBST(ALL_DIRS)
741
742 dnl -------------------------------------------
743 dnl director  (default on)
744 dnl -------------------------------------------
745 AC_ARG_ENABLE(build-dird,
746    AC_HELP_STRING([--enable-build-dird], [enable building of dird (Director) @<:@default=yes@:>@]),
747    [
748        if test x$enableval = xno; then
749           build_dird=no
750        fi
751    ]
752 )
753 if test x$build_dird = xyes; then
754    DIRD_DIR="src/dird"
755    DIR_TOOLS="DIRTOOLS"
756 else
757    DIRD_DIR=""
758    DIR_TOOLS="NODIRTOOLS"
759 fi
760 AC_SUBST(DIRD_DIR)
761 AC_SUBST(DIR_TOOLS)
762
763 dnl -------------------------------------------
764 dnl stored  (default on)
765 dnl -------------------------------------------
766 AC_ARG_ENABLE(build-stored,
767    AC_HELP_STRING([--enable-build-stored], [enable building of stored (Storage daemon) @<:@default=yes@:>@]),
768    [
769       if test x$enableval = xno; then
770          build_stored=no
771       fi
772    ]
773 )
774 if test x$build_stored = xyes; then
775    STORED_DIR="src/stored"
776 else
777    STORED_DIR=""
778 fi
779 AC_SUBST(STORED_DIR)
780
781 dnl ---------------------------------------------------
782 dnl Check for conio (Bacula readline substitute)(
783 dnl ---------------------------------------------------
784 dnl this allows you to turn it completely off
785 AC_ARG_ENABLE(conio,
786    AC_HELP_STRING([--disable-conio], [disable conio support @<:@default=no@:>@]),
787    [
788        if test x$enableval = xno; then
789           support_conio=no
790        fi
791    ]
792 )
793   
794
795 dnl ---------------------------------------------------
796 dnl Check for IPv6 support
797 dnl ---------------------------------------------------
798 dnl this allows you to turn it completely off
799 support_ipv6=yes
800 AC_ARG_ENABLE(ipv6,   
801    AC_HELP_STRING([--enable-ipv6], [enable ipv6 support @<:@default=yes@:>@]),
802    [
803        if test x$enableval = xno; then
804           support_ipv6=no  
805        fi
806    ]
807 )
808
809 if test x$support_ipv6 = xyes; then
810     AC_TRY_LINK([ #include <sys/types.h>
811 #include <sys/socket.h>
812 #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
813       [support_ipv6=yes], [support_ipv6=no])
814 fi
815
816 if test x$support_ipv6 = xyes; then
817    AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
818 fi
819
820 TERM_LIB=""
821 AC_CHECK_HEADER(curses.h, 
822   [ AC_CHECK_LIB(ncurses, tgetent, 
823     [ TERM_LIB="-lncurses" ],
824     [ AC_CHECK_LIB(termcap, tgetent, [ TERM_LIB="-ltermcap" ])
825     ])
826   ],
827   [  AC_CHECK_HEADERS(curses.h)
828      AC_CHECK_HEADER(term.h,
829        [ AC_CHECK_LIB(curses, tgetent, 
830          [ TERM_LIB="-lcurses" ] )
831        ])
832   ])
833
834
835 got_conio="no"
836 if test x$support_conio = xyes; then
837    if test x$TERM_LIB != x; then
838       CONS_LIBS=$TERM_LIB
839       CONS_OBJ="conio.o"
840       CONS_SRC="conio.c"
841       got_conio="yes"
842       support_readline=no
843       AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled]) 
844    else
845       echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "],
846    fi
847 fi
848
849
850 dnl ---------------------------------------------------
851 dnl Check for readline support/directory (default off)
852 dnl ---------------------------------------------------
853 dnl this allows you to turn it completely off
854 AC_ARG_ENABLE(readline,
855    AC_HELP_STRING([--disable-readline], [disable readline support @<:@default=yes@:>@]),
856    [
857        if test x$enableval = xno; then
858           support_readline=no
859        fi
860    ]
861 )
862 if test x$TERM_LIB = x ; then
863    support_readline=no
864 fi
865
866 got_readline="no"
867 READLINE_SRC=
868 if test x$support_readline = xyes; then
869    AC_ARG_WITH(readline,
870       AC_HELP_STRING([--with-readline@<:@=DIR@:>@], [specify readline library directory]),
871       [
872           case "$with_readline" in
873           no)
874              :
875              ;;
876           yes|*)
877              if test -f ${with_readline}/readline.h; then
878                 CONS_INC="-I${with_readline}"
879                 CONS_LDFLAGS="-L$with_readline"
880              elif test -f ${with_readline}/include/readline/readline.h; then
881                 CONS_INC="-I${with_readline}/include/readline"
882                 CONS_LDFLAGS="-L${with_readline}/lib"
883                 with_readline="${with_readline}/include/readline"
884              else
885                 with_readline="/usr/include/readline" 
886              fi
887
888              AC_CHECK_HEADER(${with_readline}/readline.h, 
889                 [
890                     AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
891                     CONS_LIBS="-lreadline -lhistory $TERM_LIB"
892                     got_readline="yes"   
893                 ], [
894                     echo " "
895                     echo "readline.h not found. readline turned off ..."
896                     echo " "
897                 ]
898              )
899              ;;
900           esac
901       ],[
902          dnl check for standard readline library
903          AC_CHECK_HEADER(/usr/include/readline/readline.h, 
904             [
905                 AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
906                 got_readline="yes"
907                 CONS_INC="-I/usr/include/readline"
908                 CONS_LIBS="-lreadline $TERM_LIB"
909             ], [
910                 dnl Did not find standard library, so try Bacula's default
911                 AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h, 
912                     [
913                         AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support])
914                         got_readline="yes"   
915                         CONS_INC="-I${TOP_DIR}/depkgs/readline"
916                         CONS_LIBS="-lreadline -lhistory $TERM_LIB"
917                         CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
918                         PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
919                     ], [
920                         echo " "
921                         echo "readline.h not found. readline turned off ..."
922                         echo " "
923                     ]
924                 )
925             ]
926          )
927       ]    
928    )
929 fi
930
931 AC_SUBST(CONS_INC)
932 AC_SUBST(CONS_OBJ)
933 AC_SUBST(CONS_SRC)
934 AC_SUBST(CONS_LIBS)
935 AC_SUBST(CONS_LDFLAGS)
936 AC_SUBST(READLINE_SRC)
937
938 dnl Minimal stuff for readline Makefile configuration
939 MAKE_SHELL=/bin/sh
940 AC_SUBST(MAKE_SHELL)
941 AC_HEADER_STAT
942 AC_HEADER_DIRENT
943 AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown)
944 AC_CHECK_FUNCS(nanosleep nl_langinfo)
945 AC_CHECK_HEADERS(varargs.h)
946
947 dnl End of readline/conio stuff
948 dnl -----------------------------------------------------------------------
949
950 dnl -----------------------------------------------------------------------
951 dnl  Check for Python support
952 dnl
953 AC_MSG_CHECKING(for Python support)
954 AC_ARG_WITH(python,
955    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.]),
956    [
957        PYTHON_INCDIR= 
958        PYTHON_LIBS=
959        if test "$withval" != "no"; then
960           if test "$withval" = "yes"; then
961              if test -e /usr/bin/python-config ; then
962                 PYTHON_INCDIR=`/usr/bin/python-config --includes`
963                 PYTHON_LIBS=`/usr/bin/python-config --libs`
964              else
965                 for python_root in /usr /usr/local /usr/sfw; do
966                    for ver in python2.2 python2.3 python2.4 python2.5 python2.6 python3; do
967                       if test -f $python_root/include/${ver}/Python.h; then
968                          PYTHON_INCDIR=-I$python_root/include/${ver}
969                          if test -d $python_root/lib64/${ver}/config; then
970                             PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}"
971                          else
972                             PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}"
973                          fi
974                          break 
975                       fi
976                    done
977                 done
978
979                 if test x$PYTHON_INCDIR = x; then
980                    if test -f $prefix/include/Python.h; then
981                       PYTHON_INCDIR=-I$prefix/include
982                       if test -d $prefix/lib64/config; then
983                          PYTHON_LIBS="-L$prefix/lib64/config -lpython"
984                       else
985                          PYTHON_LIBS="-L$prefix/lib/config -lpython"
986                       fi
987                    else
988                       AC_MSG_RESULT(no)
989                       AC_MSG_ERROR(Unable to find Python.h in standard locations)
990                    fi
991                 fi
992              fi
993           else
994              if test -e $withval/bin/python-config ; then
995                 PYTHON_INCDIR=`$withval/bin/python-config --includes`
996                 PYTHON_LIBS=`$withval/bin/python-config --libs`
997              elif test -f $withval/Python.h; then
998                 PYTHON_INCDIR=-I$withval
999                 PYTHON_LIBS="-L$withval/config -lpython"
1000              elif test -f $withval/include/Python.h; then
1001                 PYTHON_INCDIR=-I$withval/include
1002                 if test -d $withval/lib64/config; then
1003                    PYTHON_LIBS="-L$withval/lib64/config -lpython"
1004                 else
1005                    PYTHON_LIBS="-L$withval/lib/config -lpython"
1006                 fi
1007              elif test -f $withval/include/python/Python.h; then
1008                 PYTHON_INCDIR=-I$withval/include/python
1009                 if test -d $withval/lib64/python/config; then
1010                    PYTHON_LIBS="-L$withval/lib64/python/config -lpython"
1011                 else
1012                    PYTHON_LIBS="-L$withval/lib/python/config -lpython"
1013                 fi
1014              else
1015                 AC_MSG_RESULT(no)
1016                 AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval)
1017              fi
1018           fi
1019
1020           AC_DEFINE([HAVE_PYTHON], 1)
1021           AC_MSG_RESULT(yes)
1022           support_python=yes
1023           AC_MSG_NOTICE(checking for more Python libs)
1024           saved_LIBS="$LIBS"; LIBS=
1025           AC_SEARCH_LIBS(shm_open, [rt])
1026           AC_CHECK_LIB(util, openpty)
1027           PYTHON_LIBS="$PYTHON_LIBS $LIBS"
1028           LIBS="$saved_LIBS"
1029        else
1030           AC_MSG_RESULT(no)
1031        fi
1032    ],[
1033        AC_MSG_RESULT(no)
1034    ]
1035 )
1036 AC_SUBST(PYTHON_LIBS)
1037 AC_SUBST(PYTHON_INCDIR)
1038
1039 dnl
1040 dnl Find where sockets are (especially for Solaris)
1041 dnl Do this before the TCP Wrappers test since tcp wrappers
1042 dnl uses the socket library and some linkers are stupid.
1043 dnl
1044 AC_CHECK_FUNC(socket,
1045     AC_MSG_RESULT(using libc's socket),
1046     AC_CHECK_LIB(xnet,socket)
1047     AC_CHECK_LIB(socket,socket)
1048     AC_CHECK_LIB(inet,socket))
1049
1050 dnl -----------------------------------------------------------
1051 dnl Check whether user wants TCP wrappers support (default off)
1052 dnl -----------------------------------------------------------
1053 TCPW_MSG="no" 
1054 WRAPLIBS=""
1055 AC_ARG_WITH(tcp-wrappers,
1056    AC_HELP_STRING([--with-tcp-wrappers@<:@=DIR@:>@], [enable tcpwrappers support]),
1057    [
1058        if test "x$withval" != "xno" ; then
1059           saved_LIBS="$LIBS"
1060           LIBS="$saved_LIBS -lwrap"
1061           AC_SEARCH_LIBS(nanosleep, [rt])
1062           AC_MSG_CHECKING(for libwrap)
1063           AC_TRY_LINK(
1064              [ 
1065                #include <sys/types.h>
1066                #include <tcpd.h>
1067                int deny_severity = 0;
1068                int allow_severity = 0;
1069                struct request_info *req;
1070              ], [
1071                 hosts_access(req);
1072              ], [
1073                  AC_MSG_RESULT(yes)
1074                  AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1075                  TCPW_MSG="yes" 
1076                  LIBS="$saved_LIBS"
1077                  WRAPLIBS="-lwrap"
1078              ], [
1079                  LIBS="$saved_LIBS -lwrap -lnsl"
1080                  WRAPLIBS="$saved_LIBS -lwrap -lnsl"
1081                  AC_TRY_LINK(
1082                    [
1083                        #include <sys/types.h>
1084                        #include <tcpd.h>
1085                        int deny_severity = 0;
1086                        int allow_severity = 0;
1087                        struct request_info *req;
1088                    ], [
1089                        hosts_access(req);
1090                    ], [
1091                       AC_MSG_RESULT(yes)
1092                       AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support])
1093                       TCPW_MSG="yes" 
1094                       LIBS="$saved_LIBS"
1095                       WRAPLIBS="-lwrap"
1096                    ], [
1097                       AC_MSG_ERROR([*** libwrap missing])
1098                    ]
1099                 )
1100              ]
1101           )
1102        fi
1103    ]
1104 )
1105
1106 dnl -----------------------------------------------------------
1107 dnl Check whether OpenSSL is available
1108 dnl -----------------------------------------------------------
1109 AC_MSG_CHECKING([for OpenSSL])
1110 dnl The following uses quadrigraphs:
1111 dnl '@<:@' = '['
1112 dnl '@:>@' = ']'
1113 AC_ARG_WITH(openssl,
1114     AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]),
1115     [
1116         with_openssl_directory=${withval}
1117     ]
1118 )
1119
1120 if test "x$with_openssl_directory" != "xno"; then
1121    OPENSSL_LIBS="-lssl -lcrypto"
1122    OPENSSL_INC=""
1123
1124    if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then
1125       #
1126       # Make sure the $with_openssl_directory also makes sense
1127       #
1128       if test -d "$with_openssl_directory/lib" -a -d "$with_openssl_directory/include"; then
1129          OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS"
1130          OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC"
1131       fi
1132    fi
1133
1134    saved_LIBS="${LIBS}"
1135    saved_CFLAGS="${CFLAGS}"
1136    LIBS="${saved_LIBS} ${OPENSSL_LIBS}"
1137    CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}"
1138
1139    AC_TRY_LINK(
1140       [
1141           #include <openssl/ssl.h>
1142       ], [
1143            CRYPTO_set_id_callback(NULL);
1144       ], [
1145           support_tls="yes"
1146           support_crypto="yes"
1147       ], [
1148           support_tls="no"
1149           support_crypto="no"
1150       ]
1151    )
1152
1153    AC_TRY_LINK(
1154       [
1155           #include <openssl/evp.h>
1156       ], [
1157           EVP_sha512();
1158       ], [
1159           ac_cv_openssl_sha2="yes"
1160       ], [
1161           ac_cv_openssl_sha2="no"
1162       ]
1163    )
1164
1165    dnl Solaris disables greater than 128+ bit encryption in their OpenSSL
1166    dnl implementation, presumably for export reasons. If 192bit AES
1167    dnl is available, we assume that we're running with a 'non-export'
1168    dnl openssl library.
1169    AC_TRY_LINK(
1170       [
1171           #include <openssl/evp.h>
1172       ], [
1173           EVP_aes_192_cbc();
1174       ], [
1175           ac_cv_openssl_export="no"
1176       ], [
1177           ac_cv_openssl_export="yes"
1178       ]
1179    )
1180
1181    LIBS="${saved_LIBS}"
1182    CFLAGS="${saved_CFLAGS}"
1183
1184    if test "$support_tls" = "yes"; then
1185       AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available])
1186       AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled])
1187       AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled])
1188    fi
1189
1190    if test "$ac_cv_openssl_sha2" = "yes"; then
1191       AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available])
1192    fi
1193
1194    if test "$ac_cv_openssl_export" = "yes"; then
1195       AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers])
1196    fi
1197 else
1198    support_tls="no"
1199    support_crypto="no"
1200    OPENSSL_LIBS=""
1201    OPENSSL_INC=""
1202 fi
1203 AC_MSG_RESULT([$support_tls])
1204
1205 if test "$support_tls" = "no"; then
1206    OPENSSL_LIBS=""
1207    OPENSSL_INC=""
1208 fi  
1209 if test "$support_crypto" = "no"; then
1210    OPENSSL_LIBS=""
1211    OPENSSL_INC=""
1212 else
1213    AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1214 fi  
1215
1216 AC_SUBST(OPENSSL_LIBS)
1217 AC_SUBST(OPENSSL_INC)
1218
1219 dnl -----------------------------------------------------------
1220 dnl dlopen is needed for plugins
1221 dnl -----------------------------------------------------------
1222 AC_SEARCH_LIBS(dlopen, [dl])
1223
1224 dnl ------------------------------------------
1225 dnl Where to place working dir
1226 dnl ------------------------------------------
1227 working_dir=`eval echo ${prefix}/var/bacula/working`
1228 AC_ARG_WITH(working-dir,
1229    AC_HELP_STRING([--with-working-dir=PATH], [specify path of Bacula working directory]),
1230    [
1231        if test "x$withval" != "xno" ; then     
1232          working_dir=$withval
1233        fi
1234    ]
1235 )
1236
1237 AC_SUBST(working_dir)
1238
1239 dnl ------------------------------------------------------------------
1240 dnl If the user has not set archivedir, we set our default as /tmp
1241 dnl ------------------------------------------------------------------
1242 archivedir=/tmp
1243 AC_ARG_WITH(archivedir,
1244    AC_HELP_STRING([--with-archivedir=PATH], [specify path of SD archive directory]),
1245    [
1246        if test "x$withval" != "xno" ; then     
1247           archivedir=$withval
1248        fi
1249    ]
1250 )
1251
1252 AC_SUBST(archivedir)
1253
1254 dnl ------------------------------------------------------------------
1255 dnl Allow the user to specify the daemon resource name default hostname
1256 dnl ------------------------------------------------------------------
1257 basename=`hostname`
1258 AC_ARG_WITH(basename,
1259    AC_HELP_STRING([--with-basename=RESNAME], [specify base resource name for daemons]),
1260    [
1261        if test "x$withval" != "xno" ; then     
1262           basename=$withval
1263        fi
1264    ]
1265 )
1266
1267 AC_SUBST(basename)
1268
1269 dnl ------------------------------------------------------------------
1270 dnl Allow the user to override the hostname (default = machine hostname)
1271 dnl ------------------------------------------------------------------
1272 hostname=`uname -n | cut -d '.' -f 1`
1273 if test x${hostname} = x ; then
1274   hostname="localhost"
1275 fi
1276 AC_ARG_WITH(hostname,
1277    AC_HELP_STRING([--with-hostname=RESNAME], [specify host name for daemons]),
1278    [
1279        if test "x$withval" != "xno" ; then
1280          hostname=$withval
1281        fi
1282    ]
1283 )
1284
1285 AC_SUBST(hostname)
1286
1287
1288 dnl ------------------------------------------
1289 dnl Where to place scriptdir (script files)
1290 dnl ------------------------------------------
1291 scriptdir=`eval echo ${sysconfdir}`
1292 AC_ARG_WITH(scriptdir,
1293    AC_HELP_STRING([--with-scriptdir=PATH], [specify path of Bacula scripts directory]),
1294    [
1295        if test "x$withval" != "xno" ; then     
1296           scriptdir=$withval
1297        fi
1298    ]
1299 )
1300
1301 AC_SUBST(scriptdir)
1302
1303
1304 dnl ------------------------------------------
1305 dnl Where to place bsrdir (bsr files)
1306 dnl ------------------------------------------
1307 bsrdir=/tmp
1308 AC_ARG_WITH(bsrdir,
1309    AC_HELP_STRING([--with-bsrdir=PATH], [specify path of Bacula bsrs directory]),
1310    [
1311        if test "x$withval" != "xno" ; then     
1312           bsrdir=$withval
1313        fi
1314    ]
1315 )
1316
1317 AC_SUBST(bsrdir)
1318
1319 dnl ------------------------------------------
1320 dnl Where to place logdir (bsr files)
1321 dnl ------------------------------------------
1322 logdir=/tmp
1323 AC_ARG_WITH(logdir,
1324    AC_HELP_STRING([--with-logdir=PATH], [specify path of Bacula logs directory]),
1325    [
1326        if test "x$withval" != "xno" ; then     
1327           logdir=$withval
1328        fi
1329    ]
1330 )
1331
1332 AC_SUBST(logdir)
1333
1334
1335 # ------------------------------------------
1336 # Where to place plugindir (plugin files)
1337 # ------------------------------------------
1338 plugindir=`eval echo ${libdir}`
1339 AC_ARG_WITH(plugindir,
1340    AC_HELP_STRING([--with-plugindir=PATH], [specify path of Bacula plugins directory]),
1341    [
1342        if test "x$withval" != "xno" ; then     
1343           plugindir=$withval
1344        fi
1345    ]
1346 )
1347
1348 AC_SUBST(plugindir)
1349
1350 dnl ------------------------------------------
1351 dnl Where to send dump email
1352 dnl ------------------------------------------
1353 dump_email=root@localhost
1354 AC_ARG_WITH(dump-email,
1355    AC_HELP_STRING([--with-dump-email=EMAIL], [dump email address]),
1356    [
1357        if test "x$withval" != "xno" ; then     
1358           dump_email=$withval
1359        fi
1360    ]
1361 )
1362
1363 AC_SUBST(dump_email)
1364
1365 dnl ------------------------------------------
1366 dnl Where to send job email
1367 dnl ------------------------------------------
1368 job_email=root@localhost
1369 AC_ARG_WITH(job-email,
1370    AC_HELP_STRING([--with-job-email=EMAIL], [job output email address]),
1371    [
1372        if test "x$withval" != "xno" ; then     
1373           job_email=$withval
1374        fi
1375    ]
1376 )
1377
1378 AC_SUBST(job_email)
1379
1380 dnl ------------------------------------------
1381 dnl Where to find smtp host
1382 dnl ------------------------------------------
1383 smtp_host=localhost
1384 AC_ARG_WITH(smtp_host,
1385    AC_HELP_STRING([--with-smtp-host=HOST], [SMTP mail host address]),
1386    [
1387        if test "x$withval" != "xno" ; then     
1388           smtp_host=$withval
1389        fi
1390    ]
1391 )
1392
1393 AC_SUBST(smtp_host)
1394
1395 dnl ------------------------------------
1396 dnl Where to place pid files
1397 dnl ------------------------------------
1398 piddir=/var/run
1399 AC_ARG_WITH(pid-dir,
1400    AC_HELP_STRING([--with-pid-dir=PATH], [specify location of Bacula pid files]),
1401    [
1402        if test "x$withval" != "xno" ; then   
1403           piddir=$withval
1404        fi
1405    ]
1406 )
1407
1408 AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir")
1409 AC_SUBST(piddir)
1410
1411 dnl ------------------------------------
1412 dnl Where to place subsys "lock file"
1413 dnl ------------------------------------
1414 subsysdir=/var/run/subsys
1415 if test -d /var/run/subsys; then
1416    subsysdir=/var/run/subsys
1417 elif test -d /var/lock/subsys; then
1418    subsysdir=/var/lock/subsys
1419 else
1420    subsysdir=/var/run/subsys
1421 fi
1422 AC_ARG_WITH(subsys-dir,
1423    AC_HELP_STRING([--with-subsys-dir=PATH], [specify location of Bacula subsys file]),
1424    [
1425        if test "x$withval" != "xno" ; then   
1426           subsysdir=$withval
1427        fi
1428    ]
1429 )
1430
1431 AC_SUBST(subsysdir)
1432
1433 dnl ------------------------------------
1434 dnl Where to start assigning ports
1435 dnl ------------------------------------
1436 baseport=9101
1437 AC_ARG_WITH(baseport,
1438    AC_HELP_STRING([--with-baseport=PORT], [specify base port address for daemons]),
1439    [
1440        if test "x$withval" != "xno" ; then   
1441           baseport=$withval
1442        fi
1443    ]
1444 )
1445
1446 AC_SUBST(baseport)
1447 dir_port=`expr $baseport`
1448 fd_port=`expr $baseport + 1`
1449 sd_port=`expr $fd_port + 1`
1450
1451 AC_SUBST(dir_port)
1452 AC_SUBST(fd_port)
1453 AC_SUBST(sd_port)
1454
1455 dnl ------------------------------------------
1456 dnl Generate passwords
1457 dnl ------------------------------------------
1458 dir_password=
1459 AC_ARG_WITH(dir-password,
1460    AC_HELP_STRING([--with-dir-password=PASSWORD], [specify Director's password]),
1461    [
1462        if test "x$withval" != "xno" ; then     
1463           dir_password=$withval
1464        fi
1465    ]
1466 )
1467
1468 if test "x$dir_password" = "x" ; then
1469    if test "x$OPENSSL" = "xnone" ; then
1470       key=`autoconf/randpass 33`
1471    else
1472       key=`openssl rand -base64 33`
1473    fi
1474    dir_password=$key
1475 fi
1476
1477 fd_password=
1478 AC_ARG_WITH(fd-password,
1479    AC_HELP_STRING([--with-fd-password=PASSWORD], [specify Client's password]),
1480    [
1481        if test "x$withval" != "xno" ; then     
1482           fd_password=$withval
1483        fi
1484    ]
1485 )
1486
1487 if test "x$fd_password" = "x" ; then
1488    if test "x$OPENSSL" = "xnone" ; then
1489       key=`autoconf/randpass 37`
1490    else
1491       key=`openssl rand -base64 33`
1492    fi
1493    fd_password=$key
1494 fi
1495
1496 sd_password=
1497 AC_ARG_WITH(sd-password,
1498    AC_HELP_STRING([--with-sd-password=PASSWORD], [specify Storage daemon's password]),
1499    [
1500        if test "x$withval" != "xno" ; then     
1501           sd_password=$withval
1502        fi
1503    ]
1504 )
1505
1506 if test "x$sd_password" = "x" ; then
1507    if test "x$OPENSSL" = "xnone" ; then
1508       key=`autoconf/randpass 41`
1509    else
1510       key=`openssl rand -base64 33`
1511    fi
1512    sd_password=$key
1513 fi
1514
1515 mon_dir_password=
1516 AC_ARG_WITH(mon-dir-password,
1517    AC_HELP_STRING([--with-mon-dir-password=PASSWORD], [specify Director's password used by the monitor]),
1518    [
1519        if test "x$withval" != "xno" ; then     
1520           mon_dir_password=$withval
1521        fi
1522    ]
1523 )
1524
1525 if test "x$mon_dir_password" = "x" ; then
1526    if test "x$OPENSSL" = "xnone" ; then
1527       key=`autoconf/randpass 33`
1528    else
1529       key=`openssl rand -base64 33`
1530    fi
1531    mon_dir_password=$key
1532 fi
1533
1534 mon_fd_password=
1535 AC_ARG_WITH(mon-fd-password,
1536    AC_HELP_STRING([--with-mon-fd-password=PASSWORD], [specify Client's password used by the monitor]),
1537    [
1538        if test "x$withval" != "xno" ; then     
1539           mon_fd_password=$withval
1540        fi
1541    ]
1542 )
1543
1544 if test "x$mon_fd_password" = "x" ; then
1545    if test "x$OPENSSL" = "xnone" ; then
1546       key=`autoconf/randpass 37`
1547    else
1548       key=`openssl rand -base64 33`
1549    fi
1550    mon_fd_password=$key
1551 fi
1552
1553 mon_sd_password=
1554 AC_ARG_WITH(mon-sd-password,
1555    AC_HELP_STRING([--with-mon-sd-password=PASSWORD], [specify Storage daemon's password used by the monitor]),
1556    [
1557        if test "x$withval" != "xno" ; then     
1558           mon_sd_password=$withval
1559        fi
1560    ]
1561 )
1562
1563 if test "x$mon_sd_password" = "x" ; then
1564    if test "x$OPENSSL" = "xnone" ; then
1565       key=`autoconf/randpass 41`
1566    else
1567       key=`openssl rand -base64 33`
1568    fi
1569    mon_sd_password=$key
1570 fi
1571
1572 AC_SUBST(dir_password)
1573 AC_SUBST(fd_password)
1574 AC_SUBST(sd_password)
1575 AC_SUBST(mon_dir_password)
1576 AC_SUBST(mon_fd_password)
1577 AC_SUBST(mon_sd_password)
1578
1579 dnl
1580 dnl Pickup any database name
1581 dnl
1582 db_name=bacula
1583 AC_ARG_WITH(db_name,
1584    AC_HELP_STRING([--with-db-name=DBNAME], [specify database name @<:@default=bacula@:>@]),
1585    [
1586        if test "x$withval" != "x" ; then   
1587           db_name=$withval
1588        fi
1589    ]
1590 )
1591 AC_SUBST(db_name)
1592
1593 db_user=bacula
1594 AC_ARG_WITH(db_user,
1595    AC_HELP_STRING([--with-db-user=UNAME], [specify database user @<:@default=bacula@:>@]),
1596    [
1597        if test "x$withval" != "x" ; then   
1598           db_user=$withval
1599        fi
1600    ]
1601 )
1602 AC_SUBST(db_user)
1603
1604 db_password=
1605 AC_ARG_WITH(db_password,
1606    AC_HELP_STRING([--with-db-password=PWD], [specify database password @<:@default=*none*@:>@]),
1607    [
1608        if test "x$withval" != "x" ; then   
1609           db_password=$withval
1610        fi
1611    ]
1612 )
1613 AC_SUBST(db_password)
1614
1615 dnl
1616 dnl Pickup a database port
1617 dnl
1618 db_port=" "
1619 AC_ARG_WITH(db_port,
1620    AC_HELP_STRING([--with-db-port=DBPORT], [specify a database port @<:@default=null@:>@]),
1621    [
1622        if test "x$withval" != "x" ; then
1623           db_port=$withval
1624        fi
1625    ]
1626 )
1627 AC_SUBST(db_port)
1628
1629 #
1630 # Handle users and groups for each daemon
1631 #
1632 dir_user=
1633 AC_ARG_WITH(dir_user,
1634    AC_HELP_STRING([--with-dir-user=USER], [specify user for Director daemon]),
1635    [
1636        if test "x$withval" != "x" ; then   
1637            dir_user=$withval
1638        fi
1639    ]
1640 )
1641
1642 dir_group=
1643 AC_ARG_WITH(dir_group,
1644    AC_HELP_STRING([--with-dir-group=GROUP], [specify group for Director daemon]),
1645    [
1646        if test "x$withval" != "x" ; then   
1647           dir_group=$withval
1648        fi
1649    ]
1650 )
1651
1652 sd_user=
1653 AC_ARG_WITH(sd_user,
1654    AC_HELP_STRING([--with-sd-user=USER], [specify user for Storage daemon]),
1655    [
1656        if test "x$withval" != "x" ; then   
1657           sd_user=$withval
1658        fi
1659    ]
1660 )
1661
1662 sd_group=
1663 AC_ARG_WITH(sd_group,
1664    AC_HELP_STRING([--with-sd-group=GROUP], [specify group for Storage daemon]),
1665    [
1666        if test "x$withval" != "x" ; then   
1667           sd_group=$withval
1668        fi
1669    ]
1670 )
1671
1672 fd_user=
1673 AC_ARG_WITH(fd_user,
1674    AC_HELP_STRING([--with-fd-user=USER], [specify user for File daemon]),
1675    [
1676        if test "x$withval" != "x" ; then   
1677           fd_user=$withval
1678        fi
1679    ]
1680 )
1681
1682 fd_group=
1683 AC_ARG_WITH(fd_group,
1684    AC_HELP_STRING([--with-fd-group=GROUP], [specify group for File daemon]),
1685    [
1686        if test "x$withval" != "x" ; then   
1687           fd_group=$withval
1688        fi
1689    ]
1690 )
1691
1692 AC_SUBST(dir_user)
1693 AC_SUBST(dir_group)
1694 AC_SUBST(sd_user)
1695 AC_SUBST(sd_group)
1696 AC_SUBST(fd_user)
1697 AC_SUBST(fd_group)
1698
1699 dnl
1700 dnl allow setting default executable permissions
1701 dnl
1702 SBINPERM=0750
1703 AC_ARG_WITH(sbin-perm,
1704    AC_HELP_STRING([--with-sbin-perm=MODE], [specify permissions for sbin binaries @<:@default=0750@:>@]),
1705    [
1706        if test "x$withval" != "x" ; then   
1707           SBINPERM=$withval
1708        fi
1709    ]
1710 )
1711
1712 AC_SUBST(SBINPERM)
1713
1714 dnl ------------------------------------------------
1715 dnl Bacula check for various SQL database engines
1716 dnl ------------------------------------------------
1717 SQL_LIB=
1718 BA_CHECK_POSTGRESQL_DB
1719
1720 BA_CHECK_MYSQL_DB
1721
1722 BA_CHECK_INGRES_DB
1723
1724 BA_CHECK_SQLITE3_DB
1725
1726 # BA_CHECK_SQLITE_DB
1727
1728 BA_CHECK_DBI_DB
1729
1730 BA_CHECK_DBI_DRIVER
1731
1732 AC_SUBST(cats)
1733 AC_SUBST(DB_TYPE)
1734
1735 dnl -------------------------------------------
1736 dnl enable batch attribute DB insert (default on)
1737 dnl -------------------------------------------
1738 support_batch_insert=no
1739 A=`test -f $SQL_LIB && nm $SQL_LIB | grep pthread_mutex_lock`
1740 pkg=$?
1741 if test $pkg = 0; then
1742    support_batch_insert=yes
1743    AC_ARG_ENABLE(batch-insert,
1744       AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1745       [
1746           if test x$enableval = xno; then
1747              support_batch_insert=no
1748           else
1749              support_batch_insert=yes
1750           fi
1751       ]
1752    )
1753 fi
1754    
1755 dnl Check if postgresql can support batch mode   
1756 if test x$DB_TYPE = xpostgresql; then
1757    AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1758    AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1759    if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1760     then
1761         support_batch_insert=no
1762    fi
1763 fi
1764
1765 if test x$DB_TYPE = xdbi; then
1766    DB_TYPE=$DB_PROG
1767    db_type=$DB_PROG
1768    pkg=1
1769    dnl Check for batch insert
1770    if test $DB_PROG = postgresql; then
1771       AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1772       AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1773       test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1774       pkg=$?
1775    fi
1776
1777    if test $DB_PROG = mysql; then
1778       A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1779       pkg=$?    
1780    fi
1781
1782    if test $DB_PROG = sqlite3; then
1783       A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1784       pkg=$?
1785       AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1786    fi
1787
1788    if test $pkg = 0; then
1789       AC_ARG_ENABLE(batch-insert,
1790          AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1791          [
1792              if test x$enableval = xno; then
1793                 support_batch_insert=no
1794              else
1795                 support_batch_insert=yes
1796              fi
1797          ]
1798       )
1799    fi
1800 else 
1801    dnl If dbi was not chosen, let the comment in file
1802    uncomment_dbi="#"  
1803 fi
1804
1805 AC_SUBST(uncomment_dbi)
1806
1807 dnl For Ingres always enable batch inserts.
1808 if test x$DB_TYPE = xingres; then
1809    support_batch_insert=yes
1810 fi
1811
1812 if test $support_batch_insert = yes ; then
1813    AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1814 fi
1815
1816 AC_DEFINE(PROTOTYPES)
1817
1818 dnl --------------------------------------------------------------------------
1819 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1820 dnl
1821 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1822    if test -z "$CCOPTS"; then
1823       CCOPTS='-g -O2 -Wall'
1824    fi
1825    CFLAGS="$CCOPTS"
1826 fi
1827
1828 dnl A few others 
1829 AC_EXEEXT
1830
1831 dnl See if we can use 64 bit file addresses
1832 largefile_support="no"
1833 AC_BAC_LARGEFILE
1834
1835 AC_PATH_XTRA
1836
1837 dnl --------------------------------------------------------------------------
1838 dnl CHECKING FOR HEADER FILES
1839 dnl --------------------------------------------------------------------------
1840 AC_CHECK_HEADERS( \
1841    assert.h \
1842    fcntl.h \
1843    grp.h \
1844    pwd.h \
1845    libc.h \
1846    limits.h \
1847    stdarg.h \
1848    stdlib.h \
1849    stdint.h \
1850    string.h \
1851    strings.h \
1852    termios.h \
1853    termcap.h \
1854    term.h \
1855    unistd.h \
1856    sys/bitypes.h \
1857    sys/byteorder.h \
1858    sys/ioctl.h \
1859    sys/select.h \
1860    sys/socket.h \
1861    sys/sockio.h \
1862    sys/stat.h \
1863    sys/time.h \
1864    sys/types.h \
1865    arpa/nameser.h \
1866    mtio.h \
1867    sys/mtio.h \
1868    sys/tape.h \
1869    regex.h \
1870 )
1871 AC_HEADER_STDC
1872 AC_HEADER_MAJOR
1873 AC_HEADER_DIRENT
1874 AC_HEADER_STAT
1875 AC_HEADER_SYS_WAIT
1876 AC_HEADER_TIME
1877 AC_STRUCT_ST_BLKSIZE
1878 AC_STRUCT_ST_BLOCKS
1879 AC_STRUCT_TIMEZONE
1880
1881 dnl --------------------------------------------------------------------------
1882 dnl Check for utime.h structure 
1883 dnl --------------------------------------------------------------------------
1884 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1885    [
1886        AC_TRY_COMPILE(
1887           [
1888               #include <sys/types.h>
1889               #include <utime.h>
1890           ], [
1891               struct utimbuf foo
1892           ], [
1893               ba_cv_header_utime_h=yes
1894           ], [
1895               ba_cv_header_utime_h=no
1896           ]
1897        )
1898    ]
1899 )
1900 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1901
1902 dnl --------------------------------------------------------------------------
1903 dnl Check for socklen_t
1904 dnl --------------------------------------------------------------------------
1905 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1906    [
1907        AC_TRY_COMPILE(
1908           [
1909               #include <sys/types.h>
1910               #include <sys/socket.h>
1911           ], [
1912               socklen_t x
1913           ], [
1914              ba_cv_header_socklen_t=yes
1915           ], [
1916              ba_cv_header_socklen_t=no
1917           ]
1918        )
1919    ]
1920 )
1921 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1922
1923 dnl --------------------------------------------------------------------------
1924 dnl Check for ioctl request type
1925 dnl --------------------------------------------------------------------------
1926 AC_LANG(C++)
1927 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1928    [
1929        AC_TRY_COMPILE(
1930           [
1931               #include <unistd.h>
1932               #include <sys/types.h>
1933               #include <sys/ioctl.h>
1934           ], [
1935               int (*d_ioctl)(int fd, unsigned long int request, ...);
1936               d_ioctl = ::ioctl;
1937           ], [
1938              ba_cv_header_ioctl_req_t=yes
1939           ], [
1940              ba_cv_header_ioctl_req_t=no
1941           ]
1942        )
1943    ]
1944 )
1945 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1946
1947 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1948 dnl   *BSD systems still use old style C prototypes, which are wrong with
1949 dnl   compiled with a C++ compiler. 
1950 AC_LANG(C)
1951
1952 dnl --------------------------------------------------------------------------
1953 dnl Check for typeof()
1954 dnl --------------------------------------------------------------------------
1955 AC_LANG_PUSH(C++)
1956 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1957    [
1958        AC_TRY_RUN(
1959           [
1960               main(){char *a = 0; a = (typeof a)a;}
1961           ], [
1962               ba_cv_have_typeof=yes
1963           ], [
1964               ba_cv_have_typeof=no
1965           ], [
1966               ba_cv_have_typeof=no
1967           ]
1968        )
1969    ]
1970 )
1971 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1972 AC_LANG_POP(C++)
1973
1974 AC_C_CONST
1975
1976 dnl --------------------------------------------------------------------------
1977 dnl CHECKING FOR FILESYSTEM TYPE
1978 dnl --------------------------------------------------------------------------
1979 AC_MSG_CHECKING(how to get filesystem type)
1980 fstype=no
1981 # The order of these tests is important.
1982 AC_TRY_CPP(
1983    [
1984        #include <sys/statvfs.h>
1985        #include <sys/fstyp.h>
1986    ],
1987    AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1988 )
1989 if test $fstype = no; then
1990    AC_TRY_CPP(
1991       [
1992           #include <sys/statfs.h>
1993           #include <sys/fstyp.h>
1994       ],
1995       AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1996    )
1997 fi
1998 if test $fstype = no; then
1999    AC_TRY_CPP(
2000       [
2001           #include <sys/statfs.h>
2002           #include <sys/vmount.h>
2003       ],
2004       AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2005    )
2006 fi
2007 if test $fstype = no; then  
2008    AC_TRY_CPP(
2009       [
2010           #include <mntent.h>
2011       ],
2012       AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2013    )
2014 fi
2015 if test $fstype = no; then  
2016    AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2017 fi
2018 if test $fstype = no; then  
2019    AC_TRY_CPP(
2020       [
2021           #include <sys/mount.h>
2022           #include <sys/fs_types.h>
2023       ],
2024       AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2025    )
2026 fi
2027 AC_MSG_RESULT($fstype)
2028
2029 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2030
2031 dnl --------------------------------------------------------------------------
2032 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2033 dnl --------------------------------------------------------------------------
2034 AC_TYPE_SIGNAL
2035 SIGNAL_CHECK
2036 AC_TYPE_MODE_T
2037 AC_TYPE_UID_T
2038 AC_TYPE_SIZE_T
2039 AC_TYPE_PID_T
2040 AC_TYPE_OFF_T
2041 AC_TYPE_INTPTR_T
2042 AC_TYPE_UINTPTR_T
2043 AC_CHECK_TYPE(ino_t, unsigned long)
2044 AC_CHECK_TYPE(dev_t, unsigned long)
2045 AC_CHECK_TYPE(daddr_t, long)
2046 AC_CHECK_TYPE(major_t, int)
2047 AC_CHECK_TYPE(minor_t, int)
2048 AC_CHECK_TYPE(ssize_t, int)
2049 AC_STRUCT_ST_BLOCKS
2050 AC_STRUCT_ST_RDEV
2051 AC_STRUCT_TM
2052 AC_C_CONST
2053
2054 AC_CHECK_SIZEOF(char, 1)
2055 AC_CHECK_SIZEOF(short int, 2)
2056 AC_CHECK_SIZEOF(int, 4)
2057 AC_CHECK_SIZEOF(long int, 4)
2058 AC_CHECK_SIZEOF(long long int, 8)
2059 AC_CHECK_SIZEOF(int *, 4)
2060
2061 dnl Check for sys/types.h types
2062 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2063    [
2064        AC_TRY_COMPILE(
2065           [
2066               #include <sys/types.h>
2067           ], [
2068               u_int a; a = 1;
2069           ], [
2070               ac_cv_have_u_int="yes"
2071           ], [
2072               ac_cv_have_u_int="no"
2073           ]
2074        )
2075    ]
2076 )
2077 if test "x$ac_cv_have_u_int" = "xyes" ; then
2078    AC_DEFINE(HAVE_U_INT)
2079    have_u_int=1
2080 fi
2081
2082 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2083    [
2084        AC_TRY_COMPILE(
2085           [
2086               #include <sys/types.h>
2087           ], [
2088               intmax_t a; a = 1;
2089           ], [
2090               ac_cv_have_intmax_t="yes"
2091           ], [ 
2092               AC_TRY_COMPILE(
2093                  [
2094                      #include <stdint.h>
2095                  ], [
2096                      intmax_t a; a = 1;
2097                  ], [
2098                      ac_cv_have_intmax_t="yes"
2099                  ], [
2100                      ac_cv_have_intmax_t="no"
2101                  ]
2102               )
2103           ]
2104        )       
2105    ]
2106 )
2107 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2108    AC_DEFINE(HAVE_INTMAX_T)
2109    have_intmax_t=1
2110 fi
2111
2112 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2113    [
2114        AC_TRY_COMPILE(
2115           [
2116               #include <sys/types.h>
2117           ], [
2118               u_intmax_t a; a = 1;
2119           ], [
2120               ac_cv_have_u_intmax_t="yes"
2121           ], [ 
2122               AC_TRY_COMPILE(
2123                  [
2124                      #include <stdint.h>
2125                  ], [
2126                     u_intmax_t a; a = 1;
2127                  ], [
2128                     ac_cv_have_u_intmax_t="yes"
2129                  ], [
2130                     ac_cv_have_u_intmax_t="no"
2131                  ]
2132               )
2133           ]
2134        )
2135    ]
2136 )
2137 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2138    AC_DEFINE(HAVE_U_INTMAX_T)
2139    have_u_intmax_t=1
2140 fi
2141
2142 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2143    [
2144        AC_TRY_COMPILE(
2145           [
2146               #include <sys/types.h>
2147           ], [
2148               int8_t a; int16_t b; int32_t c; a = b = c = 1;
2149           ], [
2150               ac_cv_have_intxx_t="yes"
2151           ], [
2152               ac_cv_have_intxx_t="no"
2153           ]
2154        )
2155    ]
2156 )
2157 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2158    AC_DEFINE(HAVE_INTXX_T)
2159    have_intxx_t=1
2160 fi
2161    
2162 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2163    [
2164        AC_TRY_COMPILE(
2165           [
2166               #include <sys/types.h>
2167           ], [
2168               int64_t a; a = 1;
2169           ], [
2170               ac_cv_have_int64_t="yes"
2171           ], [
2172               ac_cv_have_int64_t="no"
2173           ]
2174        )
2175    ]
2176 )
2177 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2178    AC_DEFINE(HAVE_INT64_T)
2179    have_int64_t=1
2180 fi
2181    
2182 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2183    [
2184        AC_TRY_COMPILE(
2185           [
2186               #include <sys/types.h>
2187           ], [
2188               u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2189           ], [
2190              ac_cv_have_u_intxx_t="yes"
2191           ], [
2192              ac_cv_have_u_intxx_t="no"
2193           ]
2194        )
2195    ]
2196 )
2197 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2198    AC_DEFINE(HAVE_U_INTXX_T)
2199    have_u_intxx_t=1
2200 fi
2201
2202 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2203    [
2204        AC_TRY_COMPILE(
2205           [
2206               #include <sys/types.h>
2207           ], [
2208               u_int64_t a; a = 1;
2209           ], [
2210              ac_cv_have_u_int64_t="yes"
2211           ], [
2212              ac_cv_have_u_int64_t="no"
2213           ]
2214        )
2215    ]
2216 )
2217 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2218    AC_DEFINE(HAVE_U_INT64_T)
2219    have_u_int64_t=1
2220 fi
2221
2222 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2223     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2224 then
2225    AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2226    AC_TRY_COMPILE(
2227       [
2228           #include <sys/bitypes.h>
2229       ], [
2230           int8_t a; int16_t b; int32_t c;
2231           u_int8_t e; u_int16_t f; u_int32_t g;
2232           a = b = c = e = f = g = 1;
2233       ], [
2234           AC_DEFINE(HAVE_U_INTXX_T)
2235           AC_DEFINE(HAVE_INTXX_T)
2236           AC_DEFINE(HAVE_SYS_BITYPES_H)
2237           AC_MSG_RESULT(yes)
2238       ], [
2239           AC_MSG_RESULT(no)
2240       ]
2241    ) 
2242 fi
2243
2244 if test -z "$have_u_intxx_t" ; then
2245    AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2246       [
2247           AC_TRY_COMPILE(
2248              [
2249                  #include <sys/types.h>
2250              ], [
2251                  uint8_t a; uint16_t b; 
2252                  uint32_t c; a = b = c = 1;
2253              ], [
2254                 ac_cv_have_uintxx_t="yes"
2255              ], [
2256                 ac_cv_have_uintxx_t="no"
2257              ]
2258           )
2259       ]
2260    )
2261    if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2262       AC_DEFINE(HAVE_UINTXX_T)
2263    fi
2264 fi
2265
2266 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2267     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2268 then
2269    AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2270    AC_TRY_COMPILE(
2271       [
2272           #include <sys/bitypes.h>
2273       ], [
2274           int64_t a; u_int64_t b; 
2275           a = b = 1;
2276       ], [
2277           AC_DEFINE(HAVE_U_INT64_T)
2278           AC_DEFINE(HAVE_INT64_T)
2279           AC_MSG_RESULT(yes)
2280       ], [
2281           AC_MSG_RESULT(no)
2282       ]
2283    ) 
2284 fi
2285
2286 if (test -z "$have_uintxx_t" && \
2287     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2288 then
2289    AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2290    AC_TRY_COMPILE(
2291       [
2292           #include <sys/bitypes.h>
2293       ], [
2294           uint8_t a; uint16_t b; 
2295           uint32_t c; a = b = c = 1;
2296       ], [
2297           AC_DEFINE(HAVE_UINTXX_T)
2298           AC_MSG_RESULT(yes)
2299       ], [
2300           AC_MSG_RESULT(no)
2301       ]
2302    ) 
2303 fi
2304
2305 dnl --------------------------------------------------------------------------
2306 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2307 dnl --------------------------------------------------------------------------
2308 AC_CHECK_FUNCS( \
2309    fork \
2310    getcwd \
2311    gethostname \
2312    getpid \
2313    gettimeofday \
2314    setpgid \
2315    setpgrp \
2316    setsid \
2317    signal \
2318    strerror \
2319    strncmp \
2320    strncpy \
2321    vfprintf \
2322    ,,
2323    [echo 'configure: cannot find needed function.'; exit 1]
2324 )
2325
2326 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2327 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2328 AC_CHECK_FUNCS(posix_fadvise)
2329 AC_CHECK_FUNCS(fdatasync)
2330
2331 AC_CHECK_FUNCS(chflags) 
2332
2333 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2334
2335 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2336    [
2337        AC_TRY_LINK(
2338           [
2339               #include <stdarg.h>
2340               void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2341               void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2342           ], [
2343               call_use_va_copy(1,2,3)
2344           ], [
2345               ba_cv_va_copy=yes,
2346           ], [
2347               ba_cv_va_copy=no
2348           ]
2349        )
2350    ]
2351 )
2352 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2353
2354 dnl --------------------------------------------------------------------------
2355 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2356 dnl --------------------------------------------------------------------------
2357 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2358
2359 # If resolver functions are not in libc check for -lnsl or -lresolv.
2360 AC_CHECK_FUNC(gethostbyname_r,
2361     AC_MSG_RESULT(using libc's resolver),
2362     AC_CHECK_LIB(nsl,gethostbyname_r)
2363     AC_CHECK_LIB(resolv,gethostbyname_r))
2364
2365 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2366 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2367 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2368
2369 dnl ----------------------------
2370 dnl check sa_len of sockaddr
2371 dnl ----------------------------
2372 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2373    [
2374        AC_TRY_COMPILE(
2375           [
2376               #include <sys/socket.h>
2377           ], [
2378               struct sockaddr s; s.sa_len;
2379           ], [
2380              ac_cv_struct_sockaddr_sa_len=yes
2381           ], [ac_cv_struct_sockaddr_sa_len=no
2382           ]
2383        )
2384    ]
2385 )
2386
2387 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2388   AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2389 fi
2390
2391 AC_FUNC_STRFTIME
2392 AC_FUNC_VPRINTF
2393 AC_FUNC_ALLOCA
2394 AC_FUNC_GETMNTENT
2395 AC_FUNC_CLOSEDIR_VOID
2396 AC_FUNC_SETPGRP             dnl check for BSD setpgrp.
2397 # AC_FUNC_FNMATCH    dnl use local version
2398
2399 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2400
2401 AC_CHECK_LIB(sun, getpwnam)
2402
2403 AC_CHECK_HEADERS(zlib.h)
2404 AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
2405 have_zlib=no
2406 if test x$ZLIBS = x-lz; then
2407    AC_DEFINE(HAVE_LIBZ)
2408    have_zlib=yes
2409 fi
2410 AC_SUBST(ZLIBS)
2411
2412 dnl
2413 dnl Check for ACL support and libraries
2414 dnl
2415 support_acl=auto
2416 AC_ARG_ENABLE(acl,
2417    AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2418    [
2419        if test x$enableval = xyes; then
2420           support_acl=yes
2421        elif test x$enableval = xno; then
2422           support_acl=no
2423        fi
2424    ]
2425 )
2426
2427 have_acl=no
2428 have_extended_acl=no
2429 if test x$support_acl = xyes -o x$support_acl = xauto; then
2430    AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2431    AC_CHECK_FUNC(acl_get_file,
2432       [
2433           have_acl=yes
2434       ], [
2435           AC_CHECK_LIB(acl, acl_get_file,
2436              [
2437                  have_acl=yes;
2438                  FDLIBS="-lacl $FDLIBS"
2439              ], [
2440                  AC_CHECK_LIB(pacl, acl_get_file,
2441                     [
2442                         have_acl=yes;
2443                         FDLIBS="-lpacl $FDLIBS"
2444                     ], [
2445                         AC_CHECK_LIB(sec, acltotext,
2446                            [
2447                                have_acl=yes;
2448                                FDLIBS="-lsec $FDLIBS"
2449
2450                                AC_CHECK_LIB(sec, acl_totext,
2451                                   [
2452                                       have_extended_acl=yes
2453                                   ]
2454                                )
2455                            ]
2456                         )
2457                     ]
2458                  )
2459              ]
2460           )
2461       ]
2462    )
2463
2464    if test x$support_acl = xyes -a $have_acl != yes; then
2465       AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found, 
2466   please either load the acl libraries or rerun configure without --enable-acl])
2467    else
2468       if test $have_acl = yes; then
2469          AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2470       fi
2471
2472       if test $have_extended_acl = yes; then
2473          AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2474       fi
2475    fi
2476 fi
2477
2478 dnl
2479 dnl Check for XATTR support
2480 dnl
2481 support_xattr=auto
2482 AC_ARG_ENABLE(xattr,
2483    AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2484    [
2485        if test x$enableval = xyes; then
2486           support_xattr=yes
2487        elif test x$enableval = xno; then
2488           support_xattr=no
2489        fi
2490    ]
2491 )
2492
2493 have_xattr=no
2494 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2495    dnl
2496    dnl First check for *BSD support
2497    dnl
2498    AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2499    AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2500    AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2501       [
2502           have_xattr=yes
2503           AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2504           AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2505           AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2506       ]
2507    )
2508    
2509    if test $have_xattr = no; then
2510       AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2511          [
2512              have_xattr=yes
2513              AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2514              AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2515              AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2516          ]
2517       )
2518    fi
2519    
2520    if test $have_xattr = yes; then
2521       have_extattr_string_in_libc=no
2522       AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2523          [
2524              have_extattr_string_in_libc=yes
2525              AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2526              AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2527          ]
2528       )
2529
2530       dnl
2531       dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2532       dnl
2533       if test $have_extattr_string_in_libc = no; then
2534          AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2535             [
2536                 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2537                 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2538                 FDLIBS="-lutil $FDLIBS"
2539             ]
2540          )
2541       fi
2542    fi
2543
2544    dnl
2545    dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2546    dnl
2547    if test $have_xattr = no; then
2548       AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2549       AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2550          [
2551              have_xattr=yes
2552              AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2553              AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2554              AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2555          ]
2556       )
2557
2558       if test $have_xattr = no; then
2559          AC_CHECK_FUNCS(listxattr getxattr setxattr,
2560             [
2561                 have_xattr=yes
2562                 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2563                 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2564                 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2565             ]
2566          )
2567       fi
2568    fi
2569
2570    dnl
2571    dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2572    dnl
2573    if test $have_xattr = no; then
2574       AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2575       AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2576       AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2577
2578       AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2579          [
2580              have_xattr=yes
2581              AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2582              AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2583              AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2584              AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2585              AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2586          ]
2587       )
2588
2589       if test $have_xattr = yes; then
2590          AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2591             [
2592                 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2593                 FDLIBS="-lnvpair $FDLIBS"
2594             ]
2595          )
2596       fi
2597    fi
2598
2599    if test x$support_xattr = xyes -a $have_xattr != yes; then
2600       AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found, 
2601   please either load the xattr libraries or rerun configure without --enable-xattr])
2602    else
2603       if test $have_xattr = yes; then
2604          AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2605       fi
2606    fi
2607 fi
2608
2609 dnl
2610 dnl Check for pthread libraries
2611 dnl
2612 PTHREAD_LIB=""
2613 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2614    [
2615        AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2616           [
2617               AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2618                  [
2619                      AC_CHECK_FUNC(pthread_create)
2620                  ]
2621               )
2622           ]
2623        )
2624    ]
2625 )
2626
2627 dnl
2628 dnl Check for headers, functions and libraries required to support
2629 dnl keeping readall capabilities
2630 dnl
2631 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2632 AC_CHECK_FUNCS(prctl setreuid)
2633 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2634 if test x$CAP_LIBS = x-lcap; then
2635    AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2636 fi
2637 AC_SUBST(CAP_LIBS)
2638
2639 AC_SUBST(FDLIBS)
2640 AC_DEFINE(FDLIBS)
2641
2642 CFLAGS=${CFLAGS--O}
2643
2644 if test x$have_gcc = xyes ; then
2645    CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2646    CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2647 fi
2648 LDFLAGS=${LDFLAGS--O}
2649 DB_LIBS="${SQL_LFLAGS}"
2650 CPPFLAGS="$CPPFLAGS"
2651 CFLAGS="$CFLAGS"
2652 AC_SUBST(DEBUG)
2653 AC_SUBST(DINCLUDE)
2654 AC_SUBST(CFLAGS)
2655 AC_SUBST(CPPFLAGS)
2656 AC_SUBST(LDFLAGS)
2657 AC_SUBST(X_CFLAGS)
2658 AC_SUBST(DEFS)
2659 AC_SUBST(LIBS)
2660 AC_SUBST(DLIB)
2661 AC_SUBST(DB_LIBS)
2662 AC_SUBST(X_LIBS)
2663 AC_SUBST(X_EXTRA_LIBS)
2664 AC_SUBST(WCFLAGS)
2665 AC_SUBST(WLDFLAGS)
2666 AC_SUBST(WRAPLIBS)
2667
2668 dnl extra configurable objects
2669 OBJLIST=
2670 AC_SUBST(OBJLIST)
2671
2672 lld="lld"
2673 llu="llu"
2674
2675 WCFLAGS=
2676 WLDFLAGS=
2677
2678 dnl
2679 dnl Finally we set appropriate distribution specific
2680 dnl  variables and defaults
2681 dnl
2682 dnl PFILES are platform specific files
2683 PFILES="platforms/Makefile"
2684 PSCMD="ps -e"
2685 WIN32=
2686 MACOSX=
2687
2688 hostname=`uname -n | cut -d '.' -f 1`
2689 if test x${hostname} = x ; then
2690    hostname="localhost"
2691 fi
2692 dnl Make sure hostname is resolved
2693 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2694 if test ! $? = 0; then
2695   hostname="localhost"
2696 fi
2697
2698 case "$DISTNAME" in
2699 aix)
2700    DISTVER=`uname -r`
2701    PSCMD="ps -e -o pid,comm"
2702    PFILES="${PFILES} \
2703       platforms/aix/Makefile"
2704    TAPEDRIVE="/dev/rmt0.1" 
2705   ;;     
2706 alpha)
2707    DISTVER=`uname -r`
2708    PTHREAD_LIB="-lpthread -lexc"
2709    if test "${CC}" = "gcc" ; then
2710       lld="lld"
2711       llu="llu"
2712    else
2713       lld="ld"
2714       llu="lu"
2715    fi
2716    TAPEDRIVE="/dev/nrmt0"
2717   ;;
2718 bsdi)
2719    DISTVER=`uname -a |awk '{print $3}'`
2720    TAPEDRIVE="/dev/nrmt0"
2721    PTHREAD_LIB="-pthread"
2722    CFLAGS="${CFLAGS} -pthread"
2723    PSCMD="ps -ax -o pid,command"
2724    lld="qd"
2725    llu="qu"
2726    PFILES="${PFILES} \
2727        platforms/bsdi/Makefile \
2728        platforms/bsdi/bacula-fd \
2729        platforms/bsdi/bacula-sd \
2730        platforms/bsdi/bacula-dir"
2731    largefile_support="yes"
2732   ;;
2733 cygwin)
2734    DISTVER=`uname -a |awk '{print $3}'`
2735    TAPEDRIVE="/dev/nrst0"
2736    WIN32=win32
2737    WCFLAGS="-mwindows"
2738    WLDFLAGS="-mwindows"
2739   ;;
2740 darwin)
2741    DISTVER=`uname -r`
2742    TAPEDRIVE="/dev/nst0"
2743    PSCMD="ps -e -o pid,command"
2744    MACOSX=macosx
2745    PFILES="${PFILES} \
2746       platforms/darwin/Makefile"
2747   ;;
2748 osx)
2749    DISTVER=`uname -r`
2750    TAPEDRIVE="/dev/nst0"
2751    PSCMD="ps -e -o pid,command"
2752    MACOSX=macosx
2753    PFILES="${PFILES} \
2754       platforms/osx/Makefile"
2755   ;;
2756 debian)
2757    if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2758       DISTNAME="ubuntu"
2759    fi
2760    DISTVER=`cat /etc/debian_version`
2761    if test -f /etc/lsb-release ; then
2762       . /etc/lsb-release
2763       if test "x$DISTRIB_ID" != "x" ; then
2764          DISTNAME=$DISTRIB_ID
2765       fi
2766       if test "x$DISTRIB_RELEASE" != "x" ; then
2767          DISTVER=$DISTRIB_RELEASE
2768       fi
2769    fi
2770    if test "$DISTNAME" = "Ubuntu" ; then
2771       DISTNAME="ubuntu"
2772    fi
2773    TAPEDRIVE="/dev/nst0"
2774    PSCMD="ps -e -o pid,command"
2775    if test "$DISTNAME" = "ubuntu" ; then
2776       PFILES="${PFILES} \
2777          platforms/ubuntu/Makefile \
2778          platforms/ubuntu/bacula-fd \
2779          platforms/ubuntu/bacula-sd \
2780          platforms/ubuntu/bacula-dir"
2781    else 
2782       PFILES="${PFILES} \
2783          platforms/debian/Makefile \
2784          platforms/debian/bacula-fd \
2785          platforms/debian/bacula-sd \
2786          platforms/debian/bacula-dir"
2787    fi
2788   ;;
2789 freebsd)
2790    DISTVER=`uname -a |awk '{print $3}'`
2791    VER=`echo $DISTVER | cut -c 1`
2792    if test x$VER = x4 ; then
2793       PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2794       CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2795    fi
2796    lld="qd"
2797    llu="qu"
2798    TAPEDRIVE="/dev/nrsa0"
2799    PSCMD="ps -ax -o pid,command"
2800    PFILES="${PFILES} \
2801        platforms/freebsd/Makefile \
2802        platforms/freebsd/bacula-fd \
2803        platforms/freebsd/bacula-sd \
2804        platforms/freebsd/bacula-dir"
2805    largefile_support="yes"
2806   ;;
2807 hpux)
2808    PSCMD="UNIX95=1; ps -e -o pid,comm"
2809    CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2810    DISTVER=`uname -r`
2811    TAPEDRIVE="/dev/rmt/0hnb"
2812    PTHREAD_LIB="-lpthread"
2813    AC_DEFINE([_INCLUDE_LONGLONG])
2814   ;;
2815 irix)
2816    DISTVER=`uname -r`
2817    TAPEDRIVE="/dev/rmt/0cbn"
2818    PSCMD="ps -e -o pid,comm"
2819    PFILES="${PFILES} \
2820        platforms/irix/Makefile \
2821        platforms/irix/bacula-fd \
2822        platforms/irix/bacula-sd \
2823        platforms/irix/bacula-dir"
2824   ;;
2825 netbsd)
2826    DISTVER=`uname -a |awk '{print $3}'`
2827    lld="qd"
2828    llu="qu"
2829    TAPEDRIVE="/dev/nrst0"
2830    PSCMD="ps -ax -o pid,command"
2831    PTHREAD_LIB="-pthread"
2832    CFLAGS="${CFLAGS} -pthread"
2833   ;;
2834 openbsd)
2835    DISTVER=`uname -a |awk '{print $3}'`
2836    lld="qd"
2837    llu="qu"
2838    TAPEDRIVE="/dev/nrst0"
2839    PSCMD="ps -ax -o pid,command"
2840    PTHREAD_LIB="-pthread"
2841    CFLAGS="${CFLAGS} -pthread"
2842    PFILES="${PFILES} \
2843        platforms/openbsd/Makefile \
2844        platforms/openbsd/bacula-fd \
2845        platforms/openbsd/bacula-sd \
2846        platforms/openbsd/bacula-dir"
2847   ;;
2848 redhat)
2849    if test -f /etc/whitebox-release ; then
2850       f=/etc/whitebox-release
2851    else
2852       f=/etc/redhat-release
2853    fi
2854    if test `cat $f | grep release |\
2855          cut -f 3 -d ' '`x = "Enterprise"x ; then
2856       DISTVER="Enterprise "`cat $f | grep release |\
2857           cut -f 6 -d ' '`
2858    else
2859        DISTVER=`cat /etc/redhat-release | grep release |\
2860            cut -f 5 -d ' '`
2861    fi
2862    TAPEDRIVE="/dev/nst0"
2863    PSCMD="ps -e -o pid,command"
2864    PFILES="${PFILES} \
2865        platforms/redhat/Makefile \
2866        platforms/redhat/bacula-fd \
2867        platforms/redhat/bacula-sd \
2868        platforms/redhat/bacula-dir
2869        "
2870   ;;
2871 mandrake)
2872    DISTVER=`cat /etc/mandrake-release | grep release |\
2873       cut -f 5 -d ' '`
2874    TAPEDRIVE="/dev/nst0"
2875    PSCMD="ps -e -o pid,command"
2876    PFILES="${PFILES} \
2877        platforms/mandrake/Makefile \
2878        platforms/mandrake/bacula-fd \
2879        platforms/mandrake/bacula-sd \
2880        platforms/mandrake/bacula-dir \
2881        "
2882   ;;
2883 gentoo)
2884    DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2885    TAPEDRIVE="/dev/nst0"
2886    PSCMD="ps -e -o pid,command"
2887    PFILES="${PFILES} \
2888        platforms/gentoo/Makefile \
2889     platforms/gentoo/bacula-init \
2890        platforms/gentoo/bacula-fd \
2891        platforms/gentoo/bacula-sd \
2892        platforms/gentoo/bacula-dir"
2893   ;;
2894 slackware)
2895    DISTVER=`cat /etc/slackware-version`
2896    TAPEDRIVE="/dev/nst0"
2897    PSCMD="ps -e -o pid,command"
2898    PFILES="${PFILES} \
2899        platforms/slackware/Makefile \
2900        platforms/slackware/rc.bacula-fd \
2901        platforms/slackware/rc.bacula-sd \
2902        platforms/slackware/rc.bacula-dir\
2903        platforms/slackware/functions.bacula"
2904   ;;
2905 solaris)
2906    DISTVER=`uname -r`
2907    TAPEDRIVE="/dev/rmt/0cbn"
2908    PSCMD="ps -e -o pid,comm"
2909    PFILES="${PFILES} \
2910        platforms/solaris/Makefile \
2911        platforms/solaris/bacula-fd \
2912        platforms/solaris/bacula-sd \
2913        platforms/solaris/bacula-dir"
2914    if test x$DISTVER = x5.6 ; then
2915        AC_DEFINE(HAVE_OLD_SOCKOPT)
2916    fi
2917    LIBS="$LIBS -lresolv -lrt"
2918   ;;
2919 suse)
2920    DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2921        cut -f 3 -d ' '`
2922    TAPEDRIVE="/dev/nst0"
2923    PSCMD="ps -e -o pid,command"
2924    PFILES="${PFILES} \
2925        platforms/suse/Makefile \
2926        platforms/suse/bacula-fd \
2927        platforms/suse/bacula-sd \
2928        platforms/suse/bacula-dir \
2929        platforms/suse/bacula"
2930   ;;
2931 suse5)
2932    DISTNAME=suse
2933    DISTVER=5.x
2934    TAPEDRIVE="/dev/nst0"
2935    PSCMD="ps -e -o pid,command"
2936    PFILES="${PFILES} \
2937        platforms/suse/Makefile \
2938        platforms/suse/bacula-fd \
2939        platforms/suse/bacula-sd \
2940        platforms/suse/bacula-dir"
2941   ;;
2942 unknown)
2943    DISTVER=unknown
2944    TAPEDRIVE="/dev/nst0"
2945   ;;
2946 *)
2947   echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2948   ;;
2949 esac  
2950
2951 AC_SUBST(hostname)
2952
2953 LIBS="$PTHREAD_LIB $LIBS"
2954
2955 AC_DEFINE_UNQUOTED(lld, "$lld")
2956 AC_DEFINE_UNQUOTED(llu, "$llu")
2957 AC_SUBST(TAPEDRIVE)
2958 AC_SUBST(PSCMD)
2959 AC_SUBST(WIN32)
2960 AC_SUBST(MACOSX)
2961 AC_SUBST(DISTNAME)
2962 AC_SUBST(DISTVER)
2963
2964 dnl common parts of the Makefile
2965 MCOMMON=./autoconf/Make.common
2966 AC_SUBST_FILE(MCOMMON)
2967
2968 dnl Insanity check
2969 if test "x${subsysdir}" = "x${sbindir}" ; then
2970    echo " "
2971    echo " "
2972    echo "You have set both --sbindir and --with-subsys-dir"
2973    echo "  equal to: ${subsysdir} "
2974    echo "This is not permitted. Please reconfigure."
2975    echo " "
2976    echo "Aborting configuration ..."
2977    echo " "
2978    echo " "
2979    exit 1
2980 fi 
2981
2982 AC_OUTPUT([autoconf/Make.common \
2983            Makefile \
2984            manpages/Makefile \
2985            scripts/startmysql \
2986            scripts/stopmysql \
2987            scripts/btraceback \
2988            scripts/startit \
2989            scripts/stopit \
2990            scripts/bconsole \
2991            scripts/gconsole \
2992            scripts/bacula \
2993            scripts/bacula-ctl-dir \
2994            scripts/bacula-ctl-fd \
2995            scripts/bacula-ctl-sd \
2996            scripts/devel_bacula \
2997            scripts/Makefile \
2998            scripts/logrotate \
2999            scripts/bacula.desktop.gnome1 \
3000            scripts/bacula.desktop.gnome2 \
3001            scripts/bacula.desktop.gnome1.consolehelper \
3002            scripts/bacula.desktop.gnome2.consolehelper \
3003            scripts/bacula.desktop.gnome1.xsu \
3004            scripts/bacula.desktop.gnome2.xsu \
3005            scripts/bgnome-console.console_apps \
3006            scripts/mtx-changer \
3007            scripts/disk-changer \
3008            scripts/dvd-handler \
3009            scripts/dvd-simulator \
3010            scripts/bacula-tray-monitor.desktop \
3011            scripts/logwatch/Makefile \
3012            scripts/logwatch/logfile.bacula.conf \
3013            scripts/wxconsole.console_apps \
3014            scripts/wxconsole.desktop.consolehelper \
3015            scripts/wxconsole.desktop.xsu \
3016            scripts/bat.desktop \
3017            scripts/bat.desktop.xsu \
3018            scripts/bat.desktop.consolehelper \
3019            scripts/bat.console_apps \
3020            src/Makefile \
3021            src/host.h \
3022            src/console/Makefile \
3023            src/console/bconsole.conf \
3024            src/qt-console/bat.conf \
3025            src/qt-console/bat.pro \
3026            src/qt-console/bat.pro.mingw32 \
3027            src/qt-console/install_conf_file \
3028            src/wx-console/Makefile \
3029            src/wx-console/bwx-console.conf \
3030            src/tray-monitor/Makefile \
3031            src/tray-monitor/tray-monitor.conf \
3032            src/dird/Makefile \
3033            src/dird/bacula-dir.conf \
3034            src/lib/Makefile \
3035            src/stored/Makefile \
3036            src/stored/bacula-sd.conf \
3037            src/filed/Makefile \
3038            src/filed/bacula-fd.conf \
3039            src/cats/Makefile \
3040            src/cats/make_catalog_backup.pl \
3041            src/cats/make_catalog_backup \
3042            src/cats/delete_catalog_backup \
3043            src/cats/create_postgresql_database \
3044            src/cats/update_postgresql_tables \
3045            src/cats/make_postgresql_tables \
3046            src/cats/grant_postgresql_privileges \
3047            src/cats/drop_postgresql_tables \
3048            src/cats/drop_postgresql_database \
3049            src/cats/create_mysql_database \
3050            src/cats/update_mysql_tables \
3051            src/cats/make_mysql_tables \
3052            src/cats/grant_mysql_privileges \
3053            src/cats/drop_mysql_tables \
3054            src/cats/drop_mysql_database \
3055            src/cats/create_sqlite3_database \
3056            src/cats/update_sqlite3_tables \
3057            src/cats/make_sqlite3_tables \
3058            src/cats/grant_sqlite3_privileges \
3059            src/cats/drop_sqlite3_tables \
3060            src/cats/drop_sqlite3_database \
3061            src/cats/create_ingres_database \
3062            src/cats/update_ingres_tables \
3063            src/cats/make_ingres_tables \
3064            src/cats/grant_ingres_privileges \
3065            src/cats/drop_ingres_tables \
3066            src/cats/drop_ingres_database \
3067            src/cats/sqlite \
3068            src/cats/mysql \
3069            src/cats/create_bacula_database \
3070            src/cats/update_bacula_tables \
3071            src/cats/grant_bacula_privileges \
3072            src/cats/make_bacula_tables \
3073            src/cats/drop_bacula_tables \
3074            src/cats/drop_bacula_database \
3075            src/findlib/Makefile \
3076            src/tools/Makefile \
3077            src/plugins/fd/Makefile \
3078            src/plugins/sd/Makefile \
3079            src/plugins/dir/Makefile \
3080            src/win32/Makefile.inc \
3081            po/Makefile.in \
3082            updatedb/update_mysql_tables_9_to_10 \
3083            updatedb/update_sqlite3_tables_9_to_10 \
3084            updatedb/update_postgresql_tables_9_to_10 \
3085            updatedb/update_mysql_tables_10_to_11 \
3086            updatedb/update_sqlite3_tables_10_to_11 \
3087            updatedb/update_postgresql_tables_10_to_11 \
3088            examples/nagios/check_bacula/Makefile \
3089            $PFILES ],  
3090      [ ]
3091 )
3092
3093 if test "${support_bat}" = "yes" ; then
3094    if test "x$QMAKE" = "xnone"; then
3095       AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3096    fi
3097
3098    QMAKEBIN="qmake"
3099    cd src/qt-console
3100    echo "Creating bat Makefile"
3101    touch bat
3102    chmod 755 bat
3103    rm -f Makefile
3104    $QMAKEBIN
3105    ${MAKE:-make} clean
3106    cd ${BUILD_DIR}
3107 fi
3108
3109 dnl
3110 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3111 dnl requires gcc).  If it's not, don't rebuild dependencies
3112 dnl
3113 if test X"$GCC" = "Xyes" ; then
3114   echo "Doing make of dependencies"
3115   ${MAKE:-make} depend
3116 fi
3117
3118 cd src/qt-console
3119 chmod 755 install_conf_file build-depkgs-qt-console
3120 cd ${BUILD_DIR}
3121
3122 cd scripts
3123 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3124 chmod 755 dvd-handler dvd-simulator
3125 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3126 cd ..
3127
3128 c=updatedb
3129 chmod 755 $c/update_mysql_tables_10_to_11   $c/update_sqlite3_tables_10_to_11
3130 chmod 755 $c/update_postgresql_tables_10_to_11
3131
3132 c=src/cats
3133
3134 chmod 755 $c/create_bacula_database   $c/update_bacula_tables  $c/make_bacula_tables
3135 chmod 755 $c/grant_bacula_privileges  $c/drop_bacula_tables    $c/drop_bacula_database
3136
3137 chmod 755 $c/create_bdb_database      $c/update_bdb_tables     $c/make_bdb_tables
3138 chmod 755 $c/grant_bdb_privileges     $c/drop_bdb_tables       $c/drop_bdb_database
3139
3140 chmod 755 $c/create_mysql_database    $c/update_mysql_tables   $c/make_mysql_tables
3141 chmod 755 $c/grant_mysql_privileges   $c/drop_mysql_tables     $c/drop_mysql_database
3142
3143 chmod 755 $c/create_sqlite3_database   $c/update_sqlite3_tables  $c/make_sqlite3_tables
3144 chmod 755 $c/grant_sqlite3_privileges  $c/drop_sqlite3_tables    $c/drop_sqlite3_database
3145
3146 chmod 755 $c/create_postgresql_database  $c/update_postgresql_tables $c/make_postgresql_tables
3147 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables   $c/drop_postgresql_database
3148
3149 chmod 755 $c/create_ingres_database  $c/update_ingres_tables $c/make_ingres_tables
3150 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables   $c/drop_ingres_database
3151
3152
3153 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup  $c/make_catalog_backup.pl
3154 chmod 755 $c/sqlite
3155 chmod 755 $c/mysql
3156
3157 chmod 755 src/win32/build-depkgs-mingw32
3158
3159 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3160    largefile_support="yes"
3161 fi
3162
3163 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3164 if test X"$GCC" = "Xyes" ; then
3165    dnl
3166    dnl A whole lot of hand springs to get the compiler version.
3167    dnl  This is because gcc changed the output in version 3.0
3168    dnl
3169    CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3170    if test "x${CCVERSION}" = "x" ; then
3171       CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3172    fi
3173    CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3174    if test x"${CXXVERSION}" = x ; then
3175       CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3176    fi
3177 fi
3178
3179 # clean up any old junk
3180 echo " "
3181 echo "Cleaning up"
3182 echo " "
3183 ${MAKE:-make} clean
3184
3185 if test "x${db_type}" = "xInternal" ; then
3186    echo " "
3187    echo " "
3188    echo "You have not specified either --enable-client-only or one of the"
3189    echo "  supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3190    echo "  This is not permitted. Please reconfigure."
3191    echo " "
3192    echo "Aborting the configuration ..."
3193    echo " "
3194    echo " "
3195    exit 1
3196 fi
3197
3198 echo "
3199 Configuration on `date`:
3200
3201    Host:                    ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3202    Bacula version:          ${BACULA} ${VERSION} (${DATE})
3203    Source code location:    ${srcdir}
3204    Install binaries:        ${sbindir}
3205    Install libraries:       ${libdir}
3206    Install config files:    ${sysconfdir}
3207    Scripts directory:       ${scriptdir}
3208    Archive directory:       ${archivedir}
3209    Working directory:       ${working_dir}
3210    PID directory:           ${piddir}
3211    Subsys directory:        ${subsysdir}
3212    Man directory:           ${mandir}
3213    Data directory:          ${datarootdir}
3214    Plugin directory:        ${plugindir}
3215    C Compiler:              ${CC} ${CCVERSION}
3216    C++ Compiler:            ${CXX} ${CXXVERSION}
3217    Compiler flags:          ${WCFLAGS} ${CFLAGS} 
3218    Linker flags:            ${WLDFLAGS} ${LDFLAGS}
3219    Libraries:               ${LIBS}
3220    Statically Linked Tools: ${support_static_tools}
3221    Statically Linked FD:    ${support_static_fd}
3222    Statically Linked SD:    ${support_static_sd}
3223    Statically Linked DIR:   ${support_static_dir}
3224    Statically Linked CONS:  ${support_static_cons}
3225    Database type:           ${db_type}
3226    Database port:           ${db_port}
3227    Database lib:            ${DB_LIBS}
3228    Database name:           ${db_name}
3229    Database user:           ${db_user}
3230  
3231    Job Output Email:        ${job_email}
3232    Traceback Email:         ${dump_email}
3233    SMTP Host Address:       ${smtp_host}
3234  
3235    Director Port:           ${dir_port}
3236    File daemon Port:        ${fd_port}
3237    Storage daemon Port:     ${sd_port}
3238  
3239    Director User:           ${dir_user}
3240    Director Group:          ${dir_group}
3241    Storage Daemon User:     ${sd_user}
3242    Storage DaemonGroup:     ${sd_group}
3243    File Daemon User:        ${fd_user}
3244    File Daemon Group:       ${fd_group}
3245  
3246    SQL binaries Directory   ${SQL_BINDIR}
3247  
3248    Large file support:      $largefile_support
3249    Bacula conio support:    ${got_conio} ${CONS_LIBS}
3250    readline support:        ${got_readline} ${PRTREADLINE_SRC}
3251    TCP Wrappers support:    ${TCPW_MSG} ${WRAPLIBS}
3252    TLS support:             ${support_tls}
3253    Encryption support:      ${support_crypto} 
3254    ZLIB support:            ${have_zlib}
3255    enable-smartalloc:       ${support_smartalloc} 
3256    enable-lockmgr:          ${support_lockmgr}
3257    bat support:             ${support_bat}
3258    enable-gnome:            ${support_gnome} ${gnome_version}
3259    enable-bwx-console:      ${support_wx_console} ${wx_version}
3260    enable-tray-monitor:     ${support_tray_monitor}
3261    client-only:             ${build_client_only}
3262    build-dird:              ${build_dird}
3263    build-stored:            ${build_stored}
3264    Plugin support:          ${have_plugins}
3265    ACL support:             ${have_acl}
3266    XATTR support:           ${have_xattr}
3267    Python support:          ${support_python} ${PYTHON_LIBS}
3268    Batch insert enabled:    ${support_batch_insert}
3269
3270   " > config.out
3271
3272 # create a small shell script useful for support with
3273 # configure options and config.out info
3274 cat > scripts/bacula_config << EOF
3275 #!/bin/sh
3276 cat << __EOC__
3277 $ $0 $ac_configure_args
3278 EOF
3279 cat config.out >> scripts/bacula_config
3280 echo __EOC__ >> scripts/bacula_config
3281 chmod 755 scripts/bacula_config
3282
3283 cat config.out
3284
3285 # Display a warning message if postgresql client lib is <= 8.1
3286 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3287         -a x$support_batch_insert = xyes
3288 then
3289         echo "WARNING: Your PostgreSQL client library is too old to detect "
3290         echo " if it was compiled with --enable-thread-safety, consider to"
3291         echo " upgrade it in order to avoid problems with Batch insert mode"
3292         echo
3293 fi