On Tue, 29 Jul 2003, Stas Bekman wrote: > Randy Kobes wrote: > > I've been looking at getting apxs for Win32 working on Apache 2. > > There's a number of changes needed due to the current reliance on > > libtool, so initially I've tried just a pure Win32 version - if > > anyone wants to try it, I've put up two files - Configure.apxs > > and apxs.in - at http://theoryx5.uwinnipeg.ca/. Running > > C:\Some\Path> perl Configure.apxs > > (in the same directory as apxs.in) will guess at your Apache2 > > directory (a --with-apache2=... option can be specified to tell > > it explicitly), and then an apxs.bat will be created under > > C:\Path\to\Apache2\bin\, along with the associated > > C:\Path\to\Apache2\build\config_vars.mk. > > where would it go? Apache::Test? mod_perl?
If there's consensus, I think the better place would be Apache-Test, as it can be used outside of mod_perl. If so, I'll clean things up a bit, and put up a new version; I could also generate something for Apache-Test's Makefile.PL to have it configure and install this on Win32, if wanted. > > I've tried using this for the c-modules tests of perl-framework, > > and it seems to work OK, with the following diff applied to > > a couple of files under perl-framework/Apache-Test/lib/Apache: > > > > =========================================================== > > Index: TestConfig.pm > > =================================================================== > > RCS file: > > /home/cvspublic/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v > > retrieving revision 1.165 > > diff -u -r1.165 TestConfig.pm > > --- TestConfig.pm 7 Jul 2003 18:42:29 -0000 1.165 > > +++ TestConfig.pm 29 Jul 2003 05:51:22 -0000 > > @@ -283,7 +283,7 @@ > > $self->{APXS} = $self->default_apxs; > > > > return unless $self->{APXS}; > > - > > + $self->{APXS} =~ s !/!\\!g if WIN32; > > can this please be: > > $self->{APXS} =~ s|/|\\|g if WIN32; > > os some other separator than !, probably something like s{/}{//}g Sure, no problem. > > my $vars = $self->{vars}; > > > > $vars->{bindir} ||= $self->apxs('BINDIR', 1); > > Index: TestConfigC.pm > > =================================================================== > > RCS file: > > /home/cvspublic/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfigC.pm,v > > retrieving revision 1.20 > > diff -u -r1.20 TestConfigC.pm > > --- TestConfigC.pm 31 Mar 2003 06:58:40 -0000 1.20 > > +++ TestConfigC.pm 29 Jul 2003 05:51:22 -0000 > > @@ -76,7 +76,8 @@ > > EOF > > } > > > > -my %lib_dir = (1 => "", 2 => ".libs/"); > > +my %lib_dir = Apache::TestConfig::WIN32 ? (1 => "", 2 => "") : > > + (1 => "", 2 => ".libs/"); > > > > sub cmodules_build_so { > > my($self, $name) = @_; > > @@ -135,6 +136,9 @@ > > > > my $lib = $self->cmodules_build_so($name); > > > > + my $extras; > > it must be: > > my $extras = ''; > > > + $extras = ' -llibhttpd -p ' if Apache::TestConfig::WIN32; > > or: > > my $extras = Apache::TestConfig::WIN32 ? ' -llibhttpd -p ' : ''; > > probably worth adding on top: > > use constant WIN32 => Apache::TestConfig::WIN32; > > so there will be less to type, shorter lines... Good idea - I'll fix that too. > > > my $fh = Symbol::gensym(); > > open $fh, ">$makefile" or die "open $makefile: $!"; > > > > @@ -143,7 +147,7 @@ > > all: $lib > > > > $lib: $name.c > > - \$(APXS) $dversion -I$self->{cmodules_dir} -c $name.c > > + \$(APXS) $dversion -I$self->{cmodules_dir} $extras -c $name.c > > please always inline and attach the diff when it includes tabs, since they get > lost... Sorry about that - I'll generate a new diff tonight. > > > clean: > > -rm -rf $name.o $name.lo $name.slo $name.la .libs > > =================================================================== > > (there's a failure in building one of the tests due to a > > missing random-ish function). The tests were configured as > > C:\perl-framework> Perl Makefile.PL -apxs C:\Apache2\bin\apxs > > -httpd C:\Apache2\bin\Apache.exe > > The reason for specifying both -apxs and -httpd is related to the > > current Apache-Test using the fact that the apxs variable TARGET > > specifies the name of the httpd binary (httpd). On Win32 the > > binary is Apache.exe, but changing the value of TARGET on Win32 > > would break assumptions elsewhere that the Apache configuration > > file (httpd.conf on Win32 as well) is TARGET.conf. How to handle > > this better should be looked at. > > it'd be cool to need to rely only on any of the two. I'll take a look at this tonight as well - it'd probably be easier to change, for Win32, the assumption of the name of the httpd binary when apxs is present. -- best regards, randy