将make文件作为所有进程运行

时间:2018-06-25 10:04:41

标签: shell makefile gnu-make

我已经创建了这个简单的makefile,我想用make

运行所有进程

同时仅运行第一部分module1而不运行module2, 我在这里想念什么?

.PHONY: module1
module1:
    @echo "run module 1"
    DIR=$(PWD)
    @echo $(DIR)



.PHONY: module2
module2:
       @echo "run module2"

如果我运行make module2,则module2已成功执行,但是我希望所有内容都在make命令中运行,据我在网上阅读的内容,这是应该如何工作的,那是什么地方这里 ?

1 个答案:

答案 0 :(得分:2)

documentation ...

  

默认情况下,目标是makefile中的第一个目标(不计算在内)   以句号开头的目标)。因此,makefile通常是   编写,以便第一个目标是编译整个程序   或他们描述的程序。如果makefile中的第一个规则具有   多个目标,只有规则中的第一个目标成为默认目标   目标,而不是整个清单。您可以管理默认选项的选择   使用.DEFAULT_GOAL变量从makefile中获得目标(请参阅   其他特殊变量)。

因此,您只需要提供合适的默认目标-all是'传统'...

all: module1 module2

因此完整的makefile将是...

all: module1 module2

.PHONY: module1
module1:
    @echo "run module 1"
    DIR=$(PWD)
    @echo $(DIR)

.PHONY: module2
module2:
    @echo "run module2"