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