Anjuta公式ドキュメントUsing Autotools翻訳


参照先:
http://library.gnome.org/users/anjuta-build-tutorial/2.26/create-autotools.html.en
 
Using Autotools
 
Autotoolsは主に以下のツールを含む:aclocal,autoconf,automakeおよび本明細書で後述するツール.これらのツールはAutomakeとAutoconfの2つのパッケージに属します.
Autoconfはconfigureを使用する.acはconfigureファイルを生成する.そしてconfigureとMakefileを通ります.inファイルを生成するmakefiles.
  • AutomakeはMakefileを使用する.amはMakefileを生成する.inファイル

  • Figure 3-1   Autotools process
    Now let's see a minimal example to start grasping the relationships between the various files.
  • 3.1.1. 作成ソース
  • 3.1.2.運転Autoconf
  • 3.1.3.運転Automake
  • 3.1.4. コンパイル工事
  • 3.1.5. 除去工事
  • 3.1.6. 生成工程
  • 3.1.1. ソースコードの作成
    新規作成してtut_に入りますProgディレクトリ
  • mainを確立する.cファイル、ファイル内容:
  • #include <stdio.h> 
    	
    int main()
    {
    	printf("Hello world!
    "); return 0; }
     
    3.1.2.運転Autoconf
    作成acファイル:
    AC_INIT([Tutorial Program], 1.0)
    AM_INIT_AUTOMAKE
    AC_PROG_CC
    AC_CONFIG_FILES(Makefile)
    AC_OUTPUT
     
    これをac名前をconfigureと変更します.in .  configure.acファイルは古いバージョンのAutoconf(2001以前のバージョン)でのみ使用される.
    configure.acのAC_INIT, AM_INIT_AUTOMAKE、などはM 4のマクロ定義です.M 4は主にAutotoolsで使用されるマクロ定義に提供され、詳細はしばらく理解する必要はありません.Autoconfがconfigureを処理するとき.inファイルの場合、これらのマクロは複雑なconfigureを生成するために使用されます. 
    AC_INIT
    プロジェクト名とバージョン番号を定義します.
    AM_INIT_AUTOMAKE
    Automakeの環境変数を定義します.Automakeを使用するすべてのプロジェクトにこの項目を含める必要があります.
    AC_PROG_CC
    Cを使用してコンパイル.
    AC_CONFIG_FILES
    生成する必要があるものを指定する.inファイル.(たとえばMakefile.inファイルの生成を指定)
    AC_OUTPUT
    生成されたMakefileファイルのリストを指定します
    異なるバージョンのAutoconfでは、使用するマクロの一部が異なる場合があります.
    パッケージ名とバージョン番号をAMとして使用INIT_AUTOMAKEのパラメータは、AC_を使用しないINIT.
  • AC_を使用OUTPUTは、AC_を使用せずに生成されたファイルのリストを指定します.CONFIG_FILES.

  • Autoconfは内部で定義マクロとaclocalを読み取り専用に取る.m 4のマクロ利用するm 4ファイルは、Automakeマクロ(AM_で始まるマクロ)およびいくつかのサードパーティマクロを含むAutoconfを拡張するために使用することができる.例えばfooというライブラリを開発する必要がある場合はaclocalでm 4にAC_という名前を追加CHECK_FOR_FOOのマクロは、他の人がAutoconfで依存検査に呼び出すことができる.
    aclocalを使用してconfigureを通過することができる.acファイルはaclocalを確立する.m 4ファイル.aclocalはAutomakeパッケージの一部であり、/usr/share/aclocalの下にあるファイルを取得します.
    aclocalを実行します.現在のディレクトリにaclocalを作成します.m 4ファイル
  • autoconfを実行する.現在のディレクトリにconfigureファイル
  • を作成する
    私のシステムでは
    autom4te.Cacheファイルの使用
    Autoconfの内部使用、
    私たちは彼を理解する必要はありません.
    3.1.3.Automakeの実行
    Makefileを作成します.amファイル:
    bin_PROGRAMS = tut_prog			
    tut_prog_SOURCES = main.c
     
    Makefile.amの中のtut_progは$prefix/bin/にインストールされます.もう一つmainが必要です.c .mainのコンパイル方法を特に指定する必要はありません.c:Automakeは自動的に一致します.AutomakeはMakefileを使用する.amファイル生成Makefile.in.その後configureが変数の一部を置き換え、最終的にMakefileを生成します.
    Automake--add-missing--foreignを実行し、Makefileを生成します.inファイル.ここで、add-missingパラメータは、いくつかのコンパイルエンジニアリングに必要なファイルを自動的に生成するために使用されます:depcomp,install.shとmissing.--foreignパラメータはAutomakeにGNUの基準に従って工事をコンパイルしたくないことを伝えるために使用され、INSTALL、NEWS、README、AUTHERS、ChangeLog、COPYINGファイルを強制的に生成する必要はありません.ここではプレゼンテーションのためにこれらのパラメータを追加します.良い提案は、これらのファイルを作成するべきで、空いていても大丈夫です.
    3.1.4. コンパイル工事
    実行:./configure . 次の情報が表示され、Makefileファイルが得られます.
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables... 
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for style of include used by make... GNU
    checking dependency style of gcc... gcc3
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: executing depfiles commands
     
  • makeコンパイラを実行する.次の出力があり、実行可能ファイルtut_が生成されます.prog
    gcc -DPACKAGE_NAME=\"Tutorial\ Program\" -DPACKAGE_TARNAME=\"tutorial-program\"   \
            -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"Tutorial\ Program\ 1.0\"     \
            -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"tutorial-program\" -DVERSION=\"1.0\" \
            -I.     -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
    main.c: In function ‘main’:
    main.c:5: warning: return type of ‘main’ is not ‘int’
    mv -f .deps/main.Tpo .deps/main.Po
    gcc  -g -O2   -o tut_prog main.o
     
  • /usr/local/binにインストールしたい場合はroot権限を使用してsudo make installを実行できます.
    make[1]: Entering directory `/home/seb/Projects/Tutorial'
    test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
      /usr/bin/install -c 'tut_prog' '/usr/local/bin/tut_prog'
    make[1]: Nothing to be done for `install-data-am'.
    make[1]: Leaving directory `/home/seb/Projects/Tutorial'
     

  • 3.1.5.クリーンアップ工事
    プログラムがインストールされると、make cleanコマンドを使用して、現在のディレクトリでmakeが生成したファイルを消去できます.
    test -z "tut_prog" || rm -f tut_prog
    rm -f *.o
       
  • プログラムをアンインストールする必要がある場合はroot権限を使用してmake uninstallコマンド
    rm -f '/usr/local/bin/tut_prog'
  • を実行できます.
    3.1.6. 生成工程
    aclocal、automake、autoconfを手動で実行すると、何が起こっているのかを知ることができます.しかし、本当の工事としては退屈な仕事になります.autoheader、autopoint、libtoolizeなどのツールを使う必要があるかもしれません.また、プロジェクトを構築した後、configureファイルとMakefileを再生成する必要があることもよくあります.Inファイル(クラスを追加したり、新しいライブラリ依存性があるなど).この状況では、次の2つの方法を使用できます.
    autoreconf
    Autoconfが提供する別のツール.新規プロジェクトを作成してautoreconf--installを直接実行すると、適切なプロファイルが生成されます.(Makefile.am configure.inを提供することが前提です)
    autogen.sh
    shellファイルだけで、同じ機能を提供します.GNOME汎用開発パッケージにはgnome-autogenという名前があります.sh、他の工事ではもっと違う名前があるかもしれません.
     
    =====================================================
    最後に、よりイメージ的な理解のために、IBMドキュメントライブラリにMakefileの関係画像を生成します.
     
    Anjuta官方文档 Using Autotools翻译