一个目录中有多个makefile

时间:2012-08-21 15:05:27

标签: makefile

我在我的目录中有一个makefile,它使用某些环境变量集来构建脚本。如果我想在同一目录中创建另一个包含不同环境变量的makefile,该怎么办?我该如何命名这两个make文件? makefile.1makefile.2有效吗?我怎么称呼他们?

4 个答案:

答案 0 :(得分:55)

您可以为makefile.win和makefile.nix等文件提供合理的名称并使用它们:

make -f makefile.win
make -f makefile.nix

或者有一个包含以下内容的Makefile:

win:
  make -f makefile.win

nix:
  make -f makefile.nix

并使用make winmake nix

答案 1 :(得分:9)

实际上,您可以在同一个make文件中拥有两组环境变量。例如

COMPILER = gcc
CCFLAGS1 = -g
CCFLAGS2 = -Wall

a: main.c
        ${COMPILER} ${CCFLAGS1} main.c
b: test.c
        ${COMPILER} ${CCFLAGS2} test.c

然后您可以说make amake b。取决于你想要的。

也可以使用-f标志来调用要调用的makefile。

答案 2 :(得分:7)

您可以根据需要为makefile命名。我通常将其命名为somename.mk。要在以后使用它,你需要告诉make你想要什么makefile。使用-f选项:

make -f somename.mk

答案 3 :(得分:2)

您可以执行类似的操作,而不是为同一目的使用多个makefile。您可以传递环境或将标志设置为同一个makefile。例如:



    ifeq ($(ENV),ENV1)
     ENV_VAR = THIS
    else
     ENV_VAR = THAT
    endif

    default : test

    .PHONY : test
    test:
            @echo $(ENV_VAR)


然后你可以简单地运行带参数的make命令



    make ENV=ENV1