我在一个目录下有Makefile,目录有很多.pm(perl文件) 我想在这个目录级别添加makefile,它执行perl文件语法检查。 基本上我想补充一下:
perl -c <filename>
如何在没有硬编码的情况下自动获取该目录中的文件列表。
答案 0 :(得分:3)
以下在GNU makefile(Linux和Windows)中为我工作
ALL_PM_FILES = $(wildcard *.pm)
然后对它们运行for / foreach循环。
答案 1 :(得分:2)
答案 2 :(得分:2)
这是正常的解决方法:
check_pm_syntax:
for file in *.pm; do ${PERL} -c $$file; done
你运行'make check_pm_syntax
'然后它就会运行shell循环来查找它可以找到的所有*.pm
个文件。如果您愿意,可以简单地将check_pm_syntax
列为all
目标的先决条件(但这意味着您在构建all
时始终会工作)。唯一一次导致问题的是目录中没有*.pm
个文件。
答案 3 :(得分:1)
这是一种略有不同的方法:
.PHONY: check_%.pm check_%.pm: perl -c $*.pm check_all: $(addprefix check_,$(wildcard *.pm))