perlmakemaker

ExtUtils::MakeMaker custom target


Is there a way to have a custom Makefile target to be generated by ExtUtils::MakeMaker? Say, I'd like to do some specific things that only a developer is interested in, like running pod and regression tests; I can use env variables for that but that's a bit unwieldy to remember things like that. Being able to run something like make devtest instead would be mighty handy.


Solution

  • Regression Testing with ExtUtils::MakeMaker

    By default, MakeMaker makefiles come with a test target which runs all of the regression tests in test.pl in the current directory as well as all files matching glob("t/*.t") when you run make test. Your typical usage should be:

    perl Makefile.PL
    make
    make test
    make install
    

    You can define your own make targets, there's some information about the variables you can set in the CPAN documentation for the module as well as the manpage.

    This is the example from the CPAN article:

    sub MY::postamble {
        return <<'MAKE_FRAG';
        $(MYEXTLIB): sdbm/Makefile
        cd sdbm && $(MAKE) all
        MAKE_FRAG
    }