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.