#################################################################

	SolarisでX window toolをコンパイルするときに、
	よく起きるエラー & 対処のサル知恵	
					by 官谷
						Aug. 20, 1996

#################################################################

  kterm, xdvi、gs, sj3など、多くのX window上のtoolにおいて、これらを
yugiriにインストールしようとxmkmf;makeとしても、まったくコンパイルできな
いということがある。大抵、コンパイラ(cc)がエラーと警告を滝のように流しま
くったあげく、

make: 致命的エラー: ターゲット `all' の構築用コマンドが失敗しました。

と宣告されて、あえなく沈没である。少しサル知恵を働かせて、コンパイラを
gccに替えてみると、コンパイルはなんとか通るようになるが、リンクの段階で
わけのわからんことを言われてドボン。

  調べてみると、gccのエラーは訳が分からないが、ccについては、システムの、
imakeの設定ファイル(/usr/lib/X11/config/* or
/opt/X11R6/lib/X11/config/*)がおかしいのが原因であることがわかる。ちなみ
にopen windowの設定ファイル/usr/openwin/lib/config/*をつかうと、そもそも
imakeが通らない場合がある(通ればうまくいくようだが)。

  以上の現象を根本的に解決するためには、システムの設定ファイルを直すべき
なのだろうが、はっきり言って僕にはその勇気はない。しかし、xmkmfしてでき
たMakefileに手を加えることで、ある程度対処できる。

  試しにMakefileに次の変更をしてみると、たいてい、ccがエラーはおろか警告
もほとんど吐かずに通してくれる:


TOP_INCLUDES = -I$(TOP) 
---> TOP_INCLUDES = -I/opt/X11R6/include -I$(TOP)

CCOPTIONS = -Xc 
---> CCOPTIONS =
 
  二番目のはあまり重要でないが、最初のはとてもよく効く。ここで大事なのは、
-I/opt/X11R6/includeを、-I$(TOP)の前に持ってくることである。

  こうしてmakeが通っても、make installとするときに怒られることもある。そ
んなときは、

MKDIRHIER = $(SHELL) $(CONFIGSRC)/util/mkdirhier.sh
---> MKDIRHIER = mkdirhier

INSTALL = $(SHELL) $(CONFIGSRC)/util/bsdinst.sh
---> INSTALL = bsdinst

が有効である。
  yugiriでインストールに詰まったら、これらの変更を試してみてはいかがかと
思う。まあ、このことは知ってる人はすでに知ってることかもしれないが、こう
いうケースが多かったので、一般論としてメモしてみた。