Make install вызывает перекомпиляцию - PullRequest
1 голос
/ 13 июля 2010

Я пишу основной make-файл для компиляции и установки нескольких библиотек на основе autoconf, которые зависят друг от друга. Все работает хорошо с первого раза. Проблема заключается в следующем: если я работаю с одной из этих библиотек по отдельности и не выполняю перезапись файлов заголовка «make && make install» в папке префикса (даже если они не затронуты) Это приводит к компиляции всех зависимых библиотек с нуля.

Есть ли способ избежать ненужных перекомпиляций без взлома make-файлов?

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Возможно решение немного запоздало, но

./configure INSTALL="install -p"

исправляет проблему перекомпиляции. Этот флаг заставляет GNU install устанавливать временные метки установленных файлов на временные метки встроенных файлов.

0 голосов
/ 13 июля 2010

Вы можете использовать сторожевые файлы, которые существуют только для установления вашего графа зависимостей.Например,

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, только когда libx-build нов.

liby-built \
  : liby.tar.gz libx-built \
  ; ...
...