On Wed, Nov 27, 2002 at 11:14:52AM +0100, Steffen Mueller wrote:
> Mike Castle wrote:
> >The way that Math-Project3D is being packaged is causing issues with the
> >newer stuff.  Basically, nothing gets copied into the blib directory and
> >nothing gets installed.
> 
> That is very odd. I was using the 5.6.1 std makemaker plus pmake from 
> CPAN to just "make dist". This is the recommended thing to do from the 
> perlnewmod manpage IIRC.
> 
> [...]
> 
> >The new standard seems to be to put all of the modules into a lib
> >directory.

This isn't new, its been that way for a while.  h2xs's default layout may
have changed, but MakeMaker's behavior hasn't.  Your old layout should still
work if it worked before.

Downloading Math::Project3D 1.002 and trying it with a clean 5.8.0, 5.6.1
and 5.5.3.  MakeMaker will not pick up your .pm files.  I don't think it
ever worked this way.  You sure this worked at some point?  Could you
demonstrate by running:

    perl Makefile.PL
    make pm_to_blib

and show the output?

MakeMaker will find stuff in lib/ and in the top level directory and it will
recurse into any directories that have a Makefile.PL in them, but it won't
go into arbitrary directories looking for pm files.  AFAIK it never has.

This layout is what h2xs in 5.5.3 produces:

Writing Math/Project3D/Project3D.pm
Writing Math/Project3D/Makefile.PL
Writing Math/Project3D/test.pl
Writing Math/Project3D/Changes
Writing Math/Project3D/MANIFEST

that will work.  It will see Project3D.pm in the top level directory.


> >So, a recommended layout for your packages might be something like:
> >
> >./Makefile.PL
> >./changes
> >./test.pl
> >./readme
> >./lib
> >./lib/Math
> >./lib/Math/Project3D
> >./lib/Math/Project3D/Function.pm
> >./lib/Math/Project3D.pm
> >
> >That is:
> >mkdir lib
> >mv Math lib
> 
> Okay, I will fix that in all future distributions. I wonder, however 
> whether this might break with old versions of the MakeMaker stuff and/or 
> the CPAN module?

The lib/ convention is very old.  The above is the recommended layout.

While we're on the subject, s/readme/README/.  s/changes/Changes/.
s{test.pl}{t/foo.t} (test.pl's output is ignored) and run a 'make manifest'
to generate a MANIFEST file.


> >If you are using an older version of perl, I believe that simply upgrading
> >to the most recent versions of the MakeMaker stuff should reproduce this
> >problem.
> 
> I can't possibly. I am stuck on Win32, my nmake is very broken and I 
> can't seem to fix it and pmake is a hack. I will, however, trust your 
> advice and package future distributions the way you suggested.

Perl make and nmake should work fine with MakeMaker.  nmake even better with
recent versions.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
I knew right away that my sock and your eyebrows could be best friends.

Reply via email to