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