设置并检查目标内的空变量

Set and check for empty var inside a target

我创建了一个 make 目标,它从 git ls-files 获取文件列表并将它们传递给编码标准实用程序 phpcs

问题是如果没有文件返回,我不想 运行 它。 (因为它随后会尝试分析整个代码库)

phpcs:
    FS=$$(git ls-files -om --exclude-standard '*.php'); \
    vendor/bin/phpcs --encoding=utf-8 --extensions=php $$FS

第一行设置的$FS为空如何退出?

我运行正在使用 OSX 附带的默认 gnu-make。 (3.8.1)

这不是真正的 makefile 问题。您正在使用 shell 命令来执行这些操作,因此您必须为您的问题想出一个 shell 解决方案:make 没有进入它。

你可以这样做:

phpcs:
        FS=$$(git ls-files -om --exclude-standard '*.php'); \
        test -z "$$FS" || vendor/bin/phpcs --encoding=utf-8 --extensions=php $$FS

PS。没有像 GNU make 3.8.1 这样的版本。你的意思是,我假设,GNU make 3.81.