ILogScript
id:w_oさんが作っておられるスクリプト。
直接gccをバックエンドにするだけの技術力が(私のように)無い場合、ILogScriptを吐くのもいいですね。
Queenは前述*1の通り例外処理が特殊なので、gccの想定に合うかどうか心配ですが。あと関数内関数での親ebpの使い方とか。関数内関数を持ち出せるかどうか、については、gdcが既に実現しているはずなので可能なのでしょう。
追記: ilogcのMinGW環境でのビルド
まず、configureが無い…そうか、Adaさえ使えればいいやでかなりてきとーな環境構築*2しかしてないからなあ…そして、makefileの書き換えに飽きたところで試しにgcc -c main.c
などと打ってみると、大量のエラーが…そもそもヘッダファイルが足りてないっぽい。単純に考えて恐らくgccのソースファイルでは無いでしょうか。そんなわけで、動作例はまたこんど。(←あきらめ良すぎ)
http://sourceforge.net/project/showfiles.php?group_id=2435
makeは私日頃Borlandのmakeを使ってるのですが、細かいところを直すのにそろそろ疲れて来たのでMinGWのmakeも拾っておく。弄っているうちにわけわからなくなってきたので一式全部拾い直して入れ直すか…おっと、autoconfはMSYSに入ってない。MSYS入れる価値無いか…?それでもshのためにMSYSが必要。
http://homepage1.nifty.com/kuuku/gcc-sjis/howtobuild.html
ILogのconfigureはgccのそれを利用…でいいのかな?
Administrator@MUARA /gcc-3.4.2-20040916-1/gcc $ ./configure --enable-languages=ilog --enable-checking=tree checking build system type... i686-pc-mingw32 checking host system type... i686-pc-mingw32 checking target system type... i686-pc-mingw32 ... config.status: creating mkheaders config.status: creating auto-host.h config.status: executing default commands Administrator@MUARA /gcc-3.4.2-20040916-1/gcc $ make TARGET_CPU_DEFAULT="" \ HEADERS="auto-host.h ansidecl.h config/i386/xm-mingw32.h" DEFINES="" \ /bin/sh ./mkconfig.sh config.h TARGET_CPU_DEFAULT="TARGET_CPU_DEFAULT_pentiumpro" \ HEADERS="config/i386/i386.h config/i386/unix.h config/i386/bsd.h config/i386/gas .h config/dbxcoff.h config/i386/cygming.h config/i386/mingw32.h defaults.h" DEFI NES="" \ /bin/sh ./mkconfig.sh tm.h TARGET_CPU_DEFAULT="" \ HEADERS="auto-host.h ansidecl.h config/i386/xm-mingw32.h" DEFINES="" \ /bin/sh ./mkconfig.sh bconfig.h gcc -c -g0 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-p rototypes -pedantic -Wno-long-long -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -I . -I. -I./. -I./../include genmodes.c -o genmodes.o gcc -c -g0 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-p rototypes -pedantic -Wno-long-long -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -I . -I. -I./. -I./../include errors.c -o errors.o make: *** No rule to make target `../libiberty/libiberty.a', needed by `genmodes .exe'. Stop. Administrator@MUARA /gcc-3.4.2-20040916-1/gcc $
えーと…手順通りにやっても何か足らなさそうです。
libiberty.a…まず、先にgccをコンパイルしないとだめなのかな?
libibertyディレクトリで./configure、make、その後gccディレクトリで再びmake.
... /bin/sh: pod2man: command not found make: [doc/fsf-funding.7] Error 1 (ignored) rm gfdl.pod gcov.pod cpp.pod gpl.pod gcc.pod fsf-funding.pod Administrator@MUARA /gcc-3.4.2-20040916-1/gcc $
pod2manとかいうものが無くて最後まで成功はしませんでしたが、ilogc.exeは確かに完成。