in reply to how to re-run Makefile.PL under CPAN?

Update: there seems to be a misunderstanding of the question: I'm interested not how to do that myself, but how to teach module X to interact with CPAN in automated (3rd user)/controlled (CPAN testers) environment.

Once Makefile.PL runs, I'm pretty sure you can't get CPAN to automatically run it again after a prerequisite installs. Instead, you need to find a way to have the necessary configuration done during the "make" stage. I can see two ways of doing that:

  1. Override ExtUtils::MakeMaker methods to change the generated Makefile such that during "make" you gather and use some configuration data. (Hard)
  2. Use another *.PL file and the PL_FILES argument in Makefile.PL to either generate a module with the information from your prerequisite or to patch your .pm files in blib as necessary. (Easier)

Alternatively, you might look into using Module::Build, as it makes subclassing Module::Build and overriding methods fairly easy. You could override the ACTION_build method to gather necessary information, act on it, then call the superclass method to continue the build process.

-xdg

Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.