[英]chaining build targets in Makefile and maintaining order of execution
我有一個 Makefile 按以下方式松散定義
pre_build:
cp build/Dockerfile .
post_build:
echo "complete"
rm Dockerfile
build_docker:
echo "do something with the Dockerfile"
build: pre_build build_docker post_build
但是我的構建總是失敗,抱怨Dockerfile
。 但是,Dockerfile 的實際 pre_build 和實際副本有效。 如果我刪除 post_build 部分,構建完成后我可以在目錄中看到 Dockerfile 。 我一直認為在鏈式 Makefile 目標中,順序保持不變。 但這看起來,在目標上隱式並行構建的順序發生了一些奇怪的事情。
我嘗試了多種強制秩序的方法,但沒有任何效果。
更新:我在 Mac 和 Linux 中嘗試過,同樣的行為
幾乎按照定義,並行構建沒有強制順序。 嘗試這個:
pre_build:
...
post_build: build_docker
...
build_docker: pre_build
...
build: post_build
編輯:
如果pre_build
和post_build
在另一個 makefile 中定義,您可能不會更改,只需執行以下操作:
include Makefile.other
post_build: build_docker
build_docker: pre_build
...
build: post_build
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.