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!