在我的Makefile中,我有一些代码可以检查网络连接。这段代码需要相当长的时间才能运行,我只想在另一个目标无法构建的情况下运行它。
all: files network
# compile files
files:
# get files from network resources
network:
# check for network connectivity
# echo and return an error if it's not available
执行顺序:
if not network:
# exit with error
if not files:
# exit with error
if not all:
# exit with error
在上面的例子中,我希望network
目标是“制作”的,只有files
目标无法“制作”。
执行顺序:
if not files:
if not network:
# exit with error
if not all:
# exit with error
答案 0 :(得分:19)
递归制作是你的朋友,我很害怕。
.PHONY: all
all:
${MAKE} files || ${MAKE} network
如果make files
成功,您的工作就完成了,退出代码就成功了。失败时,退出代码为make network
。