| FreeBSD, linuxおよび Cygwin へのPGPLOT(5.2) 導入メモ | 
|---|
| FreeBSD/linux/Cygwin へのインストール | 
|---|
詳細は//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に明示する必要があります。
| 更新履歴 | 
|---|