May be you are right that iodbc-config should not return "-L/usr/lib". But, when I provide, --with-libpq=<PG_INSTALL_PATH> switch specifically, shoudn't it pick the libpq from there?
We were building psqlodbc-09.03.0300 on OS X with configure options as "--disable-dependency-tracking --with-iodbc --with-libpq=<PG_INSTALL_PATH> --prefix=<INSTALL_PATH> " and found that libpq was being linked from /usr/lib and not from the $PG_INSTALL_PATH.. May be because the system iodbc-config returns:
Hmm. It seems bogus for iodbc-config to return "-L/usr/lib" in the first place. Surely /usr/lib is in the default library path, so shouldn't be printed.
To make sure it picks the libpq from the Server installation that we built, I had to patch configure script:
-- --- configure.org 2014-08-18 16:22:19.484004002 +0500 +++ configure 2014-08-18 16:22:55.537736693 +0500 @@ -4301,7 +4301,7 @@ if test -d "$with_libpq"; then PATH="$PATH:$with_libpq/bin" CPPFLAGS="$CPPFLAGS -I$with_libpq/include" - LDFLAGS="$LDFLAGS -L$with_libpq/lib" + LDFLAGS="-L$with_libpq/lib $LDFLAGS" else if test -x "$with_libpq"; then PG_CONFIG=$with_libpq --
Does this looks fine?
Well, you'd need to patch "configure.ac", because "configure" is auto-generated from "configure.ac". However, since this seems like an iodbc bug to me, I'd suggest that you contact the iodbc people to get it fixed upstream. Meanwhile, you could write your own iodbc-config replacement/wrapper script that returns the correct string, "-liodbc -liodbcinst".