Цитата(Genadi Zawidowski @ Jun 9 2015, 11:07)

Какие требования к make.exe?
У меня 4.1. Директива undefine появилась только в 3.82 (http://stackoverflow.com/questions/20384656/can-we-undefine-unset-a-variable-in-makefile). Кроме того, функция $(file ...) в 3.81 или отсутствует или работает как-то не так.
Подредактировал, теперь работает в 3.81.
Илья
Цитата(501-q @ Jun 9 2015, 11:58)

Подредактировал, теперь работает в 3.81.
Проверил, работает один раз ;-)
В 4.1 по-другому выполняется обработка строк, передаваемых в вызываемую программу.
Вот этот фрагмент:
@$(SED) -e "1s/^.*:/\n$(subst /,\/,$@) $(subst /,\/,$@).d : /" \
-e "\$s/$/ \\\\\n $(subst /,\/,$($(strip $(1))_MK_FILES_{:content:}lt;))\n/" \
< $@.p.d >> $@.d
в 3.81 добавляет строки "\n" вместо символов перевода строки. В 4.1 добавляет переводы строк, как и задумано.
Илья
Цитата(501-q @ Jun 9 2015, 12:17)

в 3.81 добавляет строки "\n" вместо символов перевода строки. В 4.1 добавляет переводы строк, как и задумано.
Вот вариант, который в 3.81 работает правильно.
@$(SED) -e "1s/^.*:/\n$(subst /,\/,$@) $(subst /,\/,$@).d : /" \
-e "\$s/$/ \\\\\\\\\n $(subst /,\/,$($(strip $(1))_MK_FILES_{:content:}lt;))\n/" \
< $@.p.d >> $@.d
Сообщение отредактировал 501-q - Jun 10 2015, 00:25