使用-j运行make时,是否可以找到正在运行的作业的编号?
例如使用Makefile:
SUBDIRS = a b c
default: all
$(SUBDIRS)::
$(MAKE) -C $@ $(MAKECMDGOALS)
all clean : $(SUBDIRS)
如果我运行make -j4
,我可以回复一些不同的变量吗?
该号码是否可用?
答案 0 :(得分:0)
在此Makefile上运行$ make
...
.PHONY: all clean
files := a b c
all: $(files)
$(files): clean
@echo "Creating file: $@, Unique Job ID: $${$$}"
@touch $@
clean:
@rm -f $(files)
在这种情况下,您的唯一职位编号为$${$$}
。由于美元符号必须以美元符号进行转义,因此这相当于Bash's $$
Process ID Internal Variable。为了进一步说明,Bash中的变量$foo
或${foo}
分别在Make中为$$foo
或$${foo}
。