On Tue, Aug 16, 2005 at 03:00:54PM +0530, Janarthanan, Prassana wrote:
> Now, We have a Makefile.PL script to generate the Makefile
> for our custom installation.
>  
> $ /usr/local/bin/perl Makefile.PL PREFIX=/u/blah/
>  
> When the above command is run in the machine having 6.01v
> generates a different output compared to that of 6.28v
>  
> To be Specific, my problem is with the INSTALLSITELIB.
>  
> with v6.01 which is under 5.6.1v of perl:
> INTALLSITELIB = /u/blah/lib/perl5/site_perl/5.6.1
>  
> but, with 6.28v and 5.8.6v of perl
> INTALLSITELIB = /u/blah/lib/perl5/site_perl
>  
> Here it is clearly a difference. I expected it to
> INTALLSITELIB=/u/blah/lib/perl5/site_perl/5.8.6
>  
> Is this a standard behavior that recent versions of 
> MakeMaker is supporting or is there any bug?

MakeMaker's PREFIX option bases its installation directories on your system
Config.pm.  INSTALLSITELIB is based on $Config{installsitelib}.  The value
of this is specific to each installation of perl and is determined by who
compiled and installed perl.  Here's some examples from my machine.

$ perl -MConfig -wle 'print $Config{installsitelib}'
/sw/lib/perl5/site_perl/5.8.6 
$ perl5.8.1 -MConfig -wle 'print $Config{installsitelib}'
/Library/Perl/5.8.1
$ activeperl5.6.1 -MConfig -wle 'print $Config{installsitelib}'
/usr/local/perl/ActivePerl-638/lib/site_perl/5.6.1 

Presumably $Config{installsitelib} for your 5.6.1 is 
/usr/local/lib/perl5/site_perl/5.6.1 and for your 5.8.6 is
/usr/local/lib/perl5/site_perl/.  If this is so, MakeMaker is acting 
as expected.  If not then you've found a bug in MakeMaker.  Please check 
and let us know.


> $ /usr/local/bin/perl Makefile.PL PREFIX=/u/blah/ \
>           LIB=/u/blah/lib/perl5/site_perl/5.8.6
>  
> Is there any other way? or should I live without 5.8.6
> directory under site_perl?

There is one other way.  There's a new option, INSTALL_BASE, just added but
not yet documented.  This mirrors Module::Build's --install_base providing
you with a fixed installation location not based on %Config meaning the
location your modules get installed into doesn't jump around from perl to
perl.

Its not yet official because of some outstanding coordination problems with
Module::Build (we're waiting for 0.28 which fixes this) but its not planned
to change.

You can read more about why PREFIX will never work and about INSTALL_BASE 
here:
http://www.pobox.com/~schwern/talks/PREFIX/


-- 
Michael G Schwern     [EMAIL PROTECTED]     http://www.pobox.com/~schwern
Ahh email, my old friend.  Do you know that revenge is a dish that is best 
served cold?  And it is very cold on the Internet!

Reply via email to