automake
& autoconf
を使用して、マルチパッケージソフトウェアを構築しています。私はどのように出力変数で変数を埋めるのかと思いました。シェルスクリプトを一回使用して再利用します。必要なため、ここで:=
の代わり=
を使用してdirsにautomake変数を1回だけ評価する
INCLUDES := -I`some-ext-config --incdir`
を含め、この変数は一度埋めますのでsome-ext-config
は(私の知る限り、これは平野make
から来ている)を1回呼び出されます。もちろんINCLUDES
は減価償却された従兄弟AM_CPPFLAGS
ですが、私はその代わりにシェルスクリプトを呼び出すようにしました。
AM_CPPFLAGS
の代わりにINCLUDES
を使用すると、(私は移植性の問題があるとは思いますが)私には受け入れられる解決策ですが、私は解決策がありません。私はこれらの外部ツールが複数回呼び出されていないことを確認したい場合は、libtoolライブラリのためのLDFLAGSは
libmylib_la_LDFLAGS := `some-ext-config --ldflags` # will always be evaluated
automake
内部の一般的な解決策は何ですか?私たちのパッケージがサブディレクトリ(そこにはconfigure.ac
である)とトップレベルからの再帰的なmakeとそこにあるconfigure.ac
の両方からビルドできることを確認しなければならないので、に明白なAC_SUBST
を使用しないようにしたいと思います。異なるサブプロジェクトについてあまり知っている必要はありません。
私は、これを 'configure.ac'にいくつかの外部の理由で入れておきたいと書いています。 –
@honk:これらの外部的な理由(例えば 'AC_CONFIG_SUBDIRS'を使う)を修正したり、移植可能なMakefileを書き留めたりする必要があります。 – adl
外部の理由は、最下位の 'Makefile.am'のサブディレクトリ' Makefile'sに 'AC_OUTPUT'を追加するだけで、各サブディレクトリ('限り私たちのビルド)。私たちはGNU makeに移植する必要があるだけですが、これらのautomake変数を一度しか埋める方法がないことを正しく理解していますか? –