2014-02-12 37 views
0

我想我的生成的Makefile有這些新的任務掉毛:如何使用`Makefile.PL`定義新的make任務?

perl: 
    -for f in **/*.pl; do perl -MO=Lint -cw $$f 2>&1 | grep -v "syntax OK"; done 
    -for f in **/*.pm; do perl -MO=Lint -cw $$f 2>&1 | grep -v "syntax OK"; done 

perlcritic: 
    -perlcritic . | grep -v "source OK" 

lint: perl perlcritic 

我試着寫一個Makefile.PL,但是當我運行它,由此產生的Makefile仍然缺乏lint任務。

use ExtUtils::MakeMaker; 

sub MY::lint { 
    return <<'END'; 
lint: 
    echo "Linting!!!!!!!!!!!1" 

END 
} 

WriteMakefile; 

我試着閱讀CPAN文檔,但最喜歡的文檔,他們給片段沒有足夠的背景,所以我甚至不知道我是否應該之前或之後WriteMakefile申報潛艇。

也發佈在Reddit

回答

2

感謝briandfoy:

$ cat Makefile.PL 
#!/usr/bin/env perl 

use strict; 
use warnings; 
use ExtUtils::MakeMaker; 

WriteMakefile; 

sub MY::postamble { 
    return <<'END'; 
perlwarn: 
    -find . -type f -name '*.pl' -exec perl -MO=Lint -cw {} 2>&1 \; | grep -v "syntax OK" | grep -v "Can't locate" 
    -find . -type f -name '*.pm' -exec perl -MO=Lint -cw {} 2>&1 \; | grep -v "syntax OK" | grep -v "Can't locate" 
    -find . -type f -name '*.t' -exec perl -MO=Lint -cw {} 2>&1 \; | grep -v "syntax OK" | grep -v "Can't locate" 

perlcritic: 
    -perlcritic . | grep -v "source OK" 

lint: perlwarn perlcritic 
END 
} 
相關問題