Makefile.am: Как добавить правило для нового расширения?

Я пытаюсь изменить существующий файл makefile.am, включив в него правило для преобразования расширения * .rc в файл ресурсов. Вот, насколько я могу в настоящее время получить.

mytarget_SOURCES += ico.rc

.rc.o:
windres -i $< $@

Как описано здесь: http://www.gnu.org/software/automake/manual/html_node/Suffixes.html
В сгенерированном make-файле к источникам добавляется ico.rc, а к объектам добавляется ico.o (так что, думаю, это хорошо).

В конце make-файла это правило .rc.o буквально вставляется, но я сомневаюсь, что так и должно быть, верно? Предполагается, что .rc.o является правилом автоматического создания, но это не очень хорошее правило для создания файла ico.o, не так ли?

Когда запускается make, он переделывает make-файл, а затем продолжает жаловаться на отсутствие правила для ico.o. windres, или что я там положил (например, эхо) никогда не запускается. Я пробовал гуглить, но информации мало, и больше всего мне удалось найти копии ссылки, которую я дал выше. Что я делаю неправильно?

3

Решение

Automake просто копирует правила make в сгенерированный Makefile дословно. Так что, пока вы пишете правильный синтаксис make-файла, все в порядке.

Что у вас есть часть действительного неявного суффиксного правила в make. Однако вам не хватает того, что вам нужно определить .rc в качестве действительного суффикса ( .o является частью списка встроенных суффиксов, поэтому вам не нужно добавлять его, если вы просто не хотите завершить его).

Добавьте это также в ваш Makefile.am:

.SUFFIXES: .rc

Увидеть http://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html Больше подробностей.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]