Взгляните на этот раздел в руководстве по автоматике по умолчанию _SOURCES
. Это похоже на поговорку:
bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo
поможет вам пройти первый шаг. Итак, теперь automake знает, где искать первую зависимость (target.foo
), и попросит GCC вычислить зависимости target.foo
на основе имен файлов заголовков, которые включены в этот файл. GCC выкладывает выведенные имена объектов, преобразуя включенные stem.h -> stem.o
. И вот где я врезался в стену. Чтобы ваш скрипт automake был полностью переносимым, вы не можете использовать шаблоны %
. Вы должны использовать суммирование суффиксов, как продемонстрировал Уоллик в своем ответе.
В зависимости от ваших требований переносимости, вы можете просто проигнорировать это и определить неявное правило в Makefile.in как что-то вроде:
%.o : %.foo
$(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<
Если переносимость является строгим требованием, боюсь, вам не повезет без большого количества взлома.