Переменный список аргументов в Makefile - PullRequest
0 голосов
/ 01 апреля 2012

Я хотел бы сделать что-то вроде следующего. Я хотел бы иметь список переменных аргумента для Makefile.

make VAR_ARG_LIST=src1,src2,src3,src4

Могу ли я сделать это? Если я могу, как мне извлечь src1, src2 или src3 из переменной VAR_ARG_LIST внутри файла Makefile?

Спасибо,

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Если вы хотите использовать список целей в макросе для make, используйте пробелы для их разделения (и кавычки для их включения) в командной строке:

make VAR_ARG_LIST="src1 src2 src3 src4"

Это можно использоватьвнутри makefile без особых проблем:

PROGRAMS = ${VAR_ARG_LIST}

all:  ${PROGRAMS}

, и он отключится и создаст программы src1, ... src4 из остальных правил в makefile.

Если это не совсем то, что вам нужно, тогда вам нужно уточнить свой вопрос.

0 голосов
/ 01 апреля 2012

Вы действительно не предоставили достаточно информации для решения.Почему вы хотите извлечь эти значения?Что вы хотите с ними сделать?

Однако я могу ответить на заданный вами вопрос и надеюсь, что он будет полезен.Если вы используете GNU make, вы можете сделать это:

COMMA := ,
VAR_ARG_LIST_A := $(subst $(COMMA), ,$(VAR_ARG_LIST))
VAR_ARG_LIST_1 := $(word 1,$(VAR_ARG_LIST_A))
VAR_ARG_LIST_2 := $(word 2,$(VAR_ARG_LIST_A))

и т. Д.

...