0

我想解析makefile中的变量,这个变量有下一个语法:

VARIABLE=folder1=file1,folder2=file2,...,folderN=fileN

在这里我想用它做什么:

ifdef VARIABLE
#
# here I want to assign FOLDER to "folder1, folder2... folderN" in the loop
# and then compare it with current folder
#  
ifeq ($(FOLDER),$(CURRENT_FOLDER))
#
# if true assign FILE1=file1 
#
export MYFILE := FILE1
endif
else
export MYFILE = default_name
endif

我怎样才能做到这一点?

4

1 回答 1

1

如果您将分隔符更改为,其他分隔符,:例如

VARIABLE=folder1=file1:folder2=file2:...:folderN=fileN

你可以拆分列表

L=$(subst :, ,$(VARIABLE))

提取文件夹(如果有)

E=$(filter $(CURRENT_FOLDER)=%, $L)

并将最后一部分分配=MYFILE

ifneq ($E,)
export MYFILE := $(patsubst $(CURRENT_FOLDER)=%,%,$E)
else
export MYFILE = default_name
endif
于 2013-02-13T16:15:38.463 回答