1.autoconfautoconfは最終的にconfigureスクリプトを作成するものです。簡単に言えば、autoconfはconfigureスクリプト作成支援ソフトといいかえることができます。
configureスクリプトは、Makefileとconfig.hヘッダファイルを作成するシェルスクリプトです。
具体的には、configureスクリプトは、ある関数が存在するか否か、あるいは、あるファイルが存在するか否かを検査し、Makefileとconfig.hファイルを作成します。
例えば、mmac()関数がターゲットシステムに存在している場合、生成するconfig.hでは以下のようなマクロが定義され、機種依存な部分をソースプログラム中ではこのマクロを利用しコンパイル時のソースを切り替えることが可能になります。
autoconfの目指す目的とは、システム依存の関数などのための、ソースプログラム中の、例えば、#define HAVE_MMAC 1などの厄介な定義を排除することにあります。#ifdef SOLARISなどのやり方は、新しいプラットフォームに対応する度に、その定義を追加していかなければならないのです。これは作成者にとって、大変面倒でコストのかかる仕事になります。#ifdef SOLARIS
また、configureスクリプトを使っていない配布パッケージの場合、例えば次のようなことをエンドユーザに強いる場面に遭遇します。自分のシステムに合わせてこのようにconfig.hを編集することは、エンドユーザにとって大変に面倒なことで混乱も生じさせます。作成者、エンドユーザ双方のこれらの負担を軽減するのが、autoconfの目的なのです。/* Uncomment your platform. */ // #define SOLARIS // #define LINUX // #define FreeBSD