[英]Run makefile with command in order
当您在CLI中输入make时,我有以下运行所有目标的Makefile,我知道您可以使用特定的目标运行make,但是有没有一种方法可以通过目标的几个运行make?
例如通过cli run module1 pack cleanup
用这个命令
- 模块1
- 包
- 清理
(为此,module2将不会运行),并且我不想为上述3个步骤创建新目标。
all: module1 module2
.PHONY: module1
module1:
@echo "run module 1"
DIR=$(PWD)
@echo $(DIR)
.PHONY: module2
module2:
@echo "run module2”
pack:
pack $(DIR)
cleanup:
gbt clean $(DIR)
您可以为此使用MAKECMDGOALS
。 就像是:
PACK := $(filter pack,$(MAKECMDGOALS))
CLEANUP := $(filter cleanup,$(MAKECMDGOALS))
module1: $(PACK) $(CLEANUP)
...
module2: $(PACK) $(CLEANUP)
...
pack:
pack $(DIR)
cleanup:
git clean $(DIR)
如果您未在命令行中指定pack
或cleanup
目标,则关联的变量PACK
和CLEANUP
将为空字符串,并且不会被列为module1
或module2
等的先决条件。
您不想“按顺序”运行它们。 make的全部目的是决定要做什么和以什么顺序进行。 Makefile用于列出规则和依赖性,因此make可以正常工作。
如果要命令按顺序运行,请编写脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.