3

いくつかのプロジェクトで、 Makefile.am のない Makefile.in を見てきました。例: bash http://git.savannah.gnu.org/cgit/bash.git/tree/および dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

Makefile.in は automake によって生成されたものだとずっと思っていました。また、Makefile.am はユーザーが作成したファイルであるため、コード リポジトリから削除されるとは思いもしませんでした。bash ソース ツリーでは、Makefile.in が大きすぎて手書きできず、dtach の Makefile.in も生成されているように見えます。この 2 つのようなプロジェクトでは、Makefile.in はどのように生成されたのでしょうか?

4

2 に答える 2

5

libtoolとautotoolsはautomake、何をする必要があるかに応じて、互いに独立して (またはまったく使用せずに) 使用できますautoconf。したがって、を生成するために使用する必要はありません。automakeMakefile.in

このautomakeツールは、使用されたことを目立つように出力します。

# Makefile.am から automake 1.11.1 によって生成された Makefile.in。

したがって、Makefile.inあなたが見た s は「手作業で」編集されている可能性があります。

于 2012-06-22T19:55:10.340 に答える
2

Makefile.in は通常の Makefile のように見えますが、通常は構成スクリプトによって完了することが期待されます (たとえば、ユーザーが別のディレクトリに持っているライブラリの場所など)。

Makefile.am は、そのような Makefile.in を構築するために Automake によって使用されます。あなたが使用しているパッケージを作成した開発者がすでに Makefile を持っていて、そのための Makefile.am を書くのが大変だった場合、彼らはそれを Makefile.in に変換しただけです。

于 2012-06-28T14:23:49.727 に答える