randyk 2004/06/20 23:45:54
Modified: . Makefile.PL Log: for Win32, - make the xs/APR/APR before the other APR::* targets, in preparation for linking the APR::* against APR.lib - create a bogus blib/arch/Apache2/auto/APR/APR.lib, to fool MakeMaker into thinking the lib exists before it's actually built. Revision Changes Path 1.138 +27 -5 modperl-2.0/Makefile.PL Index: Makefile.PL =================================================================== RCS file: /home/cvs/modperl-2.0/Makefile.PL,v retrieving revision 1.137 retrieving revision 1.138 diff -u -r1.137 -r1.138 --- Makefile.PL 4 Mar 2004 03:36:18 -0000 1.137 +++ Makefile.PL 21 Jun 2004 06:45:54 -0000 1.138 @@ -153,11 +153,19 @@ #Makefile.PL's in WrapXS/ just need to pass the -e mod_perl.lib test #the real mod_perl.lib will be in place when WrapXS/ dll's are #actually linked - my $lib = "src/modules/perl/$build->{MP_LIBNAME}.lib"; - unless (-e $lib) { - open my $fh, '>', $lib or die "open $lib: $!"; - print $fh "#this is a dummy file to trick MakeMaker"; - close $fh; + require File::Path; + my $lib1 = "src/modules/perl/$build->{MP_LIBNAME}.lib"; + my $apr_blib = catdir qw(blib arch Apache2 auto APR); + unless (-d $apr_blib) { + File::Path::mkpath($apr_blib) or die "mkdir $apr_blib failed: $!"; + } + my $lib2 = catfile $apr_blib, 'APR.lib'; + foreach my $lib ($lib1, $lib2) { + unless (-e $lib) { + open my $fh, '>', $lib or die "open $lib: $!"; + print $fh "#this is a dummy file to trick MakeMaker"; + close $fh; + } } } @@ -448,6 +456,8 @@ package MY; use Config; +use File::Spec::Functions qw(catdir); +use constant WIN32 => $^O eq 'MSWin32'; my $apache_test_install; BEGIN { @@ -459,6 +469,18 @@ sub MY::top_targets { my $self = shift; my $string = $self->ModPerl::BuildMM::MY::top_targets; + + if (WIN32) { + ModPerl::MM::add_dep(\$string, pure_all => 'apr_lib'); + + my $apr_lib = catdir qw(xs APR APR); + $string .= <<"EOF"; + +apr_lib: + cd "$apr_lib" && \$(MAKE) -f \$(FIRST_MAKEFILE) all \$(PASTHRU) + +EOF + } ModPerl::MM::add_dep(\$string, pure_all => 'modperl_lib');