同じソースコードのコピーから,同時に複数のアーキテクチャに対するソフトウェ アパッケージのコンパイルをサポートすることが可能です.それぞれのアーキテ クチャに対するオブジェクトファイルは,それ自身のディレクトリに保存されま す.
これをサポートするために,makeは,ソースディレクトリにあるファ
イルを見つけるためVPATH変数を使用します.GNU Makeとその
他のほとんどの最近のmakeプログラムはこうすることが可能です.もっ
と古いmakeプログラムは,VPATHをサポートしていません.そ
れを使用するときは,ソースコードをオブジェクトファイルと同じディレクトリ
置く必要があります.
VPATHをサポートするため,それぞれのMakefile.inには,以下の
ような二行が必要です.
srcdir = @srcdir@
VPATH = @srcdir@
VPATHの値に変数を代入しないmakeのバージョンもあるので,
VPATHに他の値,例えば`VPATH = $(srcdir)'を設定しないでくださ
い.
configureはMakefileを作成するとき,srcdirに正し
い値を代入します.
暗黙のルールを期待して,(VPATHで見つかる)ソースディレクトリのファ
イルのパス名を展開するmake変数の$<を使用しないでくださ
い.(暗黙のルールとは,.cファイルから.oファイルを作成する
方法を教える`.c.o'の様なものです.)暗黙のルールで$<を設定し
ないバージョンのmakeもあり,それは,空の値で展開します.
その代わり,Makefileコマンドラインは,ソースファイルを `$(srcdir)/'を前置して参照します.例えば以下のようにします.
time.info: time.texinfo
$(MAKEINFO) $(srcdir)/time.texinfo