makefile - Как прочитать список из трех элементов? - PullRequest
0 голосов
/ 31 января 2020

Ниже приведен код, который захватывает аргументы тега:

.PHONY: tag

tag:
    ${INFO} "Tag image with tags $(LIST_ARGS)..."
    # use a, b, c

ifeq (tag, $(firstword $(MAKECMDGOALS)))
    LIST_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)), $(MAKECMDGOALS))
    ifeq ($(LIST_ARGS),)
        $(error You must specify a tag)
    endif
    $(eval $(LIST_ARGS):;@:)  # # Do not interpret "tag" arguments as make target files
    # Copy three element list to variables a, b & c 
endif

При работе make tag 1.1 44 ds23,

LIST_ARGS хранит значения 1.1 44 ds23

a должен хранить 1.1

b должен хранить 44

c должен хранить ds23


Как читать каждый значение из этого $(LIST_ARGS) и хранить в отдельной переменной a, b и c соответственно? в рамках задачи tag

1 Ответ

2 голосов
/ 31 января 2020

Нет проблем:

a := $(word 1, $(LIST_ARGS))
b := $(word 2, $(LIST_ARGS))
c := $(word 3, $(LIST_ARGS))

tag:
    ...

(Если это вас не устраивает, мы можем обсудить вопрос дальше.)

...