PGPLOTのインストールとコンパイル方法 のバックアップ差分(No.2)


Vine Linux 2.6,Vine Linux 3.0へのインストール記録,プログラムのコンパイル方法です.
 PGPLOTのインストール
 g77のインストール
 
 コンパイル時にフォートランコンパイラの g77がインストールされている必要があるので, g77が入っていない場合はapt-getをコマンドでインストールします.
 $ su
 # apt-get install gcc-g77
 
 でインストールできるはずです.
 ソースファイルの入手
 
 PGPLOTの最新版は5.2.2です.
 
     * http://www.astro.caltech.edu/~tjp/pgplot/install.html
     * ftp://ftp.astro.caltech.edu/pub/pgplot/
 
 などからpgplot5.2.tar.gzをダウンロードし,適当な場所に保存しておきます.
 展開
 
 ここではソースファイルを
 /usr/local/src
 
 に展開します(/usr/local以下のディレクトリで作業するにはroot権限が必要です).
 $ su
 # cd /usr/local/src
 # cp 保存場所/pgplot5.2.tar.gz .
 # tar xzvf pgplot5.2.tar.gz
 makeの準備
 
 つぎに,インストール用のディレクトリとして
 /usr/local/pgplot
 
 をつくります.
 # mkdir /usr/local/pgplot
 
 このディレクトリにmakefileをつくるため,ソースを展開したディレクトリのdrivers.listというファイルをコピーし,編集します(/usr/local/src/pgplotにmakefileを作ってはいけないようです).
 # cd /usr/local/pgplot
 # cp /usr/local/src/pgplot/drivers.list .
 
 テキストエディタで drivers.list 開き,編集します.必要なドライバのコメントアウト(行頭の「!」 )を外すと,そのドライバが使えるようになります.どのコメントを外せばいいのか詳しくは知りませんが,最低限以下のものは使えるようにした方がいいようです.
 
     * /GIF
     * /VGIF
     * /LATEX
     * /PS
     * /VPS
     * /CPS
     * /VCPS
     * /XTERM
     * /XDISP
     * /XWINDOW
     * /XSERV
 
 (PGPLOTでグラフ出力したとき,先頭にVが付いているドライバは, Vが付いていないものと比べて表示が270度回転されます.)以上で下準備ができたので,makemakeを使ってmakefileをつくります.
 # /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc
 コンパイル
 
 makefileができたらコンパイルします.
 # make
 
 PGPLOTをCから呼び出せるように,もうひとつコンパイルします.
 # make cpg
 
 エラーが出ずに無事コンパイル終了したら,もう使わないファイルを消します.
 # make clean
 
 rootから抜けます.
 # exit
 環境変数の設定
 
 PGPLOTのライブラリをどこからでも使えるよう,ライブラリのある場所などにパスを通します.
 ~/.bashrc
 
 というファイル(~/ はホームディレクトリの意味)に以下を記述します.
 
 export PGPLOT_DIR=/usr/local/pgplot
 export PGPLOT_DEV=/xserv
 export LD_LIBRARY_PATH=/usr/local/pgplot
 
 書いたら
 $ source ~/.bashrc
 
 とするか,ログインしなおして環境変数の変更を反映させます.
 デモプログラムの実行
 
 では,コンパイル時に/usr/local/pgplotにデモプログラムができていますから,これをを実行して試してみましょう.
 $ /usr/local/pgplot/pgdemo1
 
 とすると
 Graphics device/type (? to see list, default /xserv):
 
 というメッセージがコンソールに表示されます. ?をタイプすれば使用可能なドライバの一覧が出てきます.そのままEnterを押せばデフォルトのxservで表示されます. xservで実行した場合,仮想ターミナルに
 
  version=v5.2.2
  state=OPEN
  user=hamu
  now=15-Aug-2004 22:58
  device=
  file=
  type=XSERVE
  dev/type=/XSERVE
  hardcopy=NO
  terminal=NO
  cursor=YES
  Plot dimensions (x,y; inches):     11.20,      8.41
                           (mm):    284.55,    213.70
  Type  for next page:
 
 というメッセージと,XWindow上に
 
 という画面が表示されます.仮想ターミナルでEnterを押せば,つぎつぎにグラフの画面が変わっていきます.他にもデモプログラムはあるので,試してみましょう.デモプログラムのソースは/usr/local/src/pgplot/examples/以下に(言語はFORTRAN), C言語のソースは/usr/local/src/pgplot/cpg/以下にあります.
 C言語から使うときのコンパイル方法
 
 デモプログラムを表示させて満足したら,今度は自分でつくったCプログラムから使えるようにします.そのためのコンパイルには少しオプションが必要です.コンパイルには以下のオプションを付け,g77 でやるといいようです(途中改行しません).
 $ g77 ファイル名 -I/usr/local/pgplot -L/usr/local/pgplot -L/usr/X11R6/lib -lcpgplot -lpgplot -lm -lX11
 
 うまくいかない場合はオプションを変えていろいろ試してみるといいかもしれません.ライブラリの場所 (-Lではじまる部分) などを確認してみましょう.
 
 このコンパイルラインは長いので,シェルスクリプトかMakefileを作っておくと後々楽です.
 シェルスクリプト
 
 一番単純なのはつぎのようなものです.
 
 # !/bin/sh
 g77 $1.c -o $1 -I/usr/local/pgplot -L/usr/local/pgplot -L/usr/X11R6/lib -lcpgplot -lpgplot  -lm -lX11
 
 これを g77pgplot という名前で保存し,パスの通ったディレクトリに置きます.そして
 $ chmod +x
 
 として実行権限を持たせておきます.そしたら
 $ g77pgplot ファイル名(拡張子なし)
 
 でコンパイル可能です.
 Makefile
 
 Makefileという名前のファイルをプログラムのソースファイルと同じディレクトリに作っておけば make とタイプするだけで実行ファイルができあがります.ソースファイル名が foo.c なら,つぎのような感じです.
 
 ## Compiler, tools and options
  ## Compiler, tools and options
  
  OBJS  	= foo.o
  TARGET 	= foo
  
  CC 	= g77
  CFLAGS 	= -O3 -march=i686 -fomit-frame-pointer -malign-double -funroll-loops -Wall
  INCDIRS = -I/usr/local/pgplot
  LIBDIRS = -L/usr/local/pgplot -L/usr/X11R6/lib
  LIBS 	= -lcpgplot -lpgplot -lm -lX11
  
  ## Implicit rules
  
  .SUFFIXES: .c .o
  
  ## Build rules
  
  all: $(TARGET)
  
  $(TARGET): $(OBJS)
  	$(CC) $(OBJS) -o $(TARGET) $(CFLAGS) $(LIBDIRS) $(LIBS)
  
  ## Compile
  
  .c.o: $*.c
  	$(CC) -c $*.c $(CFLAGS) $(INCDIRS)
  
  ## Clean
  
  clean:
  	rm -f $(OBJS) $(TARGET)
 
 OBJS  	= foo.o
 TARGET 	= foo
 foo の部分は実際のソースファイル名に置き換えてください.この例では最適化オプション(-O3 -march=i686 -fomit-frame-pointer -malign-double -funroll-loops)も付けています.
 
 CC 	= g77
 CFLAGS 	= -O3 -march=i686 -fomit-frame-pointer -malign-double -funroll-loops -Wall
 INCDIRS = -I/usr/local/pgplot
 LIBDIRS = -L/usr/local/pgplot -L/usr/X11R6/lib
 LIBS 	= -lcpgplot -lpgplot -lm -lX11
 
 ## Implicit rules
 
 .SUFFIXES: .c .o
 
 ## Build rules
 
 all: $(TARGET)
 
 $(TARGET): $(OBJS)
 	$(CC) $(OBJS) -o $(TARGET) $(CFLAGS) $(LIBDIRS) $(LIBS)
 
 ## Compile
 
 .c.o: $*.c
 	$(CC) -c $*.c $(CFLAGS) $(INCDIRS)
 
 ## Clean
 
 clean:
 	rm -f $(OBJS) $(TARGET)
 
 foo の部分は実際のソースファイル名に置き換えてください.この例では最適化オプション(-O3 -march=i686 -fomit-frame-pointer -malign-double -funroll-loops)も付けています.
 
Valid XHTML 1.1! home >
トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.3.29HTML convert time to 0.005 sec.