On Wed, Jun 15, 2005 at 11:37:38PM +0200, Maarten Thibaut wrote:
> You can see that the makefile generation depends on selecting the right 
> $PERL and $FULLPERL. I've been trying to at least automate this part by 
> writing a MY::find_perl, sticking this somewhere in my home directory and 
> try to get perl to find this find_perl instead of the one in MM_Unix. I 
> found another way: copying and editing MM_Unix.pm directly (fixing 
> find_perl) and setting PERL5LIB. Not very clean. Is there a better way?

MakeMaker will use whatever perl you run the Makefile.PL with, it only has
to guess if the path to Perl is not absolute.  If you run Makefile.PL 
with a full path MakeMaker won't have to guess.

        /full/path/to/your/perl Makefile.PL


> The other one is much more difficult to do. Our perl installation ends up 
> with a Config.pm that has entries like this:
> 
> installprivlib='/opt/local/stow/perl-5.8.0/lib/perl5/5.8.0'
> 
> We need to put every module in its own install path, something like:
> 
> /opt/local/sun4u-5.8/stow/cpan$VERSION.$MODULENAME/lib/perl5/5.8.0
> 
> So we end up doing a s/ regex to change all of those paths.

You can set those paths by using INSTALLSITELIB, INSTALLSITEMAN3DIR, etc...

        perl Makefile.PL 
INSTALLSITELIB=/opt/local/sun4u-5.8/stow/cpan$VERSION.$MODULENAME/lib/perl5/5.8.0

Though for something like stow which does the "install a module in X but 
run it from Y" trick you'd be better off using DESTDIR.  Stow should
have documentation on how to build with systems that have a destdir 
concept.

        perl Makefile.PL 
DESTDIR=/opt/local/sun4u-5.8/stow/cpan$VERSION.$MODULENAME
                         INSTALLSITELIB=/path/to/where/stow/will/symlink/to


See the "make install" section of the ExtUtils::MakeMaker documentation for
details on all the INSTALL* variables.


Also note that upgrade versions of MakeMaker are available on CPAN so that
you don't have to fight different bugs in different versions.


-- 
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