LINUX.ORG.RU

makefile - дубли «целей» для повторного использования, как устранить дубли

 


1

1

добрый день

в makefie для «показа» размера «до» и «после» используется след. конструкция (с дублями целей)

all: begin ... size1 build size ... end
size1:
  <blah-blah-blah>
size:
  <blah-blah-blah>

как можно «извернуться», что-бы «оставить только одну цель» с возможностью «вызывать ее дважды»? надеюсь обьяснил понятно...

спасибо

★★

define measure_size
$1:
  <blah-blah-blah>
endef

$(call measure_size, size)
$(call measure_size, size1)

Или может можно так (не пробовал, но суть примерно та же):

define measure_size
  <blah-blah-blah>
endef

size:
  $(measure_size)

size1:
  $(measure_size)

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

!!! СП-А-А-А-С-И-И-И-Б-О-О-О !!!

второй вариант проканал :о)

all: begin size1 build size end

define size_prc
  <SIZE_CMD>
endef

size1:
  $(size_prc)
	
size:
  $(size_prc)

первый выдает ошибку

all: begin size1 build size end

define size_prc
$1:
  <SIZE_CMD>
endef

$(call size_prc, size1)
$(call size_prc, size)

-->
make: *** No rule to make target `@if', needed by `size1'.  Stop.

тяму пока не хватает «раскалдовать» :о)

sunjob ★★ ()
Последнее исправление: sunjob (всего исправлений: 4)
Ответ на: комментарий от xaizek

СПАСИБО

да Вы, ... да ВЫ - калдун!

###!!! UPDATE !!!### - Решение найдено

итого, два решения, колдуны подсказали


#
# var.1
#
all: begin size1 build size end

define size_prc
$1:
  <SIZE_CMD>
endef

$(eval $(call size_prc, size1))
$(eval $(call size_prc, size ))

#
# var.2
#
all: begin size1 build size end

define size_prc
  <SIZE_CMD>
endef

size1:
  $(size_prc)

size:
  $(size_prc)

оба прекрасно отрабатывают, мне больше понравился 2й вариант, «наиболее понятный» (в меру незнаний), первый - вообще «шайтан-колдовство»

sunjob ★★ ()
Последнее исправление: sunjob (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.