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.