in reply to Re: What are the "prefix" and "lib" arguments to makefile.pl used for?
in thread What are the "prefix" and "lib" arguments to makefile.pl used for?
a couple of years ago, when I had the problem to install an application onto the customers machine and the dependant modules (packaged with the application) into a certain directory nobody in c.l.p.m could really help me, and the MakeMaker docs didn't either. I only used the PREFIX parameter and was wondering how to predict in which directories the modules would end up (as this changed also between perl versions).
I happened to stumble over a website where Makefile.PL was called additionally with the LIB parameter (I don't remember where I found this). I tried it, and it just worked. Foo::Bar ended up reliably in prefix/Foo/Bar.pm, so that I knew that I could just say use lib qw(prefix);
But why?
So I think the docs are not really easy to understand. It says for PREFIX=~:
This will install all files in the module under your home directory, with man pages and libraries going into an appropriate place (usually ~/man and ~/lib).
and for LIB=~/lib:
This will install the module's architecture-independent files into ~/lib, the architecture-dependent files into ~/lib/$archname.
What exactly is the difference between "all files in the module" and "the module's architecture-independent files"? (Note that also using PREFIX will use a different directory for architecture dependant files.) If you read the documentation for LIB, you don't know why you still have to use PREFIX.
I think a part of the confusion is caused by the fact that both parameters can contradict each other (saying PREFIX=/foo/bar LIB=/foo/baz)
|
---|