てきとう

てきとう

【テスト】Mountain LionでGCCを--enable-languages=adaでビルドしてみた記憶【コピペ】

*1

お久しぶりですが別に何もありません。いつも通りのダメ人間です。
適当にやってもできなかったけど適当に調べたらできたので記録というか記憶をメモ。
記憶なので細かいところ違うかと。

用意するもの

  • 動くGNAT。今回はgnuadaの4.6.0を使用。
  • gccのソース。今回は4.7.1。
  • gccのビルドに必要らしいGMPとかMPFRとかMPCとか。細かくは忘れたのでドキュメント参照してください。
    • MacportsだのFinkだのHomebrewだのをお勧めします。

手順

ここここを参考にやりましたので、そちらを見ることをお勧めします。
まとめると、要点はconfigureに以下をくっつけること。

CC='gcc -D_FORTIFY_SOURCE=0'

というわけでconfigureだけ気をつければいいので、gnuadaのGNATにパス通して

$ ./configure CC='gcc -D_FORTIFY_SOURCE=0' \
--enable-languages=c,c++,ada \
--prefix=$SOMEWHERE \
--build=x86_64-apple-darwin12
(略)
$ make
(略)
$ make install
(略)

こんな感じで動いてそうなGNATができました。


ちなみにCC=...を忘れるとldが「x86_64でこのシンボル知らねーよ!」とだかよく分からない暴言を吐いてconfigureに失敗します。
そのうち直ることを期待しときましょう。

*1:先程はてダに書いたもののコピペです。

1からやり直し:hello, world編

基本

with Ada.Text_Io;
procedure Hello is
begin
   Ada.Text_Io.Put_Line("hello, world");
end Hello;

応用:use

with Ada.Text_Io;
use Ada.Text_Io;
procedure Hello is
begin
   Put_Line("hello, world");
end Hello;

応用:renames

with Ada.Text_Io;
procedure Hello is
   package TIO renames Ada.Text_Io;
begin
   TIO.Put_Line("hello, world");
end Hello;

宣言時にrenamesを使うと別名として宣言できます。
パッケージに短く適当な別名をつけることで、書く際の負担を減らしつつ可読性を上げることができます。