]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/bacula-macros/db.m4
Move batch insert detection into db.m4
[bacula/bacula] / bacula / autoconf / bacula-macros / db.m4
1 AC_DEFUN([BA_CHECK_DBI_DB],
2 [
3 AC_MSG_CHECKING(for DBI support)
4 AC_ARG_WITH(dbi,
5 AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD base install directory, default is to search through a number of common places for the DBI files.]),
6 [
7   if test "$withval" != "no"; then
8      if test "$withval" = "yes"; then
9         if test -f /usr/local/include/dbi/dbi.h; then
10            DBI_INCDIR=/usr/local/dbi/include
11            if test -d /usr/local/lib64; then
12               DBI_LIBDIR=/usr/local/lib64
13            else
14               DBI_LIBDIR=/usr/local/lib
15            fi
16            DBI_BINDIR=/usr/local/bin
17         elif test -f /usr/include/dbi/dbi.h; then
18            DBI_INCDIR=/usr/include
19            if test -d /usr/lib64; then
20               DBI_LIBDIR=/usr/lib64
21            else
22               DBI_LIBDIR=/usr/lib
23            fi
24            DBI_BINDIR=/usr/bin      
25         elif test -f $prefix/include/dbi/dbi.h; then
26            DBI_INCDIR=$prefix/include
27            if test -d $prefix/lib64; then
28               DBI_LIBDIR=$prefix/lib64
29            else
30               DBI_LIBDIR=$prefix/lib
31            fi
32            DBI_BINDIR=$prefix/bin      
33         else
34            AC_MSG_RESULT(no)
35            AC_MSG_ERROR(Unable to find dbi.h in standard locations)
36         fi
37         if test -d /usr/local/lib/dbd; then
38            DRIVERDIR=/usr/local/lib/dbd
39            if test -d /usr/local/lib64/dbd; then
40               DRIVERDIR=/usr/local/lib64/dbd
41            else
42               DRIVERDIR=/usr/local/lib/dbd
43            fi
44         elif test -d /usr/lib/dbd; then
45            DRIVERDIR=/usr/lib/dbd
46            if test -d /usr/lib64/dbd; then
47               DRIVERDIR=/usr/lib64/dbd
48            else
49               DRIVERDIR=/usr/lib/dbd
50            fi
51         elif test -d $prefix/lib/dbd; then
52            if test -d $prefix/lib64/dbd; then
53               DRIVERDIR=$prefix/lib64/dbd
54            else
55               DRIVERDIR=$prefix/lib/dbd
56            fi
57         elif test -d /usr/local/lib64/dbd; then
58            DRIVERDIR=/usr/local/lib64/dbd
59         elif test -d /usr/lib64/dbd; then
60            DRIVERDIR=/usr/lib64/dbd
61         elif test -d $prefix/lib64/dbd; then
62            DRIVERDIR=$prefix/lib64/dbd
63         else
64            AC_MSG_RESULT(no)
65            AC_MSG_ERROR(Unable to find DBD drivers in standard locations)
66         fi
67      else
68         if test -f $withval/dbi.h; then
69            DBI_INCDIR=$withval
70            DBI_LIBDIR=$withval
71            DBI_BINDIR=$withval
72         elif test -f $withval/include/dbi/dbi.h; then
73            DBI_INCDIR=$withval/include
74            if test -d $withval/lib64; then
75               DBI_LIBDIR=$withval/lib64
76            else
77               DBI_LIBDIR=$withval/lib
78            fi
79            DBI_BINDIR=$withval/bin
80         else
81            AC_MSG_RESULT(no)
82            AC_MSG_ERROR(Invalid DBI directory $withval - unable to find dbi.h under $withval)
83         fi
84         if test -d $withval/dbd; then
85            DRIVERDIR=$withval/dbd
86         elif test -d $withval/lib/; then
87            if test -d $withval/lib64/dbd; then
88               DRIVERDIR=$withval/lib64/dbd
89            else
90               DRIVERDIR=$withval/lib/dbd
91            fi
92         elif test -d $withval/lib64/dbd; then
93            DRIVERDIR=$withval/lib64/dbd
94         else
95            AC_MSG_RESULT(no)
96            AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
97         fi
98      fi
99      DBI_INCLUDE=-I$DBI_INCDIR
100      if test x$use_libtool != xno; then
101         DBI_LIBS="-R $DBI_LIBDIR -L$DBI_LIBDIR -ldbi"
102      else
103         DBI_LIBS="-L$DBI_LIBDIR -ldbi"
104      fi
105      DBI_LIB=$DBI_LIBDIR/libdbi.a
106      DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
107      DB_LIBS="${DB_LIBS} ${DBI_LIBS}"
108
109      AC_DEFINE(HAVE_DBI, 1, [Set if you have the DBI driver])
110      AC_MSG_RESULT(yes)
111
112      if test -z "${db_backends}"; then
113          db_backends="DBI"
114      else
115          db_backends="${db_backends} DBI"
116      fi
117      if test -z "${DB_BACKENDS}" ; then
118         DB_BACKENDS="dbi"
119      else
120         DB_BACKENDS="${DB_BACKENDS} dbi"
121      fi
122      uncomment_dbi=" "
123
124      dnl -------------------------------------------
125      dnl Push the DB_PROG onto the stack of supported database backends for DBI
126      dnl -------------------------------------------
127      DB_BACKENDS="${DB_BACKENDS} ${DB_PROG}"
128
129      dnl -------------------------------------------
130      dnl Check if dbi supports batch mode
131      dnl -------------------------------------------
132      if test "x$support_batch_insert" = "xyes"; then
133          if test $DB_PROG = postgresql; then
134              AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
135              AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
136              test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
137              pkg=$?
138              if test $pkg = 0; then
139                  AC_DEFINE(HAVE_DBI_BATCH_FILE_INSERT, 1, [Set if DBI DB batch insert code enabled])
140              fi
141          fi
142      fi
143   else
144      AC_MSG_RESULT(no)
145   fi
146 ],[
147   AC_MSG_RESULT(no)
148 ])
149
150 AC_SUBST(DBI_LIBS)
151 AC_SUBST(DBI_INCLUDE)
152 AC_SUBST(DBI_BINDIR)
153 AC_SUBST(DBI_DBD_DRIVERDIR)  
154
155 ])
156
157 AC_DEFUN([BA_CHECK_DBI_DRIVER],
158 [
159 db_prog=no
160 AC_MSG_CHECKING(for DBI drivers support)
161 AC_ARG_WITH(dbi-driver,
162 AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVER is the one DBI driver like Mysql, Postgresql, others. Default is to not configure any driver.]),
163 [
164   if test "$withval" != "no"; then
165      case $withval in
166         "mysql")
167            db_prog="mysql"
168            if test -f /usr/local/mysql/bin/mysql; then
169               SQL_BINDIR=/usr/local/mysql/bin
170               if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
171                  -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
172                  MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
173               else
174                  MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
175               fi
176            elif test -f /usr/bin/mysql; then
177               SQL_BINDIR=/usr/bin
178               if test -f /usr/lib64/mysql/libmysqlclient_r.a \
179                   -o -f /usr/lib64/mysql/libmysqlclient_r.so; then  
180                   MYSQL_LIBDIR=/usr/lib64/mysql
181               elif test -f /usr/lib/mysql/libmysqlclient_r.a \
182                   -o -f /usr/lib/mysql/libmysqlclient_r.so; then
183                   MYSQL_LIBDIR=/usr/lib/mysql
184               else
185                   MYSQL_LIBDIR=/usr/lib
186               fi
187            elif test -f /usr/local/bin/mysql; then
188               SQL_BINDIR=/usr/local/bin
189               if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
190                   -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then  
191                   MYSQL_LIBDIR=/usr/local/lib64/mysql
192               elif test -f /usr/local/lib/mysql/libmysqlclient_r.a \
193                   -o -f /usr/local/lib/mysql/libmysqlclient_r.so; then
194                   MYSQL_LIBDIR=/usr/local/lib/mysql
195               else
196                   MYSQL_LIBDIR=/usr/local/lib
197               fi
198            elif test -f $withval/bin/mysql; then
199               SQL_BINDIR=$withval/bin
200               if test -f $withval/lib64/mysql/libmysqlclient_r.a \
201                   -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
202                   MYSQL_LIBDIR=$withval/lib64/mysql
203               elif test -f $withval/lib64/libmysqlclient_r.a \
204                   -o -f $withval/lib64/libmysqlclient_r.so; then
205                   MYSQL_LIBDIR=$withval/lib64
206               elif test -f $withval/lib/libmysqlclient_r.a \
207                   -o -f $withval/lib/libmysqlclient_r.so; then
208                   MYSQL_LIBDIR=$withval/lib/
209               else
210                   MYSQL_LIBDIR=$withval/lib/mysql
211               fi
212            else
213               AC_MSG_RESULT(no)
214               AC_MSG_ERROR(Unable to find mysql in standard locations)
215            fi
216            if test -f $SQL_LIBDIR/libmysqlclient_r.so; then
217               DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.so
218            else
219               DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.a
220            fi
221         ;;
222         "postgresql")
223            db_prog="postgresql"
224            PG_CONFIG=`which pg_config 2>/dev/null`
225            if test -n "$PG_CONFIG"; then
226               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
227               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
228            elif test -f /usr/local/bin/psql; then
229               POSTGRESQL_BINDIR=/usr/local/bin
230               if test -d /usr/local/lib64; then
231                  POSTGRESQL_LIBDIR=/usr/local/lib64
232               else
233                  POSTGRESQL_LIBDIR=/usr/local/lib
234               fi
235            elif test -f /usr/bin/psql; then
236               POSTGRESQL_BINDIR=/usr/local/bin
237               if test -d /usr/lib64/postgresql; then
238                  POSTGRESQL_LIBDIR=/usr/lib64/postgresql
239               elif test -d /usr/lib/postgresql; then
240                  POSTGRESQL_LIBDIR=/usr/lib/postgresql
241               elif test -d /usr/lib64; then
242                  POSTGRESQL_LIBDIR=/usr/lib64
243               else
244                  POSTGRESQL_LIBDIR=/usr/lib
245               fi
246            elif test -f $withval/bin/psql; then
247               POSTGRESQL_BINDIR=$withval/bin
248               if test -d $withval/lib64; then
249                  POSTGRESQL_LIBDIR=$withval/lib64
250               else
251                  POSTGRESQL_LIBDIR=$withval/lib
252               fi
253            else
254               AC_MSG_RESULT(no)
255               AC_MSG_ERROR(Unable to find psql in standard locations)
256            fi
257            if test -f $POSTGRESQL_LIBDIR/libpq.so; then
258               DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.so
259            else
260               DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.a
261            fi
262         ;;
263         "sqlite3")
264            db_prog="sqlite3"
265            if test -f /usr/local/bin/sqlite3; then
266               SQLITE_BINDIR=/usr/local/bin
267               if test -d /usr/local/lib64; then
268                  SQLITE_LIBDIR=/usr/local/lib64
269               else
270                  SQLITE_LIBDIR=/usr/local/lib
271               fi
272            elif test -f /usr/bin/sqlite3; then
273               SQLITE_BINDIR=/usr/bin
274               if test -d /usr/lib64; then
275                  SQLITE_LIBDIR=/usr/lib64
276               else
277                  SQLITE_LIBDIR=/usr/lib
278               fi                 
279            elif test -f $withval/bin/sqlite3; then
280               SQLITE_BINDIR=$withval/bin
281               if test -d $withval/lib64; then
282                  SQLITE_LIBDIR=$withval/lib64
283               else
284                  SQLITE_LIBDIR=$withval/lib
285               fi                 
286            else
287               AC_MSG_RESULT(no)
288               AC_MSG_ERROR(Unable to find sqlite in standard locations)
289            fi
290            if test -f $SQLITE_LIBDIR/libsqlite3.so; then
291               DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.so
292            else
293               DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.a
294            fi
295         ;;                
296         *)
297            AC_MSG_RESULT(no)
298            AC_MSG_ERROR(Unable to set DBI driver. $withval is not supported)
299         ;;
300      esac
301
302      AC_MSG_RESULT(yes)
303      DB_PROG=$db_prog
304   else
305      AC_MSG_RESULT(no)
306   fi
307 ],[
308   AC_MSG_RESULT(no)
309 ])
310
311 AC_SUBST(MYSQL_BINDIR)
312 AC_SUBST(POSTGRESQL_BINDIR)
313 AC_SUBST(SQLITE_BINDIR)
314 AC_SUBST(DB_PROG)
315 AC_SUBST(DB_PROG_LIB)
316
317 ])
318
319
320 AC_DEFUN([BA_CHECK_MYSQL_DB],
321 [
322 AC_MSG_CHECKING(for MySQL support)
323 AC_ARG_WITH(mysql,
324 AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
325 [
326   if test "$withval" != "no"; then
327         if test "$withval" = "yes"; then
328            if test -f /usr/local/mysql/include/mysql/mysql.h; then
329                    MYSQL_INCDIR=/usr/local/mysql/include/mysql
330                    if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
331                         -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
332                            MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
333                    else
334                            MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
335                    fi
336                    MYSQL_BINDIR=/usr/local/mysql/bin
337            elif test -f /usr/include/mysql/mysql.h; then
338                    MYSQL_INCDIR=/usr/include/mysql
339                    if test -f /usr/lib64/mysql/libmysqlclient_r.a \
340                         -o -f /usr/lib64/mysql/libmysqlclient_r.so; then  
341                            MYSQL_LIBDIR=/usr/lib64/mysql
342                    elif test -f /usr/lib64/libmysqlclient_r.a \
343                         -o -f /usr/lib64/libmysqlclient_r.so; then
344                            MYSQL_LIBDIR=/usr/lib64
345                    elif test -f /usr/lib/mysql/libmysqlclient_r.a \
346                           -o -f /usr/lib/mysql/libmysqlclient_r.so; then
347                            MYSQL_LIBDIR=/usr/lib/mysql
348                    else
349                            MYSQL_LIBDIR=/usr/lib
350                    fi
351                    MYSQL_BINDIR=/usr/bin
352            elif test -f /usr/include/mysql.h; then
353                    MYSQL_INCDIR=/usr/include
354                    if test -f /usr/lib64/libmysqlclient_r.a \
355                         -o -f /usr/lib64/libmysqlclient_r.so; then
356                            MYSQL_LIBDIR=/usr/lib64
357                    else
358                            MYSQL_LIBDIR=/usr/lib
359                    fi
360                    MYSQL_BINDIR=/usr/bin
361            elif test -f /usr/local/include/mysql/mysql.h; then
362                    MYSQL_INCDIR=/usr/local/include/mysql
363                    if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
364                         -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
365                            MYSQL_LIBDIR=/usr/local/lib64/mysql
366                    else
367                            MYSQL_LIBDIR=/usr/local/lib/mysql
368                    fi
369                    MYSQL_BINDIR=/usr/local/bin
370            elif test -f /usr/local/include/mysql.h; then
371                    MYSQL_INCDIR=/usr/local/include
372                    if test -f /usr/local/lib64/libmysqlclient_r.a \
373                         -o -f /usr/local/lib64/libmysqlclient_r.so; then
374                            MYSQL_LIBDIR=/usr/local/lib64
375                    else
376                            MYSQL_LIBDIR=/usr/local/lib
377                    fi
378                    MYSQL_BINDIR=/usr/local/bin
379            else
380               AC_MSG_RESULT(no)
381               AC_MSG_ERROR(Unable to find mysql.h in standard locations)
382            fi
383         else
384            if test -f $withval/include/mysql/mysql.h; then
385               MYSQL_INCDIR=$withval/include/mysql
386               if test -f $withval/lib64/mysql/libmysqlclient_r.a \
387                    -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
388                  MYSQL_LIBDIR=$withval/lib64/mysql
389               elif test -f $withval/lib64/libmysqlclient_r.a \
390                    -o -f $withval/lib64/libmysqlclient_r.so; then
391                  MYSQL_LIBDIR=$withval/lib64
392               elif test -f $withval/lib/libmysqlclient_r.a \
393                    -o -f $withval/lib/libmysqlclient_r.so; then
394                  MYSQL_LIBDIR=$withval/lib
395               else
396                  MYSQL_LIBDIR=$withval/lib/mysql
397               fi
398               MYSQL_BINDIR=$withval/bin
399            elif test -f $withval/include/mysql.h; then
400               MYSQL_INCDIR=$withval/include
401               if test -f $withval/lib64/libmysqlclient_r.a \
402                    -o -f $withval/lib64/libmysqlclient_r.so; then
403                  MYSQL_LIBDIR=$withval/lib64
404               else
405                  MYSQL_LIBDIR=$withval/lib
406               fi
407               MYSQL_BINDIR=$withval/bin
408            else
409               AC_MSG_RESULT(no)
410               AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
411            fi
412         fi
413      MYSQL_INCLUDE=-I$MYSQL_INCDIR
414      if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
415           -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
416         if test x$use_libtool != xno; then
417            MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz"
418         else
419            MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
420         fi
421         AC_DEFINE(HAVE_THREAD_SAFE_MYSQL, 1, [Set if Thread Safe MySQL can be checked using mysql_thread_safe])
422         DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
423      fi
424      MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
425
426      AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
427      AC_MSG_RESULT(yes)
428
429      if test -z "${db_backends}" ; then
430          db_backends="MySQL"
431      else
432          db_backends="${db_backends} MySQL"
433      fi
434      if test -z "${DB_BACKENDS}" ; then
435          DB_BACKENDS="mysql"
436      else
437          DB_BACKENDS="${DB_BACKENDS} mysql"
438      fi
439
440      dnl -------------------------------------------
441      dnl Check if mysql supports batch mode
442      dnl -------------------------------------------
443      if test "x$support_batch_insert" = "xyes"; then
444          dnl For mysql checking
445          saved_LDFLAGS="${LDFLAGS}"
446          LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
447          saved_LIBS="${LIBS}"
448          LIBS="${saved_LIBS} -lz"
449
450          AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
451          if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
452              if test -z "${batch_insert_db_backends}"; then
453                  batch_insert_db_backends="MySQL"
454              else
455                  batch_insert_db_backends="${batch_insert_db_backends} MySQL"
456              fi
457          fi
458
459          dnl Revert after mysql checks
460          LDFLAGS="${saved_LDFLAGS}"
461          LIBS="${saved_LIBS}"
462      fi
463   else
464      AC_MSG_RESULT(no)
465   fi
466 ],[
467   AC_MSG_RESULT(no)
468 ])
469
470 AC_MSG_CHECKING(for MySQL embedded support)
471 AC_ARG_WITH(embedded-mysql,
472 AC_HELP_STRING([--with-embedded-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
473 [
474   if test "$withval" != "no"; then
475         if test "$withval" = "yes"; then
476                 if test -f /usr/local/mysql/include/mysql/mysql.h; then
477                         MYSQL_INCDIR=/usr/local/mysql/include/mysql
478                         if test -d /usr/local/mysql/lib64/mysql; then
479                                 MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
480                         else
481                                 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
482                         fi
483                         MYSQL_BINDIR=/usr/local/mysql/bin
484                 elif test -f /usr/include/mysql/mysql.h; then
485                         MYSQL_INCDIR=/usr/include/mysql
486                         if test -d /usr/lib64/mysql; then
487                                 MYSQL_LIBDIR=/usr/lib64/mysql
488                         else
489                                 MYSQL_LIBDIR=/usr/lib/mysql
490                         fi
491                         MYSQL_BINDIR=/usr/bin
492                 elif test -f /usr/include/mysql.h; then
493                         MYSQL_INCDIR=/usr/include
494                         if test -d /usr/lib64; then
495                                 MYSQL_LIBDIR=/usr/lib64
496                         else
497                                 MYSQL_LIBDIR=/usr/lib
498                         fi
499                         MYSQL_BINDIR=/usr/bin
500                 elif test -f /usr/local/include/mysql/mysql.h; then
501                         MYSQL_INCDIR=/usr/local/include/mysql
502                         if test -d /usr/local/lib64/mysql; then
503                                 MYSQL_LIBDIR=/usr/local/lib64/mysql
504                         else
505                                 MYSQL_LIBDIR=/usr/local/lib/mysql
506                         fi
507                         MYSQL_BINDIR=/usr/local/bin
508                 elif test -f /usr/local/include/mysql.h; then
509                         MYSQL_INCDIR=/usr/local/include
510                         if test -d /usr/local/lib64; then
511                                 MYSQL_LIBDIR=/usr/local/lib64
512                         else
513                                 MYSQL_LIBDIR=/usr/local/lib
514                         fi
515                         MYSQL_BINDIR=/usr/local/bin
516                 else
517                    AC_MSG_RESULT(no)
518                    AC_MSG_ERROR(Unable to find mysql.h in standard locations)
519                 fi
520         else
521                 if test -f $withval/include/mysql/mysql.h; then
522                         MYSQL_INCDIR=$withval/include/mysql
523                         if test -d $withval/lib64/mysql; then
524                                 MYSQL_LIBDIR=$withval/lib64/mysql
525                         else
526                                 MYSQL_LIBDIR=$withval/lib/mysql
527                         fi
528                         MYSQL_BINDIR=$withval/bin
529                 elif test -f $withval/include/mysql.h; then
530                         MYSQL_INCDIR=$withval/include
531                         if test -d $withval/lib64; then
532                                 MYSQL_LIBDIR=$withval/lib64
533                         else
534                                 MYSQL_LIBDIR=$withval/lib
535                         fi
536                         MYSQL_BINDIR=$withval/bin
537                 else
538                    AC_MSG_RESULT(no)
539                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
540                 fi
541         fi
542      MYSQL_INCLUDE=-I$MYSQL_INCDIR
543      if test x$use_libtool != xno; then
544         MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
545      else
546         MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
547      fi
548      MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
549      DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
550
551      AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
552      AC_DEFINE(HAVE_EMBEDDED_MYSQL, 1, [Set if you have an Embedded MySQL Database])
553      AC_MSG_RESULT(yes)
554
555      if test -z "${db_backends}"; then
556          db_backends="MySQL"
557      else
558          db_backends="${db_backends} MySQL"
559      fi
560      if test -z "${DB_BACKENDS}"; then
561          DB_BACKENDS="mysql"
562      else
563          DB_BACKENDS="${DB_BACKENDS} mysql"
564      fi
565
566      dnl -------------------------------------------
567      dnl Check if mysql supports batch mode
568      dnl -------------------------------------------
569      if test "x$support_batch_insert" = "xyes"; then
570          dnl For mysql checking
571          saved_LDFLAGS="${LDFLAGS}"
572          LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
573          saved_LIBS="${LIBS}"
574          LIBS="${saved_LIBS} -lz -lm -lcrypt"
575
576          AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
577          if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
578              if test -z "${batch_insert_db_backends}"; then
579                  batch_insert_db_backends="MySQL"
580              else
581                  batch_insert_db_backends="${batch_insert_db_backends} MySQL"
582              fi
583          fi
584
585          dnl Revert after mysql checks
586          LDFLAGS="${saved_LDFLAGS}"
587          LIBS="${saved_LIBS}"
588      fi
589   else
590      AC_MSG_RESULT(no)
591   fi
592 ],[
593   AC_MSG_RESULT(no)
594 ])
595
596 AC_SUBST(MYSQL_LIBS)
597 AC_SUBST(MYSQL_INCLUDE)
598 AC_SUBST(MYSQL_BINDIR)
599   
600 ])
601
602 AC_DEFUN([BA_CHECK_INGRES_DB],
603 [
604 AC_MSG_CHECKING(for Ingres support)
605 AC_ARG_WITH(ingres,
606 AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the Ingres base install directory, default is to search through a number of common places for the Ingres files.]),
607 [
608   if test "$withval" != "no"; then
609      if test "$withval" = "yes"; then
610         if test -f ${II_SYSTEM}/files/eqdefc.h; then
611            INGRES_INCDIR=${II_SYSTEM}/files
612            INGRES_LIBDIR=${II_SYSTEM}/lib
613            INGRES_BINDIR=${II_SYSTEM}/bin
614         elif test -f ${II_SYSTEM}/ingres/files/eqdefc.h; then
615            INGRES_INCDIR=${II_SYSTEM}/ingres/files
616            INGRES_LIBDIR=${II_SYSTEM}/ingres/lib
617            INGRES_BINDIR=${II_SYSTEM}/ingres/bin      
618         else
619            AC_MSG_RESULT(no)
620            AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
621         fi
622      else
623         if test -f $withval/files/eqdefc.h; then
624            INGRES_INCDIR=$withval/files
625            INGRES_LIBDIR=$withval/lib
626            INGRES_BINDIR=$withval/bin
627         else
628            AC_MSG_RESULT(no)
629            AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
630         fi
631      fi
632      INGRES_INCLUDE=-I$INGRES_INCDIR
633      if test x$use_libtool != xno; then
634         INGRES_LIBS="-R $INGRES_LIBDIR -L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
635      else
636         INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
637      fi
638      DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
639      AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
640      AC_MSG_RESULT(yes)
641
642      if test -z "${db_backends}"; then
643          db_backends="Ingres"
644      else
645          db_backends="${db_backends} Ingres"
646      fi
647      if test -z "${DB_BACKENDS}"; then
648          DB_BACKENDS="ingres"
649      else
650          DB_BACKENDS="${DB_BACKENDS} ingres"
651      fi
652   else
653      AC_MSG_RESULT(no)
654   fi
655 ],[
656   AC_MSG_RESULT(no)
657 ])
658
659 AC_SUBST(INGRES_LIBS)
660 AC_SUBST(INGRES_INCLUDE)
661 AC_SUBST(INGRES_BINDIR)
662 ])
663
664 AC_DEFUN([BA_CHECK_SQLITE3_DB],
665 [
666 AC_MSG_CHECKING(for SQLite3 support)
667 AC_ARG_WITH(sqlite3,
668 AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is the SQLite3 base install directory, default is to search through a number of common places for the SQLite3 files.]),
669 [
670   if test "$withval" != "no"; then
671      if test "$withval" = "yes"; then
672         if test -f /usr/local/include/sqlite3.h; then
673            SQLITE_INCDIR=/usr/local/include
674            if test -d /usr/local/lib64; then
675               SQLITE_LIBDIR=/usr/local/lib64
676            else
677               SQLITE_LIBDIR=/usr/local/lib
678            fi
679            SQLITE_BINDIR=/usr/local/bin
680         elif test -f /usr/include/sqlite3.h; then
681            SQLITE_INCDIR=/usr/include
682            if test -d /usr/lib64; then
683               SQLITE_LIBDIR=/usr/lib64
684            else
685               SQLITE_LIBDIR=/usr/lib
686            fi
687            SQLITE_BINDIR=/usr/bin      
688         elif test -f $prefix/include/sqlite3.h; then
689            SQLITE_INCDIR=$prefix/include
690            if test -d $prefix/lib64; then
691               SQLITE_LIBDIR=$prefix/lib64
692            else
693               SQLITE_LIBDIR=$prefix/lib
694            fi
695            SQLITE_BINDIR=$prefix/bin      
696         else
697            AC_MSG_RESULT(no)
698            AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
699         fi
700      else
701         if test -f $withval/sqlite3.h; then
702            SQLITE_INCDIR=$withval
703            SQLITE_LIBDIR=$withval
704            SQLITE_BINDIR=$withval
705         elif test -f $withval/include/sqlite3.h; then
706            SQLITE_INCDIR=$withval/include
707            if test -d $withval/lib64; then
708               SQLITE_LIBDIR=$withval/lib64
709            else
710               SQLITE_LIBDIR=$withval/lib
711            fi
712            SQLITE_BINDIR=$withval/bin
713         else
714            AC_MSG_RESULT(no)
715            AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
716         fi
717      fi
718      SQLITE_INCLUDE=-I$SQLITE_INCDIR
719      if test x$use_libtool != xno; then
720         SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
721      else
722         SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
723      fi
724      SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
725      DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
726
727      AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
728      AC_MSG_RESULT(yes)
729
730      if test -z "${db_backends}"; then
731          db_backends="SQLite3"
732      else
733          db_backends="${db_backends} SQLite3"
734      fi
735      if test -z "${DB_BACKENDS}"; then
736          DB_BACKENDS="sqlite3"
737      else
738          DB_BACKENDS="${DB_BACKENDS} sqlite3"
739      fi
740
741      dnl -------------------------------------------
742      dnl Check if sqlite supports batch mode
743      dnl -------------------------------------------
744      if test "x$support_batch_insert" = "xyes"; then
745          dnl For sqlite checking
746          saved_LDFLAGS="${LDFLAGS}"
747          LDFLAGS="${saved_LDFLAGS} -L$SQLITE_LIBDIR"
748
749          AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
750          if test "x$ac_cv_lib_sqlite3_sqlite3_threadsafe" = "xyes"; then
751              if test -z "${batch_insert_db_backends}"; then
752                  batch_insert_db_backends="SQLite3"
753              else
754                  batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
755              fi
756          fi
757
758          dnl Revert after sqlite checks
759          LDFLAGS="${saved_LDFLAGS}"
760      fi
761   else
762      AC_MSG_RESULT(no)
763   fi
764 ],[
765   AC_MSG_RESULT(no)
766 ])
767 AC_SUBST(SQLITE_LIBS)
768 AC_SUBST(SQLITE_INCLUDE)
769 AC_SUBST(SQLITE_BINDIR)
770   
771 ])
772
773
774 AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
775 [
776 AC_MSG_CHECKING(for PostgreSQL support)
777 AC_ARG_WITH(postgresql,
778 AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR is the PostgreSQL base install directory, @<:@default=/usr/local/pgsql@:>@]),
779 [
780   if test "$withval" != "no"; then
781       if test "$withval" = "yes"; then
782           PG_CONFIG=`which pg_config 2>/dev/null`
783           if test -n "$PG_CONFIG"; then
784               POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir`
785               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
786               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
787           elif test -f /usr/local/include/libpq-fe.h; then
788               POSTGRESQL_INCDIR=/usr/local/include
789               if test -d /usr/local/lib64; then
790                  POSTGRESQL_LIBDIR=/usr/local/lib64
791               else
792                  POSTGRESQL_LIBDIR=/usr/local/lib
793               fi
794               POSTGRESQL_BINDIR=/usr/local/bin
795           elif test -f /usr/include/libpq-fe.h; then
796               POSTGRESQL_INCDIR=/usr/include
797               if test -d /usr/lib64; then
798                  POSTGRESQL_LIBDIR=/usr/lib64
799               else
800                  POSTGRESQL_LIBDIR=/usr/lib
801               fi
802               POSTGRESQL_BINDIR=/usr/bin
803           elif test -f /usr/include/pgsql/libpq-fe.h; then
804               POSTGRESQL_INCDIR=/usr/include/pgsql
805               if test -d /usr/lib64/pgsql; then
806                  POSTGRESQL_LIBDIR=/usr/lib64/pgsql
807               else
808                  POSTGRESQL_LIBDIR=/usr/lib/pgsql
809               fi
810               POSTGRESQL_BINDIR=/usr/bin
811           elif test -f /usr/include/postgresql/libpq-fe.h; then
812               POSTGRESQL_INCDIR=/usr/include/postgresql
813               if test -d /usr/lib64/postgresql; then
814                  POSTGRESQL_LIBDIR=/usr/lib64/postgresql
815               else
816                  POSTGRESQL_LIBDIR=/usr/lib/postgresql
817               fi
818               POSTGRESQL_BINDIR=/usr/bin
819           else
820               AC_MSG_RESULT(no)
821               AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
822           fi
823       elif test -f $withval/include/libpq-fe.h; then
824           POSTGRESQL_INCDIR=$withval/include
825           POSTGRESQL_LIBDIR=$withval/lib
826           POSTGRESQL_BINDIR=$withval/bin
827       elif test -f $withval/include/postgresql/libpq-fe.h; then
828           POSTGRESQL_INCDIR=$withval/include/postgresql
829           if test -d $withval/lib64; then
830               POSTGRESQL_LIBDIR=$withval/lib64
831           else
832               POSTGRESQL_LIBDIR=$withval/lib
833           fi
834           POSTGRESQL_BINDIR=$withval/bin
835       else
836           AC_MSG_RESULT(no)
837           AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
838       fi
839      AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
840      AC_MSG_RESULT(yes)
841
842      POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
843      if test x$use_libtool != xno; then
844         POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
845      else
846         POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
847      fi
848      AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LIBS="$POSTGRESQL_LIBS -lcrypt"]))
849      POSTGRESQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
850      DB_LIBS="${DB_LIBS} ${POSTGRESQL_LIBS}"
851
852      if test -z "${db_backends}"; then
853          db_backends="PostgreSQL"
854      else
855          db_backends="${db_backends} PostgreSQL"
856      fi
857      if test -z "${DB_BACKENDS}"; then
858          DB_BACKENDS="postgresql"
859      else
860          DB_BACKENDS="${DB_BACKENDS} postgresql"
861      fi
862
863      dnl -------------------------------------------
864      dnl Check if postgresql supports batch mode
865      dnl -------------------------------------------
866      if test "x$support_batch_insert" = "xyes"; then
867          dnl For postgresql checking
868          saved_LDFLAGS="${LDFLAGS}"
869          LDFLAGS="${saved_LDFLAGS} -L$POSTGRESQL_LIBDIR"
870          saved_LIBS="${LIBS}"
871          if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
872             LIBS="${saved_LIBS} -lcrypt"
873          fi
874
875          AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
876          AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
877          if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then
878              if test $support_batch_insert = yes ; then
879                  AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled])
880                  if test -z "${batch_insert_db_backends}"; then
881                      batch_insert_db_backends="PostgreSQL"
882                  else
883                      batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
884                  fi
885              fi
886          fi
887
888          if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes
889          then
890              echo "WARNING: Your PostgreSQL client library is too old to detect "
891              echo "if it was compiled with --enable-thread-safety, consider to "
892              echo "upgrade it in order to avoid problems with Batch insert mode"
893          fi
894
895          dnl Revert after postgresql checks
896          LDFLAGS="${saved_LDFLAGS}"
897          LIBS="${saved_LIBS}"
898      fi
899   else
900      AC_MSG_RESULT(no)
901   fi
902 ],[
903   AC_MSG_RESULT(no)
904 ])
905 AC_SUBST(POSTGRESQL_LIBS)
906 AC_SUBST(POSTGRESQL_INCLUDE)
907 AC_SUBST(POSTGRESQL_BINDIR)
908
909 ])
910
911 AC_DEFUN([AM_CONDITIONAL],
912 [AC_SUBST($1_TRUE)
913 AC_SUBST($1_FALSE)
914 if $2; then
915   $1_TRUE=
916   $1_FALSE='#'
917 else
918   $1_TRUE='#'
919   $1_FALSE=
920 fi])