1

autotools を使用して C プログラムのビルド システムを作成しようとしています。しかし、 を読んだ後でinfo automakeも、開発者がどのツールを呼び出すかについて非常に混乱しています。

非常に単純な Hello World アプリケーションについて考えてみましょう。アプリケーションのルート ディレクトリには、単純なsrc/hello.cものしかありません。configure作成するためにどのツールをどの順序で呼び出す必要がありMakefileますか?

最初にautoscan来てconfigure.ac. 次にautoheader、ヘッダー ファイルを作成するようです (なぜですか?)。次に、autoconf最終的にconfigureスクリプトを作成します。これにより、最終的にconfig.h.

ただし、Makefileによって作成されたと思われる がまだありませんが、これには生成方法がわからない がautomake必要です。Makefile.amこのファイルは開発者によって生成されたものですか、それとも手書きですか?

4

2 に答える 2

2

autotools の機能は、エッジがぼやけがちです。ここに順序を説明する適切なフローチャートがあります。通常はMakefile.am手書きです。多くのプロジェクトでは、単純なシェル スクリプトをソース ツリーの最上位、autogen.shつまりinitgen.sh. 私が使用するautogen.sh

#! /bin/sh

case `uname` in Darwin*) glibtoolize --copy ;;
    *) libtoolize --copy ;; esac

aclocal -I m4 --install
autoheader
autoconf

automake --foreign --add-missing --force-missing --copy

これは今でも私が見た中で最高の実用的なガイドの 1 つです。単行本でも販売されていると思います。

于 2012-07-01T05:07:00.700 に答える
1

Makefile.am は次のようになります。

bin_PROGRAMS = hello
AUTOMAKE_OPTIONS = foreign
hello_SOURCES = src/hello.c

automake を実行すると Makefile.in が作成されます

于 2012-07-03T10:48:46.317 に答える