Author: stas
Date: Wed Dec  1 14:00:15 2004
New Revision: 109383

URL: http://svn.apache.org/viewcvs?view=rev&rev=109383
Log:
If none of MP_APXS, MP_AP_PREFIX and MP_USE_STATIC were specified when
configuring Makefile.PL, we now prompt for APXS path first and only if
that fails ask for MP_AP_PREFIX. This is a requirement to get 'make
test' find httpd.

Modified:
   perl/modperl/trunk/Changes
   perl/modperl/trunk/Makefile.PL

Modified: perl/modperl/trunk/Changes
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&rev=109383&p1=perl/modperl/trunk/Changes&r1=109382&p2=perl/modperl/trunk/Changes&r2=109383
==============================================================================
--- perl/modperl/trunk/Changes  (original)
+++ perl/modperl/trunk/Changes  Wed Dec  1 14:00:15 2004
@@ -12,6 +12,11 @@
 
 =item 1.99_18-dev
 
+If none of MP_APXS, MP_AP_PREFIX and MP_USE_STATIC were specified when
+configuring Makefile.PL, we now prompt for APXS path first and only if
+that fails ask for MP_AP_PREFIX. This is a requirement to get 'make
+test' find httpd. [Stas]
+
 Dynamically prompt and add MP_INST_APACHE2=1 when installing on
 systems with mod_perl 1 preinstalled. [Stas]
 

Modified: perl/modperl/trunk/Makefile.PL
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/Makefile.PL?view=diff&rev=109383&p1=perl/modperl/trunk/Makefile.PL&r1=109382&p2=perl/modperl/trunk/Makefile.PL&r2=109383
==============================================================================
--- perl/modperl/trunk/Makefile.PL      (original)
+++ perl/modperl/trunk/Makefile.PL      Wed Dec  1 14:00:15 2004
@@ -26,6 +26,7 @@
 
 use Config;
 use File::Spec::Functions;
+use File::Spec;
 use DirHandle ();
 use File::Copy 'cp';
 use File::Basename 'basename';
@@ -227,6 +228,13 @@
         debug "Using Apache prefix => $build->{MP_AP_PREFIX}";
     }
     else {
+        unless ($build->{MP_USE_STATIC}) {
+            # may populate $build->{MP_APXS}
+            prompt_for_apxs($build);
+        }
+    }
+
+    unless ($build->{MP_APXS} or $build->{MP_AP_PREFIX}) {
         my $ok = 0;
         for my $path ($build->find) {
             $build->dir($path);
@@ -310,6 +318,50 @@
     }
 
     install_typemap();
+}
+
+sub prompt_for_apxs {
+    my $build = shift;
+
+    print <<EOI;
+
+Next we need to know where the 'apxs' script is located. This script
+provides a lot of information about the Apache installation, and makes
+it easier to find things on your system. Normally it's located in the
+same directory as the 'httpd' executable.
+
+If you don't yet have Apache installed you can build Apache against
+the Apache source code, but you won't be able to run the test suite (a
+very important step). Therefore you may want to install Apache before
+proceeding.
+
+EOI
+
+    my $prompt = "\nPlease provide a full path to 'apxs' executable\n" .
+        "(press Enter if you don't have it installed):";
+    while (1) {
+        my $ans = $build->prompt($prompt);
+
+        print "\n\n";
+
+        # strip leading/closing spaces
+        $ans =~ s/^\s*|\s*$//g;
+
+        last unless length $ans; # skip
+
+        unless (File::Spec->file_name_is_absolute($ans)) {
+            warn "The path '$ans' is not an absolute path. " .
+                "Please specify an absolute path.\n";
+            next;
+        }
+
+        warn("'$ans' doesn't exist.\n"),     next unless -e $ans;
+        warn("'$ans' is not a file.\n"),     next unless -f _;
+        warn("'$ans' is not executable.\n"), next unless -x _;
+
+        $build->{MP_APXS} = $ans;
+        last;
+    }
 }
 
 sub post_configure {

Reply via email to