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