LINUX.ORG.RU

помогите с Makefile'ом

 , ,


0

1

помогите, плиз, разобраться с таким кусочком:

$(foreach src, $(stmmac-srcs), \
    $(eval R := $(shell bash -c "svn info $(CDIR)$(src) | grep Revision | sed 's/Revision: //'")) \
    $(shell bash -c "echo $(src) rev.$(R) > /dev/stderr") \
    ifeq ($(shell test $(R) -gt $(REV); echo $$?),0) \
        REV := $(R) \
        $(shell bash -c "echo $(R) set to $(REV) > /dev/stderr") \
    endif \
)

приводит к выводу типа
main.c rev.652
652 set to 0

если «REV := $(R)» заменить на что-нибудь типа «$(eval REV := $(shell echo $(R)))», то REV таки переписывается, но вылезает ошибка на строчке с foreach

Makefile:32: *** missing separator. Stop

что делать? идеи кончились :(

Ответ на: комментарий от tailgunner

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

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)

Так, вроде, работает.

REV := 0

$(foreach src, 10 5, \
	$(eval R := $(shell bash -c "echo $(src)")) \
	$(shell bash -c "echo $(src) rev.$(R) > /dev/stderr") \
	$(if $(shell test $(R) -gt $(REV) && echo yes), $(eval REV := $R)) \
)

$(info result = $(REV))
$ make
10 rev.10
5 rev.5
result = 10
xaizek ★★★★★
()
Ответ на: комментарий от xaizek

пасиба, буду знать... то-то endif в виме не подсвечивался %)

metawishmaster ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.