インストールすると再コンパイルされます
質問
私はマスターメイクファイルを書いています複数のAutoConfベースのライブラリをコンパイルしてインストールしています。すべてが最初の外出先にうまく機能します。この問題は次のとおりです。個別にこれらのライブラリのいずれかに取り組んでいて、「作る&& make install」が接頭辞フォルダ内のヘッダーファイルを上書きします(たとえそれらが未着であっても)。これにより、すべての従属ライブラリが最初からコンパイルされます。
メイクファイルにハッキングせずに不要な再コンパイルを回避する方法はありますか?
解決
おそらく解決策は少し遅れているが
./configure INSTALL="install -p"
.
再コンパイルの問題を修正しました。このフラグにより、GNUインストールはインストールされているファイルのタイムスタンプを組み込みファイルのタイムスタンプに設定させます。
他のヒント
依存グラフを確立するためだけに存在する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 $@
.
それでは、libx-builtが新しい場合にのみ依存性のlibyビルドを作成します。
liby-built \
: liby.tar.gz libx-built \
; ...
. 所属していません StackOverflow