sho*_*a T 6 bash shell makefile
我有以下makefile,有两个规则.
有没有办法并行运行这两个规则,我的意思是最大化核心的能力?我看到这一节但不确定我是如何将它用于我的目的,因为我想在makefile中而不是从命令行处理它.
即并行运行module1和2目标.
这是makefile:
all: module1 module2
.PHONY: module1
module1:
@echo "run module 1"
DIR=$(PWD)
@echo $(DIR)
.PHONY: module2
module2:
@echo "run module2”
cleanup:
fzr clean $(DIR)
Run Code Online (Sandbox Code Playgroud)
您可以make通过makefile本身的命令行调用来设置您经常传递的选项.将此行添加到makefile中
MAKEFLAGS += -j2
Run Code Online (Sandbox Code Playgroud)
并且你可以在make没有-j标志的情况下调用它,当它们不相互依赖时,它仍会产生两个并行构建目标的进程.要自动确定要生成的作业数,可以在linux上使用它
NPROCS = $(shell grep -c 'processor' /proc/cpuinfo)
MAKEFLAGS += -j$(NPROCS)
Run Code Online (Sandbox Code Playgroud)
并在MacOS上
NPROCS = $(shell sysctl hw.ncpu | grep -o '[0-9]\+')
MAKEFLAGS += -j$(NPROCS)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1760 次 |
| 最近记录: |