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に明示する必要があります。
 

更新履歴


更新日 2007年11月7日