etc/services - sync with NetBSD-8
[minix.git] / external / bsd / bind / dist / contrib / dlz / config.dlz.in
blob31969245ece48b665a9fa449f6805b57d52d5fbe
1 # Copyright (C) 2005  Internet Systems Consortium, Inc. ("ISC")
3 # Permission to use, copy, modify, and distribute this software for any
4 # purpose with or without fee is hereby granted, provided that the above
5 # copyright notice and this permission notice appear in all copies.
7 # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8 # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9 # AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
10 # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11 # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
12 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13 # PERFORMANCE OF THIS SOFTWARE.
16 # Shorthand.  Note quoting: DLZ_DRIVER_DIR expanded in Makefile, not here.
18 dlzdir='${DLZ_DRIVER_DIR}'
21 # Private autoconf macro to simplify configuring drivers:
23 #   DLZ_ADD_DRIVER(DEFINE, DRIVER, INCLUDES, LIBS)
25 # where:
26 #   DEFINE is FOO (to define -DDLZ_FOO)
27 #   DRIVER is dlz_foo_driver (sources without the .c)
28 #   INCLUDES is any necessary include definitions
29 #   LIBS is any necessary library definitions
31 AC_DEFUN(DLZ_ADD_DRIVER, [
32         CONTRIB_DLZ="$CONTRIB_DLZ -DDLZ_$1"
33         for i in $2
34         do
35                 DLZ_DRIVER_SRCS="$DLZ_DRIVER_SRCS $dlzdir/$i.c"
36                 DLZ_DRIVER_OBJS="$DLZ_DRIVER_OBJS $i.$O"
37         done
38         if test -n "$3"
39         then
40                 DLZ_DRIVER_INCLUDES="$DLZ_DRIVER_INCLUDES $3"
41         fi
42         if test -n "$4"
43         then
44                 DLZ_DRIVER_LIBS="$DLZ_DRIVER_LIBS $4"
45         fi
49 # Check for the various DLZ drivers
53 # Was --with-dlz-postgres specified?
56 AC_MSG_CHECKING(for Postgres DLZ driver)
57 AC_ARG_WITH(dlz_postgres,
58 [  --with-dlz-postgres[=PATH]   Build with Postgres DLZ driver [yes|no|path].
59                                (Required to use Postgres with DLZ)],
60     use_dlz_postgres="$withval", use_dlz_postgres="no")
62 if test "$use_dlz_postgres" != "no"
63 then
64         if test "$use_dlz_postgres" != "yes"
65         then
66                 AC_PATH_PROGS(PG_CONFIG, pg_config, [not found], $use_dlz_postgres/bin)
67         else
68                 AC_PATH_PROGS(PG_CONFIG, pg_config, [not found])
69         fi
71         if test "$PG_CONFIG" != "not found"
72         then
73                 use_dlz_postgres=`$PG_CONFIG --includedir`
74                 use_dlz_postgres_lib=`$PG_CONFIG --libdir`
75         else
76                 pgprefix="$use_dlz_postgres"
77                 use_dlz_postgres="$pgprefix/include"
78                 use_dlz_postgres_lib="$pgprefix/lib"
79         fi
82 if test "$use_dlz_postgres" = "yes/include"
83 then
84         # User did not specify path and Postgres didn't say - guess it
85         pgdirs="/usr /usr/local /usr/local/pgsql /usr/pkg"
86         for d in $pgdirs
87         do
88                 if test -f $d/include/libpq-fe.h
89                 then
90                         use_dlz_postgres=$d/include
91                         use_dlz_postgres_lib=$d/lib
92                         break
93                 fi
94         done
97 if test "$use_dlz_postgres" = "yes/include"
98 then
99         # Still no joy, give up
101         AC_MSG_RESULT(not found)
102         AC_MSG_ERROR(
103 [No pg_config and PostgreSQL was not found in any of $pgdirs; use --with-dlz-postgres=/path or put pg_config in your path])
106 case "$use_dlz_postgres" in
107         no)
108                 AC_MSG_RESULT(no)
109                 ;;
110         *)
111                 DLZ_ADD_DRIVER(POSTGRES, dlz_postgres_driver,
112                                 [-I$use_dlz_postgres],
113                                 [-L$use_dlz_postgres_lib -lpq])
115                 AC_MSG_RESULT(
116 [using PostgreSQL from $use_dlz_postgres_lib and $use_dlz_postgres])
117                 ;;
118 esac
122 # Was --with-dlz-mysql specified?
125 AC_MSG_CHECKING(for MySQL DLZ driver)
126 AC_ARG_WITH(dlz_mysql,
127 [  --with-dlz-mysql[=PATH]   Build with MySQL DLZ driver [yes|no|path].
128                                (Required to use MySQL with DLZ)],
129     use_dlz_mysql="$withval", use_dlz_mysql="no")
131 mysql_include=""
132 mysql_lib=""
133 if test "$use_dlz_mysql" = "yes"
134 then
135         # User did not specify a path - guess it
136         mysqldirs="/usr /usr/local /usr/local/mysql /usr/pkg"
137         for d in $mysqldirs
138         do
139                 if test -f $d/include/mysql/mysql.h
140                 then
141                         use_dlz_mysql=$d
142                         mysql_include=$d/include/mysql
143                         if test -d $d/lib/mysql
144                         then
145                                 mysql_lib=$d/lib/mysql
146                         else
147                                 mysql_lib=$d/lib
148                         fi
149                         break
150                 elif test -f $d/include/mysql.h
151                 then
152                         use_dlz_mysql=$d
153                         mysql_include=$d/include
154                         if test -d $d/lib/mysql
155                         then
156                                 mysql_lib=$d/lib/mysql
157                         else
158                                 mysql_lib=$d/lib
159                         fi
160                         break
161                 fi
162         done
163 elif test "$use_dlz_mysql" != "no"
164 then
165         d=$use_dlz_mysql
166         if test -f $d/include/mysql/mysql.h
167         then
168                 mysql_include=$d/include/mysql
169                 if test -d $d/lib/mysql
170                 then
171                         mysql_lib=$d/lib/mysql
172                 else
173                         mysql_lib=$d/lib
174                 fi
175         elif test -f $d/include/mysql.h
176         then
177                 mysql_include=$d/include
178                 if test -d $d/lib/mysql
179                 then
180                         mysql_lib=$d/lib/mysql
181                 else
182                         mysql_lib=$d/lib
183                 fi
184         fi
187 if test "$use_dlz_mysql" = "yes"
188 then
189         AC_MSG_RESULT(not found)
190         AC_MSG_ERROR(
191 [MySQL was not found in any of $mysqldirs; use --with-dlz-mysql=/path])
194 case "$use_dlz_mysql" in
195         no)
196                 AC_MSG_RESULT(no)
197                 ;;
198         *)
199                 DLZ_ADD_DRIVER(MYSQL, dlz_mysql_driver,
200                                 [-I${mysql_include}],
201                                 [-L${mysql_lib} -lmysqlclient -lz -lcrypt -lm])
203                 AC_MSG_RESULT(
204 [using mysql from ${mysql_lib} and ${mysql_include}])
205                 ;;
206 esac
210 # Was --with-dlz-bdb specified?
213 AC_MSG_CHECKING(for Berkeley DB DLZ driver...)
214 AC_ARG_WITH(dlz_bdb,
215 [  --with-dlz-bdb[=PATH]   Build with Berkeley DB DLZ driver [yes|no|path].
216                                (Required to use Berkeley DB with DLZ)],
217     use_dlz_bdb="$withval", use_dlz_bdb="no")
219 case "$use_dlz_bdb" in
220         no)
221                 AC_MSG_RESULT(no)
222                 ;;
223         *)
224                 if test "$use_dlz_bdb" = "yes"
225                 then
226                         # User did not specify a path - guess directories
227                         bdbdirs="/usr/local /usr/pkg /usr"
228                 elif test -d "$use_dlz_bdb"
229                 then
230                         # User specified directory and it exists
231                         bdbdirs="$use_dlz_bdb"
232                 else
233                         AC_MSG_RESULT(not found)
234                         AC_MSG_ERROR([path $use_dlz_bdb does not exist])
235                         bdbdirs=""
236                 fi
238                 # Use path we were given or guessed.  This is insanely
239                 # complicated because we have to search for a bunch of
240                 # platform-specific variations and have to check
241                 # separately for include and library directories.
243                 # Set both to yes, so we can check them later
244                 dlz_bdb_inc="yes"
245                 dlz_bdb_libs="yes"
247                 AC_MSG_RESULT( )
248                 for dd in $bdbdirs
249                 do
250                         # Skip nonexistant directories
251                         if test ! -d "$dd"
252                         then
253                                 continue
254                         fi
256                         # Check other locations for includes.
257                         # Order is important (sigh).
259                         bdb_incdirs="/db53 /db51 /db48 /db47 /db46 /db45 /db44 /db43 /db42 /db41 /db4 /db"
260                         # include a blank element first
261                         for d in "" $bdb_incdirs
262                         do
263                                 if test -f "$dd/include${d}/db.h"
264                                 then
265                                         dlz_bdb_inc="-I$dd/include${d}"
266                                         break
267                                 fi
268                         done
270                         # Give up on this directory if we couldn't
271                         # find the include subdir
273                         if test "$dlz_bdb_inc" = "yes"
274                         then
275                                 continue
276                         fi
278                         # Look for libname other than libdb.so.
279                         # Order is important (sigh).
281                         bdb_libnames="db53 db-5.3 db51 db-5.1 db48 db-4.8 db47 db-4.7 db46 db-4.6 db45 db-4.5 db44 db-4.4 db43 db-4.3 db42 db-4.2 db41 db-4.1 db"
282                         for d in $bdb_libnames
283                         do
284                                 if test "$dd" = "/usr"
285                                 then
286                                         AC_CHECK_LIB($d, db_create, dlz_bdb_libs="-l${d}")
287                                         if test $dlz_bdb_libs != "yes"
288                                         then
289                                                 break
290                                         fi
291                                 elif test -f "$dd/lib/lib${d}.so"
292                                 then
293                                         dlz_bdb_libs="-L${dd}/lib -l${d}"
294                                         break
295                                 fi
296                         done
298                         # If we found both incdir and lib, we're done
299                         if test "$dlz_bdb_libs" != "yes"
300                         then
301                                 break
302                         fi
304                         # Otherwise, we're starting over
306                         dlz_bdb_inc="yes"
307                         dlz_bdb_libs="yes"
308                 done
309                 
310                 # Done searching, now make sure we got everything.
312                 if test "$dlz_bdb_inc" = "yes"
313                 then
314                         AC_MSG_ERROR([could not find Berkeley DB include directory])
315                 fi
317                 if test "$dlz_bdb_libs" = "yes"
318                 then
319                         AC_MSG_RESULT(not found)
320                         AC_MSG_ERROR([could not find Berkeley DB library])
321                 fi
323                 DLZ_ADD_DRIVER(BDB, dlz_bdb_driver dlz_bdbhpt_driver,
324                                [$dlz_bdb_inc], [$dlz_bdb_libs])
326                 AC_MSG_RESULT([using Berkeley DB: $dlz_bdb_inc $dlz_bdb_libs])
328                 AC_CONFIG_FILES([contrib/dlz/bin/dlzbdb/Makefile])
329                 ;;
330 esac
334 # Was --with-dlz-filesystem specified?
337 AC_MSG_CHECKING(for file system DLZ driver)
338 AC_ARG_WITH(dlz_filesystem,
339 [  --with-dlz-filesystem[=PATH]   Build with filesystem DLZ driver [yes|no].
340                                (Required to use file system driver with DLZ)],
341     use_dlz_filesystem="$withval", use_dlz_filesystem="no")
343 case "$use_dlz_filesystem" in
344         no)
345                 AC_MSG_RESULT(no)
346                 ;;
347         *)
348                 DLZ_ADD_DRIVER(FILESYSTEM, dlz_filesystem_driver)
349                 DLZ_SYSTEM_TEST=filesystem
350                 AC_MSG_RESULT(yes)
351                 ;;
352 esac
356 # Was --with-dlz-ldap specified?
359 AC_MSG_CHECKING(for LDAP DLZ driver)
360 AC_ARG_WITH(dlz_ldap,
361 [  --with-dlz-ldap[=PATH]   Build with LDAP DLZ driver [yes|no|path].
362                                (Required to use LDAP with DLZ)],
363     use_dlz_ldap="$withval", use_dlz_ldap="no")
365 if test "$use_dlz_ldap" = "yes"
366 then
367         # User did not specify a path - guess it
368         ldapdirs="/usr /usr/local /usr/pkg"
369         for d in $ldapdirs
370         do
371                 if test -f $d/include/ldap.h
372                 then
373                         use_dlz_ldap=$d
374                         break
375                 fi
376         done
379 if test "$use_dlz_ldap" = "yes"
380 then
381         AC_MSG_RESULT(not found)
382         AC_MSG_ERROR(
383 [LDAP headers were not found in any of $ldapdirs; use --with-dlz-ldap=/path])
386 case "$use_dlz_ldap" in
387         no)
388                 AC_MSG_RESULT(no)
389                 ;;
390         *)
391                 DLZ_ADD_DRIVER(LDAP, dlz_ldap_driver,
392                                 [-I$use_dlz_ldap/include],
393                                 [-L$use_dlz_ldap/lib -lldap -llber])
395                 AC_MSG_RESULT(
396 [using LDAP from $use_dlz_ldap/lib and $use_dlz_ldap/include])
397                 ;;
398 esac
402 # Was --with-dlz-odbc specified?
405 AC_MSG_CHECKING(for ODBC DLZ driver)
406 AC_ARG_WITH(dlz_odbc,
407 [  --with-dlz-odbc[=PATH]   Build with ODBC DLZ driver [yes|no|path].
408                                (Required to use ODBC with DLZ)],
409     use_dlz_odbc="$withval", use_dlz_odbc="no")
411 if test "$use_dlz_odbc" = "yes"
412 then
413         # User did not specify a path - guess it
414         libodbc_found=no
415         sql_h_found=no
416         AC_CHECK_HEADER(sql.h, sql_h_found=yes)
417         AC_CHECK_LIB(odbc, SQLConnect, libodbc_found=yes)
419         if test $libodbc_found = "yes" -o $sql_h_found = "yes"
420         then
421                 use_dlz_odbc=system
422                 dlz_odbc_include=""
423                 dlz_odbc_libs="-lodbc"
424         else
425                 odbcdirs="/usr /usr/local /usr/pkg"
426                 for d in $odbcdirs
427                 do
428                         if test -f $d/include/sql.h -a -f $d/lib/libodbc.a
429                         then
430                                 use_dlz_odbc=$d
431                                 dlz_odbc_include="-I$use_dlz_odbc/include"
432                                 dlz_odbc_libs="-L$use_dlz_odbc/lib -lodbc"
433                                 break
434                         fi
435                 done
436         fi
439 case "$use_dlz_odbc" in
440         no)
441                 AC_MSG_RESULT(no)
442                 ;;
443         yes)
444                 AC_MSG_RESULT(not found)
445                 AC_MSG_ERROR(
446 [ODBC headers were not found in any of $odbcdirs; use --with-dlz-odbc=/path])
447                 ;;
448         *)
449                 DLZ_ADD_DRIVER(ODBC, dlz_odbc_driver,
450                                 [$dlz_odbc_include],
451                                 [$dlz_odbc_libs])
453                 AC_MSG_RESULT([using ODBC from $use_dlz_odbc])
454                 ;;
455 esac
459 # Was --with-dlz-stub specified?
462 AC_MSG_CHECKING(for stub DLZ driver)
463 AC_ARG_WITH(dlz_stub,
464 [  --with-dlz-stub[=PATH]   Build with stub DLZ driver [yes|no].
465                                (Required to use stub driver with DLZ)],
466     use_dlz_stub="$withval", use_dlz_stub="no")
468 case "$use_dlz_stub" in
469         no)
470                 AC_MSG_RESULT(no)
471                 ;;
472         *)
474                 DLZ_ADD_DRIVER(STUB, dlz_stub_driver)
476                 AC_MSG_RESULT(yes)
477                 ;;
478 esac
480 # Add any additional DLZ drivers here.
483 # Finally, some generic stuff that applies to all drivers, assuming
484 # we're compiling contrib DLZ drivers at all.
486 if test -n "$CONTRIB_DLZ"
487 then
488         CONTRIB_DLZ="-DCONTRIB_DLZ $CONTRIB_DLZ"
490         #
491         # Where to find DLZ driver header files.
492         #
493         DLZ_DRIVER_INCLUDES="-I$dlzdir/include $DLZ_DRIVER_INCLUDES"
495         #
496         # Initialization and shutdown wrappers, helper functions.
497         #
498         DLZ_DRIVER_SRCS="$dlzdir/dlz_drivers.c $dlzdir/sdlz_helper.c $DLZ_DRIVER_SRCS"
499         DLZ_DRIVER_OBJS="dlz_drivers.$O sdlz_helper.$O $DLZ_DRIVER_OBJS"