Отслеживание автоматических зависимостей для нестандартного суффикса C ++
Вопрос
Как я могу заставить Automake генерировать отслеживание зависимостей для нестандартных файлов суффикс C ++? В частности, я имею в виду генерирование файла файла каталогов .DEPS. Я также использую Libtool.
Спасибо
Решение
Взгляни на В этом разделе в руководстве по автоматическому руководству по умолчанию по умолчанию _SOURCES
. Анкет Похоже, говоря:
bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo
Оставит вас мимо первого шага. Итак, теперь Automake знает, где искать первую зависимость (target.foo
), и он попросит GCC вычислить зависимости target.foo
На основании имен файлов заголовка, которые включены в этот файл. GCC выплевывает имена предполагаемых объектов, преобразуя включенные stem.h -> stem.o
. Анкет И вот где я попал в стену. Чтобы ваш сценарий Automake был полностью переносимым, вы не можете использовать %
узоры. Вы должны использовать укладку суффиксов, как продемонстрировал Уоллик в его ответе.
В зависимости от ваших требований к мобильности, вы можете просто игнорировать это и определить неявное правило в Makefile. В чем -то вроде:
%.o : %.foo
$(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<
Если переносимость является строгим требованием, я боюсь, что вам не повезло без большого количества взломов.
Другие советы
Добавьте неявное правило. Например, для компиляции *.foo
Файлы с использованием компилятора Foo foocc
:
.foo.o:
foocc -c -o $@ $<