レンタルサーバーでPascalをインストール

昨日の質問http://d.hatena.ne.jp/niming538/20110628の答えです。


しかし、一世を風靡したプログラム言語のパスカルがすたれてしまっているのですね。感慨深いです。


レンタルサーバーで普通やるやり方


wget xxx.tar.bz
tar fvx xxx.tar.bz
cd xxx
./configure --prefix=$HOME
make
make install


でやるためのxxxを探すため、普通のLinuxは何をダウンロードするのか確認したいと思い、手元の DellUbuntu マシン DELL Inspiron で下記のコマンドを実行しました。


aptitude install pascal


これはエラーで落ちるのですが、インストールしようとしたのが gnu-pascal であることが判明しました。ネットでパスカルで検索するとたくさん種類があるけれど、少なくとも Ubuntu 8.04 でインストールしようとしたものが gnu-pascal なのでこれをターゲットとします。
ところが、gnu-pascal のホームページのhttp://www.gnu-pascal.de/gpc/h-index.html というところのダウンロードがよくわからない。wgetftp でもダウンロードできません。Windows でファイルをダウンロードして、WinSCPDreamhost にもって行きました。ファイルはつぎの二つです。


gcc-core-3.4.4.tar.bz2
gpc-20060325.tar.bz2


PuttyDreamhost につないで、それぞれ解凍して、README に書いてあるように gpc の p フォルダーを gcc にコピーして、gcc の方で ./configure --prefix=$HOME --enable-language=pascal , make , make install したところ、エラーでインストールできません。いろいろやって、結局 解凍からやりなおして、gcc だけを ./configure --prefix=$HOME --disable-multilib でインストールして、その後で、一旦 make distclean して、gpc の p フォルダーを gcc にコピーして、gcc の方で ./configure --prefix=$HOME --enable-language=pascal --disable-multilib , make , make install したところ、gpc が動くようになりました。
ためにし次のテキストをfact.pasとします。

program factorial;
var n:integer;
function fac(u:integer):integer;
begin
   if u<2 then fac:=1 else fac:=u*fac(u-1)
end;
begin
   write('n='); readln(n);
  writeln(fac(n));readln
end.

bash のプロンプトで、次のように入力します。


gpc fact.pas


すると、a.out という実行ファイルができます。

./a.out
n=7
5040


というようにプログラムが実行されました。おめでとう。