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