compile.o:   compile.c yarvcore.h compile.h version.h debug.h insns.inc insns_info.inc optinsn.inc opt_sc.inc
disasm.o:    disasm.c yarvcore.h version.h debug.h
vm.o:        vm.c vm.h version.h insnhelper.h insns.inc yarvcore.h debug.h vm.inc vmtc.inc
yarvcore.o:  yarvcore.c yarvcore.h version.h debug.h minsns.inc rev.inc
debug.o:     debug.h
yarvsubst.o: yarv.h
# compiled.c:  compiled.inc

minsns.inc :
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS)

opt_sc.inc : $(srcdir)/insns.def
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS)

optinsn.inc : $(srcdir)/opt_operand.def
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS)

insns.inc : $(srcdir)/insns.def
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS)

vm.inc : $(srcdir)/insns.def
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS) vm.inc

rev.inc : $(srcdir)/ChangeLog
	$(RUBY) $(srcdir)/rb/getrev.rb $(srcdir)/ChangeLog > rev.inc

incs :
	$(RUBY) $(srcdir)/rb/insns2vm.rb $(CPPFLAGS)

rebuild : clean all

docs:
	$(RUBY) -I$(srcdir) $(srcdir)/rb/makedocs.rb

test-all: all
	$(RUBY) -I$(srcdir) $(srcdir)/test/runner.rb $(TESTOPT)

test-each: all
	$(RUBY) -I$(srcdir) $(srcdir)/test/test_$(ITEM).rb $(TESTOPT)

run: all
	$(RUBY) -I$(srcdir) $(srcdir)/test.rb $(RUNOPT)

benchmark: all
	$(RUBY) -I$(srcdir) $(srcdir)/benchmark/run.rb

ITEM=bmx_temp
tbench: all
	$(RUBY) -I$(srcdir) $(srcdir)/benchmark/run.rb $(ITEM)


test-compiler: all
	$(RUBY) -I$(srcdir) $(srcdir)/rb/allload.rb > test-compiler-result.txt

aotc:
	$(RUBY) -I$(srcdir) $(srcdir)/rb/aotcompile.rb $(CPPFLAGS) > compiled.inc

compiled.inc: $(srcdir)/rb/aotctest.rb
	$(RUBY) -I$(srcdir) $(srcdir)/rb/aotcompile.rb $(CPPFLAGS) > compiled.inc
