Thanks, that's a neat way to test a minimal setup! I always just traced the build process for some popular CPAN modules. Something weird is going on, I do the exact same thing and get no packlists, both on Gentoo and on Ubuntu:
$ mkdir tempjunk
$ cd tempjunk
$ h2xs -AX Foo
Defaulting to backwards compatibility with perl 5.14.2
If you intend this module to be compatible with earlier perl versions,
+ please
specify a minimum perl version with the -b option.
Writing Foo/lib/Foo.pm
Writing Foo/Makefile.PL
Writing Foo/README
Writing Foo/t/Foo.t
Writing Foo/Changes
Writing Foo/MANIFEST
$ cd Foo
$ perl Makefile.PL INSTALL_BASE=..
Checking if your kit is complete...
Looks good
Writing Makefile for Foo
Writing MYMETA.yml and MYMETA.json
$ make install_vendor
cp lib/Foo.pm blib/lib/Foo.pm
Manifying blib/man3/Foo.3pm
Installing ../lib/perl5/Foo.pm
Installing ../man/man3/Foo.3pm
$ tree -f -a ..
..
|-- ../Foo
| |-- ../Foo/blib
| | |-- ../Foo/blib/arch
| | | |-- ../Foo/blib/arch/auto
| | | | `-- ../Foo/blib/arch/auto/Foo
| | | | `-- ../Foo/blib/arch/auto/Foo/.exists
| | | `-- ../Foo/blib/arch/.exists
| | |-- ../Foo/blib/bin
| | | `-- ../Foo/blib/bin/.exists
| | |-- ../Foo/blib/lib
| | | |-- ../Foo/blib/lib/auto
| | | | `-- ../Foo/blib/lib/auto/Foo
| | | | `-- ../Foo/blib/lib/auto/Foo/.exists
| | | |-- ../Foo/blib/lib/.exists
| | | `-- ../Foo/blib/lib/Foo.pm
| | |-- ../Foo/blib/man1
| | | `-- ../Foo/blib/man1/.exists
| | |-- ../Foo/blib/man3
| | | |-- ../Foo/blib/man3/.exists
| | | `-- ../Foo/blib/man3/Foo.3pm
| | `-- ../Foo/blib/script
| | `-- ../Foo/blib/script/.exists
| |-- ../Foo/Changes
| |-- ../Foo/lib
| | `-- ../Foo/lib/Foo.pm
| |-- ../Foo/Makefile
| |-- ../Foo/Makefile.PL
| |-- ../Foo/MANIFEST
| |-- ../Foo/MYMETA.json
| |-- ../Foo/MYMETA.yml
| |-- ../Foo/pm_to_blib
| |-- ../Foo/README
| `-- ../Foo/t
| `-- ../Foo/t/Foo.t
|-- ../lib
| `-- ../lib/perl5
| `-- ../lib/perl5/Foo.pm
`-- ../man
`-- ../man/man3
`-- ../man/man3/Foo.3pm
18 directories, 22 files
Whereas install_site does the right thing:
$ make install_site
Appending installation info to ../lib/perl5/x86_64-linux-thread-multi/
+perllocal.pod
$ find .. -name .packlist
../lib/perl5/x86_64-linux-thread-multi/auto/Foo/.packlist
Which seems logical when I compare the respective sections in the Makefile:
pure_site_install :: all
$(NOECHO) $(MOD_INSTALL) \
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist
+ \
$(INST_LIB) $(DESTINSTALLSITELIB) \
$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
$(INST_BIN) $(DESTINSTALLSITEBIN) \
$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
$(PERL_ARCHLIB)/auto/$(FULLEXT)
pure_vendor_install :: all
$(NOECHO) $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
$(INST_BIN) $(DESTINSTALLVENDORBIN) \
$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
How do these parts look in your Makefile? Mine seem to come almost verbatim (modulo some path concatenation rituals) from MM_Unix.pm and as far as I can see, MM_Win32 just inherits these.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|