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