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ファイル、ファイル内容:
3.1.2.運転Autoconf
作成acファイル:
これを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ファイル:
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ファイルが得られます. makeコンパイラを実行する.次の出力があり、実行可能ファイルtut_が生成されます.prog /usr/local/binにインストールしたい場合はroot権限を使用してsudo make installを実行できます.
3.1.5.クリーンアップ工事
プログラムがインストールされると、make cleanコマンドを使用して、現在のディレクトリでmakeが生成したファイルを消去できます.プログラムをアンインストールする必要がある場合はroot権限を使用してmake uninstallコマンド を実行できます.
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の関係画像を生成します.
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.
Figure 3-1 Autotools process
Now let's see a minimal example to start grasping the relationships between the various files.
新規作成してtut_に入りますProgディレクトリ
#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.
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ファイル
私のシステムでは
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
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
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
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の関係画像を生成します.