]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/configure.in
Remove bdb from configure
[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(termcap.h, 
822   [ AC_CHECK_LIB(termcap, tgetent, 
823     [ TERM_LIB="-ltermcap" ],
824     [ AC_CHECK_LIB(ncurses, tgetent, [ TERM_LIB="-lncurses" ])
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
1204 if test "$support_tls" = "no"; then
1205    OPENSSL_LIBS=""
1206    OPENSSL_INC=""
1207 fi  
1208 if test "$support_crypto" = "no"; then
1209    OPENSSL_LIBS=""
1210    OPENSSL_INC=""
1211 else
1212    AC_CHECK_LIB(ssl, EVP_PKEY_encrypt_old, AC_DEFINE(HAVE_OPENSSLv1, 1, [Set if have OpenSSL version 1.x]))
1213 fi  
1214
1215 AC_MSG_RESULT([$support_tls])
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 For postgresql checking
1756 saved_LIBS="${LIBS}"
1757 LIBS="${saved_LIBS} ${SQL_LFLAGS}"
1758    
1759 dnl Check if postgresql can support batch mode
1760 if test x$DB_TYPE = xpostgresql; then
1761    AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
1762    AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
1763    if test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1764     then
1765         support_batch_insert=no
1766    fi
1767 fi
1768
1769 if test x$DB_TYPE = xdbi; then
1770    DB_TYPE=$DB_PROG
1771    db_type=$DB_PROG
1772    pkg=1
1773    dnl Check for batch insert
1774    if test $DB_PROG = postgresql; then
1775       AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
1776       AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
1777       test "x$ac_cv_lib_pq_PQputCopyData" != "xyes"
1778       pkg=$?
1779    fi
1780
1781    if test $DB_PROG = mysql; then
1782       A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1783       pkg=$?    
1784    fi
1785
1786    if test $DB_PROG = sqlite3; then
1787       A=`test -f $SQL_LIB && nm $DB_PROG_LIB | grep pthread_mutex_lock`
1788       pkg=$?
1789       AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
1790    fi
1791
1792    if test $pkg = 0; then
1793       AC_ARG_ENABLE(batch-insert,
1794          AC_HELP_STRING([--enable-batch-insert], [enable the DB batch insert code @<:@default=no@:>@]),
1795          [
1796              if test x$enableval = xno; then
1797                 support_batch_insert=no
1798              else
1799                 support_batch_insert=yes
1800              fi
1801          ]
1802       )
1803    fi
1804 else 
1805    dnl If dbi was not chosen, let the comment in file
1806    uncomment_dbi="#"  
1807 fi
1808
1809 dnl revert after postgresql checks
1810 LIBS="${saved_LIBS}"
1811
1812 AC_SUBST(uncomment_dbi)
1813
1814 if test $support_batch_insert = yes ; then
1815    AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled])
1816 fi
1817
1818 AC_DEFINE(PROTOTYPES)
1819
1820 dnl --------------------------------------------------------------------------
1821 dnl Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure'
1822 dnl
1823 if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then
1824    if test -z "$CCOPTS"; then
1825       CCOPTS='-g -O2 -Wall'
1826    fi
1827    CFLAGS="$CCOPTS"
1828 fi
1829
1830 dnl A few others 
1831 AC_EXEEXT
1832
1833 dnl See if we can use 64 bit file addresses
1834 largefile_support="no"
1835 AC_BAC_LARGEFILE
1836
1837 AC_PATH_XTRA
1838
1839 dnl --------------------------------------------------------------------------
1840 dnl CHECKING FOR HEADER FILES
1841 dnl --------------------------------------------------------------------------
1842 AC_CHECK_HEADERS( \
1843    assert.h \
1844    fcntl.h \
1845    grp.h \
1846    pwd.h \
1847    libc.h \
1848    limits.h \
1849    stdarg.h \
1850    stdlib.h \
1851    stdint.h \
1852    string.h \
1853    strings.h \
1854    termios.h \
1855    termcap.h \
1856    term.h \
1857    unistd.h \
1858    sys/bitypes.h \
1859    sys/byteorder.h \
1860    sys/ioctl.h \
1861    sys/select.h \
1862    sys/socket.h \
1863    sys/sockio.h \
1864    sys/stat.h \
1865    sys/time.h \
1866    sys/types.h \
1867    arpa/nameser.h \
1868    mtio.h \
1869    sys/mtio.h \
1870    sys/tape.h \
1871    regex.h \
1872 )
1873 AC_HEADER_STDC
1874 AC_HEADER_MAJOR
1875 AC_HEADER_DIRENT
1876 AC_HEADER_STAT
1877 AC_HEADER_SYS_WAIT
1878 AC_HEADER_TIME
1879 AC_STRUCT_ST_BLKSIZE
1880 AC_STRUCT_ST_BLOCKS
1881 AC_STRUCT_TIMEZONE
1882
1883 dnl --------------------------------------------------------------------------
1884 dnl Check for utime.h structure 
1885 dnl --------------------------------------------------------------------------
1886 AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h,
1887    [
1888        AC_TRY_COMPILE(
1889           [
1890               #include <sys/types.h>
1891               #include <utime.h>
1892           ], [
1893               struct utimbuf foo
1894           ], [
1895               ba_cv_header_utime_h=yes
1896           ], [
1897               ba_cv_header_utime_h=no
1898           ]
1899        )
1900    ]
1901 )
1902 test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists])
1903
1904 dnl --------------------------------------------------------------------------
1905 dnl Check for socklen_t
1906 dnl --------------------------------------------------------------------------
1907 AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t,
1908    [
1909        AC_TRY_COMPILE(
1910           [
1911               #include <sys/types.h>
1912               #include <sys/socket.h>
1913           ], [
1914               socklen_t x
1915           ], [
1916              ba_cv_header_socklen_t=yes
1917           ], [
1918              ba_cv_header_socklen_t=no
1919           ]
1920        )
1921    ]
1922 )
1923 test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T, 1, [Set if socklen_t exists])
1924
1925 dnl --------------------------------------------------------------------------
1926 dnl Check for ioctl request type
1927 dnl --------------------------------------------------------------------------
1928 AC_LANG(C++)
1929 AC_CACHE_CHECK(for ioctl_req_t, ba_cv_header_ioctl_req_t,
1930    [
1931        AC_TRY_COMPILE(
1932           [
1933               #include <unistd.h>
1934               #include <sys/types.h>
1935               #include <sys/ioctl.h>
1936           ], [
1937               int (*d_ioctl)(int fd, unsigned long int request, ...);
1938               d_ioctl = ::ioctl;
1939           ], [
1940              ba_cv_header_ioctl_req_t=yes
1941           ], [
1942              ba_cv_header_ioctl_req_t=no
1943           ]
1944        )
1945    ]
1946 )
1947 test $ba_cv_header_ioctl_req_t = yes && AC_DEFINE(HAVE_IOCTL_ULINT_REQUEST, 1, [Set if ioctl request is unsigned long int])
1948
1949 dnl Note: it is more correct to use AC_LANG(C++) but some of the older
1950 dnl   *BSD systems still use old style C prototypes, which are wrong with
1951 dnl   compiled with a C++ compiler. 
1952 AC_LANG(C)
1953
1954 dnl --------------------------------------------------------------------------
1955 dnl Check for typeof()
1956 dnl --------------------------------------------------------------------------
1957 AC_LANG_PUSH(C++)
1958 AC_CACHE_CHECK(for typeof, ba_cv_have_typeof,
1959    [
1960        AC_TRY_RUN(
1961           [
1962               main(){char *a = 0; a = (typeof a)a;}
1963           ], [
1964               ba_cv_have_typeof=yes
1965           ], [
1966               ba_cv_have_typeof=no
1967           ], [
1968               ba_cv_have_typeof=no
1969           ]
1970        )
1971    ]
1972 )
1973 test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof])
1974 AC_LANG_POP(C++)
1975
1976 AC_C_CONST
1977
1978 dnl --------------------------------------------------------------------------
1979 dnl CHECKING FOR FILESYSTEM TYPE
1980 dnl --------------------------------------------------------------------------
1981 AC_MSG_CHECKING(how to get filesystem type)
1982 fstype=no
1983 # The order of these tests is important.
1984 AC_TRY_CPP(
1985    [
1986        #include <sys/statvfs.h>
1987        #include <sys/fstyp.h>
1988    ],
1989    AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4
1990 )
1991 if test $fstype = no; then
1992    AC_TRY_CPP(
1993       [
1994           #include <sys/statfs.h>
1995           #include <sys/fstyp.h>
1996       ],
1997       AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3
1998    )
1999 fi
2000 if test $fstype = no; then
2001    AC_TRY_CPP(
2002       [
2003           #include <sys/statfs.h>
2004           #include <sys/vmount.h>
2005       ],
2006       AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX
2007    )
2008 fi
2009 if test $fstype = no; then  
2010    AC_TRY_CPP(
2011       [
2012           #include <mntent.h>
2013       ],
2014       AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD
2015    )
2016 fi
2017 if test $fstype = no; then  
2018    AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1)
2019 fi
2020 if test $fstype = no; then  
2021    AC_TRY_CPP(
2022       [
2023           #include <sys/mount.h>
2024           #include <sys/fs_types.h>
2025       ],
2026       AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix
2027    )
2028 fi
2029 AC_MSG_RESULT($fstype)
2030
2031 AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , )
2032
2033 dnl --------------------------------------------------------------------------
2034 dnl CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS.
2035 dnl --------------------------------------------------------------------------
2036 AC_TYPE_SIGNAL
2037 SIGNAL_CHECK
2038 AC_TYPE_MODE_T
2039 AC_TYPE_UID_T
2040 AC_TYPE_SIZE_T
2041 AC_TYPE_PID_T
2042 AC_TYPE_OFF_T
2043 AC_TYPE_INTPTR_T
2044 AC_TYPE_UINTPTR_T
2045 AC_CHECK_TYPE(ino_t, unsigned long)
2046 AC_CHECK_TYPE(dev_t, unsigned long)
2047 AC_CHECK_TYPE(daddr_t, long)
2048 AC_CHECK_TYPE(major_t, int)
2049 AC_CHECK_TYPE(minor_t, int)
2050 AC_CHECK_TYPE(ssize_t, int)
2051 AC_STRUCT_ST_BLOCKS
2052 AC_STRUCT_ST_RDEV
2053 AC_STRUCT_TM
2054 AC_C_CONST
2055
2056 AC_CHECK_SIZEOF(char, 1)
2057 AC_CHECK_SIZEOF(short int, 2)
2058 AC_CHECK_SIZEOF(int, 4)
2059 AC_CHECK_SIZEOF(long int, 4)
2060 AC_CHECK_SIZEOF(long long int, 8)
2061 AC_CHECK_SIZEOF(int *, 4)
2062
2063 dnl Check for sys/types.h types
2064 AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int,
2065    [
2066        AC_TRY_COMPILE(
2067           [
2068               #include <sys/types.h>
2069           ], [
2070               u_int a; a = 1;
2071           ], [
2072               ac_cv_have_u_int="yes"
2073           ], [
2074               ac_cv_have_u_int="no"
2075           ]
2076        )
2077    ]
2078 )
2079 if test "x$ac_cv_have_u_int" = "xyes" ; then
2080    AC_DEFINE(HAVE_U_INT)
2081    have_u_int=1
2082 fi
2083
2084 AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t,
2085    [
2086        AC_TRY_COMPILE(
2087           [
2088               #include <sys/types.h>
2089           ], [
2090               intmax_t a; a = 1;
2091           ], [
2092               ac_cv_have_intmax_t="yes"
2093           ], [ 
2094               AC_TRY_COMPILE(
2095                  [
2096                      #include <stdint.h>
2097                  ], [
2098                      intmax_t a; a = 1;
2099                  ], [
2100                      ac_cv_have_intmax_t="yes"
2101                  ], [
2102                      ac_cv_have_intmax_t="no"
2103                  ]
2104               )
2105           ]
2106        )       
2107    ]
2108 )
2109 if test "x$ac_cv_have_intmax_t" = "xyes" ; then
2110    AC_DEFINE(HAVE_INTMAX_T)
2111    have_intmax_t=1
2112 fi
2113
2114 AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t,
2115    [
2116        AC_TRY_COMPILE(
2117           [
2118               #include <sys/types.h>
2119           ], [
2120               u_intmax_t a; a = 1;
2121           ], [
2122               ac_cv_have_u_intmax_t="yes"
2123           ], [ 
2124               AC_TRY_COMPILE(
2125                  [
2126                      #include <stdint.h>
2127                  ], [
2128                     u_intmax_t a; a = 1;
2129                  ], [
2130                     ac_cv_have_u_intmax_t="yes"
2131                  ], [
2132                     ac_cv_have_u_intmax_t="no"
2133                  ]
2134               )
2135           ]
2136        )
2137    ]
2138 )
2139 if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then
2140    AC_DEFINE(HAVE_U_INTMAX_T)
2141    have_u_intmax_t=1
2142 fi
2143
2144 AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t,
2145    [
2146        AC_TRY_COMPILE(
2147           [
2148               #include <sys/types.h>
2149           ], [
2150               int8_t a; int16_t b; int32_t c; a = b = c = 1;
2151           ], [
2152               ac_cv_have_intxx_t="yes"
2153           ], [
2154               ac_cv_have_intxx_t="no"
2155           ]
2156        )
2157    ]
2158 )
2159 if test "x$ac_cv_have_intxx_t" = "xyes" ; then
2160    AC_DEFINE(HAVE_INTXX_T)
2161    have_intxx_t=1
2162 fi
2163    
2164 AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t,
2165    [
2166        AC_TRY_COMPILE(
2167           [
2168               #include <sys/types.h>
2169           ], [
2170               int64_t a; a = 1;
2171           ], [
2172               ac_cv_have_int64_t="yes"
2173           ], [
2174               ac_cv_have_int64_t="no"
2175           ]
2176        )
2177    ]
2178 )
2179 if test "x$ac_cv_have_int64_t" = "xyes" ; then
2180    AC_DEFINE(HAVE_INT64_T)
2181    have_int64_t=1
2182 fi
2183    
2184 AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t,
2185    [
2186        AC_TRY_COMPILE(
2187           [
2188               #include <sys/types.h>
2189           ], [
2190               u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;
2191           ], [
2192              ac_cv_have_u_intxx_t="yes"
2193           ], [
2194              ac_cv_have_u_intxx_t="no"
2195           ]
2196        )
2197    ]
2198 )
2199 if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then
2200    AC_DEFINE(HAVE_U_INTXX_T)
2201    have_u_intxx_t=1
2202 fi
2203
2204 AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t,
2205    [
2206        AC_TRY_COMPILE(
2207           [
2208               #include <sys/types.h>
2209           ], [
2210               u_int64_t a; a = 1;
2211           ], [
2212              ac_cv_have_u_int64_t="yes"
2213           ], [
2214              ac_cv_have_u_int64_t="no"
2215           ]
2216        )
2217    ]
2218 )
2219 if test "x$ac_cv_have_u_int64_t" = "xyes" ; then
2220    AC_DEFINE(HAVE_U_INT64_T)
2221    have_u_int64_t=1
2222 fi
2223
2224 if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \
2225     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2226 then
2227    AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h])
2228    AC_TRY_COMPILE(
2229       [
2230           #include <sys/bitypes.h>
2231       ], [
2232           int8_t a; int16_t b; int32_t c;
2233           u_int8_t e; u_int16_t f; u_int32_t g;
2234           a = b = c = e = f = g = 1;
2235       ], [
2236           AC_DEFINE(HAVE_U_INTXX_T)
2237           AC_DEFINE(HAVE_INTXX_T)
2238           AC_DEFINE(HAVE_SYS_BITYPES_H)
2239           AC_MSG_RESULT(yes)
2240       ], [
2241           AC_MSG_RESULT(no)
2242       ]
2243    ) 
2244 fi
2245
2246 if test -z "$have_u_intxx_t" ; then
2247    AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t,
2248       [
2249           AC_TRY_COMPILE(
2250              [
2251                  #include <sys/types.h>
2252              ], [
2253                  uint8_t a; uint16_t b; 
2254                  uint32_t c; a = b = c = 1;
2255              ], [
2256                 ac_cv_have_uintxx_t="yes"
2257              ], [
2258                 ac_cv_have_uintxx_t="no"
2259              ]
2260           )
2261       ]
2262    )
2263    if test "x$ac_cv_have_uintxx_t" = "xyes" ; then
2264       AC_DEFINE(HAVE_UINTXX_T)
2265    fi
2266 fi
2267
2268 if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \
2269     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2270 then
2271    AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h])
2272    AC_TRY_COMPILE(
2273       [
2274           #include <sys/bitypes.h>
2275       ], [
2276           int64_t a; u_int64_t b; 
2277           a = b = 1;
2278       ], [
2279           AC_DEFINE(HAVE_U_INT64_T)
2280           AC_DEFINE(HAVE_INT64_T)
2281           AC_MSG_RESULT(yes)
2282       ], [
2283           AC_MSG_RESULT(no)
2284       ]
2285    ) 
2286 fi
2287
2288 if (test -z "$have_uintxx_t" && \
2289     test "x$ac_cv_header_sys_bitypes_h" = "xyes")
2290 then
2291    AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h])
2292    AC_TRY_COMPILE(
2293       [
2294           #include <sys/bitypes.h>
2295       ], [
2296           uint8_t a; uint16_t b; 
2297           uint32_t c; a = b = c = 1;
2298       ], [
2299           AC_DEFINE(HAVE_UINTXX_T)
2300           AC_MSG_RESULT(yes)
2301       ], [
2302           AC_MSG_RESULT(no)
2303       ]
2304    ) 
2305 fi
2306
2307 dnl --------------------------------------------------------------------------
2308 dnl CHECKING FOR REQUIRED LIBRARY FUNCTIONS
2309 dnl --------------------------------------------------------------------------
2310 AC_CHECK_FUNCS( \
2311    fork \
2312    getcwd \
2313    gethostname \
2314    getpid \
2315    gettimeofday \
2316    setpgid \
2317    setpgrp \
2318    setsid \
2319    signal \
2320    strerror \
2321    strncmp \
2322    strncpy \
2323    vfprintf \
2324    ,,
2325    [echo 'configure: cannot find needed function.'; exit 1]
2326 )
2327
2328 AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
2329 AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
2330 AC_CHECK_FUNCS(posix_fadvise)
2331 AC_CHECK_FUNCS(fdatasync)
2332
2333 AC_CHECK_FUNCS(chflags) 
2334
2335 AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko)
2336
2337 AC_CACHE_CHECK(for va_copy, ba_cv_va_copy,
2338    [
2339        AC_TRY_LINK(
2340           [
2341               #include <stdarg.h>
2342               void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);}
2343               void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);}
2344           ], [
2345               call_use_va_copy(1,2,3)
2346           ], [
2347               ba_cv_va_copy=yes,
2348           ], [
2349               ba_cv_va_copy=no
2350           ]
2351        )
2352    ]
2353 )
2354 test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists])
2355
2356 dnl --------------------------------------------------------------------------
2357 dnl CHECKING FOR THREAD SAFE FUNCTIONS
2358 dnl --------------------------------------------------------------------------
2359 AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r)
2360
2361 # If resolver functions are not in libc check for -lnsl or -lresolv.
2362 AC_CHECK_FUNC(gethostbyname_r,
2363     AC_MSG_RESULT(using libc's resolver),
2364     AC_CHECK_LIB(nsl,gethostbyname_r)
2365     AC_CHECK_LIB(resolv,gethostbyname_r))
2366
2367 AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
2368 AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
2369 AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)])
2370
2371 dnl ----------------------------
2372 dnl check sa_len of sockaddr
2373 dnl ----------------------------
2374 AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len,
2375    [
2376        AC_TRY_COMPILE(
2377           [
2378               #include <sys/socket.h>
2379           ], [
2380               struct sockaddr s; s.sa_len;
2381           ], [
2382              ac_cv_struct_sockaddr_sa_len=yes
2383           ], [ac_cv_struct_sockaddr_sa_len=no
2384           ]
2385        )
2386    ]
2387 )
2388
2389 if test $ac_cv_struct_sockaddr_sa_len = yes; then
2390   AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr])
2391 fi
2392
2393 AC_FUNC_STRFTIME
2394 AC_FUNC_VPRINTF
2395 AC_FUNC_ALLOCA
2396 AC_FUNC_GETMNTENT
2397 AC_FUNC_CLOSEDIR_VOID
2398 AC_FUNC_SETPGRP             dnl check for BSD setpgrp.
2399 # AC_FUNC_FNMATCH    dnl use local version
2400
2401 AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
2402
2403 AC_CHECK_LIB(sun, getpwnam)
2404
2405 AC_CHECK_HEADERS(zlib.h)
2406 AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"])
2407 have_zlib=no
2408 if test x$FDLIBS = x-lz; then
2409    AC_DEFINE(HAVE_LIBZ)
2410    have_zlib=yes
2411 fi
2412
2413 dnl
2414 dnl Check for ACL support and libraries
2415 dnl
2416 support_acl=auto
2417 AC_ARG_ENABLE(acl,
2418    AC_HELP_STRING([--disable-acl], [disable acl support @<:@default=auto@:>@]),
2419    [
2420        if test x$enableval = xyes; then
2421           support_acl=yes
2422        elif test x$enableval = xno; then
2423           support_acl=no
2424        fi
2425    ]
2426 )
2427
2428 have_acl=no
2429 have_extended_acl=no
2430 if test x$support_acl = xyes -o x$support_acl = xauto; then
2431    AC_CHECK_HEADER(sys/acl.h, [ AC_DEFINE(HAVE_SYS_ACL_H,1,[Defines if your system have the sys/acl.h header file])] , )
2432    AC_CHECK_FUNC(acl_get_file,
2433       [
2434           have_acl=yes
2435       ], [
2436           AC_CHECK_LIB(acl, acl_get_file,
2437              [
2438                  have_acl=yes;
2439                  FDLIBS="-lacl $FDLIBS"
2440              ], [
2441                  AC_CHECK_LIB(pacl, acl_get_file,
2442                     [
2443                         have_acl=yes;
2444                         FDLIBS="-lpacl $FDLIBS"
2445                     ], [
2446                         AC_CHECK_LIB(sec, acltotext,
2447                            [
2448                                have_acl=yes;
2449                                FDLIBS="-lsec $FDLIBS"
2450
2451                                AC_CHECK_LIB(sec, acl_totext,
2452                                   [
2453                                       have_extended_acl=yes
2454                                   ]
2455                                )
2456                            ]
2457                         )
2458                     ]
2459                  )
2460              ]
2461           )
2462       ]
2463    )
2464
2465    if test x$support_acl = xyes -a $have_acl != yes; then
2466       AC_MSG_ERROR([acl support explicitly enabled but no supported acl implementation found, 
2467   please either load the acl libraries or rerun configure without --enable-acl])
2468    else
2469       if test $have_acl = yes; then
2470          AC_DEFINE([HAVE_ACL],1,[Normal acl support])
2471       fi
2472
2473       if test $have_extended_acl = yes; then
2474          AC_DEFINE([HAVE_EXTENDED_ACL],1,[Extended acl support])
2475       fi
2476    fi
2477 fi
2478
2479 dnl
2480 dnl Check for XATTR support
2481 dnl
2482 support_xattr=auto
2483 AC_ARG_ENABLE(xattr,
2484    AC_HELP_STRING([--disable-xattr], [disable xattr support @<:@default=auto@:>@]),
2485    [
2486        if test x$enableval = xyes; then
2487           support_xattr=yes
2488        elif test x$enableval = xno; then
2489           support_xattr=no
2490        fi
2491    ]
2492 )
2493
2494 have_xattr=no
2495 if test x$support_xattr = xyes -o x$support_xattr = xauto; then
2496    dnl
2497    dnl First check for *BSD support
2498    dnl
2499    AC_CHECK_HEADER(sys/extattr.h, [ AC_DEFINE(HAVE_SYS_EXTATTR_H,1,[Defines if your system have the sys/extattr.h header file])] , )
2500    AC_CHECK_HEADER(libutil.h, [ AC_DEFINE(HAVE_LIBUTIL_H,1,[Defines if your system have the libutil.h header file])] , )
2501    AC_CHECK_FUNCS(extattr_get_link extattr_set_link extattr_list_link,
2502       [
2503           have_xattr=yes
2504           AC_DEFINE([HAVE_EXTATTR_GET_LINK],1,[Define to 1 if you have the 'extattr_get_link' function.])
2505           AC_DEFINE([HAVE_EXTATTR_SET_LINK],1,[Define to 1 if you have the 'extattr_set_link' function.])
2506           AC_DEFINE([HAVE_EXTATTR_LIST_LINK],1,[Define to 1 if you have the 'extattr_list_link' function.])
2507       ]
2508    )
2509    
2510    if test $have_xattr = no; then
2511       AC_CHECK_FUNCS(extattr_get_file extattr_set_file extattr_list_file,
2512          [
2513              have_xattr=yes
2514              AC_DEFINE([HAVE_EXTATTR_GET_FILE],1,[Define to 1 if you have the 'extattr_get_file' function.])
2515              AC_DEFINE([HAVE_EXTATTR_SET_FILE],1,[Define to 1 if you have the 'extattr_set_file' function.])
2516              AC_DEFINE([HAVE_EXTATTR_LIST_FILE],1,[Define to 1 if you have the 'extattr_list_file' function.])
2517          ]
2518       )
2519    fi
2520    
2521    if test $have_xattr = yes; then
2522       have_extattr_string_in_libc=no
2523       AC_CHECK_FUNCS(extattr_namespace_to_string extattr_string_to_namespace,
2524          [
2525              have_extattr_string_in_libc=yes
2526              AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2527              AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2528          ]
2529       )
2530
2531       dnl
2532       dnl If extattr_namespace_to_string and extattr_string_to_namespace are not in libc see if they are in libutil
2533       dnl
2534       if test $have_extattr_string_in_libc = no; then
2535          AC_CHECK_LIB(util, extattr_namespace_to_string extattr_string_to_namespace,
2536             [
2537                 AC_DEFINE([HAVE_EXTATTR_NAMESPACE_TO_STRING],1,[Define to 1 if you have the 'extattr_namespace_to_string' function.])
2538                 AC_DEFINE([HAVE_EXTATTR_STRING_TO_NAMESPACE],1,[Define to 1 if you have the 'extattr_string_to_namespace' function.])
2539                 FDLIBS="-lutil $FDLIBS"
2540             ]
2541          )
2542       fi
2543    fi
2544
2545    dnl
2546    dnl If we failed to find *BSD support try the Linux or OSX implementation of xattr
2547    dnl
2548    if test $have_xattr = no; then
2549       AC_CHECK_HEADER(sys/xattr.h, [ AC_DEFINE(HAVE_SYS_XATTR_H,1,[Defines if your system have the sys/xattr.h header file])] , )
2550       AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr,
2551          [
2552              have_xattr=yes
2553              AC_DEFINE([HAVE_LLISTXATTR],1,[Define to 1 if you have the 'llistxattr' function.])
2554              AC_DEFINE([HAVE_LGETXATTR],1,[Define to 1 if you have the 'lgetxattr' function.])
2555              AC_DEFINE([HAVE_LSETXATTR],1,[Define to 1 if you have the 'lsetxattr' function.])
2556          ]
2557       )
2558
2559       if test $have_xattr = no; then
2560          AC_CHECK_FUNCS(listxattr getxattr setxattr,
2561             [
2562                 have_xattr=yes
2563                 AC_DEFINE([HAVE_LISTXATTR],1,[Define to 1 if you have the 'listxattr' function.])
2564                 AC_DEFINE([HAVE_GETXATTR],1,[Define to 1 if you have the 'getxattr' function.])
2565                 AC_DEFINE([HAVE_SETXATTR],1,[Define to 1 if you have the 'setxattr' function.])
2566             ]
2567          )
2568       fi
2569    fi
2570
2571    dnl
2572    dnl If we failed to find *BSD support and the Linux or OSX implementation of xattr try the Solaris xattr implementation
2573    dnl
2574    if test $have_xattr = no; then
2575       AC_CHECK_HEADER(sys/attr.h, [ AC_DEFINE(HAVE_SYS_ATTR_H,1,[Defines if your system have the sys/attr.h header file])] , )
2576       AC_CHECK_HEADER(sys/nvpair.h, [ AC_DEFINE(HAVE_SYS_NVPAIR_H,1,[Defines if your system have the sys/nvpair.h header file])] , )
2577       AC_CHECK_HEADER(attr.h, [ AC_DEFINE(HAVE_ATTR_H,1,[Defines if your system have the attr.h header file])] , )
2578
2579       AC_CHECK_FUNCS(openat fstatat unlinkat fchownat futimesat,
2580          [
2581              have_xattr=yes
2582              AC_DEFINE([HAVE_OPENAT],1,[Define to 1 if you have the 'openat' function.])
2583              AC_DEFINE([HAVE_FSTATAT],1,[Define to 1 if you have the 'fstatat' function.])
2584              AC_DEFINE([HAVE_UNLINKAT],1,[Define to 1 if you have the 'unlinkat' function.])
2585              AC_DEFINE([HAVE_FCHOWNAT],1,[Define to 1 if you have the 'fchownat' function.])
2586              AC_DEFINE([HAVE_FUTIMESAT],1,[Define to 1 if you have the 'futimesat' function.])
2587          ]
2588       )
2589
2590       if test $have_xattr = yes; then
2591          AC_CHECK_LIB(nvpair, nvlist_next_nvpair,
2592             [
2593                 AC_DEFINE([HAVE_NVLIST_NEXT_NVPAIR],1,[Define to 1 if you have the 'nvlist_next_nvpair' function.])
2594                 FDLIBS="-lnvpair $FDLIBS"
2595             ]
2596          )
2597       fi
2598    fi
2599
2600    if test x$support_xattr = xyes -a $have_xattr != yes; then
2601       AC_MSG_ERROR([xattr support explicitly enabled but no supported xattr implementation found, 
2602   please either load the xattr libraries or rerun configure without --enable-xattr])
2603    else
2604       if test $have_xattr = yes; then
2605          AC_DEFINE([HAVE_XATTR],1,[Extended Attributes support])
2606       fi
2607    fi
2608 fi
2609
2610 dnl
2611 dnl Check for pthread libraries
2612 dnl
2613 PTHREAD_LIB=""
2614 AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
2615    [
2616        AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
2617           [
2618               AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
2619                  [
2620                      AC_CHECK_FUNC(pthread_create)
2621                  ]
2622               )
2623           ]
2624        )
2625    ]
2626 )
2627
2628 dnl
2629 dnl Check for headers, functions and libraries required to support
2630 dnl keeping readall capabilities
2631 dnl
2632 AC_CHECK_HEADERS(sys/prctl.h sys/capability.h)
2633 AC_CHECK_FUNCS(prctl setreuid)
2634 AC_CHECK_LIB([cap], [cap_set_proc], [CAP_LIBS="-lcap"], [CAP_LIBS=])
2635 if test x$CAP_LIBS = x-lcap; then
2636    AC_DEFINE(HAVE_LIBCAP, 1, [Define if you have libcap])
2637 fi
2638 AC_SUBST(CAP_LIBS)
2639
2640 AC_SUBST(FDLIBS)
2641 AC_DEFINE(FDLIBS)
2642
2643 CFLAGS=${CFLAGS--O}
2644
2645 if test x$have_gcc = xyes ; then
2646    CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2647    CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti"
2648 fi
2649 LDFLAGS=${LDFLAGS--O}
2650 DB_LIBS="${SQL_LFLAGS}"
2651 CPPFLAGS="$CPPFLAGS"
2652 CFLAGS="$CFLAGS"
2653 AC_SUBST(DEBUG)
2654 AC_SUBST(DINCLUDE)
2655 AC_SUBST(CFLAGS)
2656 AC_SUBST(CPPFLAGS)
2657 AC_SUBST(LDFLAGS)
2658 AC_SUBST(X_CFLAGS)
2659 AC_SUBST(DEFS)
2660 AC_SUBST(LIBS)
2661 AC_SUBST(DLIB)
2662 AC_SUBST(DB_LIBS)
2663 AC_SUBST(X_LIBS)
2664 AC_SUBST(X_EXTRA_LIBS)
2665 AC_SUBST(WCFLAGS)
2666 AC_SUBST(WLDFLAGS)
2667 AC_SUBST(WRAPLIBS)
2668
2669 dnl extra configurable objects
2670 OBJLIST=
2671 AC_SUBST(OBJLIST)
2672
2673 lld="lld"
2674 llu="llu"
2675
2676 WCFLAGS=
2677 WLDFLAGS=
2678
2679 dnl
2680 dnl Finally we set appropriate distribution specific
2681 dnl  variables and defaults
2682 dnl
2683 dnl PFILES are platform specific files
2684 PFILES="platforms/Makefile"
2685 PSCMD="ps -e"
2686 WIN32=
2687 MACOSX=
2688
2689 hostname=`uname -n | cut -d '.' -f 1`
2690 if test x${hostname} = x ; then
2691    hostname="localhost"
2692 fi
2693 dnl Make sure hostname is resolved
2694 ping -c 1 $hostname 2>/dev/null 1>/dev/null
2695 if test ! $? = 0; then
2696   hostname="localhost"
2697 fi
2698
2699 case "$DISTNAME" in
2700 aix)
2701    DISTVER=`uname -r`
2702    PSCMD="ps -e -o pid,comm"
2703    PFILES="${PFILES} \
2704       platforms/aix/Makefile"
2705    TAPEDRIVE="/dev/rmt0.1" 
2706   ;;     
2707 alpha)
2708    DISTVER=`uname -r`
2709    PTHREAD_LIB="-lpthread -lexc"
2710    if test "${CC}" = "gcc" ; then
2711       lld="lld"
2712       llu="llu"
2713    else
2714       lld="ld"
2715       llu="lu"
2716    fi
2717    TAPEDRIVE="/dev/nrmt0"
2718   ;;
2719 bsdi)
2720    DISTVER=`uname -a |awk '{print $3}'`
2721    TAPEDRIVE="/dev/nrmt0"
2722    PTHREAD_LIB="-pthread"
2723    CFLAGS="${CFLAGS} -pthread"
2724    PSCMD="ps -ax -o pid,command"
2725    lld="qd"
2726    llu="qu"
2727    PFILES="${PFILES} \
2728        platforms/bsdi/Makefile \
2729        platforms/bsdi/bacula-fd \
2730        platforms/bsdi/bacula-sd \
2731        platforms/bsdi/bacula-dir"
2732    largefile_support="yes"
2733   ;;
2734 cygwin)
2735    DISTVER=`uname -a |awk '{print $3}'`
2736    TAPEDRIVE="/dev/nrst0"
2737    WIN32=win32
2738    WCFLAGS="-mwindows"
2739    WLDFLAGS="-mwindows"
2740   ;;
2741 darwin)
2742    DISTVER=`uname -r`
2743    TAPEDRIVE="/dev/nst0"
2744    PSCMD="ps -e -o pid,command"
2745    MACOSX=macosx
2746    PFILES="${PFILES} \
2747       platforms/darwin/Makefile"
2748   ;;
2749 osx)
2750    DISTVER=`uname -r`
2751    TAPEDRIVE="/dev/nst0"
2752    PSCMD="ps -e -o pid,command"
2753    MACOSX=macosx
2754    PFILES="${PFILES} \
2755       platforms/osx/Makefile"
2756   ;;
2757 debian)
2758    if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
2759       DISTNAME="ubuntu"
2760    fi
2761    DISTVER=`cat /etc/debian_version`
2762    if test -f /etc/lsb-release ; then
2763       . /etc/lsb-release
2764       if test "x$DISTRIB_ID" != "x" ; then
2765          DISTNAME=$DISTRIB_ID
2766       fi
2767       if test "x$DISTRIB_RELEASE" != "x" ; then
2768          DISTVER=$DISTRIB_RELEASE
2769       fi
2770    fi
2771    if test "$DISTNAME" = "Ubuntu" ; then
2772       DISTNAME="ubuntu"
2773    fi
2774    TAPEDRIVE="/dev/nst0"
2775    PSCMD="ps -e -o pid,command"
2776    if test "$DISTNAME" = "ubuntu" ; then
2777       PFILES="${PFILES} \
2778          platforms/ubuntu/Makefile \
2779          platforms/ubuntu/bacula-fd \
2780          platforms/ubuntu/bacula-sd \
2781          platforms/ubuntu/bacula-dir"
2782    else 
2783       PFILES="${PFILES} \
2784          platforms/debian/Makefile \
2785          platforms/debian/bacula-fd \
2786          platforms/debian/bacula-sd \
2787          platforms/debian/bacula-dir"
2788    fi
2789   ;;
2790 freebsd)
2791    DISTVER=`uname -a |awk '{print $3}'`
2792    VER=`echo $DISTVER | cut -c 1`
2793    if test x$VER = x4 ; then
2794       PTHREAD_LIB="${PTHREAD_LIBS:--pthread}"
2795       CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}"
2796    fi
2797    lld="qd"
2798    llu="qu"
2799    TAPEDRIVE="/dev/nrsa0"
2800    PSCMD="ps -ax -o pid,command"
2801    PFILES="${PFILES} \
2802        platforms/freebsd/Makefile \
2803        platforms/freebsd/bacula-fd \
2804        platforms/freebsd/bacula-sd \
2805        platforms/freebsd/bacula-dir"
2806    largefile_support="yes"
2807   ;;
2808 hpux)
2809    PSCMD="UNIX95=1; ps -e -o pid,comm"
2810    CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1"
2811    DISTVER=`uname -r`
2812    TAPEDRIVE="/dev/rmt/0hnb"
2813    PTHREAD_LIB="-lpthread"
2814    AC_DEFINE([_INCLUDE_LONGLONG])
2815   ;;
2816 irix)
2817    DISTVER=`uname -r`
2818    TAPEDRIVE="/dev/rmt/0cbn"
2819    PSCMD="ps -e -o pid,comm"
2820    PFILES="${PFILES} \
2821        platforms/irix/Makefile \
2822        platforms/irix/bacula-fd \
2823        platforms/irix/bacula-sd \
2824        platforms/irix/bacula-dir"
2825   ;;
2826 netbsd)
2827    DISTVER=`uname -a |awk '{print $3}'`
2828    lld="qd"
2829    llu="qu"
2830    TAPEDRIVE="/dev/nrst0"
2831    PSCMD="ps -ax -o pid,command"
2832    PTHREAD_LIB="-pthread"
2833    CFLAGS="${CFLAGS} -pthread"
2834   ;;
2835 openbsd)
2836    DISTVER=`uname -a |awk '{print $3}'`
2837    lld="qd"
2838    llu="qu"
2839    TAPEDRIVE="/dev/nrst0"
2840    PSCMD="ps -ax -o pid,command"
2841    PTHREAD_LIB="-pthread"
2842    CFLAGS="${CFLAGS} -pthread"
2843    PFILES="${PFILES} \
2844        platforms/openbsd/Makefile \
2845        platforms/openbsd/bacula-fd \
2846        platforms/openbsd/bacula-sd \
2847        platforms/openbsd/bacula-dir"
2848   ;;
2849 redhat)
2850    if test -f /etc/whitebox-release ; then
2851       f=/etc/whitebox-release
2852    else
2853       f=/etc/redhat-release
2854    fi
2855    if test `cat $f | grep release |\
2856          cut -f 3 -d ' '`x = "Enterprise"x ; then
2857       DISTVER="Enterprise "`cat $f | grep release |\
2858           cut -f 6 -d ' '`
2859    else
2860        DISTVER=`cat /etc/redhat-release | grep release |\
2861            cut -f 5 -d ' '`
2862    fi
2863    TAPEDRIVE="/dev/nst0"
2864    PSCMD="ps -e -o pid,command"
2865    PFILES="${PFILES} \
2866        platforms/redhat/Makefile \
2867        platforms/redhat/bacula-fd \
2868        platforms/redhat/bacula-sd \
2869        platforms/redhat/bacula-dir
2870        "
2871   ;;
2872 mandrake)
2873    DISTVER=`cat /etc/mandrake-release | grep release |\
2874       cut -f 5 -d ' '`
2875    TAPEDRIVE="/dev/nst0"
2876    PSCMD="ps -e -o pid,command"
2877    PFILES="${PFILES} \
2878        platforms/mandrake/Makefile \
2879        platforms/mandrake/bacula-fd \
2880        platforms/mandrake/bacula-sd \
2881        platforms/mandrake/bacula-dir \
2882        "
2883   ;;
2884 gentoo)
2885    DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release`
2886    TAPEDRIVE="/dev/nst0"
2887    PSCMD="ps -e -o pid,command"
2888    PFILES="${PFILES} \
2889        platforms/gentoo/Makefile \
2890     platforms/gentoo/bacula-init \
2891        platforms/gentoo/bacula-fd \
2892        platforms/gentoo/bacula-sd \
2893        platforms/gentoo/bacula-dir"
2894   ;;
2895 slackware)
2896    DISTVER=`cat /etc/slackware-version`
2897    TAPEDRIVE="/dev/nst0"
2898    PSCMD="ps -e -o pid,command"
2899    PFILES="${PFILES} \
2900        platforms/slackware/Makefile \
2901        platforms/slackware/rc.bacula-fd \
2902        platforms/slackware/rc.bacula-sd \
2903        platforms/slackware/rc.bacula-dir\
2904        platforms/slackware/functions.bacula"
2905   ;;
2906 solaris)
2907    DISTVER=`uname -r`
2908    TAPEDRIVE="/dev/rmt/0cbn"
2909    PSCMD="ps -e -o pid,comm"
2910    PFILES="${PFILES} \
2911        platforms/solaris/Makefile \
2912        platforms/solaris/bacula-fd \
2913        platforms/solaris/bacula-sd \
2914        platforms/solaris/bacula-dir"
2915    if test x$DISTVER = x5.6 ; then
2916        AC_DEFINE(HAVE_OLD_SOCKOPT)
2917    fi
2918    LIBS="$LIBS -lresolv -lrt"
2919   ;;
2920 suse)
2921    DISTVER=`cat /etc/SuSE-release |grep VERSION|\
2922        cut -f 3 -d ' '`
2923    TAPEDRIVE="/dev/nst0"
2924    PSCMD="ps -e -o pid,command"
2925    PFILES="${PFILES} \
2926        platforms/suse/Makefile \
2927        platforms/suse/bacula-fd \
2928        platforms/suse/bacula-sd \
2929        platforms/suse/bacula-dir"
2930   ;;
2931 suse5)
2932    DISTNAME=suse
2933    DISTVER=5.x
2934    TAPEDRIVE="/dev/nst0"
2935    PSCMD="ps -e -o pid,command"
2936    PFILES="${PFILES} \
2937        platforms/suse/Makefile \
2938        platforms/suse/bacula-fd \
2939        platforms/suse/bacula-sd \
2940        platforms/suse/bacula-dir"
2941   ;;
2942 unknown)
2943    DISTVER=unknown
2944    TAPEDRIVE="/dev/nst0"
2945   ;;
2946 *)
2947   echo " === Something went wrong. Unknown DISTNAME $DISTNAME ==="
2948   ;;
2949 esac  
2950
2951 AC_SUBST(hostname)
2952
2953 LIBS="$PTHREAD_LIB $LIBS"
2954
2955 AC_DEFINE_UNQUOTED(lld, "$lld")
2956 AC_DEFINE_UNQUOTED(llu, "$llu")
2957 AC_SUBST(TAPEDRIVE)
2958 AC_SUBST(PSCMD)
2959 AC_SUBST(WIN32)
2960 AC_SUBST(MACOSX)
2961 AC_SUBST(DISTNAME)
2962 AC_SUBST(DISTVER)
2963
2964 dnl common parts of the Makefile
2965 MCOMMON=./autoconf/Make.common
2966 AC_SUBST_FILE(MCOMMON)
2967
2968 dnl Insanity check
2969 if test "x${subsysdir}" = "x${sbindir}" ; then
2970    echo " "
2971    echo " "
2972    echo "You have set both --sbindir and --with-subsys-dir"
2973    echo "  equal to: ${subsysdir} "
2974    echo "This is not permitted. Please reconfigure."
2975    echo " "
2976    echo "Aborting configuration ..."
2977    echo " "
2978    echo " "
2979    exit 1
2980 fi 
2981
2982 AC_OUTPUT([autoconf/Make.common \
2983            Makefile \
2984            manpages/Makefile \
2985            scripts/startmysql \
2986            scripts/stopmysql \
2987            scripts/btraceback \
2988            scripts/startit \
2989            scripts/stopit \
2990            scripts/bconsole \
2991            scripts/gconsole \
2992            scripts/bacula \
2993            scripts/bacula-ctl-dir \
2994            scripts/bacula-ctl-fd \
2995            scripts/bacula-ctl-sd \
2996            scripts/devel_bacula \
2997            scripts/Makefile \
2998            scripts/logrotate \
2999            scripts/bacula.desktop.gnome1 \
3000            scripts/bacula.desktop.gnome2 \
3001            scripts/bacula.desktop.gnome1.consolehelper \
3002            scripts/bacula.desktop.gnome2.consolehelper \
3003            scripts/bacula.desktop.gnome1.xsu \
3004            scripts/bacula.desktop.gnome2.xsu \
3005            scripts/bgnome-console.console_apps \
3006            scripts/mtx-changer \
3007            scripts/disk-changer \
3008            scripts/dvd-handler \
3009            scripts/dvd-simulator \
3010            scripts/bacula-tray-monitor.desktop \
3011            scripts/logwatch/Makefile \
3012            scripts/logwatch/logfile.bacula.conf \
3013            scripts/wxconsole.console_apps \
3014            scripts/wxconsole.desktop.consolehelper \
3015            scripts/wxconsole.desktop.xsu \
3016            scripts/bat.desktop \
3017            scripts/bat.desktop.xsu \
3018            scripts/bat.desktop.consolehelper \
3019            scripts/bat.console_apps \
3020            src/Makefile \
3021            src/host.h \
3022            src/console/Makefile \
3023            src/console/bconsole.conf \
3024            src/qt-console/bat.conf \
3025            src/qt-console/bat.pro \
3026            src/qt-console/bat.pro.mingw32 \
3027            src/qt-console/install_conf_file \
3028            src/wx-console/Makefile \
3029            src/wx-console/bwx-console.conf \
3030            src/tray-monitor/Makefile \
3031            src/tray-monitor/tray-monitor.conf \
3032            src/dird/Makefile \
3033            src/dird/bacula-dir.conf \
3034            src/lib/Makefile \
3035            src/stored/Makefile \
3036            src/stored/bacula-sd.conf \
3037            src/filed/Makefile \
3038            src/filed/bacula-fd.conf \
3039            src/cats/Makefile \
3040            src/cats/make_catalog_backup.pl \
3041            src/cats/make_catalog_backup \
3042            src/cats/delete_catalog_backup \
3043            src/cats/create_postgresql_database \
3044            src/cats/update_postgresql_tables \
3045            src/cats/make_postgresql_tables \
3046            src/cats/grant_postgresql_privileges \
3047            src/cats/drop_postgresql_tables \
3048            src/cats/drop_postgresql_database \
3049            src/cats/create_mysql_database \
3050            src/cats/update_mysql_tables \
3051            src/cats/make_mysql_tables \
3052            src/cats/grant_mysql_privileges \
3053            src/cats/drop_mysql_tables \
3054            src/cats/drop_mysql_database \
3055            src/cats/create_sqlite3_database \
3056            src/cats/update_sqlite3_tables \
3057            src/cats/make_sqlite3_tables \
3058            src/cats/grant_sqlite3_privileges \
3059            src/cats/drop_sqlite3_tables \
3060            src/cats/drop_sqlite3_database \
3061            src/cats/create_ingres_database \
3062            src/cats/update_ingres_tables \
3063            src/cats/make_ingres_tables \
3064            src/cats/grant_ingres_privileges \
3065            src/cats/drop_ingres_tables \
3066            src/cats/drop_ingres_database \
3067            src/cats/sqlite \
3068            src/cats/mysql \
3069            src/cats/create_bdb_database \
3070            src/cats/update_bdb_tables \
3071            src/cats/make_bdb_tables \
3072            src/cats/grant_bdb_privileges \
3073            src/cats/drop_bdb_tables \
3074            src/cats/drop_bdb_database \
3075            src/cats/create_bacula_database \
3076            src/cats/update_bacula_tables \
3077            src/cats/grant_bacula_privileges \
3078            src/cats/make_bacula_tables \
3079            src/cats/drop_bacula_tables \
3080            src/cats/drop_bacula_database \
3081            src/findlib/Makefile \
3082            src/tools/Makefile \
3083            src/plugins/fd/Makefile \
3084            src/plugins/sd/Makefile \
3085            src/plugins/dir/Makefile \
3086            src/win32/Makefile.inc \
3087            po/Makefile.in \
3088            updatedb/update_mysql_tables_9_to_10 \
3089            updatedb/update_sqlite3_tables_9_to_10 \
3090            updatedb/update_postgresql_tables_9_to_10 \
3091            updatedb/update_mysql_tables_10_to_11 \
3092            updatedb/update_sqlite3_tables_10_to_11 \
3093            updatedb/update_postgresql_tables_10_to_11 \
3094            examples/nagios/check_bacula/Makefile \
3095            $PFILES ],  
3096      [ ]
3097 )
3098
3099 if test "${support_bat}" = "yes" ; then
3100    if test "x$QMAKE" = "xnone"; then
3101       AC_MSG_ERROR([Could not find qmake $PATH. Check your Qt installation])
3102    fi
3103
3104    QMAKEBIN="qmake"
3105    cd src/qt-console
3106    echo "Creating bat Makefile"
3107    touch bat
3108    chmod 755 bat
3109    rm -f Makefile
3110    $QMAKEBIN
3111    ${MAKE:-make} clean
3112    cd ${BUILD_DIR}
3113 fi
3114
3115 dnl
3116 dnl if CC is gcc, we can rebuild the dependencies (since the depend rule
3117 dnl requires gcc).  If it's not, don't rebuild dependencies
3118 dnl
3119 if test X"$GCC" = "Xyes" ; then
3120   echo "Doing make of dependencies"
3121   ${MAKE:-make} depend
3122 fi
3123
3124 cd src/qt-console
3125 chmod 755 install_conf_file build-depkgs-qt-console
3126 cd ${BUILD_DIR}
3127
3128 cd scripts
3129 chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer
3130 chmod 755 dvd-handler dvd-simulator
3131 chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate
3132 cd ..
3133
3134 c=updatedb
3135 chmod 755 $c/update_mysql_tables_10_to_11   $c/update_sqlite3_tables_10_to_11
3136 chmod 755 $c/update_postgresql_tables_10_to_11
3137
3138 c=src/cats
3139
3140 chmod 755 $c/create_bacula_database   $c/update_bacula_tables  $c/make_bacula_tables
3141 chmod 755 $c/grant_bacula_privileges  $c/drop_bacula_tables    $c/drop_bacula_database
3142
3143 chmod 755 $c/create_mysql_database    $c/update_mysql_tables   $c/make_mysql_tables
3144 chmod 755 $c/grant_mysql_privileges   $c/drop_mysql_tables     $c/drop_mysql_database
3145
3146 chmod 755 $c/create_sqlite3_database   $c/update_sqlite3_tables  $c/make_sqlite3_tables
3147 chmod 755 $c/grant_sqlite3_privileges  $c/drop_sqlite3_tables    $c/drop_sqlite3_database
3148
3149 chmod 755 $c/create_postgresql_database  $c/update_postgresql_tables $c/make_postgresql_tables
3150 chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables   $c/drop_postgresql_database
3151
3152 chmod 755 $c/create_ingres_database  $c/update_ingres_tables $c/make_ingres_tables
3153 chmod 755 $c/grant_ingres_privileges $c/drop_ingres_tables   $c/drop_ingres_database
3154
3155
3156 chmod 755 $c/make_catalog_backup $c/delete_catalog_backup  $c/make_catalog_backup.pl
3157 chmod 755 $c/sqlite
3158 chmod 755 $c/mysql
3159
3160 chmod 755 src/win32/build-depkgs-mingw32
3161
3162 if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then
3163    largefile_support="yes"
3164 fi
3165
3166 dnl Only try to find out the version number of the compiler when we know its some kind of GCC compiler
3167 if test X"$GCC" = "Xyes" ; then
3168    dnl
3169    dnl A whole lot of hand springs to get the compiler version.
3170    dnl  This is because gcc changed the output in version 3.0
3171    dnl
3172    CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3173    if test "x${CCVERSION}" = "x" ; then
3174       CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3175    fi
3176    CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '`
3177    if test x"${CXXVERSION}" = x ; then
3178       CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '`
3179    fi
3180 fi
3181
3182 # clean up any old junk
3183 echo " "
3184 echo "Cleaning up"
3185 echo " "
3186 ${MAKE:-make} clean
3187
3188 if test "x${db_type}" = "xInternal" ; then
3189    echo " "
3190    echo " "
3191    echo "You have not specified either --enable-client-only or one of the"
3192    echo "  supported databases: MySQL, PostgreSQL, Ingres, SQLite3 or DBI."
3193    echo "  This is not permitted. Please reconfigure."
3194    echo " "
3195    echo "Aborting the configuration ..."
3196    echo " "
3197    echo " "
3198    exit 1
3199 fi
3200
3201 echo "
3202 Configuration on `date`:
3203
3204    Host:                    ${host}${post_host} -- ${DISTNAME} ${DISTVER}
3205    Bacula version:          ${BACULA} ${VERSION} (${DATE})
3206    Source code location:    ${srcdir}
3207    Install binaries:        ${sbindir}
3208    Install libraries:       ${libdir}
3209    Install config files:    ${sysconfdir}
3210    Scripts directory:       ${scriptdir}
3211    Archive directory:       ${archivedir}
3212    Working directory:       ${working_dir}
3213    PID directory:           ${piddir}
3214    Subsys directory:        ${subsysdir}
3215    Man directory:           ${mandir}
3216    Data directory:          ${datarootdir}
3217    Plugin directory:        ${plugindir}
3218    C Compiler:              ${CC} ${CCVERSION}
3219    C++ Compiler:            ${CXX} ${CXXVERSION}
3220    Compiler flags:          ${WCFLAGS} ${CFLAGS} 
3221    Linker flags:            ${WLDFLAGS} ${LDFLAGS}
3222    Libraries:               ${LIBS}
3223    Statically Linked Tools: ${support_static_tools}
3224    Statically Linked FD:    ${support_static_fd}
3225    Statically Linked SD:    ${support_static_sd}
3226    Statically Linked DIR:   ${support_static_dir}
3227    Statically Linked CONS:  ${support_static_cons}
3228    Database type:           ${db_type}
3229    Database port:           ${db_port}
3230    Database lib:            ${DB_LIBS}
3231    Database name:           ${db_name}
3232    Database user:           ${db_user}
3233  
3234    Job Output Email:        ${job_email}
3235    Traceback Email:         ${dump_email}
3236    SMTP Host Address:       ${smtp_host}
3237  
3238    Director Port:           ${dir_port}
3239    File daemon Port:        ${fd_port}
3240    Storage daemon Port:     ${sd_port}
3241  
3242    Director User:           ${dir_user}
3243    Director Group:          ${dir_group}
3244    Storage Daemon User:     ${sd_user}
3245    Storage DaemonGroup:     ${sd_group}
3246    File Daemon User:        ${fd_user}
3247    File Daemon Group:       ${fd_group}
3248  
3249    SQL binaries Directory   ${SQL_BINDIR}
3250  
3251    Large file support:      $largefile_support
3252    Bacula conio support:    ${got_conio} ${CONS_LIBS}
3253    readline support:        ${got_readline} ${PRTREADLINE_SRC}
3254    TCP Wrappers support:    ${TCPW_MSG} ${WRAPLIBS}
3255    TLS support:             ${support_tls}
3256    Encryption support:      ${support_crypto} 
3257    ZLIB support:            ${have_zlib}
3258    enable-smartalloc:       ${support_smartalloc} 
3259    enable-lockmgr:          ${support_lockmgr}
3260    bat support:             ${support_bat}
3261    enable-gnome:            ${support_gnome} ${gnome_version}
3262    enable-bwx-console:      ${support_wx_console} ${wx_version}
3263    enable-tray-monitor:     ${support_tray_monitor}
3264    client-only:             ${build_client_only}
3265    build-dird:              ${build_dird}
3266    build-stored:            ${build_stored}
3267    Plugin support:          ${have_plugins}
3268    ACL support:             ${have_acl}
3269    XATTR support:           ${have_xattr}
3270    Python support:          ${support_python} ${PYTHON_LIBS}
3271    Batch insert enabled:    ${support_batch_insert}
3272
3273   " > config.out
3274
3275 # create a small shell script useful for support with
3276 # configure options and config.out info
3277 cat > scripts/bacula_config << EOF
3278 #!/bin/sh
3279 cat << __EOC__
3280 $ $0 $ac_configure_args
3281 EOF
3282 cat config.out >> scripts/bacula_config
3283 echo __EOC__ >> scripts/bacula_config
3284 chmod 755 scripts/bacula_config
3285
3286 cat config.out
3287
3288 # Display a warning message if postgresql client lib is <= 8.1
3289 if test x$DB_TYPE = xpostgresql -a x$ac_cv_lib_pq_PQisthreadsafe != xyes \
3290         -a x$support_batch_insert = xyes
3291 then
3292         echo "WARNING: Your PostgreSQL client library is too old to detect "
3293         echo " if it was compiled with --enable-thread-safety, consider to"
3294         echo " upgrade it in order to avoid problems with Batch insert mode"
3295         echo
3296 fi