Here is a patch I've been toying with. Essentially, it does these
things:

- cleans up PostgreSQL detection a bit more

- uses APRUTIL_PRIV_INCLUDES for all CPPFLAGS driver stuff (i.e. we
don't need to expose that to users of APU)

- is careful not to place LDFLAGS of drivers into APRUTIL_LDFLAGS (i.e.
again, these are used for driver link, nothing else)

Let me know if you think this is better than before...

-- 
Bojan
Index: build/dbd.m4
===================================================================
--- build/dbd.m4	(revision 658076)
+++ build/dbd.m4	(working copy)
@@ -44,6 +44,9 @@
       if test "$apu_have_pgsql" = "0"; then
         AC_CHECK_HEADERS(postgresql/libpq-fe.h, AC_CHECK_LIB(pq, PQsendQueryPrepared, [apu_have_pgsql=1]))
       fi
+      if test "$apu_have_pgsql" != "0" && test "x$PGSQL_CONFIG" != 'x'; then
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$pgsql_CPPFLAGS])
+      fi
     elif test "$withval" = "no"; then
       :
     else
@@ -61,17 +64,12 @@
 
       AC_MSG_NOTICE(checking for pgsql in $withval)
       AC_CHECK_HEADERS(libpq-fe.h, AC_CHECK_LIB(pq, PQsendQueryPrepared, [apu_have_pgsql=1]))
-      if test "$apu_have_pgsql" != "0"; then
-        APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include])
-      fi
       if test "$apu_have_pgsql" != "1"; then
         AC_CHECK_HEADERS(postgresql/libpq-fe.h, AC_CHECK_LIB(pq, PQsendQueryPrepared, [apu_have_pgsql=1]))
-        if test "$apu_have_pgsql" != "0"; then
-          APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include/postgresql])
-          APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        fi
       fi
+      if test "$apu_have_pgsql" != "0"; then
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$pgsql_CPPFLAGS])
+      fi
     fi
   ], [
     AC_PATH_PROG([PGSQL_CONFIG],[pg_config])
@@ -87,12 +85,15 @@
     if test "$apu_have_pgsql" = "0"; then
       AC_CHECK_HEADERS(postgresql/libpq-fe.h, AC_CHECK_LIB(pq, PQsendQueryPrepared, [apu_have_pgsql=1]))
     fi
+    if test "$apu_have_pgsql" != "0" && test "x$PGSQL_CONFIG" != 'x'; then
+      APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$pgsql_CPPFLAGS])
+    fi
   ])
   AC_SUBST(apu_have_pgsql)
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_pgsql" = "1"; then
-    LDADD_dbd_pgsql=-lpq
+    LDADD_dbd_pgsql="$pgsql_LDFLAGS -lpq"
   fi
   AC_SUBST(LDADD_dbd_pgsql)
 
@@ -123,11 +124,10 @@
       AC_CHECK_HEADERS(mysql.h, AC_CHECK_LIB(mysqlclient_r, mysql_init, [apu_have_mysql=1]))
       if test "$apu_have_mysql" = "0"; then
         AC_CHECK_HEADERS(mysql/mysql.h, AC_CHECK_LIB(mysqlclient_r, mysql_init, [apu_have_mysql=1]))
-      else
-        if test "x$MYSQL_CONFIG" != 'x'; then
-          APR_ADDTO(APRUTIL_INCLUDES, [$mysql_CPPFLAGS])
-        fi
       fi
+      if test "$apu_have_mysql" != "0" && test "x$MYSQL_CONFIG" != 'x'; then
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
+      fi
     elif test "$withval" = "no"; then
       :
     else
@@ -145,16 +145,13 @@
 
       AC_MSG_NOTICE(checking for mysql in $withval)
       AC_CHECK_HEADERS(mysql.h, AC_CHECK_LIB(mysqlclient_r, mysql_init, [apu_have_mysql=1]))
-      if test "$apu_have_mysql" != "0"; then
-        APR_ADDTO(APRUTIL_INCLUDES, [$mysql_CPPFLAGS])
-      fi
 
       if test "$apu_have_mysql" != "1"; then
         AC_CHECK_HEADERS(mysql/mysql.h, AC_CHECK_LIB(mysqlclient_r, mysql_init, [apu_have_mysql=1]))
