【发布时间】:2012-06-19 15:49:05
【问题描述】:
我希望执行一个目标的规则,但所有依赖的目标都应认为该目标已满足。
我怎样才能做到这一点?
例子:
$(NETWORK_SHARE)/foo.log:
@echo Warning: server offline, still continue ...
@exit 0
foo.csv: $(NETWORK_SHARE)/foo.log
@echo Long export from a (different) server
@echo sleep 20
@echo foo > $@
如果 $(NETWORK_SHARE)/foo.log 存在:如果 $(NETWORK_SHARE)/foo.log 比 foo.csv 更新,则应重建 foo.csv;否则什么都不会发生(默认)
如果 $(NETWORK_SHARE)/foo.log 不存在(例如,服务器离线、故障等),则只应打印一条指示问题的消息,但仅当 foo.csv 不存在时才应构建 foo.csv存在。
我使用 .PHONY 并返回不同的返回值,但对于情况 2,一旦我在 $(NETWORK_SHARE)/foo.log 上执行某些操作,就会发生昂贵的“导出”...
问候 divB
【问题讨论】:
-
我知道没有干净的方法可以做到这一点,但你可以用命令的条件来混合它......
-
嗨,谢谢你,我已经这样做了,但是,我仍然有问题。我想我找到了一种重新制定的好方法:我想在最新的目标上输出一条消息(执行命令)。