|
|
Choosing A Webhost: |
Re: [mp1] win32 Makefile.PL patch: msg#00290apache.mod-perl.devel
On Mon, 15 Sep 2003, Steve Hay wrote: > Randy Kobes wrote: > > >Having an APACHE_INST would be a good idea, as it's then > >more intuitive of what it represents ... Perhaps a > >combination of APACHE_INST and INSTALL_LIB would be > >good, in order to keep the flavour of the current > >build procedure: > > > >- APACHE_INST: the Apache install directory, > > or > >- APACHE_SRC, which can be either the Apache build or > >install directory, > > > >With this, > >- INSTALL_DLL: where to put mod_perl.so. If not given, > >defaults to APACHE_INST/modules, or to APACHE_SRC/modules, > >if these exist; > >- INSTALL_LIB: where to put mod_perl.lib. If not given, > >defaults to APACHE_INST/libexec, or to APACHE_SRC/libexec, > >if these exist; In the interests of not introducing another layer of complexity, in the patch below I just added an INSTALL_LIB - the INSTALL.win32 docs point out that APACHE_SRC can either be the Apache source directory or the Apache install directory, so APACHE_INST is a bit redundant (although more descriptive). And like the installation of mod_perl.so, which defaults to APACHE_SRC/modules (if this exists) if INSTALL_DLL isn't given, mod_perl.lib will get installed to APACHE_SRC/libexec (if this exists) if INSTALL_LIB isn't given. > > > >In Apache::MyConfig, the location of the mod_perl lib would > >then be the value of INSTALL_LIB, if that exists or was set; > >if not, then it would stay at the current value of the > >mod_perl source location. > > > This all sounds excellent. > > > >As for the location of the mod_perl header files in > >Apache::MyConfig, right now for Win32 they're set as > >/Path/to/mod_perl/sources/src/modules/perl. One instead > >could use Apache::src->new->inc, which gives the installed > >path (under the Perl tree). However, this wouldn't be a > >compatible change with the current behaviour, as > >Apache::src->new->inc is a string including the '-I' before > >the directories, so that it can be used directly in a $(CC) > >command. But I think it would be more convenient to use > >Apache::src->new->inc, for the same reason as specifying an > >installed location for the mod_perl.lib - that way, people > >can delete the mod_perl build directory after installation. > >What does this sound like? > > > > > Setting MODPERL_INC to the installed location rather than the build > location certainly makes a lot of sense. A definite thumbs-up to that. > > But I'm not so sure about introducing the '-I' if that breaks backwards > compatibility. Depends how much you think people would be affected by > it; I don't really know. > > Would it be possible to play it safe, and set MODPERL_INC to the > installed location, but without the '-I's? The values of MODPERL_LIB and MODPERL_INC in Apache::MyConfig I ended up leaving alone, as changing them now will break compatibility. Using Apache::src->new->inc for MODPERL_INC (which would be the installed header location) would be more convenient, but has the '-I' switches already in it, and removing them would leave you with a list of directories - both options would present different behaviour to the current one. Changing MODPERL_LIB to the installed directory, while more convenient, would also break compatibility, as with the current MODPERL_LIB both mod_perl.so and mod_perl.lib are present in that directory, which isn't the case with the installed directories. If one wants to use the installed locations, one can use Apache::src->new->inc, rather than MODPERL_INC from Apache::MyConfig, for the headers, and then use APACHE_LIB, rather than MODPERL_LIB, for the libraries. So, the patch below keeps backwards compatibility, and adds an INSTALL_LIB capability to 'perl Makefile.PL' to point to where to install mod_perl.lib, if it can't find the location in the installed Apache tree. ================================================================ Index: Makefile.PL =================================================================== RCS file: /home/cvs/modperl/Makefile.PL,v retrieving revision 1.216 diff -u -r1.216 Makefile.PL --- Makefile.PL 19 Aug 2003 05:07:44 -0000 1.216 +++ Makefile.PL 25 Sep 2003 23:57:45 -0000 @@ -330,7 +330,8 @@ my $vcpp = ($Config{cc} =~ /^cl(\.exe)?$/); my %win32_args; -my %win32_accept = map {$_ => 1} qw(APACHE_SRC INSTALL_DLL DEBUG EAPI); +my %win32_accept = map {$_ => 1} + qw(APACHE_SRC INSTALL_DLL INSTALL_LIB DEBUG EAPI); while($_ = shift) { ($k,$v) = split /=/, $_, 2; @@ -375,6 +376,10 @@ my $w32_ap_mod = $fixed_apsrc . '/modules'; $win32_args{INSTALL_DLL} = $w32_ap_mod if -d $w32_ap_mod; } + unless ($win32_args{INSTALL_LIB}) { + my $w32_ap_lib = $fixed_apsrc . '/libexec'; + $win32_args{INSTALL_LIB} = $w32_ap_lib if -d $w32_ap_lib; + } } my %very_experimental = map {$_,1} @@ -1341,7 +1346,8 @@ if($USE_APXS) { $add = "apxs_install"; } - elsif ($win32_auto and $win32_args{INSTALL_DLL}) { + elsif ($win32_auto and + ($win32_args{INSTALL_DLL} or $win32_args{INSTALL_LIB})) { $add = 'amp_install'; } elsif($USE_APACI) { @@ -1372,12 +1378,11 @@ $win32_args{INSTALL_DLL} . ($win32_args{APACHE_VERS} < 1315 ? '/ApacheModulePerl.dll' : '/mod_perl.so'); - if (-d "$win32_args{APACHE_SRC}/libexec") { - my $libexec = win32_fix_path($win32_args{APACHE_SRC}) . '/libexec'; - $string .= sprintf qq{\n\t\$(CP) "%s" "%s"}, - "$win32_path{MODPERL_LIB}/mod_perl.lib", - $libexec . '/mod_perl.lib'; - } + } + if ($win32_args{INSTALL_LIB}) { + $string .= sprintf qq{\n\t\$(CP) "%s" "%s"}, + "$win32_path{MODPERL_LIB}/mod_perl.lib", + $win32_args{INSTALL_LIB} . '/mod_perl.lib'; } return $string; } @@ -2155,7 +2160,7 @@ if ($win32_args{INSTALL_DLL} ) { $win32_args{INSTALL_DLL} = - win32_fix_path($win32_args{INSTALL_DLL}); + win32_fix_path($win32_args{INSTALL_DLL}); unless ( -d $win32_args{INSTALL_DLL}) { my @dirs = grep {-d} ('\Program Files\Apache Group\Apache\modules', @@ -2170,6 +2175,28 @@ **** The Apache/modules directory was not found. ******* **** Please install mod_perl.so manually. ******* + +END + } + } + } + if ($win32_args{INSTALL_LIB} ) { + $win32_args{INSTALL_LIB} = + win32_fix_path($win32_args{INSTALL_LIB}); + unless ( -d $win32_args{INSTALL_LIB}) { + my @dirs = grep {-d} + ('\Program Files\Apache Group\Apache\libexec', + '\Apache\libexec', '\Program Files\Apache\libexec'); + $win32_args{INSTALL_LIB} = find_dir(\@dirs, 'Apache/libexec'); + if ($win32_args{INSTALL_LIB} and -d $win32_args{INSTALL_LIB}) { + $win32_args{INSTALL_LIB} = + win32_fix_path($win32_args{INSTALL_LIB}); + } + else { + print <<'END'; + +**** The Apache/libexec directory was not found. ******* +**** Please install mod_perl.lib manually. ******* END } Index: INSTALL.win32 =================================================================== RCS file: /home/cvs/modperl/INSTALL.win32,v retrieving revision 1.10 diff -u -r1.10 INSTALL.win32 --- INSTALL.win32 6 Jul 2003 13:42:56 -0000 1.10 +++ INSTALL.win32 25 Sep 2003 23:57:45 -0000 @@ -131,6 +131,12 @@ (eg, \Apache\modules). If not given, a value of APACHE_SRC\modules will be used, if this directory exists. +=item INSTALL_LIB + +This gives the location of where to install mod_perl.lib +(eg, \Apache\libexec). If not given, a value of APACHE_SRC\libexec +will be used, if this directory exists. + =item DEBUG If true (DEBUG=1), a Debug version will be built (this assumes =================================================================== -- best regards, randy
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | subpool destruction segfaults, Geoffrey Young |
|---|---|
| Next by Date: | the pools destruction issue solved, Stas Bekman |
| Previous by Thread: | Re: [mp1] win32 Makefile.PL patch, Randy Kobes |
| Next by Thread: | Re: [mp1] win32 Makefile.PL patch, Steve Hay |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |