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!