我已经创建了这个简单的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
命令中运行,据我在网上阅读的内容,这是应该如何工作的,那是什么地方这里 ?
答案 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"