| FreeBSD, linuxおよび Cygwin へのPGPLOT(5.2) 導入メモ |
|---|
| FreeBSD/linux/Cygwin へのインストール |
|---|
詳細はhttp://www.astro.caltech.edu/~tjp/pgplot/をご覧下さい。
1./usr/local/src に pgplot5.2.tar.gz をコピー
入手先は ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz
2.解凍する
cd /usr/local/src
gunzip -c pgplot5.2.tar.gz | tar xvof -
または tar xvzf pgplot5.2.tar.gz
解凍後、/usr/local/src/pgplot および サブディレクトリが出来る
3.インストール先ディレクトリ作成
mkdir /usr/local/pgplot
4.デバイスドライバーの選択
cd /usr/local/pgplot
cp /usr/local/src/pgplot/drivers.list .
エディター(vi等)で選択するドライバーの先頭の"!"をはずす
vi drivers.list
ここで、GIF関係のドライバーや /FILE を選択すると、FreeBSDではエラーが出ます
(linuxでは未確認)
おすすめドライバーの選択は
/LATEX /NULL /PS /VPS /CPS /VCPS /TEK4010 /RETRO /GF /GTERM /XTERM /TK4100
/VT125 /XWINDOW /XSERVE
5.makefile の作成
cd /usr/local/pgplot
FreeBSDの場合
/usr/local/src/pgplot/makemake /usr/local/src/pgplot freebsd
linuxの場合
/usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc
※g77の代わりにgfortranがインストールされているときは、出来上がった
makefile中の
FCOMPL=g77 のところを FCOMPL=gfortran と修正する
Cygwinの場合
/usr/local/src/pgplot/makemake /usr/local/src/pgplot cygwin g77_gcc
6.makefile の編集
linuxの場合は以下の作業(makefileの編集)は不要です
FreeBSDの場合 5.で作ったmakefile でmakeを行うと、demo2 プログラムの
コンパイル時にエラーが発生して、停止してしまう。そのため、X端末に表示をする際に
必要なpgxwin_serverが作られません。
そこで、vi等でdemo2以降のデモプログラムをコンパイルしないように編集します
vi makefile
# Routine lists の中の
DEMOS= pgdemo1 pgdemo2 .......
の行のpgdemo2以降を削除し、
DEMOS= pgdemo1
とする
Cygwinの場合X11ライブラリでエラーを起こすのでmakefileの31, 32, 34, 48行目にある
usr/X11R6.4/include という記述を
を
usr/X11R6/include (".4"を削除)
に変更する。
更に/usr/local/src/pgplot/pgdispd/proccom.c の97行目 #include <values.h> を
/* #include <values.h> */ のようにコメントアウトする。
7.make の実行
make
正常に実行されれば
更に C で使用するため環境を整えるため
make cpg を実行
make clean を実行
この時点で以下のファイルがディレクトリに存在
cpgdemo grexec.f libcpgplot.a pgdemo1 pgxwin_server
cpgplot.h grfont.dat libpgplot.a pgplot.doc rgb.txt
drivers.list grpckg1.inc makefile pgplot.inc
linux版では更に libpgplot.so も出来ています
8.ライブラリおよびCインクルードファイルを標準ディレクトリへコピー
cp libcpgplot.a /usr/lib
cp libpgplot.a /usr/lib
cp cpgplot.h /usr/include
linuxでは更に
cp libpgplot.so /usr/lib
9.デモプログラムの実行
環境変数を以下のように設定
csh の場合 setenv PGPLOT_DIR /usr/local/pgplot/
sh,bash の場合 PGPLOT_DIR="/usr/local/pgplot/"; export PGPLOT_DIR
または export PGPLOT_DIR=/usr/local/pgplot/
デバイスに/XWINDOWまたは/XSERVEを使用する場合は更に以下(表示先)を設定
csh の場合 setenv DISPLAY IPアドレス又はマシン名:0.0
sh,bash の場合 export DISPLAY=IPアドレス又はマシン名:0.0
pgdemo1(FORTARNデモ)
または
cpgdemo(Cプログラムデモ)を実行する
注意事項:Tera Term から実行するときは
「Setup」->「Terminal」で「Auto switch」にチェックが入っていることを確認
すること
10.Cプログラムのコンパイル方法
以下のいずれかの方法でコンパイルする。プログラム名はtest.cとする
方法1
f77 -o test test.c -lcpgplot -lpgplot -L/usr/X11R6/lib -lX11 -lm
(注:PGPLOTは元々FORTRANで開発されたプログラムなのでFORTARN
コンパイラーおよびリンカーでコンパイルしないと駄目なよう。
実際、cc -o test .... でコンパイル、リンクをやると
undefined reference to 'xxxxx' というエラーがたくさん出る)
方法2
cc -O2 -c -I. test.c
f77 -o test test.o -lcpgplot -lpgplot -L/usr/X11R6/lib -lX11 -lm
64ビットCPU機でコンパイルする場合は /usr/X11R6/lib の部分を /usr/X11R6/lib64
に変更する
Debian GNU/Linux3.1では
#apt-get install g77 でg77をインストールしておく
X11ライブラリパッケージがインストールされていないときは
#apt-get install libx11-dev でインストールしておく
Debian GNU/Linux4.1では上記以外にCのインクルードファイル群がインストールされていないときは
#apt-get install libc6-dev でインストールしておく
11. ディスプレーデバイスの指定に関して
linux, FreeBSDでは /XSERVEがお勧め
注:Cygwinではlinuxの場合と同じですが場合によっては drivers.list で指定していない
(含まれていない)にも関わらず /GW がディスプレーに表示する際のデバイスとなる
場合があります。その場合は /XSERVE等は何故かデバイスリストに表示されない。
何故こうなるかは不明ですがWindows版のPGPLOTを独立にインストールしている場合は
その時の条件に依存しているのかもしれません。
| その他 |
|---|
FreeBSDのportを使用してのインストール ネットワーク環境(caltechのサーバにアクセスできる)をととのえてから、 cd /usr/ports/graphics/pgplot make install とすれば終わりでした。 実際は、そのままいかず 1:pgplotをの/usr/lib, /usr/includeにインストールしなかった場合、ライブ ラリおよびインクルートファイルのある場所を、-I とか、-L オプションで makefileに明示する必要があります。
| 更新履歴 |
|---|