AspectC++ on MinGW+MSYS


C++でアスペクト指向プログラミングを行うための文法拡張を、
プリプロセッサレベルで実現するツール(?)、AspectC++についてです。
本家はこちら。GPLで配布されているフリーソフトです。

日本語の文書があんまり見付からなかったので、主に自分用メモということで。
今回対象としているバージョン番号は、

という組み合わせですが、
多分AspectC++本体のバージョン以外は適当で良いような気がします。
(AspectC++本体はバージョンが古いとgcc 3.xに対応してなかったりするらしいです。)
# MinGWとかMSYSとかが古いのは、単に既存の環境で試したためです。


メニュー


インストール

  1. バイナリを取ってくる。
    とりあえずWin32版のバイナリを取ってきます。
    # つーか、ソースからのmakeの仕方が分かりませんでした(…へたれ > 俺)。
    本家のDownloadからどうぞ。ac-0.8.1-Win32.zipってやつです。

  2. 解凍する。
    適当な場所に解凍します。
    ここでは、Cドライブのルートに解凍し、C:\AC以下に展開されたものとして進めます。

  3. 設定する。
    まず、MSYSの~/.profileあたりに以下のような感じで環境変数を設定します。
    PATH=$PATH:/c/AC;export PATH
    PUMA_CONFIG=c:/AC/puma.cfg;export PUMA_CONFIG
    
    # この時、PATHはMSYS側が参照するのでMSYS側から見たパスを、
    # PUMA_CONFIGはMSYSと関係のないac++から参照するので、Windowsなパスを書きます。
    なお、設定を書いた直後は反映されないので、MSYSのシェルを起動しなおすか、
    「source ~/.profile」などとして設定を反映させてください。

    次に、上で書いたpuma.cfgが無いので作ります。これは、
    % cd /c/AC
    % ./pumag++conf.pl puma.cfg
    
    でOKです。
    # ここでperlが必要になります。今回はmsysDTKに入っているものを使用しました。
    以上で設定は完了です。

  4. サンプルをmakeしてみる。
    最後にインストールが正しく完了したかどうかを確かめるために、
    サンプルプログラムをmakeしてみます。
    AspectC++を展開したフォルダのexamplesフォルダ以下に、
    サンプルプログラムが入っています。

    ここで1つ罠があり、何故かexamplesフォルダ以下に、
    compile済みのelfな実行ファイル(多分linux用?)が入っています。
    まずはこれを消します(「〜-out」という感じの名前のフォルダがそうです)。
    % cd /c/AC/
    % rm -rf examples/*-out
    
    ここで注意して欲しいのが、CacheとIconCacheの2つのサンプルです。
    どうやらこの2つはそのままmakeが通らないようなので、
    適当にパッチを当てます(Cache, IconCache)。
    当て終わったら、
    % make
    
    にてサンプルがmakeされるはずです。その後、
    % make testrun
    
    にてサンプルを実行できます。

  5. 無事サンプルが動けば、インストールは終わりです。

back