web-dev-qa-db-ja.com

Autoconfに.m4ファイルを含める方法は?

Autoconf Archiveからマクロをダウンロードしましたが、使いたいです。このマクロを使用するには、configure.acファイルに何を入力する必要がありますか?

24
petersohn

AC_CONFIG_MACRO_DIRをconfigure.acのマクロがあるディレクトリに追加することをお勧めします。

AC_CONFIG_MACRO_DIR([path/to/macros])

このファイルのどこかでマクロを呼び出す必要もあります。

Makefile.amでは、おそらくACLOCAL_AMFLAGSを設定する必要があります(automakeを使用している場合)。

ACLOCAL_AMFLAGS         = -I path/to/macros

次に、autoreconf -fviを呼び出すと、設定が完了します。

33
ldav1s

まったく同じ質問があり、思ったより答えを見つけるのが大変でした。 AC_CONFIG_MACRO_DIRが欲しかったように見えましたが、libtoolizeを使用していない場合は、現在AC_CONFIG_MACRO_DIRは役に立たないようです。

Automakeを使用している場合、上記の答えは正しいと思います。

私はautomakeを使用していないので、私が見つけた唯一の方法は、m4_includeマクロを使用して各.m4ファイルを個別に取り込むことです。私はここでこのアプローチを見つけました:

http://www.flameeyes.eu/autotools-mythbuster/autoconf/macros.html

お役に立てれば。 (autoconfがどのくらいの期間使用されているかを考えると、.acファイルでディレクトリを指定するだけの組み込みの方法がないことに少し戸惑います。それは非常に一般的なユースケースのようです。ああ、そうですね。)

11
Chris

Idav1sのソリューション(絶対に正しい)の代わりに、aclocalがマクロを見つける場所にマクロをインストールできます(_aclocal --print_を使用してaclocalが探している場所を確認します_.m4_ファイルの場合)。それぞれのアプローチには長所と短所があります。 $(aclocal --print)に_.m4_ファイルをインストールすると、何もしなくてもすべてのプロジェクトでマクロを使用できます。主な欠点は、プロジェクトに取り組む各開発者がボックスにマクロをインストールする必要があり、各開発者がautotoolsを合理的に理解している必要があることです。

7
William Pursell

私にもこの問題があり、修正したばかりです。私の環境は次のとおりです:CentOS 6.4、M4 1.4.17、autoconf 2.69、libtool 2.4、automake 1.14

これが私が使用したステップです。

add m4 as AC_CONFIG_MACRO_DIR to your configure.ac
rm aclocal.m4  if it exists
mkdir m4       if it does not exist
# copy some dummy files into the folder 
# or some versions of autoconf  won't work   
autoreconf -i --install    
4
DAG

M4マクロを特定のディレクトリに保存し、-Iオプションを指定してautoreconfを実行するだけでは不十分です。

autoreconf -i -I/path/to/your/m4/file

それとも、私はあなたを誤解していて、autoreconfを実行している人がm4ファイルのダウンロードについて心配することなく、それを永続的に統合したいですか?

3
ph0t0nix