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