目录下的Makefile和文件

发布于 2024-08-05 00:01:44 字数 181 浏览 2 评论 0原文

我在一个目录下有 Makefile,并且目录中有许多 .pm ( perl 文件) 我想在此目录级别添加 makefile 来进行 perl 文件语法检查。 基本上我想添加:

perl -c <filename>

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

I have Makefile under a directory and directory has many .pm ( perl files )
I want to add makefile at this directory level which does perl file syntax checking.
Basically I want to add:

perl -c <filename>

How to get list of files automatically in that directory without hardcoding.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜扑 2024-08-12 00:01:44

以下内容在 GNU makefile(Linux 和 Windows)中对我有用,

ALL_PM_FILES = $(wildcard *.pm)

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

The following worked for me in the GNU makefile (Linux and Windows)

ALL_PM_FILES = $(wildcard *.pm)

Then run a for/foreach loop on them.

流星番茄 2024-08-12 00:01:44

您可以尝试使用filter命令:

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

filter的文档很难找到。有关示例,请参阅此处

You can try the filter command:

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

Documentation for filter is hard to find. See here for an example.

水波映月 2024-08-12 00:01:44

这是正常的解决方法:

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

您运行“make check_pm_syntax”,它会关闭并为它可以找到的所有 *.pm 文件运行 shell 循环。如果您愿意,您可以简单地将 check_pm_syntax 列为 all 目标的先决条件(但这意味着您在构建 all 时始终会工作)代码>)。唯一会导致问题的情况是目录中没有 *.pm 文件。

This is the normal workaround:

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

You run 'make check_pm_syntax' and it goes off and runs the shell loop for all the *.pm files it can find. You can simply list check_pm_syntax as a pre-requisite for your all target if you like (but it means you'll always do work when you build all). The only time this causes trouble is if there are no *.pm files in the directory.

雄赳赳气昂昂 2024-08-12 00:01:44

这是一个稍微不同的方法:

.PHONY: check_%.pm
check_%.pm:
    perl -c $*.pm

check_all: $(addprefix check_,$(wildcard *.pm))

Here's a slightly different approach:

.PHONY: check_%.pm
check_%.pm:
    perl -c $*.pm

check_all: $(addprefix check_,$(wildcard *.pm))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文