-        if test "$apu_have_mysql" != "0"; then
-          APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include/mysql])
-        fi
       fi
+      if test "$apu_have_mysql" != "0"; then
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
+      fi
     fi
   ])
 
@@ -195,8 +192,7 @@
       AC_MSG_NOTICE(checking for sqlite3 in $withval)
       AC_CHECK_HEADERS(sqlite3.h, AC_CHECK_LIB(sqlite3, sqlite3_open, [apu_have_sqlite3=1]))
       if test "$apu_have_sqlite3" != "0"; then
-        APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include])
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$withval/include])
       fi
     fi
   ], [
@@ -208,7 +204,7 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_sqlite3" = "1"; then
-    LDADD_dbd_sqlite3="-lsqlite3"
+    LDADD_dbd_sqlite3="$sqlite3_LDFLAGS -lsqlite3"
   fi
   AC_SUBST(LDADD_dbd_sqlite3)
 
@@ -240,8 +236,7 @@
       AC_MSG_NOTICE(checking for sqlite2 in $withval)
       AC_CHECK_HEADERS(sqlite.h, AC_CHECK_LIB(sqlite, sqlite_open, [apu_have_sqlite2=1]))
       if test "$apu_have_sqlite2" != "0"; then
-        APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include])
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$withval/include])
       fi
     fi
   ], [
@@ -253,7 +248,7 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_sqlite2" = "1"; then
-    LDADD_dbd_sqlite2="-lsqlite"
+    LDADD_dbd_sqlite2="$sqlite2_LDFLAGS -lsqlite"
   fi
   AC_SUBST(LDADD_dbd_sqlite2)
 
@@ -277,7 +272,7 @@
     if test "$withval" = "yes"; then
       if test -n "$with_oracle_include"; then
         oracle_CPPFLAGS="$CPPFLAGS -I$with_oracle_include"
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$with_oracle_include])
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$with_oracle_include])
       fi
 
       APR_ADDTO(CPPFLAGS, [$oracle_CPPFLAGS])
@@ -294,7 +289,7 @@
     else
       if test -n "$with_oracle_include"; then
         oracle_CPPFLAGS="$CPPFLAGS -I$with_oracle_include"
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$with_oracle_include])
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$with_oracle_include])
       else
         oracle_CPPFLAGS="-I$withval/rdbms/demo -I$withval/rdbms/public"
       fi
@@ -312,11 +307,10 @@
         ],,[-lnnz10])
       ]))
       if test "$apu_have_oracle" != "0"; then
-        APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        APR_ADDTO(APRUTIL_LDFLAGS, [-R$withval/lib])
+        LDADD_dbd_oracle="-R$withval/lib"
         if test -z "$with_oracle_include"; then
-          APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/rdbms/demo])
-          APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/rdbms/public])
+          APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$withval/rdbms/demo])
+          APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$withval/rdbms/public])
         fi
       fi
     fi
@@ -327,7 +321,7 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_oracle" = "1"; then
-    LDADD_dbd_oracle="$LDADD_dbd_oracle -lclntsh"
+    LDADD_dbd_oracle="$oracle_LDFLAGS $LDADD_dbd_oracle -lclntsh"
   fi
   AC_SUBST(LDADD_dbd_oracle)
 
@@ -361,8 +355,7 @@
       AC_MSG_NOTICE(checking for freetds in $withval)
       AC_CHECK_HEADERS(sybdb.h, AC_CHECK_LIB(sybdb, tdsdbopen, [apu_have_freetds=1]))
       if test "$apu_have_freetds" != "0"; then
-        APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib])
-        APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include])
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [-I$withval/include])
       fi
     fi
   ], [
@@ -374,7 +367,7 @@
   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
   dnl we know the library is there.
   if test "$apu_have_freetds" = "1"; then
-    LDADD_dbd_freetds="$LDADD_dbd_freetds -lsybdb"
+    LDADD_dbd_freetds="$sybdb_LDFLAGS -lsybdb"
     dnl Erm, I needed pcreposix, but I think that dependency has gone
     dnl from the current code
     dnl LDADD_dbd_freetds="$LDADD_dbd_freetds -lsybdb -lpcreposix"

Reply via email to