将字符串传递给make文件

时间:2012-03-30 21:40:59

标签: gnu-make

我想做以下事情。我不知道是否可以这样做。如果可能的话我想知道怎么做。

make VAR1=arg1,arg2,arg3

基于arg我想将一个开关传递给gcc。

例如,

如果传递了arg1和arg2,我想定义一个开关,如果传递了arg2和arg3,我想在make文件中定义另一个开关。我怎么做?

2 个答案:

答案 0 :(得分:0)

您检查过GMSL吗?

http://gmsl.sourceforge.net/

conditional-directive
text-if-true
endif

https://stackoverflow.com/a/180818/643500

...

如果你想用逗号分隔它,那么你可以拆分字符串并将其传递给if语句。

答案 1 :(得分:0)

在makefile中使用make VAR1="arg1 arg2 arg3"

ifeq (arg1 arg2,$(findstring arg1,$(VAR1)) $(findstring arg2,$(VAR1)))
# define a switch
endif

ifeq (arg2 arg3,$(findstring arg2,$(VAR1)) $(findstring arg3,$(VAR1)))
# define another switch
endif

如果有很多这些开关,你可以定义一个宏来简化makefile。