]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/aclocal.m4
Vacation work -- see tech log
[bacula/bacula] / bacula / autoconf / aclocal.m4
1 dnl
2 dnl =========  Large File Support ==============
3 dnl By default, many hosts won't let programs access large files;
4 dnl one must use special compiler options to get large-file access to work.
5 dnl For more details about this brain damage please see:
6 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
7
8 dnl Written by Paul Eggert <eggert@twinsun.com>.
9 dnl 
10 dnl Modified by Kern Sibbald to turn on the large file
11 dnl   flags on all machines. Otherwise functions such as
12 dnl   fseek are not large file capable.
13 dnl
14
15 dnl Internal subroutine of AC_SYS_LARGEFILE.
16 dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME)
17 AC_DEFUN(AC_SYS_LARGEFILE_FLAGS,
18   [AC_CACHE_CHECK([for $1 value to request large file support],
19      ac_cv_sys_largefile_$1,
20      [ac_cv_sys_largefile_$1=`($GETCONF LFS_$1) 2>/dev/null` || {
21         ac_cv_sys_largefile_$1=no
22         ifelse($1, CFLAGS,
23           [case "$host_os" in
24            # IRIX 6.2 and later require cc -n32.
25 changequote(, )dnl
26            irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
27 changequote([, ])dnl
28              if test "$GCC" != yes; then
29                ac_cv_sys_largefile_CFLAGS=-n32
30              fi
31              ac_save_CC="$CC"
32              CC="$CC $ac_cv_sys_largefile_CFLAGS"
33              AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no)
34              CC="$ac_save_CC"
35            esac])
36       }])])
37
38 dnl Internal subroutine of AC_SYS_LARGEFILE.
39 dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL)
40 AC_DEFUN(AC_SYS_LARGEFILE_SPACE_APPEND,
41   [case $2 in
42    no) ;;
43    ?*)
44      case "[$]$1" in
45      '') $1=$2 ;;
46      *) $1=[$]$1' '$2 ;;
47      esac ;;
48    esac])
49
50 dnl Internal subroutine of AC_SYS_LARGEFILE.
51 dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT)
52 AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE,
53   [AC_CACHE_CHECK([for $1], $2,
54      [$2=no
55 changequote(, )dnl
56       $4
57       for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
58         case "$ac_flag" in
59         -D$1)
60           $2=1 ;;
61         -D$1=*)
62           $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
63         esac
64       done
65 changequote([, ])dnl
66       ])
67    if test "[$]$2" != no; then
68      AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
69    fi])
70
71 AC_DEFUN(AC_BAC_LARGEFILE,
72   [AC_REQUIRE([AC_CANONICAL_HOST])
73    AC_ARG_ENABLE(largefile,
74      [  --disable-largefile     omit support for large files])
75    if test "$enable_largefile" != no; then
76      AC_CHECK_TOOL(GETCONF, getconf)
77      AC_SYS_LARGEFILE_FLAGS(CFLAGS)
78      AC_SYS_LARGEFILE_FLAGS(LDFLAGS)
79      AC_SYS_LARGEFILE_FLAGS(LIBS)
80
81      for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
82        case "$ac_flag" in
83        no) ;;
84        -D_FILE_OFFSET_BITS=*) ;;
85        -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;;
86        -D_LARGE_FILES | -D_LARGE_FILES=*) ;;
87        -D?* | -I?*)
88          AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;;
89        *)
90          AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;;
91        esac
92      done
93      AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS")
94      AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS")
95      AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS,
96        ac_cv_sys_file_offset_bits,
97        [Number of bits in a file offset, on hosts where this is settable.],
98        [ac_cv_sys_file_offset_bits=64])
99      AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
100        ac_cv_sys_largefile_source,
101        [Define to make fseeko etc. visible, on some hosts.],
102        [ac_cv_sys_largefile_source=1]) 
103      AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
104        ac_cv_sys_large_files,
105        [Define for large files, on AIX-style hosts.],
106           [ac_cv_sys_large_files=1])
107    fi
108   ])
109 dnl ==========================================================
110
111 dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
112 AC_DEFUN(SIGNAL_CHECK,
113 [AC_REQUIRE([AC_TYPE_SIGNAL])
114 AC_MSG_CHECKING(for type of signal functions)
115 AC_CACHE_VAL(bash_cv_signal_vintage,
116 [
117   AC_TRY_LINK([#include <signal.h>],[
118     sigset_t ss;
119     struct sigaction sa;
120     sigemptyset(&ss); sigsuspend(&ss);
121     sigaction(SIGINT, &sa, (struct sigaction *) 0);
122     sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
123   ], bash_cv_signal_vintage=posix,
124   [
125     AC_TRY_LINK([#include <signal.h>], [
126         int mask = sigmask(SIGINT);
127         sigsetmask(mask); sigblock(mask); sigpause(mask);
128     ], bash_cv_signal_vintage=4.2bsd,
129     [
130       AC_TRY_LINK([
131         #include <signal.h>
132         RETSIGTYPE foo() { }], [
133                 int mask = sigmask(SIGINT);
134                 sigset(SIGINT, foo); sigrelse(SIGINT);
135                 sighold(SIGINT); sigpause(SIGINT);
136         ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
137     )]
138   )]
139 )
140 ])
141 AC_MSG_RESULT($bash_cv_signal_vintage)
142 if test "$bash_cv_signal_vintage" = posix; then
143 AC_DEFINE(HAVE_POSIX_SIGNALS)
144 elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
145 AC_DEFINE(HAVE_BSD_SIGNALS)
146 elif test "$bash_cv_signal_vintage" = svr3; then
147 AC_DEFINE(HAVE_USG_SIGHOLD)
148 fi
149 ])
150
151 AC_DEFUN(BA_CONDITIONAL,
152 [AC_SUBST($1_TRUE)
153 AC_SUBST($1_FALSE)
154 if $2; then
155   $1_TRUE=
156   $1_FALSE='#'
157 else
158   $1_TRUE='#'
159   $1_FALSE=
160 fi])
161
162
163 AC_DEFUN(BA_CHECK_OPSYS,
164 [
165 AC_CYGWIN
166 if test $HAVE_UNAME=yes -a x`uname -s` = xSunOS
167 then
168         BA_CONDITIONAL(HAVE_SUN_OS, $TRUEPRG)
169         AC_DEFINE(HAVE_SUN_OS)
170 else
171         BA_CONDITIONAL(HAVE_SUN_OS, $FALSEPRG)
172 fi
173
174 if test $HAVE_UNAME=yes -a x`uname -s` = xOSF1
175 then
176         BA_CONDITIONAL(HAVE_OSF1_OS, $TRUEPRG)
177         AC_DEFINE(HAVE_OSF1_OS)
178 else
179         BA_CONDITIONAL(HAVE_OSF1_OS, $FALSEPRG)
180 fi
181
182 if test $HAVE_UNAME=yes -a x`uname -s` = xAIX
183 then
184         BA_CONDITIONAL(HAVE_AIX_OS, $TRUEPRG)
185         AC_DEFINE(HAVE_AIX_OS)
186 else
187         BA_CONDITIONAL(HAVE_AIX_OS, $FALSEPRG)
188 fi
189
190 if test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX
191 then
192         BA_CONDITIONAL(HAVE_HPUX_OS, $TRUEPRG)
193         AC_DEFINE(HAVE_HPUX_OS)
194 else
195         BA_CONDITIONAL(HAVE_HPUX_OS, $FALSEPRG)
196 fi
197
198 if test $HAVE_UNAME=yes -a x`uname -s` = xLinux
199 then
200         BA_CONDITIONAL(HAVE_LINUX_OS, $TRUEPRG)
201         AC_DEFINE(HAVE_LINUX_OS)
202 else
203         BA_CONDITIONAL(HAVE_LINUX_OS, $FALSEPRG)
204 fi
205
206 if test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD
207 then
208         BA_CONDITIONAL(HAVE_FREEBSD_OS, $TRUEPRG)
209         AC_DEFINE(HAVE_FREEBSD_OS)
210 else
211         BA_CONDITIONAL(HAVE_FREEBSD_OS, $FALSEPRG)
212 fi
213
214 if test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD
215 then
216         BA_CONDITIONAL(HAVE_NETBSD_OS, $TRUEPRG)
217         AC_DEFINE(HAVE_NETBSD_OS)
218 else
219         BA_CONDITIONAL(HAVE_NETBSD_OS, $FALSEPRG)
220 fi
221
222 if test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD
223 then
224         BA_CONDITIONAL(HAVE_OPENBSD_OS, $TRUEPRG)
225         AC_DEFINE(HAVE_OPENBSD_OS)
226 else
227         BA_CONDITIONAL(HAVE_OPENBSD_OS, $FALSEPRG)
228 fi
229
230 if test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS
231 then
232         BA_CONDITIONAL(HAVE_BSDI_OS, $TRUEPRG)
233         AC_DEFINE(HAVE_BSDI_OS)
234 else
235         BA_CONDITIONAL(HAVE_BSDI_OS, $FALSEPRG)
236 fi
237
238 if test $HAVE_UNAME=yes -a x`uname -s` = xSGI
239 then
240         BA_CONDITIONAL(HAVE_SGI_OS, $TRUEPRG)
241         AC_DEFINE(HAVE_SGI_OS)
242 else
243         BA_CONDITIONAL(HAVE_SGI_OS, $FALSEPRG)
244 fi
245
246 if test $HAVE_UNAME=yes -a x`uname -s` = xIRIX
247 then
248         BA_CONDITIONAL(HAVE_IRIX_OS, $TRUEPRG)
249         AC_DEFINE(HAVE_IRIX_OS)
250 else
251         BA_CONDITIONAL(HAVE_IRIX_OS, $FALSEPRG)
252 fi
253
254 if test $HAVE_UNAME=yes -a x`uname -s` = xDarwin
255 then
256     AM_CONDITIONAL(HAVE_DARWIN_OS, $TRUEPRG)
257     AC_DEFINE(HAVE_DARWIN_OS)
258 else
259     AM_CONDITIONAL(HAVE_DARWIN_OS, $FALSEPRG)
260 fi
261 ])
262
263 AC_DEFUN(BA_CHECK_OPSYS_DISTNAME,
264 [AC_MSG_CHECKING(for Operating System Distribution)
265 if test "x$DISTNAME" != "x"
266 then
267         echo "distname set to $DISTNAME"
268 elif test $HAVE_UNAME=yes -a x`uname -s` = xOSF1
269 then
270         DISTNAME=alpha
271 elif test $HAVE_UNAME=yes -a x`uname -s` = xAIX
272 then
273         DISTNAME=aix
274 elif test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX
275 then
276         DISTNAME=hpux
277 elif test $HAVE_UNAME=yes -a x`uname -s` = xSunOS
278 then
279         DISTNAME=solaris
280 elif test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD
281 then
282         DISTNAME=freebsd
283 elif test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD
284 then
285         DISTNAME=netbsd
286 elif test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD
287 then
288         DISTNAME=openbsd
289 elif test $HAVE_UNAME=yes -a x`uname -s` = xIRIX
290 then
291         DISTNAME=irix
292 elif test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS
293 then
294         DISTNAME=bsdi
295 elif test -f /etc/SuSE-release
296 then
297         DISTNAME=suse
298 elif test -d /etc/SuSEconfig
299 then
300         DISTNAME=suse5
301 elif test -f /etc/mandrake-release
302 then
303         DISTNAME=mandrake
304 elif test -f /etc/whitebox-release
305 then
306        DISTNAME=redhat
307 elif test -f /etc/redhat-release
308 then
309         DISTNAME=redhat
310 elif test -f /etc/gentoo-release
311 then
312         DISTNAME=gentoo
313 elif test -f /etc/debian_version
314 then
315         DISTNAME=debian
316 elif test -f /etc/slackware-version
317 then
318         DISTNAME=slackware
319 elif test $HAVE_UNAME=yes -a x`uname -s` = xDarwin
320 then
321     DISTNAME=darwin
322 elif test -f /etc/engarde-version
323 then
324         DISTNAME=engarde
325 elif test "$CYGWIN" = yes
326 then
327         DISTNAME=cygwin
328         AC_DEFINE(HAVE_CYGWIN)
329 else
330         DISTNAME=unknown
331 fi
332 AC_MSG_RESULT(done)
333 ])
334
335 AC_DEFUN(BA_CHECK_MYSQL_DB,
336 [
337 db_found=no
338 AC_MSG_CHECKING(for MySQL support)
339 AC_ARG_WITH(mysql,
340 [
341   --with-mysql[=DIR]      Include MySQL support.  DIR is the MySQL base
342                           install directory, default is to search through
343                           a number of common places for the MySQL files.],
344 [
345   if test "$withval" != "no"; then
346         if test "$withval" = "yes"; then
347                 if test -f /usr/local/mysql/include/mysql/mysql.h; then
348                         MYSQL_INCDIR=/usr/local/mysql/include/mysql
349                         MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
350                         MYSQL_BINDIR=/usr/local/mysql/bin
351                 elif test -f /usr/include/mysql/mysql.h; then
352                         MYSQL_INCDIR=/usr/include/mysql
353                         MYSQL_LIBDIR=/usr/lib/mysql
354                         MYSQL_BINDIR=/usr/bin      
355                 elif test -f /usr/include/mysql.h; then
356                         MYSQL_INCDIR=/usr/include
357                         MYSQL_LIBDIR=/usr/lib
358                         MYSQL_BINDIR=/usr/bin
359                 elif test -f /usr/local/include/mysql/mysql.h; then
360                         MYSQL_INCDIR=/usr/local/include/mysql
361                         MYSQL_LIBDIR=/usr/local/lib/mysql
362                         MYSQL_BINDIR=/usr/local/bin
363                 elif test -f /usr/local/include/mysql.h; then
364                         MYSQL_INCDIR=/usr/local/include
365                         MYSQL_LIBDIR=/usr/local/lib
366                         MYSQL_BINDIR=/usr/local/bin
367                 else
368                    AC_MSG_RESULT(no)
369                    AC_MSG_ERROR(Unable to find mysql.h in standard locations)
370                 fi
371         else
372                 if test -f $withval/include/mysql/mysql.h; then
373                         MYSQL_INCDIR=$withval/include/mysql
374                         MYSQL_LIBDIR=$withval/lib/mysql
375                         MYSQL_BINDIR=$withval/bin
376                 elif test -f $withval/include/mysql.h; then
377                         MYSQL_INCDIR=$withval/include
378                         MYSQL_LIBDIR=$withval/lib
379                         MYSQL_BINDIR=$withval/bin
380                 else
381                    AC_MSG_RESULT(no)
382                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
383                 fi
384         fi
385     SQL_INCLUDE=-I$MYSQL_INCDIR
386     if test -f $MYSQL_LIBDIR/libmysqlclient_r.a; then
387        SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
388        AC_DEFINE(HAVE_THREAD_SAFE_MYSQL)
389     else
390        SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient -lz"
391     fi
392     SQL_BINDIR=$MYSQL_BINDIR
393
394     AC_DEFINE(HAVE_MYSQL)
395     AC_MSG_RESULT(yes)
396     db_found=yes
397     support_mysql=yes
398     db_name=MySQL
399     DB_NAME=mysql
400
401   else
402         AC_MSG_RESULT(no)
403   fi
404 ]
405 )
406
407 AC_ARG_WITH(embedded-mysql,
408 [
409   --with-embedded-mysql[=DIR] Include MySQL support.  DIR is the MySQL base
410                           install directory, default is to search through
411                           a number of common places for the MySQL files.],
412 [
413   if test "$withval" != "no"; then
414         if test "$withval" = "yes"; then
415                 if test -f /usr/local/mysql/include/mysql/mysql.h; then
416                         MYSQL_INCDIR=/usr/local/mysql/include/mysql
417                         MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
418                         MYSQL_BINDIR=/usr/local/mysql/bin
419                 elif test -f /usr/include/mysql/mysql.h; then
420                         MYSQL_INCDIR=/usr/include/mysql
421                         MYSQL_LIBDIR=/usr/lib/mysql
422                         MYSQL_BINDIR=/usr/bin      
423                 elif test -f /usr/include/mysql.h; then
424                         MYSQL_INCDIR=/usr/include
425                         MYSQL_LIBDIR=/usr/lib
426                         MYSQL_BINDIR=/usr/bin
427                 elif test -f /usr/local/include/mysql/mysql.h; then
428                         MYSQL_INCDIR=/usr/local/include/mysql
429                         MYSQL_LIBDIR=/usr/local/lib/mysql
430                         MYSQL_BINDIR=/usr/local/bin
431                 elif test -f /usr/local/include/mysql.h; then
432                         MYSQL_INCDIR=/usr/local/include
433                         MYSQL_LIBDIR=/usr/local/lib
434                         MYSQL_BINDIR=/usr/local/bin
435                 else
436                    AC_MSG_RESULT(no)
437                    AC_MSG_ERROR(Unable to find mysql.h in standard locations)
438                 fi
439         else
440                 if test -f $withval/include/mysql/mysql.h; then
441                         MYSQL_INCDIR=$withval/include/mysql
442                         MYSQL_LIBDIR=$withval/lib/mysql
443                         MYSQL_BINDIR=$withval/bin
444                 elif test -f $withval/include/mysql.h; then
445                         MYSQL_INCDIR=$withval/include
446                         MYSQL_LIBDIR=$withval/lib
447                         MYSQL_BINDIR=$withval/bin
448                 else
449                    AC_MSG_RESULT(no)
450                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
451                 fi
452         fi
453     SQL_INCLUDE=-I$MYSQL_INCDIR
454     SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
455     SQL_BINDIR=$MYSQL_BINDIR
456
457     AC_DEFINE(HAVE_MYSQL)
458     AC_DEFINE(HAVE_EMBEDDED_MYSQL)
459     AC_MSG_RESULT(yes)
460     db_found=yes
461     support_mysql=yes
462     db_name=MySQL
463     DB_NAME=mysql
464
465   else
466         AC_MSG_RESULT(no)
467   fi
468 ]
469 )
470
471
472 AC_SUBST(SQL_LFLAGS)
473 AC_SUBST(SQL_INCLUDE)
474 AC_SUBST(SQL_BINDIR)
475   
476 ])
477
478
479 AC_DEFUN(BA_CHECK_SQLITE_DB,
480 [
481 db_found=no
482 AC_MSG_CHECKING(for SQLite support)
483 AC_ARG_WITH(sqlite,
484 [
485   --with-sqlite[=DIR]     Include SQLite support.  DIR is the SQLite base
486                           install directory, default is to search through
487                           a number of common places for the SQLite files.],
488 [
489   if test "$withval" != "no"; then
490      if test "$withval" = "yes"; then
491         if test -f /usr/local/include/sqlite.h; then
492            SQLITE_INCDIR=/usr/local/include
493            SQLITE_LIBDIR=/usr/local/lib
494            SQLITE_BINDIR=/usr/local/bin
495         elif test -f /usr/include/sqlite.h; then
496            SQLITE_INCDIR=/usr/include
497            SQLITE_LIBDIR=/usr/lib
498            SQLITE_BINDIR=/usr/bin      
499         elif test -f $prefix/include/sqlite.h; then
500            SQLITE_INCDIR=$prefix/include
501            SQLITE_LIBDIR=$prefix/lib
502            SQLITE_BINDIR=$prefix/bin      
503         else
504            AC_MSG_RESULT(no)
505            AC_MSG_ERROR(Unable to find sqlite.h in standard locations)
506         fi
507      else
508         if test -f $withval/sqlite.h; then
509            SQLITE_INCDIR=$withval
510            SQLITE_LIBDIR=$withval
511            SQLITE_BINDIR=$withval
512         elif test -f $withval/include/sqlite.h; then
513            SQLITE_INCDIR=$withval/include
514            SQLITE_LIBDIR=$withval/lib
515            SQLITE_BINDIR=$withval/bin
516         else
517            AC_MSG_RESULT(no)
518            AC_MSG_ERROR(Invalid SQLite directory $withval - unable to find sqlite.h under $withval)
519         fi
520      fi
521      SQL_INCLUDE=-I$SQLITE_INCDIR
522      SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite"
523      SQL_BINDIR=$SQLITE_BINDIR
524
525      AC_DEFINE(HAVE_SQLITE)
526      AC_MSG_RESULT(yes)
527      db_found=yes
528      support_sqlite=yes
529      db_name=SQLite
530      DB_NAME=sqlite
531
532   else
533      AC_MSG_RESULT(no)
534   fi
535 ],[
536   AC_MSG_RESULT(no)
537 ])
538 AC_SUBST(SQL_LFLAGS)
539 AC_SUBST(SQL_INCLUDE)
540 AC_SUBST(SQL_BINDIR)
541   
542 ])
543
544 AC_DEFUN(BA_CHECK_SQLITE3_DB,
545 [
546 db_found=no
547 AC_MSG_CHECKING(for SQLite3 support)
548 AC_ARG_WITH(sqlite3,
549 [
550   --with-sqlite3[=DIR]    Include SQLite3 support.  DIR is the SQLite3 base
551                           install directory, default is to search through
552                           a number of common places for the SQLite3 files.],
553 [
554   if test "$withval" != "no"; then
555      if test "$withval" = "yes"; then
556         if test -f /usr/local/include/sqlite3.h; then
557            SQLITE_INCDIR=/usr/local/include
558            SQLITE_LIBDIR=/usr/local/lib
559            SQLITE_BINDIR=/usr/local/bin
560         elif test -f /usr/include/sqlite3.h; then
561            SQLITE_INCDIR=/usr/include
562            SQLITE_LIBDIR=/usr/lib
563            SQLITE_BINDIR=/usr/bin      
564         elif test -f $prefix/include/sqlite3.h; then
565            SQLITE_INCDIR=$prefix/include
566            SQLITE_LIBDIR=$prefix/lib
567            SQLITE_BINDIR=$prefix/bin      
568         else
569            AC_MSG_RESULT(no)
570            AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
571         fi
572      else
573         if test -f $withval/sqlite3.h; then
574            SQLITE_INCDIR=$withval
575            SQLITE_LIBDIR=$withval
576            SQLITE_BINDIR=$withval
577         elif test -f $withval/include/sqlite3.h; then
578            SQLITE_INCDIR=$withval/include
579            SQLITE_LIBDIR=$withval/lib
580            SQLITE_BINDIR=$withval/bin
581         else
582            AC_MSG_RESULT(no)
583            AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
584         fi
585      fi
586      SQL_INCLUDE=-I$SQLITE_INCDIR
587      SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite3"
588      SQL_BINDIR=$SQLITE_BINDIR
589
590      AC_DEFINE(HAVE_SQLITE3)
591      AC_MSG_RESULT(yes)
592      db_found=yes
593      support_sqlite3=yes
594      db_name=SQLite3
595      DB_NAME=sqlite3
596
597   else
598      AC_MSG_RESULT(no)
599   fi
600 ],[
601   AC_MSG_RESULT(no)
602 ])
603 AC_SUBST(SQL_LFLAGS)
604 AC_SUBST(SQL_INCLUDE)
605 AC_SUBST(SQL_BINDIR)
606   
607 ])
608
609
610
611 AC_DEFUN(BA_CHECK_POSTGRESQL_DB,
612 [
613 db_found=no
614 AC_MSG_CHECKING(for PostgreSQL support)
615 AC_ARG_WITH(postgresql,
616 [  --with-postgresql[=DIR]      Include PostgreSQL support.  DIR is the PostgreSQL
617                           base install directory, defaults to /usr/local/pgsql],
618 [
619   if test "$withval" != "no"; then
620       if test "$db_found" = "yes"; then
621           AC_MSG_RESULT(error)
622           AC_MSG_ERROR("You can configure for only one database.");
623       fi
624       if test "$withval" = "yes"; then
625           if test -f /usr/local/include/libpq-fe.h; then
626               POSTGRESQL_INCDIR=/usr/local/include
627               POSTGRESQL_LIBDIR=/usr/local/lib
628               POSTGRESQL_BINDIR=/usr/local/bin
629           elif test -f /usr/include/libpq-fe.h; then
630               POSTGRESQL_INCDIR=/usr/include
631               POSTGRESQL_LIBDIR=/usr/lib
632               POSTGRESQL_BINDIR=/usr/bin
633           elif test -f /usr/include/pgsql/libpq-fe.h; then
634               POSTGRESQL_INCDIR=/usr/include/pgsql
635               POSTGRESQL_LIBDIR=/usr/lib/pgsql
636               POSTGRESQL_BINDIR=/usr/bin
637           elif test -f /usr/include/postgresql/libpq-fe.h; then
638               POSTGRESQL_INCDIR=/usr/include/postgresql
639               POSTGRESQL_LIBDIR=/usr/lib/postgresql
640               POSTGRESQL_BINDIR=/usr/bin
641           else
642               AC_MSG_RESULT(no)
643               AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
644           fi
645       elif test -f $withval/include/libpq-fe.h; then
646           POSTGRESQL_INCDIR=$withval/include
647           POSTGRESQL_LIBDIR=$withval/lib
648           POSTGRESQL_BINDIR=$withval/bin
649       elif test -f $withval/include/postgresql/libpq-fe.h; then
650           POSTGRESQL_INCDIR=$withval/include/postgresql
651           POSTGRESQL_LIBDIR=$withval/lib
652           POSTGRESQL_BINDIR=$withval/bin
653       else
654           AC_MSG_RESULT(no)
655           AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
656       fi
657       POSTGRESQL_LFLAGS="-L$POSTGRESQL_LIBDIR -lpq"
658       AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LFLAGS="-lcrypt $POSTGRESQL_LFLAGS"]))
659       SQL_INCLUDE=-I$POSTGRESQL_INCDIR
660       SQL_LFLAGS=$POSTGRESQL_LFLAGS
661       SQL_BINDIR=$POSTGRESQL_BINDIR
662       AC_DEFINE(HAVE_POSTGRESQL)
663       AC_MSG_RESULT(yes)
664       db_found=yes
665       support_postgresql=yes
666       db_name=PostgreSQL
667       DB_NAME=postgresql
668   else
669       AC_MSG_RESULT(no)
670   fi
671 ],[
672   AC_MSG_RESULT(no)
673 ])
674 AC_SUBST(SQL_LFLAGS)
675 AC_SUBST(SQL_INCLUDE)
676 AC_SUBST(SQL_BINDIR)
677
678 ])
679
680
681
682 AC_DEFUN(BA_CHECK_SQL_DB, 
683 [AC_MSG_CHECKING(Checking for various databases)
684 dnl# --------------------------------------------------------------------------
685 dnl# CHECKING FOR VARIOUS DATABASES (thanks to UdmSearch team)
686 dnl# --------------------------------------------------------------------------
687 dnl Check for some DBMS backend
688 dnl NOTE: we can use only one backend at a time
689 db_found=no
690 db_name=none
691
692 if test x$support_mysql = xyes; then
693    cats=cats
694 fi
695
696 AC_MSG_CHECKING(for Berkeley DB support)
697 AC_ARG_WITH(berkeleydb,
698 [
699   --with-berkeleydb[=DIR] Include Berkeley DB support.  DIR is the Berkeley DB base
700                           install directory, default is to search through
701                           a number of common places for the DB files.],
702 [
703   if test "$withval" != "no"; then
704         if test "$withval" = "yes"; then
705                 if test -f /usr/include/db.h; then
706                         BERKELEYDB_INCDIR=/usr/include
707                         BERKELEYDB_LIBDIR=/usr/lib
708                 else
709                 AC_MSG_RESULT(no)
710                 AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h)
711                 fi
712         else
713                 if test -f $withval/include/db.h; then
714                         BERKELEYDB_INCDIR=$withval/include
715                         BERKELEYDBL_LIBDIR=$withval/lib
716                 else
717                 AC_MSG_RESULT(no)
718                 AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h under $withval)
719                 fi
720         fi
721     SQL_INCLUDE=-I$BERKELEYDB_INCDIR
722     SQL_LFLAGS="-L$BERKELEYDB_LIBDIR -ldb"
723
724     AC_DEFINE(HAVE_BERKELEY_DB)
725     AC_MSG_RESULT(yes)
726     have_db=yes
727     support_mysql=yes
728     db_name=BerkelyDB
729
730   else
731         AC_MSG_RESULT(no)
732   fi
733 ],[
734   AC_MSG_RESULT(no)
735 ])
736 AC_SUBST(SQL_LFLAGS)
737 AC_SUBST(SQL_INCLUDE)
738
739 if test x$support_berkleydb = xyes; then
740    cats=cats
741 fi
742
743
744
745
746 AC_MSG_CHECKING(for mSQL support)
747 AC_ARG_WITH(msql,
748 [  --with-msql[=DIR]       Include mSQL support.  DIR is the mSQL base
749                           install directory, defaults to /usr/local/Hughes.],
750 [
751   if test "$withval" != "no"; then
752     if test "$have_db" = "yes"; then
753         AC_MSG_RESULT(error)
754         AC_MSG_ERROR("You can configure for only one database.");
755     fi
756
757     if test "$withval" = "yes"; then
758         MSQL_INCDIR=/usr/local/Hughes/include
759         MSQL_LIBDIR=/usr/local/Hughes/lib
760     else
761         MSQL_INCDIR=$withval/include
762         MSQL_LIBDIR=$withval/lib
763     fi
764     MSQL_INCLUDE=-I$MSQL_INCDIR
765     MSQL_LFLAGS="-L$MSQL_LIBDIR -lmsql"
766
767     AC_DEFINE(HAVE_MSQL)
768     AC_MSG_RESULT(yes)
769     have_db=yes
770   else
771         AC_MSG_RESULT(no)
772   fi
773 ],[
774   AC_MSG_RESULT(no)
775 ])
776 AC_SUBST(MSQL_LFLAGS)
777 AC_SUBST(MSQL_INCLUDE)
778
779
780 AC_MSG_CHECKING(for iODBC support)
781 AC_ARG_WITH(iodbc,
782 [  --with-iodbc[=DIR]      Include iODBC support.  DIR is the iODBC base
783                           install directory, defaults to /usr/local.],
784 [
785         if test "$withval" != "no"; then
786             if test "$have_db" = "yes"; then
787                 AC_MSG_RESULT(error)
788                 AC_MSG_ERROR("You can configure for only one database.");
789             fi
790         fi
791         
792         if test "$withval" = "yes"; then
793                 withval=/usr/local
794         fi
795
796         if test "$withval" != "no"; then
797                 if test -f $withval/include/isql.h; then
798                         IODBC_INCDIR=$withval/include
799                         IODBC_LIBDIR=$withval/lib
800                 else
801                         AC_MSG_RESULT(no)
802                         AC_MSG_ERROR(Invalid iODBC directory - unable to find isql.h)
803                 fi
804                 IODBC_LFLAGS="-L$IODBC_LIBDIR -liodbc"
805                 IODBC_INCLUDE=-I$IODBC_INCDIR
806                 AC_DEFINE(HAVE_IODBC)
807                 AC_MSG_RESULT(yes)
808                 have_db=yes
809         fi
810 ],[
811         AC_MSG_RESULT(no)
812 ])
813 AC_SUBST(IODBC_LFLAGS)
814 AC_SUBST(IODBC_INCLUDE)
815
816
817 AC_MSG_CHECKING(for unixODBC support)
818 AC_ARG_WITH(unixODBC,
819 [  --with-unixODBC[=DIR]   Include unixODBC support.  DIR is the unixODBC base
820                           install directory, defaults to /usr/local.],
821 [
822         if test "$withval" != "no"; then
823             if test "$have_db" = "yes"; then
824                 AC_MSG_RESULT(error)
825                 AC_MSG_ERROR("You can configure for only one database.");
826             fi
827         fi
828         
829         if test "$withval" = "yes"; then
830                 withval=/usr/local
831         fi
832
833         if test "$withval" != "no"; then
834                 if test -f $withval/include/sql.h; then
835                         UNIXODBC_INCDIR=$withval/include
836                         UNIXODBC_LIBDIR=$withval/lib
837                 else
838                         AC_MSG_RESULT(no)
839                         AC_MSG_ERROR(Invalid unixODBC directory - unable to find sql.h)
840                 fi
841                 UNIXODBC_LFLAGS="-L$UNIXODBC_LIBDIR -lodbc"
842                 UNIXODBC_INCLUDE=-I$UNIXODBC_INCDIR
843                 AC_DEFINE(HAVE_UNIXODBC)
844                 AC_MSG_RESULT(yes)
845                 have_db=yes
846         fi
847 ],[
848         AC_MSG_RESULT(no)
849 ])
850 AC_SUBST(UNIXODBC_LFLAGS)
851 AC_SUBST(UNIXODBC_INCLUDE)
852
853
854 AC_MSG_CHECKING(for Solid support)
855 AC_ARG_WITH(solid,
856 [  --with-solid[=DIR]      Include Solid support.  DIR is the Solid base
857                           install directory, defaults to /usr/local.],
858 [
859         if test "$withval" != "no"; then
860             if test "$have_db" = "yes"; then
861                 AC_MSG_RESULT(error)
862                 AC_MSG_ERROR("You can configure for only one database.");
863             fi
864         fi
865
866         if test "$withval" = "yes"; then
867                 withval=/usr/local
868         fi
869
870         if test "$withval" != "no"; then
871                 if test -f $withval/include/cli0cli.h; then
872                         SOLID_INCDIR=$withval/include
873                         SOLID_LIBDIR=$withval/lib
874                 else
875                         AC_MSG_RESULT(no)
876                         AC_MSG_ERROR(Invalid Solid directory - unable to find cli0cli.h)
877                 fi
878                 SOLID_LFLAGS="-L$SOLID_LIBDIR -lsolcli"
879                 SOLID_INCLUDE="-I$SOLID_INCDIR"
880                 AC_DEFINE(HAVE_SOLID)
881                 AC_MSG_RESULT(yes)
882                 have_db=yes
883         fi
884 ],[
885         AC_MSG_RESULT(no)
886 ])
887 AC_SUBST(SOLID_LFLAGS)
888 AC_SUBST(SOLID_INCLUDE)
889
890 AC_MSG_CHECKING(for OpenLink ODBC support)
891 AC_ARG_WITH(openlink,
892 [  --with-openlink[=DIR]   Include OpenLink ODBC support. 
893                           DIR is the base OpenLink ODBC install directory],
894 [
895   if test "$withval" != "no"; then
896         if test "$withval" = "yes"; then
897
898                 if test "$have_db" = "yes"; then
899                         AC_MSG_RESULT(error)
900                         AC_MSG_ERROR("You can configure for only one database.");
901                 fi
902
903                 if test -f /usr/local/virtuoso-ent/odbcsdk/include/isql.h; then
904                         VIRT_INCDIR=/usr/local/virtuoso-ent/odbcsdk/include/
905                         VIRT_LIBDIR=/usr/local/virtuoso-ent/odbcsdk/lib/
906                 elif test -f /usr/local/virtuoso-lite/odbcsdk/include/isql.h; then
907                         VIRT_INCDIR=/usr/local/virtuoso-lite/odbcsdk/include/
908                         VIRT_LIBDIR=/usr/local/virtuoso-lite/odbcsdk/lib/
909                 elif test -f /usr/local/virtuoso/odbcsdk/include/isql.h; then
910                         VIRT_INCDIR=/usr/local/virtuoso/odbcsdk/include/
911                         VIRT_LIBDIR=/usr/local/virtuoso/odbcsdk/lib/
912                 else
913                 AC_MSG_RESULT(no)
914                 AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h)
915                 fi
916         else
917                 if test -f $withval/odbcsdk/include/isql.h; then
918                         VIRT_INCDIR=$withval/odbcsdk/include/
919                         VIRT_LIBDIR=$withval/odbcsdk/lib/
920                 elif test -f $withval/include/isql.h; then
921                         VIRT_INCDIR=$withval/include/
922                         VIRT_LIBDIR=$withval/lib/
923                 else
924                 AC_MSG_RESULT(no)
925                 AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h under $withval)
926                 fi
927         fi
928     VIRT_INCLUDE=-I$VIRT_INCDIR
929     VIRT_LFLAGS="-L$VIRT_LIBDIR -liodbc"
930
931     AC_DEFINE(HAVE_VIRT)
932     AC_MSG_RESULT(yes)
933     have_db=yes
934
935   else
936         AC_MSG_RESULT(no)
937   fi
938 ],[
939   AC_MSG_RESULT(no)
940 ])
941 AC_SUBST(VIRT_LFLAGS)
942 AC_SUBST(VIRT_INCLUDE)
943
944
945 AC_MSG_CHECKING(for EasySoft ODBC support)
946 AC_ARG_WITH(easysoft,
947 [  --with-easysoft[=DIR]   Include EasySoft ODBC support. 
948                           DIR is the base EasySoft ODBC install directory],
949 [
950   if test "$withval" != "no"; then
951         if test "$withval" = "yes"; then
952
953                 if test "$have_db" = "yes"; then
954                         AC_MSG_RESULT(error)
955                         AC_MSG_ERROR("You can configure for only one database.");
956                 fi
957
958                 if test -f /usr/local/easysoft/oob/client/include/sql.h; then
959                         EASYSOFT_INCDIR=/usr/local/easysoft/oob/client/include/
960                         EASYSOFT_LFLAGS="-L/usr/local/easysoft/oob/client/lib/ -L/usr/local/easysoft/lib"
961                 else
962                 AC_MSG_RESULT(no)
963                 AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h)
964                 fi
965         else
966                 if test -f $withval/easysoft/oob/client/include/sql.h; then
967                         EASYSOFT_INCDIR=$withval/easysoft/oob/client/include/
968                         EASYSOFT_LFLAGS="-L$withval/easysoft/oob/client/lib/ -L$withval/easysoft/lib"
969                 else
970                 AC_MSG_RESULT(no)
971                 AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h under $withval)
972                 fi
973         fi
974     EASYSOFT_INCLUDE=-I$EASYSOFT_INCDIR
975     EASYSOFT_LFLAGS="$EASYSOFT_LFLAGS -lesoobclient -lesrpc -lsupport -lextra"
976
977     AC_DEFINE(HAVE_EASYSOFT)
978     AC_MSG_RESULT(yes)
979     have_db=yes
980
981   else
982         AC_MSG_RESULT(no)
983   fi
984 ],[
985   AC_MSG_RESULT(no)
986 ])
987 AC_SUBST(EASYSOFT_LFLAGS)
988 AC_SUBST(EASYSOFT_INCLUDE)
989
990
991
992 AC_MSG_CHECKING(for InterBase support)
993 AC_ARG_WITH(ibase,
994 [  --with-ibase[=DIR]      Include InterBase support.  DIR is the InterBase
995                           install directory, defaults to /usr/interbase.],
996 [
997         if test "$withval" != "no"; then
998             if test "$have_db" = "yes"; then
999                 AC_MSG_RESULT(error)
1000                 AC_MSG_ERROR("You can configure for only one database.");
1001             fi
1002         fi
1003         
1004         if test "$withval" = "yes"; then
1005                 withval=/usr/interbase
1006         fi
1007
1008         if test "$withval" != "no"; then
1009                 if test -f $withval/include/ibase.h; then
1010                         IBASE_INCDIR=$withval/include
1011                         IBASE_LIBDIR=$withval/lib
1012                 else
1013                         AC_MSG_RESULT(no)
1014                         AC_MSG_ERROR(Invalid InterBase directory - unable to find ibase.h)
1015                 fi
1016                 IBASE_LFLAGS="-L$IBASE_LIBDIR -lgds"
1017                 IBASE_INCLUDE=-I$IBASE_INCDIR
1018                 AC_DEFINE(HAVE_IBASE)
1019                 AC_MSG_RESULT(yes)
1020                 have_db=yes
1021         fi
1022 ],[
1023         AC_MSG_RESULT(no)
1024 ])
1025 AC_SUBST(IBASE_LFLAGS)
1026 AC_SUBST(IBASE_INCLUDE)
1027
1028 AC_MSG_CHECKING(for Oracle8 support)
1029 AC_ARG_WITH(oracle8,
1030 [  --with-oracle8[=DIR]    Include Oracle8 support.  DIR is the Oracle
1031                           home directory, defaults to $ORACLE_HOME or
1032                           /oracle8/app/oracle/product/8.0.5.],
1033 [
1034         if test "$withval" != "no"; then
1035             if test "$have_db" = "yes"; then
1036                 AC_MSG_RESULT(error)
1037                 AC_MSG_ERROR("You can configure for only one database.");
1038             fi
1039         fi
1040
1041         if test "$withval" = "yes"; then
1042                 withval="$ORACLE_HOME"
1043                 if test "$withval" = ""; then
1044                         withval=/oracle8/app/oracle/product/8.0.5
1045                 fi
1046         fi
1047
1048         if test "$withval" != "no"; then
1049                 if test -f $withval/rdbms/demo/oci.h; then
1050                         ORACLE8_INCDIR1=$withval/rdbms/demo/
1051                         ORACLE8_INCDIR2=$withval/rdbms/public/:
1052                         ORACLE8_INCDIR3=$withval/network/public/
1053                         ORACLE8_INCDIR4=$withval/plsql/public/
1054                         ORACLE8_LIBDIR1=$withval/lib
1055                         ORACLE8_LIBDIR2=$withval/rdbms/lib
1056                 else
1057                         AC_MSG_RESULT(no)
1058                         AC_MSG_ERROR(Invalid ORACLE directory - unable to find oci.h)
1059                 fi
1060                 ORACLE8_LFLAGS="-L$ORACLE8_LIBDIR1 -L$ORACLE8_LIBDIR2 $withval/lib/libclntsh.so -lmm -lepc -lclient -lvsn -lcommon -lgeneric -lcore4 -lnlsrtl3 -lnsl -lm -ldl -lnetv2 -lnttcp -lnetwork -lncr -lsql"
1061                 ORACLE8_INCLUDE="-I$ORACLE8_INCDIR1 -I$ORACLE8_INCDIR2 -I$ORACLE8_INCDIR3 -I$ORACLE8_INCDIR4"
1062                 AC_DEFINE(HAVE_ORACLE8)
1063                 AC_MSG_RESULT(yes)
1064                 have_db=yes
1065         fi
1066 ],[
1067         AC_MSG_RESULT(no)
1068 ])
1069 AC_SUBST(ORACLE8_LFLAGS)
1070 AC_SUBST(ORACLE8_INCLUDE)
1071
1072
1073 AC_MSG_CHECKING(for Oracle7 support)
1074 AC_ARG_WITH(oracle7,
1075 [  --with-oracle7[=DIR]    Include Oracle 7.3 support.  DIR is the Oracle
1076                           home directory, defaults to 
1077                           ORACLE_HOME [$ORACLE_HOME]],
1078 [
1079         if test "$withval" != "no"; then
1080             if test "$have_db" = "yes"; then
1081                 AC_MSG_RESULT(error)
1082                 AC_MSG_ERROR("You can configure for only one database.");
1083             fi
1084         fi
1085
1086         if test "$withval" = "yes"; then
1087                 withval="$ORACLE_HOME"
1088         fi
1089
1090         if test "$withval" != "no"; then
1091                 if test -f $withval/rdbms/demo/ocidfn.h; then
1092                         ORACLE7_INCDIR=$withval/rdbms/demo/
1093                         ORACLE7_LIBDIR1=$withval/lib
1094                         ORACLE7_LIBDIR2=$withval/rdbms/lib
1095                 else
1096                         AC_MSG_RESULT(no)
1097                         AC_MSG_ERROR(Invalid ORACLE directory - unable to find ocidfn.h)
1098                 fi
1099
1100         ORACLEINST_TOP=$withval
1101         if test -f "$ORACLEINST_TOP/rdbms/lib/sysliblist"
1102         then
1103           ORA_SYSLIB="`cat $ORACLEINST_TOP/rdbms/lib/sysliblist`"
1104         elif test -f "$ORACLEINST_TOP/lib/sysliblist"
1105             then
1106           ORA_SYSLIB="`cat $ORACLEINST_TOP/lib/sysliblist`"
1107         else
1108           ORA_SYSLIB="-lm"
1109         fi
1110           
1111                 ORACLE7_LFLAGS="-L$ORACLE7_LIBDIR1 -L$ORACLE7_LIBDIR2 \
1112             -lclient -lsqlnet -lncr -lsqlnet -lclient -lcommon \
1113             -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric \
1114             -lepc -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 -lcore3 -lnlsrtl3 \
1115             $ORA_SYSLIB -lcore3 $ORA_SYSLIB"
1116                 ORACLE7_INCLUDE="-I$ORACLE7_INCDIR "
1117                 AC_DEFINE(HAVE_ORACLE7)
1118                 AC_MSG_RESULT(yes)
1119                 have_db=yes
1120         fi
1121 ],[
1122         AC_MSG_RESULT(no)
1123 ])
1124 AC_SUBST(ORACLE7_LFLAGS)
1125 AC_SUBST(ORACLE7_INCLUDE)
1126 ])
1127   
1128
1129 AC_DEFUN(AM_CONDITIONAL,
1130 [AC_SUBST($1_TRUE)
1131 AC_SUBST($1_FALSE)
1132 if $2; then
1133   $1_TRUE=
1134   $1_FALSE='#'
1135 else
1136   $1_TRUE='#'
1137   $1_FALSE=
1138 fi])
1139
1140
1141
1142 dnl
1143 dnl ========================================================================
1144 dnl
1145 dnl      Old Gnome 1.4 detection code -- deprecated, but still used
1146 dnl
1147 dnl ========================================================================
1148
1149 dnl AM_ACLOCAL_INCLUDE(macrodir)
1150 AC_DEFUN([AM_ACLOCAL_INCLUDE],
1151 [
1152         AM_CONDITIONAL(INSIDE_GNOME_COMMON, false)
1153
1154         test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
1155
1156         for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
1157 ])
1158
1159 dnl
1160 dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits])
1161 dnl
1162 dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh
1163 dnl is not found. 
1164 dnl
1165
1166 AC_DEFUN([GNOME_INIT_HOOK],[
1167         AC_SUBST(GNOME_LIBS)
1168         AC_SUBST(GNOMEUI_LIBS)
1169         AC_SUBST(GNOMEGNORBA_LIBS)
1170         AC_SUBST(GTKXMHTML_LIBS)
1171         AC_SUBST(ZVT_LIBS)
1172         AC_SUBST(GNOME_LIBDIR)
1173         AC_SUBST(GNOME_INCLUDEDIR)
1174
1175         AC_ARG_WITH(gnome-includes,
1176         [  --with-gnome-includes   Specify location of GNOME headers],[
1177         CFLAGS="$CFLAGS -I$withval"
1178         ])
1179         
1180         AC_ARG_WITH(gnome-libs,
1181         [  --with-gnome-libs       Specify location of GNOME libs],[
1182         LDFLAGS="$LDFLAGS -L$withval"
1183         gnome_prefix=$withval
1184         ])
1185
1186         AC_ARG_WITH(gnome,
1187         [  --with-gnome            Specify prefix for GNOME files],
1188                 if test x$withval = xyes; then
1189                         want_gnome=yes
1190                         dnl Note that an empty true branch is not
1191                         dnl valid sh syntax.
1192                         ifelse([$1], [], :, [$1])
1193                 else
1194                         if test "x$withval" = xno; then
1195                                 want_gnome=no
1196                         else
1197                                 want_gnome=yes
1198                                 LDFLAGS="$LDFLAGS -L$withval/lib"
1199                                 CFLAGS="$CFLAGS -I$withval/include"
1200                                 gnome_prefix=$withval/lib
1201                         fi
1202                 fi,
1203                 want_gnome=yes)
1204
1205         if test "x$want_gnome" = xyes; then
1206
1207             AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1208             if test "$GNOME_CONFIG" = "no"; then
1209               no_gnome_config="yes"
1210             else
1211               AC_MSG_CHECKING(if $GNOME_CONFIG works)
1212               if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1213                 AC_MSG_RESULT(yes)
1214                 GNOME_GNORBA_HOOK([],$2)
1215                 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`"
1216                 GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`"
1217                 GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`"
1218                 GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`"
1219                 ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`"
1220                 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1221                 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1222                 $1
1223               else
1224                 AC_MSG_RESULT(no)
1225                 no_gnome_config="yes"
1226               fi
1227             fi
1228
1229             if test x$exec_prefix = xNONE; then
1230                 if test x$prefix = xNONE; then
1231                     gnome_prefix=$ac_default_prefix/lib
1232                 else
1233                     gnome_prefix=$prefix/lib
1234                 fi
1235             else
1236                 gnome_prefix=`eval echo \`echo $libdir\``
1237             fi
1238         
1239             if test "$no_gnome_config" = "yes"; then
1240               AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1241               if test -f $gnome_prefix/gnomeConf.sh; then
1242                 AC_MSG_RESULT(found)
1243                 echo "loading gnome configuration from" \
1244                      "$gnome_prefix/gnomeConf.sh"
1245                 . $gnome_prefix/gnomeConf.sh
1246                 $1
1247               else
1248                 AC_MSG_RESULT(not found)
1249                 if test x$2 = xfail; then
1250                   AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1251                 fi
1252               fi
1253             fi
1254         fi
1255
1256         if test -n "$3"; then
1257           n="$3"
1258           for i in $n; do
1259             AC_MSG_CHECKING(extra library \"$i\")
1260             case $i in 
1261               applets)
1262                 AC_SUBST(GNOME_APPLETS_LIBS)
1263                 GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets`
1264                 AC_MSG_RESULT($GNOME_APPLETS_LIBS);;
1265               docklets)
1266                 AC_SUBST(GNOME_DOCKLETS_LIBS)
1267                 GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets`
1268                 AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);;
1269               capplet)
1270                 AC_SUBST(GNOME_CAPPLET_LIBS)
1271                 GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet`
1272                 AC_MSG_RESULT($GNOME_CAPPLET_LIBS);;
1273               *)
1274                 AC_MSG_RESULT(unknown library)
1275             esac
1276             EXTRA_INCLUDEDIR=`$GNOME_CONFIG --cflags $i`
1277             GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR $EXTRA_INCLUDEDIR"
1278           done
1279         fi
1280 ])
1281
1282 dnl
1283 dnl GNOME_INIT ([additional-inits])
1284 dnl
1285
1286 AC_DEFUN([GNOME_INIT],[
1287         GNOME_INIT_HOOK([],fail,$1)
1288 ])
1289
1290 dnl GNOME_X_CHECKS
1291 dnl
1292 dnl Basic X11 related checks for X11.  At the end, the following will be
1293 dnl defined/changed:
1294 dnl   GTK_{CFLAGS,LIBS}      From AM_PATH_GTK
1295 dnl   CPPFLAGS               Will include $X_CFLAGS
1296 dnl   GNOME_HAVE_SM          `true' or `false' depending on whether session
1297 dnl                          management is available.  It is available if
1298 dnl                          both -lSM and X11/SM/SMlib.h exist.  (Some
1299 dnl                          Solaris boxes have the library but not the header)
1300 dnl   XPM_LIBS               -lXpm if Xpm library is present, otherwise ""
1301 dnl
1302 dnl The following configure cache variables are defined (but not used):
1303 dnl   gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS}
1304 dnl
1305 AC_DEFUN([GNOME_X_CHECKS],
1306 [
1307         AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path))
1308         dnl Hope that GTK_CFLAGS have only -I and -D.  Otherwise, we could
1309         dnl   test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes"
1310         dnl
1311         dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses
1312         dnl CPPFLAGS, not CFLAGS
1313         CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
1314
1315         saved_ldflags="$LDFLAGS"
1316         LDFLAGS="$LDFLAGS $GTK_LIBS"
1317
1318         gnome_cv_passdown_x_libs="$GTK_LIBS"
1319         gnome_cv_passdown_X_LIBS="$GTK_LIBS"
1320         gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
1321         gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"
1322
1323         LDFLAGS="$saved_ldflags $GTK_LIBS"
1324
1325 dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow.
1326         USE_DEVGTK=true
1327
1328 dnl     AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x])
1329 dnl     AC_EGREP_CPP(answer_affirmatively,
1330 dnl     [#include <gtk/gtkfeatures.h>
1331 dnl     #ifdef GTK_HAVE_FEATURES_1_1_0
1332 dnl        answer_affirmatively
1333 dnl     #endif
1334 dnl     ], dev_gtk=yes, dev_gtk=no)
1335 dnl     if test "$dev_gtk" = "yes"; then
1336 dnl        USE_DEVGTK=true
1337 dnl     fi
1338 dnl     AC_MSG_RESULT("$dev_gtk")
1339
1340         GNOME_HAVE_SM=true
1341         case "$GTK_LIBS" in
1342          *-lSM*)
1343             dnl Already found it.
1344             ;;
1345          *)
1346             dnl Assume that if we have -lSM then we also have -lICE.
1347             AC_CHECK_LIB(SM, SmcSaveYourselfDone,
1348                 [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false,
1349                 $x_libs -lICE)
1350             ;;
1351         esac
1352
1353         if test "$GNOME_HAVE_SM" = true; then
1354            AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false)
1355         fi
1356
1357         if test "$GNOME_HAVE_SM" = true; then
1358            AC_DEFINE(HAVE_LIBSM)
1359         fi
1360
1361         XPM_LIBS=""
1362         AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs)
1363         AC_SUBST(XPM_LIBS)
1364
1365         AC_REQUIRE([GNOME_PTHREAD_CHECK])
1366         LDFLAGS="$saved_ldflags"
1367
1368         AC_PROVIDE([GNOME_X_CHECKS])
1369 ])
1370
1371 AC_DEFUN([GNOME_PTHREAD_CHECK],[
1372         PTHREAD_LIB=""
1373         AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
1374                 [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
1375                     [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
1376                         [AC_CHECK_LIB(pthread, __pthread_attr_init_system, PTHREAD_LIB="-lpthread",
1377                                 [AC_CHECK_FUNC(pthread_create)]
1378                         )]
1379                     )]
1380                 )]
1381         )
1382         AC_SUBST(PTHREAD_LIB)
1383         AC_PROVIDE([GNOME_PTHREAD_CHECK])
1384 ])
1385
1386 dnl
1387 dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag)
1388 dnl
1389 dnl if failflag is "failure" it aborts if gnorba is not found.
1390 dnl
1391
1392 AC_DEFUN([GNOME_GNORBA_HOOK],[
1393         GNOME_ORBIT_HOOK([],$2)
1394         AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[
1395                 gnome_cv_gnorba_found=no
1396                 if test x$gnome_cv_orbit_found = xyes; then
1397                         GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
1398                         GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
1399                         if test -n "$GNORBA_LIBS"; then
1400                                 gnome_cv_gnorba_found=yes
1401                         fi
1402                 fi
1403         ])
1404         AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes)
1405         if test x$gnome_cv_orbit_found = xyes; then
1406                 $1
1407                 GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
1408                 GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
1409                 AC_SUBST(GNORBA_CFLAGS)
1410                 AC_SUBST(GNORBA_LIBS)
1411         else
1412                 if test x$2 = xfailure; then
1413                         AC_MSG_ERROR(gnorba library not installed or installation problem)
1414                 fi
1415         fi
1416 ])
1417
1418 AC_DEFUN([GNOME_GNORBA_CHECK], [
1419         GNOME_GNORBA_HOOK([],failure)
1420 ])
1421
1422 dnl
1423 dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag)
1424 dnl
1425 dnl if failflag is "failure" it aborts if orbit is not found.
1426 dnl
1427
1428 AC_DEFUN([GNOME_ORBIT_HOOK],[
1429         AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no)
1430         AC_PATH_PROG(ORBIT_IDL,orbit-idl,no)
1431         AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[
1432                 if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
1433                         gnome_cv_orbit_found=no
1434                 else
1435                         gnome_cv_orbit_found=yes
1436                 fi
1437         ])
1438         AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes)
1439         if test x$gnome_cv_orbit_found = xyes; then
1440                 $1
1441                 ORBIT_CFLAGS=`orbit-config --cflags client server`
1442                 ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
1443                 AC_SUBST(ORBIT_CFLAGS)
1444                 AC_SUBST(ORBIT_LIBS)
1445         else
1446                 if test x$2 = xfailure; then
1447                         AC_MSG_ERROR(ORBit not installed or installation problem)
1448                 fi
1449         fi
1450 ])
1451
1452 AC_DEFUN([GNOME_ORBIT_CHECK], [
1453         GNOME_ORBIT_HOOK([],failure)
1454 ])
1455 dnl
1456 dnl =========================================================================
1457 dnl
1458
1459
1460 dnl
1461 dnl =========================================================================
1462 dnl
1463 dnl   New package checking stuff
1464 dnl
1465 dnl =========================================================================  
1466 dnl
1467 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
1468 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
1469 dnl also defines GSTUFF_PKG_ERRORS on error
1470 AC_DEFUN(PKG_CHECK_MODULES, [
1471   succeeded=no
1472
1473   if test -z "$PKG_CONFIG"; then
1474     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1475   fi
1476
1477   if test "$PKG_CONFIG" = "no" ; then
1478      echo "*** The pkg-config script could not be found. Make sure it is"
1479      echo "*** in your path, or set the PKG_CONFIG environment variable"
1480      echo "*** to the full path to pkg-config."
1481      echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
1482   else
1483      PKG_CONFIG_MIN_VERSION=0.9.0
1484      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
1485         AC_MSG_CHECKING(for $2)
1486
1487         if $PKG_CONFIG --exists "$2" ; then
1488             AC_MSG_RESULT(yes)
1489             succeeded=yes
1490
1491             AC_MSG_CHECKING($1_CFLAGS)
1492             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
1493             AC_MSG_RESULT($$1_CFLAGS)
1494
1495             AC_MSG_CHECKING($1_LIBS)
1496             $1_LIBS=`$PKG_CONFIG --libs "$2"`
1497             AC_MSG_RESULT($$1_LIBS)
1498         else
1499             $1_CFLAGS=""
1500             $1_LIBS=""
1501             ## If we have a custom action on failure, don't print errors, but 
1502             ## do set a variable so people can do so.
1503             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
1504             ifelse([$4], ,echo $$1_PKG_ERRORS,)
1505         fi
1506
1507         AC_SUBST($1_CFLAGS)
1508         AC_SUBST($1_LIBS)
1509      else
1510         echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
1511         echo "*** See http://www.freedesktop.org/software/pkgconfig"
1512      fi
1513   fi
1514
1515   if test $succeeded = yes; then
1516      ifelse([$3], , :, [$3])
1517   else
1518      ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
1519   fi
1520 ])