C を使って X 上にグラフィックを描画するための マクロなどです。 X window VIrtual Graphics から名前が来ています。 ただのマクロなので、root にならなくても 一般ユーザとしてインストールできます。
用意するもの
展開と確認
まず、拾って来た xvig.tar.gz を適当な場所に展開し、 cd します。
% tar zxf xvig.tar.gz
% cd pub/comp/usenet/comp.sources.x/xvig/
% ls
part01.gz part03.gz part05.gz part07.gz part09.gz
part02.gz part04.gz part06.gz part08.gz part10.gz
% md5 *
MD5 (part01.gz) = ....
最後のコマンドは、おのおののファイルが正しいかどうか、 MD5 でチェックしています。 MD5 Check Sum の正しい値は、 http://www.leo.org/cgi-bin/leo-md5.pl/pub/comp/usenet/comp.sources.x/xvig で見られます。 正しいことが確認されたらこれを解凍しましょう。
% gunzip *
ファイルの加工
おのおののファイルは、メールのヘッダがついた sh スクリプトファイルで す。スクリプトファイルとして動かすためにはメールのヘッダを切り取って 挙げなければなりません。叡智を尽くして自動化するもよし、えっちらおっ ちら手作業で切り取るもよし。とにかく、 #! /bin/sh と書いてある行の1行前までをすべて切り取ってしまいましょう。シェルスクリプトを走らせる
加工がすんだら、シェルスクリプト part* を走らせます。
% sh part01
% sh part02
...
% sh part10
ここまでの作業で、次のようになっていると思います。
% ls COPYRIGHT part02 part05 part08 version_1.1/ DISCLAIMER part03 part06 part09 part01 part04 part07 part10version_1.1/ に本体が入っています。
% cd version_1.1/ % ls README examples/ lib/ src/ bin/ include/ man/
make
あとは、version_1.1/README の Building It に従ってインストールします。システムに imake があるとき
% cd src
% xmkmf
% make
% cd ../examples
% xmkmf
% make
システムに imake がないとき
Makefile.std は標準的な Makefile ですので、 システムに合わせて適当なマクロを使って下さい。
% cd src
% make -f Makefile.std
% cd ../examples
% make -f Makefile.std
詳しい使い方は man/xvig.ps を見て下さい。環境変数の設定
xvig を展開した場所が /somewhere の場合、次のようにします。
- XVIGDIR
- XVIG
% setenv XVIGDIR /somewhere/xvig/version_1.1
% setenv XVIG $XVIGDIR/bin/xvig
これは ~/.cshrc にでも書いておくと良いでしょう。 ここまでで、examples の実行ファイルが実行できますので、 楽しんで見て下さい。
% $XVIGDIR/examples/colortest
% $XVIGDIR/examples/cursortest
% $XVIGDIR/examples/sensetest
% $XVIGDIR/examples/texttest
C のソース
xvig.h を C ソースに include します。
#include "xvig.h" コンパイル
xvig.h と xvig.a と X library のありかを明示的に示してあげます。
% cc test.c -I$XVIGDIR/include $XVIGDIR/lib/xvig.a -L/usr/X11R6/lib -lX11
Makefile を使う場合は、次のようにするとよいでしょう。
実際には、$(CC) の前はタブを一つ空けておきます。
IDIR = $(XVIGDIR)/include
LIB = $(XVIGDIR)/lib/xvig.a
LDFLAGS = /usr/X11R6/lib
CC = cc
test : test.c
$(CC) test.c -I$(IDIR) $(LIB) -L$(LDFLAGS) -lX11 -o test