目录下的Makefile和Files

时间:2009-09-22 13:28:21

标签: makefile

我在一个目录下有Makefile,目录有很多.pm(perl文件) 我想在这个目录级别添加makefile,它执行perl文件语法检查。 基本上我想补充一下:

perl -c <filename>

如何在没有硬编码的情况下自动获取该目录中的文件列表。

4 个答案:

答案 0 :(得分:3)

以下在GNU makefile(Linux和Windows)中为我工作

ALL_PM_FILES = $(wildcard *.pm)

然后对它们运行for / foreach循环。

答案 1 :(得分:2)

您可以尝试过滤命令:

PMFILES=$(filter %.pm, $(SRC))

很难找到过滤器的文档。有关示例,请参阅here

答案 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))