makefile: encontre uma posição da palavra em uma variável
No meu makefile, preciso fazer uma atribuição de variável com base em um valor variável da linha de comando. por exemplo, eu faço:
make var_1=xxx
Ondevar_1
pode ter um dos, digamos, 100 valores possíveis. Com base no valor devar_1
, Preciso atribuir um valor avar_2
no meu makefile. Eu poderia fazer
ifeq ($(var_1), a)
var_2 = A
endif
ifeq ($(var_1), b)
var_2 = B
endif
e assim por diante para todas as 100 combinações possíveis devar_1
, var_2
. Aquia
,A
,b
,B
representa algumas strings. Como faço para evitar centenas deif
afirmações? Eu estava pensando em definir duas variáveis:
var_1_values = a b c d
var_2_values = A B C D
Eu posso usar$(findstring $(var_1),$(var_1_values))
para ver se$(var_1)
está entre$(var_1_values)
, mas como localizo a posição de$(var_1)
entre todos$(var_1_values)
? Essa posição deve ser usada para escolher a palavra correspondente dentro de$(var_2_values)
.