昨日の質問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は何をダウンロードするのか確認したいと思い、手元の Dell の Ubuntu マシン DELL Inspiron で下記のコマンドを実行しました。
これはエラーで落ちるのですが、インストールしようとしたのが gnu-pascal であることが判明しました。ネットでパスカルで検索するとたくさん種類があるけれど、少なくとも Ubuntu 8.04 でインストールしようとしたものが gnu-pascal なのでこれをターゲットとします。
ところが、gnu-pascal のホームページのhttp://www.gnu-pascal.de/gpc/h-index.html というところのダウンロードがよくわからない。wget や ftp でもダウンロードできません。Windows でファイルをダウンロードして、WinSCP で Dreamhost にもって行きました。ファイルはつぎの二つです。
gcc-core-3.4.4.tar.bz2
gpc-20060325.tar.bz2
Putty で Dreamhost につないで、それぞれ解凍して、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
というようにプログラムが実行されました。おめでとう。