Ошибка при попытке получить значение из команды в GNU Make - PullRequest
0 голосов
/ 15 октября 2018

У меня следующий код, который запускается в файле make gnu

apps := $(shell tbd run apps)
apps := $(subst ],,$(subst [,,$(app)))

Теперь я хочу напечатать значение приложения, и я попытался с помощью

@echo $(app)

И я получил ошибку

Makefile:12: *** commands commence before first target. Stop.

обновление:

в настоящее время мой код похож на

apps := $(shell tbd run apps)
apps := $(subst ],,$(subst [,,$(apps)))


build:
    @for app in $(apps) ; do \
     bsd start $$app ; \
    done

И если я попробую это так, яполучил ошибку

start: 
   apps := $(shell tbd run apps)
   apps := $(subst ],,$(subst [,,$(apps)))

build:
    @for app in $(apps) ; do \
        bsd start $$app ; \
    done

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы не можете осмысленно поместить вызов функции Makefile внутрь вызова оболочки.Я думаю, вы действительно просто ищете

build:
    tbd run apps \
    | sed 's/\[//;s/\]//' \
    | xargs -n 1 bsd start
0 голосов
/ 15 октября 2018

Если вы просто хотите напечатать что-либо независимо от какого-либо правила, используйте функцию info ...

$(info $(app))
...