AspectC++ on MinGW+MSYS
C++でアスペクト指向プログラミングを行うための文法拡張を、
プリプロセッサレベルで実現するツール(?)、AspectC++についてです。
本家はこちら。GPLで配布されているフリーソフトです。
日本語の文書があんまり見付からなかったので、主に自分用メモということで。
今回対象としているバージョン番号は、
- AspectC++ 0.8.1
- MinGW 2.0.0-3 (gcc 3.2)
- MSYS 1.0.7
- msysDTK 1.0.1 (perl 5.6.1)
という組み合わせですが、
多分AspectC++本体のバージョン以外は適当で良いような気がします。
(AspectC++本体はバージョンが古いとgcc 3.xに対応してなかったりするらしいです。)
# MinGWとかMSYSとかが古いのは、単に既存の環境で試したためです。
メニュー
-
バイナリを取ってくる。
とりあえずWin32版のバイナリを取ってきます。
# つーか、ソースからのmakeの仕方が分かりませんでした(…へたれ > 俺)。
本家のDownloadからどうぞ。ac-0.8.1-Win32.zipってやつです。
-
解凍する。
適当な場所に解凍します。
ここでは、Cドライブのルートに解凍し、C:\AC以下に展開されたものとして進めます。
-
設定する。
まず、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に入っているものを使用しました。
以上で設定は完了です。
-
サンプルを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されるはずです。その後、
にてサンプルを実行できます。
- 無事サンプルが動けば、インストールは終わりです。