前回、Fortran をインストールしたので、もうひとつのコンパイラである、Pascal をインストールします。GNUプロジェクトから、Free software directory をたどって探すと、Free Pascal Compiler ( http://www.freepascal.org/ ) にたどり着きました。コマンド名は fpc ( Version 2.0.4 )です。通常のようにコンパイルしたいところですが、おそらく Pascal は、Pascal 自身で書かれている可能性が高いので何もない状態でのコンパイルによるインストールは敷居が高いと予想されます。そこであっさりあきらめて、この間作った prog.list の中を探すと、fpc.i386 , fpc-doc.i386 , fpc-src.i386 があります。そのうち、fpc.i386 と fpc-doc.i386 をインストールしました。
ためしに、Free Pascal 自身をコンパイルしてみます。
libgdb.a がないのでコンパイルできません。そこで、makepack の中の
とします。documentation archive に関するエラーがでるので、makepack の中のそのあたりをすべてコメントにします。
残念、途中まではコンパイルできたのですがだめでした。とりあえずあきらめて、何かサンプルを動かして終わりにします。「自作コンパイラの部屋のサンプルプログラム」( http://www.tokumaru.org/plang/cabezon/samples.htm ) の「8クイーン」プログラムを queen.pas ファイルにしてテストします。
うまくいきました。
# yum install fpc.i386 ............... # yum install fpc-doc.i386 ............... # which fpc /usr/bin/fpc # fpc -iV -iTO -iTP 2.0.4 linux i386 #
ためしに、Free Pascal 自身をコンパイルしてみます。
$ tar xzf fpcbuild-2.0.4.tar.gz $ cd fpcbuild_2.0.4_exp $ cp install/makepack . $ chmod +x makepack $ ./makepack FPC Source: i386-linux FPC Target: i386-linux Libgdb (fpcsrc/libgdb/linux/i386/libgdb.a) not found, aborting $
libgdb.a がないのでコンパイルできません。そこで、makepack の中の
CHECKLIBGDB=no
とします。documentation archive に関するエラーがでるので、makepack の中のそのあたりをすべてコメントにします。
$ ./makepack ..................... /usr/bin/ppc386 -XX -CX -Ur -Xs -OG2p3 -n -Fui386 -Fusystems -Fu/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc/rtl/units/i386-linux -Fii386 -FE. -FUi386/units/i386-linux -dRELEASE -di386 -dGDB -dBROWSERLOG -Fux86 pp.pas pp.pas(209,1) Error: Can't call the linker, switching to external linking make[6]: *** [ppc386] エラー 1 make[6]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc/compiler' make[5]: *** [next] エラー 2 make[5]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc/compiler' make[4]: *** [ppc1] エラー 2 make[4]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc/compiler' make[3]: *** [cycle] エラー 2 make[3]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc/compiler' make[2]: *** [compiler_cycle] エラー 2 make[2]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc' make[1]: *** [build-stamp.i386-linux] エラー 2 make[1]: Leaving directory `/home/espiya/src/fpcbuild_2.0.4_exp/fpcsrc' make: *** [fpcsrc/build-stamp.i386-linux] エラー 2 $
残念、途中まではコンパイルできたのですがだめでした。とりあえずあきらめて、何かサンプルを動かして終わりにします。「自作コンパイラの部屋のサンプルプログラム」( http://www.tokumaru.org/plang/cabezon/samples.htm ) の「8クイーン」プログラムを queen.pas ファイルにしてテストします。
$ fpc queen.pas Free Pascal Compiler version 2.0.4 [2006/09/20] for i386 Copyright (c) 1993-2006 by Florian Klaempfl Target OS: Linux for i386 Compiling queen.pas Linking queen 60 Lines compiled, 0.1 sec $ ls queen queen.o queen.pas $ ./queen 1 : 1 5 8 6 3 7 2 4 ...................... 92 : 8 4 1 3 6 2 7 5 解の個数= 92 $
うまくいきました。