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