Makefile和目录下的文件

4

我有一个Makefile在一个目录下,该目录下有许多.pm(Perl文件) 我想在该目录级别上添加Makefile以进行Perl文件语法检查。 基本上我想添加:

perl -c <filename>

如何自动获取该目录中的文件列表,而无需硬编码。

如果您找到适合您的答案,通常应该接受该答案(在查看答案时出现的勾号下面; 当您选择它时,它会变成绿色)。 - Jonathan Leffler
话虽如此,我看到'Avinash'提出了问题,但另一个'Avinash'说:“这对我有效”。 - Jonathan Leffler
4个回答

3
下面的内容适用于我的GNU makefile(Linux和Windows)。
ALL_PM_FILES = $(wildcard *.pm)

然后在它们上运行一个for/foreach循环。

2
你可以尝试使用过滤命令:
PMFILES=$(filter %.pm, $(SRC))

过滤器的文档很难找到。这里提供一个例子,可参考此处


2

这是常规解决方法:

check_pm_syntax:
        for file in *.pm; do ${PERL} -c $$file; done

你运行 'make check_pm_syntax',它会遍历所有可找到的 *.pm 文件并执行 shell 循环。如果你想的话,可以将 check_pm_syntax 列为 all 目标的先决条件(但这意味着每次构建 all 时都会执行此操作)。唯一会出现问题的情况是目录中没有 *.pm 文件。

1

这里有一个稍微不同的方法:

.PHONY: check_%.pm
check_%.pm:
    perl -c $*.pm
check_all: $(addprefix check_,$(wildcard *.pm))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接