Я пытаюсь изменить существующий файл 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, или что я там положил (например, эхо) никогда не запускается. Я пробовал гуглить, но информации мало, и больше всего мне удалось найти копии ссылки, которую я дал выше. Что я делаю неправильно?
Automake просто копирует правила make в сгенерированный Makefile дословно. Так что, пока вы пишете правильный синтаксис make-файла, все в порядке.
Что у вас есть часть действительного неявного суффиксного правила в make. Однако вам не хватает того, что вам нужно определить .rc
в качестве действительного суффикса ( .o
является частью списка встроенных суффиксов, поэтому вам не нужно добавлять его, если вы просто не хотите завершить его).
Добавьте это также в ваш Makefile.am:
.SUFFIXES: .rc
Увидеть http://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html Больше подробностей.
Других решений пока нет …