mruby を Windows で動かしてみた

何の意味があるのか解りませんが、mrubyをWindows で動かせるのか試すためだけにコンパイルしてみました。

ビルド環境は Windows VistaMinGwです。
MinGwを使ってますが生成されるファイルはWin系のファイルなので問題はないですよね…
とりあえず make した結果をのせます。

$ make
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c array.c -o array.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c cdump.c -o cdump.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c class.c -o class.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c codegen.c -o codegen.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c compar.c -o compar.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c crc.c -o crc.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c dump.c -o dump.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c enum.c -o enum.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c error.c -o error.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c etc.c -o etc.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c gc.c -o gc.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c hash.c -o hash.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c init.c -o init.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c init_ext.c -o init_ext.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c kernel.c -o kernel.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c load.c -o load.o
load.c: In function 'mrb_load_irep':
load.c:140:26: warning: 'hex4[1u]' may be used uninitialized in this function
load.c:140:26: note: 'hex4[1u]' was declared here
load.c:140:26: warning: 'hex4[2]' may be used uninitialized in this function
load.c:140:26: note: 'hex4[2]' was declared here
load.c:140:26: warning: 'hex4[3u]' may be used uninitialized in this function
load.c:140:26: note: 'hex4[3u]' was declared here
load.c:140:44: warning: 'hcrc[1]' may be used uninitialized in this function
load.c:140:44: note: 'hcrc[1]' was declared here
load.c:140:44: warning: 'hcrc[2]' may be used uninitialized in this function
load.c:140:44: note: 'hcrc[2]' was declared here
load.c:140:44: warning: 'hcrc[3u]' may be used uninitialized in this function
load.c:140:44: note: 'hcrc[3u]' was declared here
load.c:140:35: warning: 'hex8[1]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[1]' was declared here
load.c:140:35: warning: 'hex8[2]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[2]' was declared here
load.c:140:35: warning: 'hex8[3u]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[3u]' was declared here
load.c:140:35: warning: 'hex8[4u]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[4u]' was declared here
load.c:140:35: warning: 'hex8[5]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[5]' was declared here
load.c:140:35: warning: 'hex8[6]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[6]' was declared here
load.c:140:35: warning: 'hex8[7]' may be used uninitialized in this function
load.c:140:35: note: 'hex8[7]' was declared here
load.c:140:17: warning: 'hex2[1u]' may be used uninitialized in this function
load.c:140:17: note: 'hex2[1u]' was declared here
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c math.c -o math.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c numeric.c -o numeric.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c object.c -o object.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c pool.c -o pool.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c print.c -o print.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c proc.c -o proc.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c range.c -o range.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c re.c -o re.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c regcomp.c -o regcomp.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c regenc.c -o regenc.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c regerror.c -o regerror.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c regexec.c -o regexec.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c regparse.c -o regparse.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c sprintf.c -o sprintf.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c st.c -o st.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c state.c -o state.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c string.c -o string.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c struct.c -o struct.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c symbol.c -o symbol.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c time.c -o time.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c variable.c -o variable.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c vm.c -o vm.o
bison -o ./y.tab.c ./parse.y
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -c ./y.tab.c -o ./y.tab.o
ar r ../lib/libmruby_core.a ./array.o ./cdump.o ./class.o ./codegen.o ./compar.o ./crc.o ./dump.o ./enum.o ./error.o ./etc.o ./gc.o ./hash.o ./init.o ./init_ext.o ./kernel.o ./load.o ./math.o ./numeric.o ./object.o ./pool.o ./print.o ./proc.o ./range.o ./re.o ./regcomp.o ./regenc.o ./regerror.o ./regexec.o ./regparse.o ./sprintf.o ./st.o ./state.o ./string.o ./struct.o ./symbol.o ./time.o ./variab
le.o ./vm.o ./y.tab.o
C:\MinGW\bin\ar.exe: creating ../lib/libmruby_core.a
cat ./*.rb > mrblib.rbtmp
make -C ../tools/mrbc CC=gcc LL=gcc ALL_CFLAGS="-Wall -Werror-implicit-function-
declaration -g -O3"
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I../../src -I../../src/../include -c ../../src/../tools/mrbc/mrbc.c -o ../../src/../tools/mrbc/mrbc.o
gcc -o ../../bin/mrbc.exe ../../src/../tools/mrbc/mrbc.o ../../lib/libmruby_core.a -lm
../bin/mrbc.exe -Bmrblib_irep -omrblib.ctmp mrblib.rbtmp; cat init_mrblib.c mrblib.ctmp > mrblib.c
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I../src -I../include -c mrblib.c -o mrblib.ocp ../lib/libmruby_core.a ../lib/libmruby.aar r ../lib/libmruby.a mrblib.o
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I../../src -I../../
src/../include -c ../../src/../tools/mruby/mruby.c -o ../../src/../tools/mruby/mruby.o
gcc -o ../../bin/mruby.exe -g -O3 ../../src/../tools/mruby/mruby.o ../../lib/libmruby.a -lm
gcc -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I../../src -I../../src/../include -c ../../src/../tools/mirb/mirb.c -o ../../src/../tools/mirb/mirb.o
gcc -o ../../bin/mirb.exe -g -O3 ../../src/../tools/mirb/mirb.o ../../lib/libmruby.a -lm


……っということで何の問題もなくビルド完了
後はコマンドプロンプトで実行してみて、mrubyのコマンドが実行できるかだけ確認

mrubyでWindows

何の問題もなく動くようでした。
これで何ができるかっというわけではないですが、電車の中でどんな動きになるのか気になってやってみましたが、問題なく動くという素晴らしい結果になったんじゃないでしょうか。

これでWindowsでmrubyが動かせるぞ!!
何をするかは、まったく考えてません…