如果一个文件比另一个文件新,如何在Makefile中运行命令?
如果一个文件('glide.lock')比一个目录('vendor')新,我尝试运行一些命令(在下面的示例中,如果一个文件比另一个文件新,如何在Makefile中运行命令?,makefile,Makefile,如果一个文件('glide.lock')比一个目录('vendor')新,我尝试运行一些命令(在下面的示例中,echo) 在一个操作系统上,这可以工作: deps: @test glide.lock -nt vendor; \ RETVAL=$$?; \ if [ $$RETVAL -eq 0 ]; then \ echo dependencies out of date; \ fi 但在另一个(Ubuntu)上,它没有。在两个系统上,手动运行t
echo
)
在一个操作系统上,这可以工作:
deps:
@test glide.lock -nt vendor; \
RETVAL=$$?; \
if [ $$RETVAL -eq 0 ]; then \
echo dependencies out of date; \
fi
但在另一个(Ubuntu)上,它没有。在两个系统上,手动运行test glide.lock-nt vendor
并检查$?
给出正确答案
我怎样才能以最兼容的方式做到这一点呢?这有点像黑客,但是:
vendor: glide.lock
echo dependencies out of date
这有点像黑客,但是:
vendor: glide.lock
echo dependencies out of date
如果测试glide.lock-nt供应商;然后回声。。。;fi?在我的版本工作的计算机上工作,但在它不工作的计算机上不工作。是否希望makefile对该文件或该目录执行其他操作?除了echo之外,真正的makefile还创建或更新目录的内容。(锁文件在Makefile的控制之外更新。)如果test glide.lock-nt供应商;然后回声。。。;fi?在我的版本工作的计算机上工作,但在它不工作的计算机上不工作。是否希望makefile对该文件或该目录执行其他操作?除了echo之外,真正的makefile还创建或更新目录的内容。(锁定文件在Makefile的控制之外更新。)