web-dev-qa-db-ja.com

Makefile.amを実行できません。どうすればよいですか?

Linuxでコンパイルして実行するCプロジェクトを入手しました。これは、多くのサブディレクトリを持つ非常に大きなプロジェクトです。親ディレクトリ内には、ファイルMakefile.amおよびMakefile.inがあります。

make -f Makefile.amを実行しようとしましたが、次のエラーが発生しました。

make: Nothing to be done for `Makefile.am'.

どういう意味ですか?どうすれば自分のタスクを達成できますか?

19
sara

これらのファイルは Autotools スイートで使用されます。 Makefile.amファイルは、 automake を使用してMakefileにコンパイルされます。

ディレクトリにconfigureスクリプトがあるかどうかを確認してください。ある場合は、次のように入力します。

./configure

そうでない場合は、以下を実行します。

autoreconf

configureスクリプトを作成するディレクトリにあります(これを実行するには、Autotoolsスイートをインストールする必要があります)。

その後、実行できるconfigureスクリプトが必要になります。

構成が完了すると、ディレクトリに通常のMakefileが作成され、実行できるようになります。

make
20
Lee Netherton

取り残されたもの:

  • Makefile.amは、automakeを使用してMakefile.inに変換されます。
  • Makefile.inは、configureを実行することでMakefileに変換されます。

これら(Makefile。{am、in})はどちらもmake -fで使用することは想定されていません。

Tarballがすでにconfigureに同梱されている場合は、それを実行してmakeします。そうでない場合は、./autogen.shまたはbootstrap(*)を実行します。それが存在しない場合は、代わりにautoreconfを使用してください。

(*)autogen/bootstrap:開発者によって追加された便利なスクリプトshouldautoreconfを呼び出すだけです。残念ながら、autoreconfを避けて、すべての低レベルコマンドを不必要に呼び出す人もいます。

9
user502515

すでに述べたことを補足するには:プロジェクトディレクトリでconfigureというスクリプトを検索します。そこにある場合、プロジェクトの構築は次のようになります。

。/構成、設定

make

オプションで、インストールするには:

Sudo make install

またはsu-c "make install"

configureスクリプトがない場合でも。 1つあるかもしれませんautogen.sh。このスクリプトを実行してconfigureスクリプトを生成し、上記のようにします。

3
subhacom

Makefile.amはおそらく automake で使用されます。

試してください:

automake

あなたも試してみたいかもしれません

make -f Makefile.in

これはautomakeを実行した製品なので

1
Daren Thomas