Michael G Schwern wrote:
On Sat, Jan 31, 2004 at 01:14:59AM -0800, Stas Bekman wrote:

thanks for the answer Michael and sorry for not following earlier, i just got back to work on Apache-Test.


So a few questions/suggestions:

1) Shouldn't MM at least warn if a copy is found elsewhere in INSTALL targets, besides the target it installs to?


There should be warnings about 'shadowing' in the make install messages and what to do about it.

It does not.


% ls -l /home/stas/perl/5.8.3-ithread/lib/site_perl/5.8.3/Apache/TestUtil.pm
r--r--r-- 1 stas stas 18137 Dec 22 20:40 /home/stas/perl/5.8.3-ithread/lib/site_perl/5.8.3/Apache/TestUtil.pm


% make install
...
Installing /home/stas/perl/5.8.3-ithread/lib/site_perl/5.8.3/i686-linux-thread-multi/Apache/TestUtil.pm


no warning not nothing. Now there are two Apache/TestUtil.pm files at the normal @INC locations.

2) I see that MM doesn't have any logic to decide which files go where once they are in blib. On 'make install' it just grabs blib and if at least one file goes into INSTALLARCHLIB all of them go there. I think in this case the pure_site_install target is the one that gets to run.


Yep.  If one piece of the distribution is arch specific, the whole thing
is.  MakeMaker can't determine what parts are arch independent and what
parts are not.  That logic is in ExtUtils::Install.



Is there a way to tell that files from a sub-dir should go to INSTALLSITELIB and not where the rest of the files go to? I couldn't find a way to do that. It's probably going very tricky to do.


Maybe you can implement this idea and then stick an INSTALLDIRS=share in
the Apache-Test Makefile.PL.

http://rt.cpan.org/Ticket/Display.html?id=4322

Yes, that trick seems to work (>> FAQ?). I hope that there will be no new vars that may rely on these settings:


sub MY::constants {
    my $self = shift;

my $string = $self->MM::constants;

    # mp2 installs A-T into INSTALLSITEARCH, so in order to avoid
    # problems when users forget 'make install UNINST=1', trick MM into
    # installing pure perl modules to the archlib location, when A-T is
    # not installed as a part of mp2 build
    $string .= <<'EOI';

# install into the same location as mod_perl 2.0
INSTALLSITELIB = $(INSTALLSITEARCH)
DESTINSTALLSITELIB = $(DESTINSTALLSITEARCH)
EOI

    $string;
}

Thanks again, Michael.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to