]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/configure.in
Added preliminary AFS acl support. The code may need some testing on a real AFS enabl...
[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_CHECK_FUNCS(getmntinfo, [AC_DEFINE(HAVE_GETMNTINFO)])
2396 AC_FUNC_CLOSEDIR_VOID
2397 AC_FUNC_SETPGRP             dnl check for BSD setpgrp.
2398 # AC_FUNC_FNMATCH    dnl use local version
2399
2400 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2401
2402 AC_CHECK_LIB(sun, getpwnam)
2403
2404 AC_CHECK_HEADERS(zlib.h)
2405 AC_CHECK_LIB(z, deflate, [ZLIBS="-lz"])
2406 have_zlib=no
2407 if test x$ZLIBS = x-lz; then
2408    AC_DEFINE(HAVE_LIBZ)
2409    have_zlib=yes
2410 fi
2411 AC_SUBST(ZLIBS)
2412
2413 dnl
2414 dnl Check if we have AFS on this system
2415 dnl
2416 AFS_CFLAGS=""
2417 AFS_LIBS=""
2418 support_afs=auto
2419 AC_ARG_ENABLE(afs,
2420    AC_HELP_STRING([--disable-afs], [disable afs support @<:@default=auto@:>@]),
2421    [
2422        if test x$enableval = xyes; then
2423           support_afs=yes
2424        elif test x$enableval = xno; then
2425           support_afs=no
2426        fi
2427    ]
2428 )
2429
2430 have_afs=no
2431 if test x$support_afs = xyes -o x$support_afs = xauto; then
2432    AC_ARG_WITH(afsdir,
2433       AC_HELP_STRING([--with-afsdir@<:@=DIR@:>@], [Directory holding AFS includes/libs]),
2434       with_afsdir=$withval
2435    )
2436
2437    dnl
2438    dnl Search in standard places, or --with-afsdir not specified
2439    dnl
2440    if test x$with_afsdir = x; then
2441       for root in /usr /usr/local; do
2442          if test -d ${root}/include/afs/ ; then
2443             with_afsdir=${root}
2444             break
2445          fi
2446       done
2447    fi
2448
2449    AFS_CFLAGS="-I${with_afsdir}/include"
2450
2451    saved_CFLAGS="${CFLAGS}"
2452    CFLAGS="${AFS_CFLAGS} ${saved_CFLAGS}"
2453
2454    AC_CHECK_HEADERS(afs/stds.h)
2455
2456    CFLAGS="${saved_CFLAGS}"
2457
2458    dnl
2459    dnl See if we can find a libsys with the pioctl symbol in there
2460    dnl
2461    for dir in ${with_afsdir}/lib ${with_afsdir}/lib/afs
2462    do
2463       for arch_type in .a .so
2464       do
2465          A=`test -f ${dir}/libsys${arch_type} && nm ${dir}/libsys${arch_type} | grep pioctl`
2466          pkg=$?
2467          if test $pkg = 0; then
2468             have_afs=yes
2469             AFS_LIBS="-L${dir} -lsys -lrx -llwp ${dir}/util.a"
2470             break
2471          fi
2472       done
2473    done
2474
2475    if test x$support_afs = xyes -a $have_afs != yes; then
2476       AC_MSG_ERROR([afs support explicitly enabled but no supported afs implementation found, 
2477   please either load the afs libraries or rerun configure without --enable-afs])
2478    else
2479       if test $have_afs = yes; then
2480          AC_DEFINE([HAVE_AFS],1,[Defines if your system has AFS support])
2481          AC_DEFINE([HAVE_AFS_ACL],1,[Andrew FileSystem ACL support])
2482       fi
2483    fi
2484 fi
2485
2486 AC_SUBST(AFS_CFLAGS)
2487 AC_SUBST(AFS_LIBS)
2488 AC_DEFINE(AFS_CFLAGS)
2489 AC_DEFINE(AFS_LIBS)
2490
2491 dnl
2492 dnl Check for ACL support and libraries
2493 dnl
2494 support_acl=auto
2495 AC_ARG_ENABLE(acl,
2496    AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2497    [
2498        if test x$enableval = xyes; then
2499           support_acl=yes
2500        elif test x$enableval = xno; then
2501           support_acl=no
2502        fi
2503    ]
2504 )
2505
2506 have_acl=no
2507 have_extended_acl=no
2508 if test x$support_acl = xyes -o x$support_acl = xauto; then
2509    AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2510    AC_CHECK_FUNC(acl_get_file,
2511       [
2512           have_acl=yes
2513       ], [
2514           AC_CHECK_LIB(acl, acl_get_file,
2515              [
2516                  have_acl=yes;
2517                  if test $have_afs = yes; then
2518                     dnl
2519                     dnl Because of possible naming conflict with AFS libacl make sure we use the one in /usr/lib64 or /usr/lib !!!
2520                     dnl
2521                     if test -d /usr/lib64/; then
2522                        FDLIBS="-L/usr/lib64 -lacl $FDLIBS"
2523                     else
2524                        FDLIBS="-L/usr/lib -lacl $FDLIBS"
2525                     fi
2526                  else
2527                     FDLIBS="-lacl $FDLIBS"
2528                  fi
2529              ], [
2530                  AC_CHECK_LIB(pacl, acl_get_file,
2531                     [
2532                         have_acl=yes;
2533                         FDLIBS="-lpacl $FDLIBS"
2534                     ], [
2535                         AC_CHECK_LIB(sec, acltotext,
2536                            [
2537                                have_acl=yes;
2538                                FDLIBS="-lsec $FDLIBS"
2539
2540                                AC_CHECK_LIB(sec, acl_totext,
2541                                   [
2542                                       have_extended_acl=yes
2543                                   ]
2544                                )
2545                            ]
2546                         )
2547                     ]
2548                  )
2549              ]
2550           )
2551       ]
2552    )
2553
2554    if test x$support_acl = xyes -a $have_acl != yes; then
2555       AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found, 
2556   please either load the acl libraries or rerun configure without --enable-acl])
2557    else
2558       if test $have_acl = yes; then
2559          AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2560       fi
2561
2562       if test $have_extended_acl = yes; then
2563          AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2564       fi
2565    fi
2566 fi
2567
2568 dnl
2569 dnl Check for XATTR support
2570 dnl
2571 support_xattr=auto
2572 AC_ARG_ENABLE(xattr,
2573    AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2574    [
2575        if test x$enableval = xyes; then
2576           support_xattr=yes
2577        elif test x$enableval = xno; then
2578           support_xattr=no
2579        fi
2580    ]
2581 )
2582
2583 have_xattr=no
2584 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2585    dnl
2586    dnl First check for *BSD support
2587    dnl
2588    AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2589    AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2590    AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2591       [
2592           have_xattr=yes
2593           AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2594           AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2595           AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2596       ]
2597    )
2598    
2599    if test $have_xattr = no; then
2600       AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2601          [
2602              have_xattr=yes
2603              AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2604              AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2605              AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2606          ]
2607       )
2608    fi
2609    
2610    if test $have_xattr = yes; then
2611       have_extattr_string_in_libc=no
2612       AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2613          [
2614              have_extattr_string_in_libc=yes
2615              AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2616              AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2617          ]
2618       )
2619
2620       dnl
2621       dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2622       dnl
2623       if test $have_extattr_string_in_libc = no; then
2624          AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2625             [
2626                 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2627                 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2628                 FDLIBS="-lutil $FDLIBS"
2629             ]
2630          )
2631       fi
2632    fi
2633
2634    dnl
2635    dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2636    dnl
2637    if test $have_xattr = no; then
2638       AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2639       AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2640          [
2641              have_xattr=yes
2642              AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2643              AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2644              AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2645          ]
2646       )
2647
2648       if test $have_xattr = no; then
2649          AC_CHECK_FUNCS(listxattr getxattr setxattr,
2650             [
2651                 have_xattr=yes
2652                 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2653                 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2654                 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2655             ]
2656          )
2657       fi
2658    fi
2659
2660    dnl
2661    dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2662    dnl
2663    if test $have_xattr = no; then
2664       AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2665       AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2666       AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2667
2668       AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2669          [
2670              have_xattr=yes
2671              AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2672              AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2673              AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2674              AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2675              AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2676          ]
2677       )
2678
2679       if test $have_xattr = yes; then
2680          AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2681             [
2682                 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2683                 FDLIBS="-lnvpair $FDLIBS"
2684             ]
2685          )
2686       fi
2687    fi
2688
2689    if test x$support_xattr = xyes -a $have_xattr != yes; then
2690       AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found, 
2691   please either load the xattr libraries or rerun configure without --enable-xattr])
2692    else
2693       if test $have_xattr = yes; then
2694          AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2695       fi
2696    fi
2697 fi
2698
2699 dnl
2700 dnl Check for pthread libraries
2701 dnl
2702 PTHREAD_LIB=""
2703 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2704    [
2705        AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2706           [
2707               AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2708                  [
2709                      AC_CHECK_FUNC(pthread_create)
2710                  ]
2711               )
2712           ]
2713        )
2714    ]
2715 )
2716
2717 dnl
2718 dnl Check for headers, functions and libraries required to support
2719 dnl keeping readall capabilities
2720 dnl
2721 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2722 AC_CHECK_FUNCS(prctl setreuid)
2723 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2724 if test x$CAP_LIBS = x-lcap; then
2725    AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2726 fi
2727 AC_SUBST(CAP_LIBS)
2728
2729 AC_SUBST(FDLIBS)
2730 AC_DEFINE(FDLIBS)
2731
2732 CFLAGS=${CFLAGS--O}
2733
2734 if test x$have_gcc = xyes ; then
2735    CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2736    CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2737 fi
2738 LDFLAGS=${LDFLAGS--O}
2739 DB_LIBS="${SQL_LFLAGS}"
2740 CPPFLAGS="$CPPFLAGS"
2741 CFLAGS="$CFLAGS"
2742 AC_SUBST(DEBUG)
2743 AC_SUBST(DINCLUDE)
2744 AC_SUBST(CFLAGS)
2745 AC_SUBST(CPPFLAGS)
2746 AC_SUBST(LDFLAGS)
2747 AC_SUBST(X_CFLAGS)
2748 AC_SUBST(DEFS)
2749 AC_SUBST(LIBS)
2750 AC_SUBST(DLIB)
2751 AC_SUBST(DB_LIBS)
2752 AC_SUBST(X_LIBS)
2753 AC_SUBST(X_EXTRA_LIBS)
2754 AC_SUBST(WCFLAGS)
2755 AC_SUBST(WLDFLAGS)
2756 AC_SUBST(WRAPLIBS)
2757
2758 dnl extra configurable objects
2759 OBJLIST=
2760 AC_SUBST(OBJLIST)
2761
2762 lld="lld"
2763 llu="llu"
2764
2765 WCFLAGS=
2766 WLDFLAGS=
2767
2768 dnl
2769 dnl Finally we set appropriate distribution specific
2770 dnl  variables and defaults
2771 dnl
2772 dnl PFILES are platform specific files
2773 PFILES="platforms/Makefile"
2774 PSCMD="ps -e"
2775 WIN32=
2776 MACOSX=
2777
2778 hostname=`uname -n | cut -d '.' -f 1`
2779 if test x${hostname} = x ; then
2780    hostname="localhost"
2781 fi
2782 dnl Make sure hostname is resolved
2783 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2784 if test ! $? = 0; then
2785   hostname="localhost"
2786 fi
2787
2788 case "$DISTNAME" in
2789 aix)
2790    DISTVER=`uname -r`
2791    PSCMD="ps -e -o pid,comm"
2792    PFILES="${PFILES} \
2793       platforms/aix/Makefile"
2794    TAPEDRIVE="/dev/rmt0.1" 
2795   ;;     
2796 alpha)
2797    DISTVER=`uname -r`
2798    PTHREAD_LIB="-lpthread -lexc"
2799    if test "${CC}" = "gcc" ; then
2800       lld="lld"
2801       llu="llu"
2802    else
2803       lld="ld"
2804       llu="lu"
2805    fi
2806    TAPEDRIVE="/dev/nrmt0"
2807   ;;
2808 bsdi)
2809    DISTVER=`uname -a |awk '{print $3}'`
2810    TAPEDRIVE="/dev/nrmt0"
2811    PTHREAD_LIB="-pthread"
2812    CFLAGS="${CFLAGS} -pthread"
2813    PSCMD="ps -ax -o pid,command"
2814    lld="qd"
2815    llu="qu"
2816    PFILES="${PFILES} \
2817        platforms/bsdi/Makefile \
2818        platforms/bsdi/bacula-fd \
2819        platforms/bsdi/bacula-sd \
2820        platforms/bsdi/bacula-dir"
2821    largefile_support="yes"
2822   ;;
2823 cygwin)
2824    DISTVER=`uname -a |awk '{print $3}'`
2825    TAPEDRIVE="/dev/nrst0"
2826    WIN32=win32
2827    WCFLAGS="-mwindows"
2828    WLDFLAGS="-mwindows"
2829   ;;
2830 darwin)
2831    DISTVER=`uname -r`
2832    TAPEDRIVE="/dev/nst0"
2833    PSCMD="ps -e -o pid,command"
2834    MACOSX=macosx
2835    PFILES="${PFILES} \
2836       platforms/darwin/Makefile"
2837   ;;
2838 osx)
2839    DISTVER=`uname -r`
2840    TAPEDRIVE="/dev/nst0"
2841    PSCMD="ps -e -o pid,command"
2842    MACOSX=macosx
2843    PFILES="${PFILES} \
2844       platforms/osx/Makefile"
2845   ;;
2846 debian)
2847    if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2848       DISTNAME="ubuntu"
2849    fi
2850    DISTVER=`cat /etc/debian_version`
2851    if test -f /etc/lsb-release ; then
2852       . /etc/lsb-release
2853       if test "x$DISTRIB_ID" != "x" ; then
2854          DISTNAME=$DISTRIB_ID
2855       fi
2856       if test "x$DISTRIB_RELEASE" != "x" ; then
2857          DISTVER=$DISTRIB_RELEASE
2858       fi
2859    fi
2860    if test "$DISTNAME" = "Ubuntu" ; then
2861       DISTNAME="ubuntu"
2862    fi
2863    TAPEDRIVE="/dev/nst0"
2864    PSCMD="ps -e -o pid,command"
2865    if test "$DISTNAME" = "ubuntu" ; then
2866       PFILES="${PFILES} \
2867          platforms/ubuntu/Makefile \
2868          platforms/ubuntu/bacula-fd \
2869          platforms/ubuntu/bacula-sd \
2870          platforms/ubuntu/bacula-dir"
2871    else 
2872       PFILES="${PFILES} \
2873          platforms/debian/Makefile \
2874          platforms/debian/bacula-fd \
2875          platforms/debian/bacula-sd \
2876          platforms/debian/bacula-dir"
2877    fi
2878   ;;
2879 freebsd)
2880    DISTVER=`uname -a |awk '{print $3}'`
2881    VER=`echo $DISTVER | cut -c 1`
2882    if test x$VER = x4 ; then
2883       PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2884       CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2885    fi
2886    lld="qd"
2887    llu="qu"
2888    TAPEDRIVE="/dev/nrsa0"
2889    PSCMD="ps -ax -o pid,command"
2890    PFILES="${PFILES} \
2891        platforms/freebsd/Makefile \
2892        platforms/freebsd/bacula-fd \
2893        platforms/freebsd/bacula-sd \
2894        platforms/freebsd/bacula-dir"
2895    largefile_support="yes"
2896   ;;
2897 hpux)
2898    PSCMD="UNIX95=1; ps -e -o pid,comm"
2899    CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2900    DISTVER=`uname -r`
2901    TAPEDRIVE="/dev/rmt/0hnb"
2902    PTHREAD_LIB="-lpthread"
2903    AC_DEFINE([_INCLUDE_LONGLONG])
2904   ;;
2905 irix)
2906    DISTVER=`uname -r`
2907    TAPEDRIVE="/dev/rmt/0cbn"
2908    PSCMD="ps -e -o pid,comm"
2909    PFILES="${PFILES} \
2910        platforms/irix/Makefile \
2911        platforms/irix/bacula-fd \
2912        platforms/irix/bacula-sd \
2913        platforms/irix/bacula-dir"
2914   ;;
2915 netbsd)
2916    DISTVER=`uname -a |awk '{print $3}'`
2917    lld="qd"
2918    llu="qu"
2919    TAPEDRIVE="/dev/nrst0"
2920    PSCMD="ps -ax -o pid,command"
2921    PTHREAD_LIB="-pthread"
2922    CFLAGS="${CFLAGS} -pthread"
2923   ;;
2924 openbsd)
2925    DISTVER=`uname -a |awk '{print $3}'`
2926    lld="qd"
2927    llu="qu"
2928    TAPEDRIVE="/dev/nrst0"
2929    PSCMD="ps -ax -o pid,command"
2930    PTHREAD_LIB="-pthread"
2931    CFLAGS="${CFLAGS} -pthread"
2932    PFILES="${PFILES} \
2933        platforms/openbsd/Makefile \
2934        platforms/openbsd/bacula-fd \
2935        platforms/openbsd/bacula-sd \
2936        platforms/openbsd/bacula-dir"
2937   ;;
2938 redhat)
2939    if test -f /etc/whitebox-release ; then
2940       f=/etc/whitebox-release
2941    else
2942       f=/etc/redhat-release
2943    fi
2944    if test `cat $f | grep release |\
2945          cut -f 3 -d ' '`x = "Enterprise"x ; then
2946       DISTVER="Enterprise "`cat $f | grep release |\
2947           cut -f 6 -d ' '`
2948    else
2949        DISTVER=`cat /etc/redhat-release | grep release |\
2950            cut -f 5 -d ' '`
2951    fi
2952    TAPEDRIVE="/dev/nst0"
2953    PSCMD="ps -e -o pid,command"
2954    PFILES="${PFILES} \
2955        platforms/redhat/Makefile \
2956        platforms/redhat/bacula-fd \
2957        platforms/redhat/bacula-sd \
2958        platforms/redhat/bacula-dir
2959        "
2960   ;;
2961 mandrake)
2962    DISTVER=`cat /etc/mandrake-release | grep release |\
2963       cut -f 5 -d ' '`
2964    TAPEDRIVE="/dev/nst0"
2965    PSCMD="ps -e -o pid,command"
2966    PFILES="${PFILES} \
2967        platforms/mandrake/Makefile \
2968        platforms/mandrake/bacula-fd \
2969        platforms/mandrake/bacula-sd \
2970        platforms/mandrake/bacula-dir \
2971        "
2972   ;;
2973 gentoo)
2974    DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2975    TAPEDRIVE="/dev/nst0"
2976    PSCMD="ps -e -o pid,command"
2977    PFILES="${PFILES} \
2978        platforms/gentoo/Makefile \
2979     platforms/gentoo/bacula-init \
2980        platforms/gentoo/bacula-fd \
2981        platforms/gentoo/bacula-sd \
2982        platforms/gentoo/bacula-dir"
2983   ;;
2984 slackware)
2985    DISTVER=`cat /etc/slackware-version`
2986    TAPEDRIVE="/dev/nst0"
2987    PSCMD="ps -e -o pid,command"
2988    PFILES="${PFILES} \
2989        platforms/slackware/Makefile \
2990        platforms/slackware/rc.bacula-fd \
2991        platforms/slackware/rc.bacula-sd \
2992        platforms/slackware/rc.bacula-dir\
2993        platforms/slackware/functions.bacula"
2994   ;;
2995 solaris)
2996    DISTVER=`uname -r`
2997    TAPEDRIVE="/dev/rmt/0cbn"
2998    PSCMD="ps -e -o pid,comm"
2999    PFILES="${PFILES} \
3000        platforms/solaris/Makefile \
3001        platforms/solaris/bacula-fd \
3002        platforms/solaris/bacula-sd \
3003        platforms/solaris/bacula-dir"
3004    if test x$DISTVER = x5.6 ; then
3005        AC_DEFINE(HAVE_OLD_SOCKOPT)
3006    fi
3007    LIBS="$LIBS -lresolv -lrt"
3008   ;;
3009 suse)
3010    DISTVER=`cat /etc/SuSE-release |grep VERSION|\
3011        cut -f 3 -d ' '`
3012    TAPEDRIVE="/dev/nst0"
3013    PSCMD="ps -e -o pid,command"
3014    PFILES="${PFILES} \
3015        platforms/suse/Makefile \
3016        platforms/suse/bacula-fd \
3017        platforms/suse/bacula-sd \
3018        platforms/suse/bacula-dir \
3019        platforms/suse/bacula"
3020   ;;
3021 suse5)
3022    DISTNAME=suse
3023    DISTVER=5.x
3024    TAPEDRIVE="/dev/nst0"
3025    PSCMD="ps -e -o pid,command"
3026    PFILES="${PFILES} \
3027        platforms/suse/Makefile \
3028        platforms/suse/bacula-fd \
3029        platforms/suse/bacula-sd \
3030        platforms/suse/bacula-dir"
3031   ;;
3032 unknown)
3033    DISTVER=unknown
3034    TAPEDRIVE="/dev/nst0"
3035   ;;
3036 *)
3037   echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
3038   ;;
3039 esac  
3040
3041 AC_SUBST(hostname)
3042
3043 LIBS="$PTHREAD_LIB $LIBS"
3044
3045 AC_DEFINE_UNQUOTED(lld, "$lld")
3046 AC_DEFINE_UNQUOTED(llu, "$llu")
3047 AC_SUBST(TAPEDRIVE)
3048 AC_SUBST(PSCMD)
3049 AC_SUBST(WIN32)
3050 AC_SUBST(MACOSX)
3051 AC_SUBST(DISTNAME)
3052 AC_SUBST(DISTVER)
3053
3054 dnl common parts of the Makefile
3055 MCOMMON=./autoconf/Make.common
3056 AC_SUBST_FILE(MCOMMON)
3057
3058 dnl Insanity check
3059 if test "x${subsysdir}" = "x${sbindir}" ; then
3060    echo " "
3061    echo " "
3062    echo "You have set both --sbindir and --with-subsys-dir"
3063    echo "  equal to: ${subsysdir} "
3064    echo "This is not permitted. Please reconfigure."
3065    echo " "
3066    echo "Aborting configuration ..."
3067    echo " "
3068    echo " "
3069    exit 1
3070 fi 
3071
3072 AC_OUTPUT([autoconf/Make.common \
3073            Makefile \
3074            manpages/Makefile \
3075            scripts/startmysql \
3076            scripts/stopmysql \
3077            scripts/btraceback \
3078            scripts/startit \
3079            scripts/stopit \
3080            scripts/bconsole \
3081            scripts/gconsole \
3082            scripts/bacula \
3083            scripts/bacula-ctl-dir \
3084            scripts/bacula-ctl-fd \
3085            scripts/bacula-ctl-sd \
3086            scripts/devel_bacula \
3087            scripts/Makefile \
3088            scripts/logrotate \
3089            scripts/bacula.desktop.gnome1 \
3090            scripts/bacula.desktop.gnome2 \
3091            scripts/bacula.desktop.gnome1.consolehelper \
3092            scripts/bacula.desktop.gnome2.consolehelper \
3093            scripts/bacula.desktop.gnome1.xsu \
3094            scripts/bacula.desktop.gnome2.xsu \
3095            scripts/bgnome-console.console_apps \
3096            scripts/mtx-changer \
3097            scripts/disk-changer \
3098            scripts/dvd-handler \
3099            scripts/dvd-simulator \
3100            scripts/bacula-tray-monitor.desktop \
3101            scripts/logwatch/Makefile \
3102            scripts/logwatch/logfile.bacula.conf \
3103            scripts/wxconsole.console_apps \
3104            scripts/wxconsole.desktop.consolehelper \
3105            scripts/wxconsole.desktop.xsu \
3106            scripts/bat.desktop \
3107            scripts/bat.desktop.xsu \
3108            scripts/bat.desktop.consolehelper \
3109            scripts/bat.console_apps \
3110            src/Makefile \
3111            src/host.h \
3112            src/console/Makefile \
3113            src/console/bconsole.conf \
3114            src/qt-console/bat.conf \
3115            src/qt-console/bat.pro \
3116            src/qt-console/bat.pro.mingw32 \
3117            src/qt-console/install_conf_file \
3118            src/wx-console/Makefile \
3119            src/wx-console/bwx-console.conf \
3120            src/tray-monitor/Makefile \
3121            src/tray-monitor/tray-monitor.conf \
3122            src/dird/Makefile \
3123            src/dird/bacula-dir.conf \
3124            src/lib/Makefile \
3125            src/stored/Makefile \
3126            src/stored/bacula-sd.conf \
3127            src/filed/Makefile \
3128            src/filed/bacula-fd.conf \
3129            src/cats/Makefile \
3130            src/cats/make_catalog_backup.pl \
3131            src/cats/make_catalog_backup \
3132            src/cats/delete_catalog_backup \
3133            src/cats/create_postgresql_database \
3134            src/cats/update_postgresql_tables \
3135            src/cats/make_postgresql_tables \
3136            src/cats/grant_postgresql_privileges \
3137            src/cats/drop_postgresql_tables \
3138            src/cats/drop_postgresql_database \
3139            src/cats/create_mysql_database \
3140            src/cats/update_mysql_tables \
3141            src/cats/make_mysql_tables \
3142            src/cats/grant_mysql_privileges \
3143            src/cats/drop_mysql_tables \
3144            src/cats/drop_mysql_database \
3145            src/cats/create_sqlite3_database \
3146            src/cats/update_sqlite3_tables \
3147            src/cats/make_sqlite3_tables \
3148            src/cats/grant_sqlite3_privileges \
3149            src/cats/drop_sqlite3_tables \
3150            src/cats/drop_sqlite3_database \
3151            src/cats/create_ingres_database \
3152            src/cats/update_ingres_tables \
3153            src/cats/make_ingres_tables \
3154            src/cats/grant_ingres_privileges \
3155            src/cats/drop_ingres_tables \
3156            src/cats/drop_ingres_database \
3157            src/cats/sqlite \
3158            src/cats/mysql \
3159            src/cats/create_bacula_database \
3160            src/cats/update_bacula_tables \
3161            src/cats/grant_bacula_privileges \
3162            src/cats/make_bacula_tables \
3163            src/cats/drop_bacula_tables \
3164            src/cats/drop_bacula_database \
3165            src/findlib/Makefile \
3166            src/tools/Makefile \
3167            src/plugins/fd/Makefile \
3168            src/plugins/sd/Makefile \
3169            src/plugins/dir/Makefile \
3170            src/win32/Makefile.inc \
3171            po/Makefile.in \
3172            updatedb/update_mysql_tables_9_to_10 \
3173            updatedb/update_sqlite3_tables_9_to_10 \
3174            updatedb/update_postgresql_tables_9_to_10 \
3175            updatedb/update_mysql_tables_10_to_11 \
3176            updatedb/update_sqlite3_tables_10_to_11 \
3177            updatedb/update_postgresql_tables_10_to_11 \
3178            examples/nagios/check_bacula/Makefile \
3179            $PFILES ],  
3180      [ ]
3181 )
3182
3183 if test "${support_bat}" = "yes" ; then
3184    if test "x$QMAKE" = "xnone"; then
3185       AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3186    fi
3187
3188    QMAKEBIN="qmake"
3189    cd src/qt-console
3190    echo "Creating bat Makefile"
3191    touch bat
3192    chmod 755 bat
3193    rm -f Makefile
3194    $QMAKEBIN
3195    ${MAKE:-make} clean
3196    cd ${BUILD_DIR}
3197 fi
3198
3199 dnl
3200 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3201 dnl requires gcc).  If it's not, don't rebuild dependencies
3202 dnl
3203 if test X"$GCC" = "Xyes" ; then
3204   echo "Doing make of dependencies"
3205   ${MAKE:-make} depend
3206 fi
3207
3208 cd src/qt-console
3209 chmod 755 install_conf_file build-depkgs-qt-console
3210 cd ${BUILD_DIR}
3211
3212 cd scripts
3213 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3214 chmod 755 dvd-handler dvd-simulator
3215 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3216 cd ..
3217
3218 c=updatedb
3219 chmod 755 $c/update_mysql_tables_10_to_11   $c/update_sqlite3_tables_10_to_11
3220 chmod 755 $c/update_postgresql_tables_10_to_11
3221
3222 c=src/cats
3223
3224 chmod 755 $c/create_bacula_database   $c/update_bacula_tables  $c/make_bacula_tables
3225 chmod 755 $c/grant_bacula_privileges  $c/drop_bacula_tables    $c/drop_bacula_database
3226
3227 chmod 755 $c/create_bdb_database      $c/update_bdb_tables     $c/make_bdb_tables
3228 chmod 755 $c/grant_bdb_privileges     $c/drop_bdb_tables       $c/drop_bdb_database
3229
3230 chmod 755 $c/create_mysql_database    $c/update_mysql_tables   $c/make_mysql_tables
3231 chmod 755 $c/grant_mysql_privileges   $c/drop_mysql_tables     $c/drop_mysql_database
3232
3233 chmod 755 $c/create_sqlite3_database   $c/update_sqlite3_tables  $c/make_sqlite3_tables
3234 chmod 755 $c/grant_sqlite3_privileges  $c/drop_sqlite3_tables    $c/drop_sqlite3_database
3235
3236 chmod 755 $c/create_postgresql_database  $c/update_postgresql_tables $c/make_postgresql_tables
3237 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables   $c/drop_postgresql_database
3238
3239 chmod 755 $c/create_ingres_database  $c/update_ingres_tables $c/make_ingres_tables
3240 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables   $c/drop_ingres_database
3241
3242
3243 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup  $c/make_catalog_backup.pl
3244 chmod 755 $c/sqlite
3245 chmod 755 $c/mysql
3246
3247 chmod 755 src/win32/build-depkgs-mingw32
3248
3249 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3250    largefile_support="yes"
3251 fi
3252
3253 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3254 if test X"$GCC" = "Xyes" ; then
3255    dnl
3256    dnl A whole lot of hand springs to get the compiler version.
3257    dnl  This is because gcc changed the output in version 3.0
3258    dnl
3259    CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3260    if test "x${CCVERSION}" = "x" ; then
3261       CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3262    fi
3263    CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3264    if test x"${CXXVERSION}" = x ; then
3265       CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3266    fi
3267 fi
3268
3269 # clean up any old junk
3270 echo " "
3271 echo "Cleaning up"
3272 echo " "
3273 ${MAKE:-make} clean
3274
3275 if test "x${db_type}" = "xInternal" ; then
3276    echo " "
3277    echo " "
3278    echo "You have not specified either --enable-client-only or one of the"
3279    echo "  supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3280    echo "  This is not permitted. Please reconfigure."
3281    echo " "
3282    echo "Aborting the configuration ..."
3283    echo " "
3284    echo " "
3285    exit 1
3286 fi
3287
3288 echo "
3289 Configuration on `date`:
3290
3291    Host:                    ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3292    Bacula version:          ${BACULA} ${VERSION} (${DATE})
3293    Source code location:    ${srcdir}
3294    Install binaries:        ${sbindir}
3295    Install libraries:       ${libdir}
3296    Install config files:    ${sysconfdir}
3297    Scripts directory:       ${scriptdir}
3298    Archive directory:       ${archivedir}
3299    Working directory:       ${working_dir}
3300    PID directory:           ${piddir}
3301    Subsys directory:        ${subsysdir}
3302    Man directory:           ${mandir}
3303    Data directory:          ${datarootdir}
3304    Plugin directory:        ${plugindir}
3305    C Compiler:              ${CC} ${CCVERSION}
3306    C++ Compiler:            ${CXX} ${CXXVERSION}
3307    Compiler flags:          ${WCFLAGS} ${CFLAGS} 
3308    Linker flags:            ${WLDFLAGS} ${LDFLAGS}
3309    Libraries:               ${LIBS}
3310    Statically Linked Tools: ${support_static_tools}
3311    Statically Linked FD:    ${support_static_fd}
3312    Statically Linked SD:    ${support_static_sd}
3313    Statically Linked DIR:   ${support_static_dir}
3314    Statically Linked CONS:  ${support_static_cons}
3315    Database type:           ${db_type}
3316    Database port:           ${db_port}
3317    Database lib:            ${DB_LIBS}
3318    Database name:           ${db_name}
3319    Database user:           ${db_user}
3320  
3321    Job Output Email:        ${job_email}
3322    Traceback Email:         ${dump_email}
3323    SMTP Host Address:       ${smtp_host}
3324  
3325    Director Port:           ${dir_port}
3326    File daemon Port:        ${fd_port}
3327    Storage daemon Port:     ${sd_port}
3328  
3329    Director User:           ${dir_user}
3330    Director Group:          ${dir_group}
3331    Storage Daemon User:     ${sd_user}
3332    Storage DaemonGroup:     ${sd_group}
3333    File Daemon User:        ${fd_user}
3334    File Daemon Group:       ${fd_group}
3335  
3336    SQL binaries Directory   ${SQL_BINDIR}
3337  
3338    Large file support:      $largefile_support
3339    Bacula conio support:    ${got_conio} ${CONS_LIBS}
3340    readline support:        ${got_readline} ${PRTREADLINE_SRC}
3341    TCP Wrappers support:    ${TCPW_MSG} ${WRAPLIBS}
3342    TLS support:             ${support_tls}
3343    Encryption support:      ${support_crypto} 
3344    ZLIB support:            ${have_zlib}
3345    enable-smartalloc:       ${support_smartalloc} 
3346    enable-lockmgr:          ${support_lockmgr}
3347    bat support:             ${support_bat}
3348    enable-gnome:            ${support_gnome} ${gnome_version}
3349    enable-bwx-console:      ${support_wx_console} ${wx_version}
3350    enable-tray-monitor:     ${support_tray_monitor}
3351    client-only:             ${build_client_only}
3352    build-dird:              ${build_dird}
3353    build-stored:            ${build_stored}
3354    Plugin support:          ${have_plugins}
3355    AFS support:             ${have_afs}
3356    ACL support:             ${have_acl}
3357    XATTR support:           ${have_xattr}
3358    Python support:          ${support_python} ${PYTHON_LIBS}
3359    Batch insert enabled:    ${support_batch_insert}
3360
3361   " > config.out
3362
3363 # create a small shell script useful for support with
3364 # configure options and config.out info
3365 cat > scripts/bacula_config << EOF
3366 #!/bin/sh
3367 cat << __EOC__
3368 $ $0 $ac_configure_args
3369 EOF
3370 cat config.out >> scripts/bacula_config
3371 echo __EOC__ >> scripts/bacula_config
3372 chmod 755 scripts/bacula_config
3373
3374 cat config.out
3375
3376 # Display a warning message if postgresql client lib is <= 8.1
3377 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3378         -a x$support_batch_insert = xyes
3379 then
3380         echo "WARNING: Your PostgreSQL client library is too old to detect "
3381         echo " if it was compiled with --enable-thread-safety, consider to"
3382         echo " upgrade it in order to avoid problems with Batch insert mode"
3383         echo
3384 fi