[VPM] MakeMaker question

Darren Duncan darren at DarrenDuncan.net
Mon Aug 30 18:43:32 CDT 2004


I have a question on what kind of Makefile.PL change is required to 
accomplish something simple, but I didn't find the answer in the 
MakeMaker documentation.

More than one of my pure-Perl CPAN distributions contains extra .pm 
files which are only used during 'make test', but I have so far had 
to put them in my 'lib' directory with the normal modules so that 
they can be seen during 'make test.  However, this pollutes my 'lib' 
directory un-necessarily, as well as the user's install dirs, as the 
distro would install the test libraries too.  I would like to get 
these for-testing modules to sit in the 't' directory, where the main 
test scripts are.

Here's an example, a current Makefile from one distro:

use ExtUtils::MakeMaker;
WriteMakefile(
	NAME	=> 'Locale::KeyedText',
	VERSION_FROM => 'lib/Locale/KeyedText.pm', # finds $VERSION
	PREREQ_PM => {
	},
);

Now, the current (0.06) manifest, to illustrate file locations:

ChangeLog
INSTALL
lib/Locale/KeyedText.pm
lib/t_Locale_KeyedText_A_L_Eng.pm
lib/t_Locale_KeyedText_A_L_Fre.pm
lib/t_Locale_KeyedText_B_L_Eng.pm
lib/t_Locale_KeyedText_B_L_Fre.pm
LICENSE
Makefile.PL
MANIFEST
META.yml                                Module meta-data (added by MakeMaker)
ReadMe
t/Locale_KeyedText.t
TODO

I would like the file layout to be like this instead:

ChangeLog
INSTALL
lib/Locale/KeyedText.pm
LICENSE
Makefile.PL
MANIFEST
META.yml                                Module meta-data (added by MakeMaker)
ReadMe
t/Locale_KeyedText.t
t/lib/t_Locale_KeyedText_A_L_Eng.pm
t/lib/t_Locale_KeyedText_A_L_Fre.pm
t/lib/t_Locale_KeyedText_B_L_Eng.pm
t/lib/t_Locale_KeyedText_B_L_Fre.pm
TODO

The t/lib/ could be replaced with just t/ if necessary.

My searches to the ExtUtils::MakeMaker documentation did not reveal 
any options that would let me do what I wanted with simplicity.  The 
nearest choice I saw seemed to allow me to choose explicitly which 
/lib files would be installed at the end, which is a partial 
solution, but not really what I want.

Anyone familiar with MakeMaker that can help me with this?  Namely, 
what do I change in my Makefile.PL to achieve the desired effect?

Thank you. -- Darren Duncan


More information about the Victoria-pm mailing list