Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Программирование _ makefile - дубли "целей" для повторного использования, как устранить дубли

Автор: sunjob May 2 2018, 09:23

добрый день

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

Код
all: ... size1 build size ...
size1:
    <blah-blah-blah>
size:
    <blah-blah-blah>


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

спасибо

Автор: dima32rus May 2 2018, 11:30

Попробуйте так

Код
all: ... size1 build size ...
size1: size
    
size:
    <blah-blah-blah>

Автор: sunjob May 2 2018, 14:58

пробовал сразу sm.gif не прокатывает, т.к. цель size - должна собираться так же один раз sm.gif а то зачем ей еще раз это делать-то?! rolleyes.gif
а если size уже собрали, то и size1 не надо ничего делать ... в итоге отработает команда в начале, а в конце нет

###!!! 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й вариант, "наиболее понятный" (в меру незнаний), первый - вообще "шайтан-колдовство"

Автор: Сергей Борщ May 2 2018, 19:55

QUOTE (sunjob @ May 2 2018, 17:58) *
###!!! UPDATE !!!### - Решение найдено
А решение "в лоб" не работает?
CODE
.PHONY: size
all: begin size build size end

Автор: demiurg_spb May 2 2018, 20:40

Цитата(Сергей Борщ @ May 2 2018, 22:55) *
А решение "в лоб" не работает?
Телепатирую))) Видимо нет, т.к. хочется видеть разный вывод:
size before: XXX
size after: XXX

Автор: sunjob May 3 2018, 15:17

Цитата
А решение "в лоб" не работает?

ну надо же содержимое хотя-бы читать ... rolleyes.gif

Цитата
для "показа" размера "до" и "после"

+
Цитата
Попробуйте так

-->
Цитата
пробовал сразу не прокатывает, т.к. цель size - должна собираться так же один раз а то зачем ей еще раз это делать-то?!
а если size уже собрали, то и size1 не надо ничего делать ... в итоге отработает команда в начале, а в конце нет


уточню: решение подсказали, целых два, они оба действительно РАБОТАЮТ!

спасибо

Автор: Сергей Борщ May 3 2018, 21:14

QUOTE (sunjob @ May 3 2018, 18:17) *
т.к. цель size - должна собираться так же один раз а то зачем ей еще раз это делать-то?!
Магическая цель .PHONY ни о чем не говорит?

Автор: sunjob May 4 2018, 03:48

ПО ТЕМЕ (попробую еще раз)
- пробовал, ВСЕ возможные варианты, какие только мог "придумать" :о) (вт.ч. и до публикации топика)
- были и вариации с секцией PHONY
- решение подсказали знающие люди (кот. как ни странно, не удивил вопрос/проблема)

к стати, makefile-исходник из "шаблонов" то-ли WinAVR, то-ли AVR-Studio (там тоже решения в лоб не любят, видимо :о)
если у вас есть какие либо варианты решения с примерами, пишите, рассмотрим

спасибо

п.с.
буду/(все мы будем) премного благодарны, если ВЫ предложите ВАШЕ решение в виде примера

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)