使用make从许可证服务器借用编译器许可证?

时间:2009-08-12 09:35:05

标签: licensing makefile

我们在项目中使用递归make。我们还使用具有FlexLM许可证的商业嵌入式编译器(diab)。

我们目前正在添加许可借用作为每个目录中顶级目标的依赖。

像这样:

.PHONY: target
target: borrow_compiler $(TARGETLIB)
    $(RETURN_COMPILER)

.PHONY : borrow_compiler
borrow_compiler:
    @$(BORROW_COMPILER) 300

其中BORROW_COMPILERRETURN_COMPILER是获取许可证的脚本。

我们的问题是,由于与每个递归子目录的许可证服务器通信,在一次小的更改后构建需要很长时间。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

解决方案是看MAKELEVEL。现在许可证只是在顶级品牌中借用。所有级别的makefile都包含此内容:

ifeq ($(MAKELEVEL),0)
    BORROW_COMPILER = python $(relativeToolPath)scripts/borrowCompilerLicence.py
    RETURN_COMPILER = python $(relativeToolPath)scripts/returnCompilerLicence.py
else
    # true does nothing
    BORROW_COMPILER = true
    RETURN_COMPILER = 
endif

答案 1 :(得分:0)

如何在makefile中执行,而不是在makefile中编写make程序包装器,然后使用参数调用make,并在make返回后返回许可证?如果要强制使用make包装器,可以在makefile中检查是否设置了一些特殊的环境变量。