Japanese only. Character encoding is ISO-2022-JP (JIS). Lynx is recomended.
Last modified: Fri Mar 19 16:36:35 JST 1999

X11やXFree86をコンパイルしてみよう

このページではXのコンパイル方法について書いておきます。XFree86はパッケージが存在するので個人で使うならコンパイルする必要がないかもしれません。しかし、研究室の管理者ならば過去の環境に合わせるなどサイト特有の設定がいろいろあるので、このメモが無駄という事もないでしょう。

XFree86 3.3.3.1編

ここではXFree86 3.3.3.1を例に作ってみます。まずはREADMEとRELNOTESを読んで何が変わったのか確認しましょう。doc/BUILDも読んで作り方をざっと確認しましょう。

ソースを展開する

まずは必要なソースを展開します。
X333src-1.tgz バイナリとライブラリのソース
X333src-2.tgz フォント
X333src-3.tgz ドキュメント
の中から必要なものだけ展開します。これを3.3.3.1にするために 3.3.3-3.3.3.1.diff.gz を当ます。パッチファイルを見ればパッチの当て方も書かれています。Xのコンパイルは非常にディスクを消費します。X333src-1.tgzをコンパイルするだけでも150MB弱ディスクを消費しますのでディスクの空き容量に気をつけてください。さらに、XでTrueTypeフォントを使えるようにするなら X-TrueType Server Project からX-TTのパッチを取ってきて当ててください。1999/03/10現在では xtt-1.2.tar.gzxtt-1.2-to-1.2.1.tar.gz が最新です。他にもxauthのパッチなど必要なものはどんどん当ます。X-TTを使うためにはfreetypeのライブラリが必要になります。XF86Setupを作るためにはTcl/Tkが必要になります。(でもこれらをコンパイルするにはXが必要になります。:-)
% tar xzf X333src-1tar.gz
% tar xzf X333src-2.tar.gz
% zcat 3.3.3-3.3.3.1.diff.gz | patch -p0
% tar xzf xtt-1.2.tar.gz
% tar xzf xtt-1.2-to-1.2.1.tar.gz
% patch -p0 < xtt-1.2/shared-libfont-1.0.diff
% patch -p0 < xtt-1.2/xfs-for-delayed-font-1.0.diff
% patch -p0 < xtt-1.2/make-xfs-only-1.1.diff
% patch -p0 < xtt-1.2/xtt-xf333-changes.diff
% tar xf xtt-1.2/xtt-core.tar -C xc/lib/font
% patch -p0 < xtt-1.2/contribute/xtt-xfsft-lib.patch
% patch -p0 < xtt-1.2-to-1.2.1/xtt-core.diff 
% find xc -name '*.rej' -print

configファイルを書く

xc/config/cfにコンフィグファイルが沢山あります。 この中で編集するのは主にsite.defhost.defですが、さらにXFree86はxf86site.def、X-TTはxttsite.defもあります。 site.defにはそのサイトに特有の設定を書き、host.defにはホスト特有の設定を書きます。 さらに、FreeBSDでccでなく自分で入れたgccを使ってくれるようにFreeBSD.cfを変更してます。 Tcl/TkやFreeTypeのライブラリのRunPathを埋め込むためにImake.tmplも編集します。 これはUSRLIBDIRPATHに$(TCLLIBDIR):$(TKLIBDIR):$(FREETYPELIBDIR)を追加しているだけです。LD_RUN_PATHに付くか-Rに付くかはconfigまかせです。

make World

では make World >& world.log & して寝ましょう。Cyrix MII-300GPならローカルディスクで作成して1時間ぐらいで出来上がりました。3.3.2を作ったときはPentium166MHzで2時間半ぐらいだったと記憶しています。起きて出来上がっていたらworld.logの開始時間と終了時間を見て感慨に耽ってください。


X11R6.4 fix03編

Solaris 2.6とSunOS 4.1.4とHP-UX 10.10で作ります。NEWS-OS 4.1.2[CR]はR6.1以降がコンパイルできません(泣)。さようならNEWS。Solaris7はまだきちんと環境を整えていないので保留です。

ソースを展開してパッチをあてる

まずは必要なソースを展開します。
tog1.tgz バイナリとライブラリのソース
tog2.tgz フォント
tog3.tgz ドキュメント
tog4.tgz ドキュメント
の中から必要なものだけ展開して済ませたかったのですが、パッチを当るときにファイルがないとうっとうしいので全部展開してしまった方が楽です。これは相当ディスクを消費しますので気をつけてください。展開したらパッチをガリガリあてます。ちゃんと各パッチ先頭の説明を読みましょう。1999/03/10現在では fix-01fix-02fix-03 があります。

% tar xzf tog-1.tar.gz
% tar xzf tog-2.tar.gz
% tar xzf tog-3.tar.gz
% tar xzf tog-4.tar.gz
% patch -p -s < fix-01
% patch -p -s < fix-02
% patch -p -s < fix-03
% find xc -name '*.rej' -print

configファイルを書く

site.defにいろいろ書きます。 ProjectRootは/usr/local/X11R6.4にします。 Solaris 2.6は/usr/ccs/bin/makeではmakeできません。 HP-UX以外はgccでコンパイルします。 全アーキテクチャでconfigが共有できるよう、#ifの嵐になっています。


井上 敬介 / keisuke@am.ics.keio.ac.jp