如果一个文件比另一个文件新,如何在Makefile中运行命令?

如果一个文件比另一个文件新,如何在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

如果一个文件('glide.lock')比一个目录('vendor')新,我尝试运行一些命令(在下面的示例中,
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的控制之外更新。)