develooper Front page | perl.perl5.porters | Postings from April 2000

[ID 20000402.013] MakeMaker still busted

From:
Tom Christiansen
Date:
April 2, 2000 16:25
Subject:
[ID 20000402.013] MakeMaker still busted
Message ID:
17642.954717909@chthon
0.  The ExtUtils::Makemaker manpage is still screwed up.

	man ExtUtils::MakeMaker
	...
	   Note, that in both cases the tilde expansion is done by
	   MakeMaker, not by perl by default, nor by make. Conflicts
	   between parameters LIB, PREFIX and the various INSTALL*
	   arguments are resolved so that XXX

    That's what it says.  "XXX" and nothing!

1.  You cannot usefully employ the PREFIX=blah to have your own
    library installation.   You cannot specify a correct -I or use
    lib or PERL5LIB to have it do all the site_perl etc checks.
    I do not understand why PREFIX exists -- if you don't use PREFIX
    from Config, you're hosed.

2.  You have to use something like this:

	perl Makefile.PL  \
	    LIB=~/lib  \
	    INSTALLMAN3DIR=~/myman/man3 \
	    INSTALLMAN1DIR=~/myman/man1 \
	    INSTALLBIN=~/bin INSTALLSCRIPT=~/scripts

    Why must you specify all of that like that?  
    Why can't PREFIX work right?

3.  Make clean erases your Makefile!  Why does it do that?
    What's the target to remove the *.o and *.a and all 
    without having to go through that hideous line above?

4.  How do I get siteperl libs' manpages in a different place
    than the standard ones?  

    % perl -V:'.*inst.*'
    installarchlib='/usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd'
    installprivlib='/usr/local/lib/perl5/5.6.0'
    installbin='/usr/local/bin'
    installman1dir='/usr/local/man/man1'
    installman3dir='/usr/local/man/man3'
    installprefix='/usr/local'
    installprefixexp='/usr/local'
    installscript='/usr/local/bin'
    installsitearch='/usr/local/lib/perl5/site_perl/5.6.0/OpenBSD.i386-openbsd'
    installsitebin='/usr/local/bin'
    installsitelib='/usr/local/lib/perl5/site_perl/5.6.0'
    installstyle='lib/perl5'
    installusrbinperl='define'
    installvendorarch=''
    installvendorbin=''
    installvendorlib=''

    And what is a vendor supposed to do?  Let's say they want to 
    put their vended stuff in /usr/man, and have any site_perl 
    bits go in /usr/local/man.  How do you do that?

I note that these bugs about PREFIX and LIB not being useful, and
about the manpage being broken, all have a very long history:

    Nick, 1996, about how PREFIX doesn't work:

	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/9612/msg01035.html

    Randal, 1997, also to Perlbug , about XXX in the manpage

	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1997-05/msg01797.html

    Me, 1999, to Tim Bunce and p5p:
	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1999-09/msg00722.html

    Follow from Andreas right after:

	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1999-09/msg00729.html

	 > 1) What should the "XXX" above say?

	Unfinished documentation and/or unfinished programming. I recall, that
	if a user specifies more than one parameter of the LIB/PREFIX/INSTALL*
	family, the result won't make sense. There is no specification for a
	resolution for the conflict. What would the proper English sentence be
	to say so?

    Some "David Dick", 2000, to p5p:

	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-01/msg00988.html

A user should be able to type something as simple as

    perl Makefile.PL LIB=~/lib MAN=~/man BIN=~/bin

And have it all work.  In fact, they should be able to do 

    perl Makefile.PL XXXINST=~

And why must you type "perl Makefile.PL" instead of "make"?

--tom



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About