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

Reply via email to