如何定义变量然后在目标[Makefile]中编译

时间:2015-11-02 14:29:57

标签: c++ makefile

有一个Makefile我只想调整一个变量然后编译,如果我调用一个特定的目标。我有一个有效的解决方案,但它不是一个好的解决方案。

我如何编译:

make

我想如何更改变量:

make debug

需要发生什么(它是如何工作的):

debug:
    @make TAG=debug

我基本上在制作过程中调用make,它可以完成工作,但似乎也不正确。我正在寻找类似的东西:

debug:
    TAG=debug
    jump to first line and do the job

1 个答案:

答案 0 :(得分:0)

TAG=release

build:
    @echo $(TAG)

debug: TAG=debug
debug: build

release: build

用法:

> make
release
> make release
release
> make debug
debug

<强>更新 在构建先决条件中使用TAG

TAG=release

pre:
    @echo pre build $(TAG)

build: pre
    @echo $(TAG)

debug: TAG=debug
debug: build

release: build

输出:

~/workspace (master) $ make build
pre release
release
~/workspace (master) $ make debug
pre debug
debug
~/workspace (master) $ make release
pre release
release