http://qs321.pair.com?node_id=11113915

davido has asked for the wisdom of the Perl Monks concerning the following question:

I'm working on setting up an internal darkpan that consists of distributions built from single modules in lib/. However, lib/ contains many modules. For my purposes I need each module in lib/ to result in a single distribution. I believe that in my Makefile.PL for a given distribution I will need to specify a PM => {...} entry so that I'm not attempting to pull in the entire contents of lib/. Is this an approach that will work?

If so, the next problem is I'm not entirely clear on what belongs in the PM hash. The documentation in ExtUtils::MakeMaker lists this:

{'name_of_file.pm' => '$(INST_LIB)/install_as.pm'}

It seems this will work if I use this, "'lib/SomeModule.pm' => '$(INST_LIB)/SomeModule.pm'", except that this dumps things into blib as blib/lib/SomeModule.pm, which isn't quite right. Can someone with some experience using this field help provide that incantation that will allow lib/SomeModule.pm to get pulled into the distribution but nothing else in lib/?


Dave

Replies are listed 'Best First'.
Re: Building a darkpan dist with a single module among all modules in lib/
by davido (Cardinal) on Mar 06, 2020 at 20:01 UTC

    Following up to my own question because I got an answer on #perl:

    So, it is correct that the module's blib path would become blib/lib/SomeModule.pm, and in that case, the following is correct:

    PM => { 'lib/SomeModule.pm' => '$(INST_LIB)/SomeModule.pm', },

    If there's a separate POD file, the entries would be like this:

    PM => { 'lib/SomeModule.pm' => '$(INST_LIB)/SomeModule.pm', 'lib/SomeModule.pod' => '$(INST_LIB)/SomeModule.pod', },

    Thanks Grinnz on #perl, on irc.perl.org for the assistance.


    Dave