#!/bin/sh try_dbm() { dbmdef="$1" link_possible="$2" bak_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D$dbmdef" if conftest_compile; then CPPFLAGS="$bak_CPPFLAGS" for flag in "" $link_possible; do flag="`echo $flag|sed 's/./-l&/'`" echo "trying to link with flags [$flag]" >&5 bak_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $flag" if conftest_link; then # we found it! LDFLAGS="$bak_LDFLAGS" DBM_LDFLAGS="$flag" env_vars="$env_vars DBM_LDFLAGS" echo "#define $dbmdef" >> config.h echo "#define HAVE_NDBM" >> config.h return 0 else LDFLAGS="$bak_LDFLAGS" fi done return 1 else CPPFLAGS="$bak_CPPFLAGS" return 1 fi } find_ndbm() { try_dbm DBM_H_GDBM "gdbm gdbm_compat" && return 0 try_dbm DBM_H_DEB "gdbm gdbm_compat" && return 0 try_dbm DBM_H_UNIX "db db1 gdbm gdbm_compat ndbm" && return 0 try_dbm DBM_H_DB_H "db db1 ndbm gdbm gdbm_compat" && return 0 try_dbm DBM_H_DB "db db1 gdbm gdbm_compat ndbm" && return 0 try_dbm DBM_H_DB1 "db1 db" && return 0 return 1 } cat > conftest.c << EOF #include #include "find_dbm.h" int main() { DBM *db = dbm_open(".", O_RDONLY, 0); /* will fail at run-time */ datum my_datum; my_datum.dptr = 0; my_datum.dsize = (my_datum.dptr == 0 && db == 0); return 0; } EOF echo1 "Checking for ndbm.h..." if find_ndbm; then echo2 "yes" else echo2 "no" fi