ここにアイデアがあります。
インストールしたくないサードパーティライブラリを、noinst/
というサブディレクトリに移動します。例えばBoostのようなものでプロジェクトを出荷したいのであれば、それをディレクトリnoinst/boost/
に解凍してください。 AC_CONFIG_SUBDIRS([noinst/boost])
を使用してください。 noinst/Makefile.am
内では、このような何かを:
SUBDIRS = boost
# Override Automake's installation targets with the command ":" that does nothing.
install:; @:
install-exec:; @:
install-data:; @:
uninstall:; @:
効果が再帰のいくつかは、コマンドトップレベルディレクトリから実行されている「アンインストールが作る」または「*をmake install」をいつでも、再帰はnoinst/
に停止することですそのサブディレクトリにはアクセスしません。他の再帰的なコマンド( "make"、 "make clean"、 "make dist"など)は、引き続きサブディレクトリに再帰します。
もちろん、install:
と友だちを直接サードパーティのパッケージに上書きし、余分なnoinst/
ディレクトリを避けることができます。しかし、あなたが私のような人なら、アップデートを簡単にするために、サードパーティのパッケージを改ざんしたくはありません。 また、上記のセットアップの素晴らしい特性は、誰かがnoinst/boost/
に入り、make install
を実行すると、それが動作するということです。パッケージをインストールするときにデフォルトでは発生しません。
出典
2010-12-02 19:45:19
adl
私はそれを私のツリーの外に保つのが大好きですが、私は外部の依存関係を減らそうとしています。ありがとう、これを試してみましょう。 –
動作しません。私のプログラムの後にライブラリが構築されますが、明らかに動作しません。 –