Сделать установку причин перекомпилирования
Вопрос
Я пишу главный makefile для компиляции и установки нескольких библиотек на основе Autoconf, которые зависят друг над другом.Все хорошо работает для первого года.Вопрос: Если я работаю над одним из этих библиотек индивидуально и выполняю файлы заголовка «Make && Make Install» в папке префикса, перезаписываются (даже если они нетронутыми).Это вызывает все зависимые библиотеки для компиляции с нуля.
Есть ли способ избежать ненужных переголонов, не взламываясь в Makefiles?
Решение
Может быть, решение немного поздно, но
./configure INSTALL="install -p"
.
исправляет проблему перекомпиляции.Этот флаг заставляет GNU установить Timestamps установленных файлов на временные метки созданных файлов.
Другие советы
Вы можете использовать Sentinel файлы, которые существуют только для установления графика зависимости.Например.
prefix := /usr/local
.PHONY: all
all: libx-built
libx-built \
: libx.tar.gz \
; tar xzvf $@ \
&& cd libx \
&& ./configure --prefix=$(prefix) \
&& make && make install \
&& touch $@
.
Тогда вы сделаете зависимые liby Build только тогда, когда Libx-STORM - это новый.
liby-built \
: liby.tar.gz libx-built \
; ...
.