1

相互に依存する複数の autoconf ベースのライブラリをコンパイルおよびインストールするためのマスター makefile を作成しています。最初はすべてうまくいきます。問題は、これらのライブラリの 1 つに個別に取り組んでいて、"make && make install" を実行すると、プレフィックス フォルダー内のヘッダー ファイルが上書きされることです (たとえ変更されていなくても)。これにより、すべての依存ライブラリがゼロからコンパイルされます。

メイクファイルをハッキングせずに不要な再コンパイルを避ける方法はありますか?

4

2 に答える 2

1

解決は少し遅いかもしれませんが、

./configure INSTALL="install -p"

再コンパイルの問題を修正します。このフラグは、GNU インストールで、インストールされたファイルのタイムスタンプをビルドされたファイルのタイムスタンプに設定します。

于 2011-10-21T15:48:06.370 に答える
0

依存関係グラフを確立するためだけに存在するセンチネル ファイルを使用できます。たとえば。

prefix := /usr/local

.PHONY: all
all: libx-built

libx-built \
  : libx.tar.gz \
  ; tar xzvf $@ \
  && cd libx \
  && ./configure --prefix=$(prefix) \
  && make && make install \
  && touch $@

次に、libx-built が新しい場合にのみ、依存する liby ビルドを作成します。

liby-built \
  : liby.tar.gz libx-built \
  ; ...
于 2010-07-12T20:50:02.627 に答える