翻開 GNU Make manual,5.4 Parallel Execution 中說 make 就是知道如何平行的執行 makefile 中的 "recipe"
GNUmake
knows how to execute several recipes at once. Normally,make
will execute only one recipe at a time, waiting for it to finish before executing the next. However, the ‘-j’ or ‘--jobs’ option tellsmake
to execute many recipes simultaneously.
光這樣子看還是不太清楚這是在說什麼,從這個文章(https://www.cmcrossroads.com/article/pitfalls-and-benefits-gnu-make-parallelization)看就比較清楚,就是說 Make 可以同時執行多個彼此間沒有相依關係的動作。
Make 的基本形式中,"recipe" 是我們實際要讓 Make 做的動作。通常一個 target 的動作是有先後關係的,不過因為一般 makefile 中存在不只一個 target,不同 target 間就不一定有相依關係,這時 Make 就可以同時去執行這些不相依的 target 裡的動作。
target … : prerequisites … recipe … …