Provided by: xmanpages-ja_4.1.0.20011224-6_all bug

imake作
       imake   は、コマンド行で  -I  オプションや  -D  オプ  ションを渡してcpp
       を起動し、次の内容を持つファイル名を渡す。

                 #define IMAKE_TEMPLATE "Imake.tmpl"
                 #define INCLUDE_IMAKEFILE <Imakefile>
                 #include IMAKE_TEMPLATE

       このとぁImake.tmpl    の部分はコマンドの    -T    オプションで書    -
       換えられることがあり、Imakefile    の部分は    -f   オプション   で書-
       換えられることがある。

       IMAKE_TEMPLATE    は通常、マシン依存のパラメータ(cpp     のシンボルで指
       定する)が書かれたファイル、サイト特佑離僖薀瓠璽織侫.ぅ襦∧竸瑤鯆蟲
       するファイル、make     を生成するための     cpp      のマクロ関数が書か
       れたファイル、カレントディレクトリの    Imakefile    (INCLUDE_IMAKEFILE
       で指定する)を読む。Imakefile   は、このマクロ関    数を用いて生成すべ-
       対象を示す。imake は、責任を持って適切な規則 を生成する。

       Imake の設定ファイルは、2つのタイプの変数を持つ。すなわち、imake 変数と
       make    変数である。imake    変数は    imake     を実行した際に     cpp
       によって解釈される。慣習により、imake                      変数の名前は
       大文字と小文字が混ざった形となる。make    変数は    Makefile     に書-
       込まれ、後で         make        に解釈される。        慣習により、make
       変数の名前は大文字で書かれる。

       規則ファイル(通常は設定ディレクトリの        Imake.rules)には、現在のプ
       ラットフォームにしたがって設定された      cpp     マクロ関数群が欺劼気
       ている。マクロが複数行の make  規則を生成でい襪茲Δ法  imake  は文字列
       ``@@'' が現れると、これを改行に置ご垢┐襦 例えば、次のマクロ
        #define  program_target(program, objlist)        @@\
        program: objlist                                 @@\
                 $(CC)  -o  $@  objlist  $(LDFLAGS)

       は、 program_target(foo, foo1.o  foo2.o) で呼ばれたとぁ

        foo:     foo1.o  foo2.o
                 $(CC)  -o  $@  foo1.o  foo2.o  $(LDFLAGS)

       のように展開される。

       imake    は   ``XCOMM''   が現れると、これを   ``#''   文字に置換する。
       これにより、プリプロセッサに ``invalid  directive''  エラーを出させるこ
       となく Makefile にコメントを置くことがでい襦

       複雑な     imake     の場合、生成される    make    変数がマクロのそれぞ
       れの呼び出しにおいて局所世必要なことがある。これはしばしば、その値
       がマクロに渡されるパラメータに依存するために起こる。
       このような変数は、XVARdefn の形式の imake  変数を使っ  て作ることがで-
       る。ここで、n        は1桁の数字である。        一意に決まる       make
       には代入が行われる。後で変数    XVARusen    が現れたとぁ△海譴和弍する
       XVARdefn によって生成された変数に置ご垢┐蕕譴襦

       cpp         が複数のタブや空白を1つの空白に減らすようなシステムにおいて
       は、imake       は必要なタブを戻そうと試みる(make        はタブと空白の
       違いに大変厳しい)。このため、コマンド行ではコロン(:)の前にバックス
       ラッシュ(\)を置かなければならない。

X用
       X  ウィンドウシステムは、ソースからのシステム全体の構築と外部ソフトウェ
       アの構築の両方で      imake     を垢用いる。先に述べたように、相対パス
       名を用いたファイルの参照を容易にするために2つの特別な変数   TOPDIRCURDIR       がセットされる。例えば、lib/X/      における      Makefile
       を作るため、次のコマンドが自動的に生成される(ソースの最
       上位ディレクトリからの相対パス):

                 %  ../.././config/imake  -I../.././config  \
                       -DTOPDIR=../../.   -DCURDIR=./lib/X

       ソースツリーに含まれない  X  のプログラムを構築する際には、特殊なシンボ
       ル     UseInstalled     が定義され、TOPDIRCURDIR     は無視
       される。設定ファイルが正しくインストールされていれば、スクリプト
       xmkmf(1) を使うことがでい襦

ル
       X    に使われるとい     imake     が読むファイルについての概略を示す。
       字下げは、他のファイルをインクルードすることを示す。

           Imake.tmpl                一般的な変数
               site.def              サイト固諭BeforeVendorCF が定義される
               *.cf                  マシン固
                   *Lib.rules        共優薀ぅ屮薀蠅竜則
               site.def              サイト固諭AfterVendorCF が定義される
               Imake.rules           規則
               Project.tmpl          X 特佑諒竸
                   *Lib.tmpl         共優薀ぅ屮薀蠅砲弔い討諒竸
               Imakefile
                   Library.tmpl      ライブラリについての規則
                   Server.tmpl       サーバについての規則
                   Threads.tmpl      マルチスレッドについての規則

       site.def        は2度インクルードされる点に注意せよ。1度目は       *.cf
       ファイルの前で、次はこのファイルの後である。サイトにおけるカスタマイズ
       のほとんどは     *.cf    ファイルの後でなければならないが、コンパイラの
       選択のように先に指定しなければならないものもある。他の変数設定がこれら
       に依存しているからである。

       最初に     site.def     をインクルードしたとい砲亙竸    BeforeVendorCF
       が定義され、2度目にインクルードしたとい砲亙竸  AfterVendorCF  が定義さ
       れる。site.def    の全てのコードはどちらかのシンボルについての   #ifdef
       の内側に置かれているはずである。

ル
       Imakefile.c                   cpp の入力に使う一時ファイル
       /tmp/Imf.XXXXXX               -s のための一時的な Makefile
       /tmp/IIf.XXXXXX               指定した       Imakefile       が       #
       形式のコメントを使っている場合の一時的な Imakefile
       /lib/cpp                      デフォルトの C プリプロセッサ

目
       make(1), xmkmf(1)
       S.              I.             Feldman,             Make             --
       _

数
       以下の環曲竸瑤鮴瀋蠅垢襪海箸でい襦ただし、これらは      imake      が
       実行されるとい僕動廚砲呂錣らない依存関係をもたらすため、あまり使わな
       いほうがよい。

       IMAKEINCLUDE
            この環曲竸瑤定義された場合、C プリプロセッサにインクルードの引た
            ``-I'' を渡すことを指定。例: ``-I/usr/X11/config''.

       IMAKECPP
            この環曲竸瑤定義された場合、これはプリプロセッサのプログラムの-
            効な     パスでなければならない。     例:      ``/usr/local/cpp''.
            デフォルトでは、 imake/lib/cpp を用いる。

       IMAKEMAKE
            この環曲竸瑤定義された場合、これは  ``/usr/local/make''  のような
            make  プログラムの邑なパスでなければならない。   デフォルトでは、
            execvp(3)     を使って見つけた    make    を使用する。    この環-
            変数が使用されるのは、``-e''       オプションが指定されたとい世韻
            ある。

者
       Todd  Brunhoff,  Tektronix  and  MIT  Project Athena; Jim Fulton, MIT X
       Consortium