Vine Linux 2.6,Vine Linux 3.0へのインストール記録,プログラムのコンパイル方法です. PGPLOTのインストール g77のインストール #contents * PGPLOTのインストール [#o9287123] ** g77のインストール [#j177f075] コンパイル時にフォートランコンパイラの g77がインストールされている必要があるので, g77が入っていない場合はapt-getをコマンドでインストールします. $ su # apt-get install gcc-g77 $ su # apt-get update # apt-get install gcc-g77 でインストールできるはずです. ソースファイルの入手 ** ソースファイルの入手 [#d6503aef] PGPLOTの最新版は5.2.2です. * http://www.astro.caltech.edu/~tjp/pgplot/install.html * ftp://ftp.astro.caltech.edu/pub/pgplot/ - http://www.astro.caltech.edu/~tjp/pgplot/install.html - ftp://ftp.astro.caltech.edu/pub/pgplot/ などからpgplot5.2.tar.gzをダウンロードし,適当な場所に保存しておきます. 展開 ここではソースファイルを /usr/local/src ** 展開 [#u978ee76] に展開します(/usr/local以下のディレクトリで作業するにはroot権限が必要です). $ su # cd /usr/local/src # cp 保存場所/pgplot5.2.tar.gz . # tar xzvf pgplot5.2.tar.gz makeの準備 ここではソースファイルを「/usr/local/src」に展開します(/usr/local以下のディレクトリで作業するにはroot権限が必要です). つぎに,インストール用のディレクトリとして /usr/local/pgplot $ su # cd /usr/local/src # cp 保存場所/pgplot5.2.tar.gz . # tar xzvf pgplot5.2.tar.gz をつくります. # mkdir /usr/local/pgplot ** makeの準備 [#nab34a3c] つぎに,インストール用のディレクトリとして「/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 . # cd /usr/local/pgplot # cp /usr/local/src/pgplot/drivers.list . テキストエディタで drivers.list 開き,編集します.必要なドライバのコメントアウト(行頭の「!」 )を外すと,そのドライバが使えるようになります.どのコメントを外せばいいのか詳しくは知りませんが,最低限以下のものは使えるようにした方がいいようです. * /GIF * /VGIF * /LATEX * /PS * /VPS * /CPS * /VCPS * /XTERM * /XDISP * /XWINDOW * /XSERV - /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 コンパイル # /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc ** コンパイル [#me31b5ee] makefileができたらコンパイルします. # make # make PGPLOTをCから呼び出せるように,もうひとつコンパイルします. # make cpg # make cpg エラーが出ずに無事コンパイル終了したら,もう使わないファイルを消します. # make clean # make clean rootから抜けます. # exit 環境変数の設定 PGPLOTのライブラリをどこからでも使えるよう,ライブラリのある場所などにパスを通します. ~/.bashrc # exit というファイル(~/ はホームディレクトリの意味)に以下を記述します. ** 環境変数の設定 [#h98d815f] export PGPLOT_DIR=/usr/local/pgplot export PGPLOT_DEV=/xserv export LD_LIBRARY_PATH=/usr/local/pgplot PGPLOTのライブラリをどこからでも使えるよう,ライブラリのある場所などにパスを通します.「~/.bashrc」というファイル(~/ はホームディレクトリの意味)に以下を記述します. export PGPLOT_DIR=/usr/local/pgplot export PGPLOT_DEV=/xserv export LD_LIBRARY_PATH=/usr/local/pgplot 書いたら $ source ~/.bashrc $ source ~/.bashrc とするか,ログインしなおして環境変数の変更を反映させます. デモプログラムの実行 ** デモプログラムの実行 [#q9c1e29b] では,コンパイル時に/usr/local/pgplotにデモプログラムができていますから,これをを実行して試してみましょう. $ /usr/local/pgplot/pgdemo1 $ /usr/local/pgplot/pgdemo1 とすると Graphics device/type (? to see list, default /xserv): 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上に #ref(fig1.png,nolink) という画面が表示されます.仮想ターミナルでEnterを押せば,つぎつぎにグラフの画面が変わっていきます.他にもデモプログラムはあるので,試してみましょう.デモプログラムのソースは/usr/local/src/pgplot/examples/以下に(言語はFORTRAN), C言語のソースは/usr/local/src/pgplot/cpg/以下にあります. C言語から使うときのコンパイル方法 * C言語から使うときのコンパイル方法 [#k0133591] デモプログラムを表示させて満足したら,今度は自分でつくったCプログラムから使えるようにします.そのためのコンパイルには少しオプションが必要です.コンパイルには以下のオプションを付け,g77 でやるといいようです(途中改行しません). $ g77 ファイル名 -I/usr/local/pgplot -L/usr/local/pgplot -L/usr/X11R6/lib -lcpgplot -lpgplot -lm -lX11 $ g77 ファイル名 -I/usr/local/pgplot -L/usr/local/pgplot -L/usr/X11R6/lib -lcpgplot -lpgplot -lm -lX11 うまくいかない場合はオプションを変えていろいろ試してみるといいかもしれません.ライブラリの場所 (-Lではじまる部分) などを確認してみましょう. このコンパイルラインは長いので,シェルスクリプトかMakefileを作っておくと後々楽です. シェルスクリプト ** シェルスクリプト [#yd1605d3] 一番単純なのはつぎのようなものです. # !/bin/sh g77 $1.c -o $1 -I/usr/local/pgplot -L/usr/local/pgplot -L/usr/X11R6/lib -lcpgplot -lpgplot -lm -lX11 # !/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 $ chmod +x として実行権限を持たせておきます.そしたら $ g77pgplot ファイル名(拡張子なし) $ g77pgplot ファイル名(拡張子なし) でコンパイル可能です. Makefile ** Makefile [#be2ca6b1] Makefileという名前のファイルをプログラムのソースファイルと同じディレクトリに作っておけば make とタイプするだけで実行ファイルができあがります.ソースファイル名が foo.c なら,つぎのような感じです. ## 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) foo の部分は実際のソースファイル名に置き換えてください.この例では最適化オプション(-O3 -march=i686 -fomit-frame-pointer -malign-double -funroll-loops)も付けています.