Committed by Greg Sabino Mullane <[email protected]>

Subject: [DBD::Pg 2/2] do() blocks causing errors in cpantesters: perhaps the
use lib is being ignored inside of it. Changed to a simple if, and added a
test that we have a sane POSTGRES_HOME and bail at that point if we do not.

---
 Makefile.PL | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/Makefile.PL b/Makefile.PL
index da8d8b2..93912b5 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -72,15 +72,17 @@ my $POSTGRES_LIB;
 # We need the version information to properly set compiler options later
 # Use App::Info to get the data we need.
 require App::Info::RDBMS::PostgreSQL;
-my $p = $ENV{PERL_MM_USE_DEFAULT} || $ENV{AUTOMATED_TESTING} ? do {
+my $prompt;
+if ($ENV{PERL_MM_USE_DEFAULT} or $ENV{AUTOMATED_TESTING}) {
     require App::Info::Handler::Print;
-    App::Info::Handler::Print->new;
-} : do {
+    $prompt = App::Info::Handler::Print->new;
+}
+else {
     require App::Info::Handler::Prompt;
-    App::Info::Handler::Prompt->new;
-};
+    $prompt = App::Info::Handler::Prompt->new;
+}
 
-my $pg = App::Info::RDBMS::PostgreSQL->new(on_unknown => $p);
+my $pg = App::Info::RDBMS::PostgreSQL->new(on_unknown => $prompt);
 my ($major_ver, $minor_ver, $patch, $conf, $bindir) = map {$pg->$_}
     qw/major_version minor_version patch_version configure bin_dir/;
 my $initdb = '';
@@ -103,7 +105,14 @@ if (defined $major_ver) {
 # 2. App::Info::RDBMS::PostgreSQL information
 # 3. subdirectory of $ENV{POSTGRES_HOME}
 
-$POSTGRES_INCLUDE = $ENV{POSTGRES_INCLUDE} || $pg->inc_dir || 
"$ENV{POSTGRES_HOME}/include";
+$POSTGRES_INCLUDE = $ENV{POSTGRES_INCLUDE} || $pg->inc_dir;
+
+if (! defined $POSTGRES_INCLUDE) {
+       if (! defined $ENV{POSTGRES_HOME}) {
+               die "No POSTGRES_HOME defined, cannot find automatically\n";
+       }
+       $POSTGRES_INCLUDE = "$ENV{POSTGRES_HOME}/include";
+}
 
 $POSTGRES_LIB = $ENV{POSTGRES_LIB} || $pg->lib_dir || 
"$ENV{POSTGRES_HOME}/lib";
 
-- 
1.8.4

Reply via email to