summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--mrbgems/Makefile7
-rw-r--r--mrbgems/generator.c (renamed from mrbgems/gem_helper.c)28
-rw-r--r--test/Makefile7
-rw-r--r--test/init_mrbtest.c3
5 files changed, 18 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index 6866ec9e3..d18222c3c 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,6 @@ all :
.PHONY : test
test : all
@$(MAKE) -C test $(MAKE_FLAGS)
- @$(MAKE) test -C mrbgems $(MAKE_FLAGS)
# clean up
.PHONY : clean
diff --git a/mrbgems/Makefile b/mrbgems/Makefile
index 1cb5b8a83..d12e85ab4 100644
--- a/mrbgems/Makefile
+++ b/mrbgems/Makefile
@@ -5,7 +5,7 @@ LIBR := ../lib/libmruby.a
INIT := init_gems
RM_F := rm -f
CC_FLAGS := -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include
-MMAKER := ./gem_helper
+MMAKER := ./generator
MMAKER_BIN := $(MMAKER)
export CC = gcc
export LL = gcc
@@ -43,8 +43,9 @@ $(MMAKER_BIN) : $(MMAKER).o
$(MMAKER).o : $(MMAKER).c
$(CC) $(CC_FLAGS) -MMD -c $< -o $@
-test :
- @$(MAKE) test -C g
+.PHONY : prepare-test
+prepare-test :
+ @$(MAKE) prepare-test -C g
# clean driver and all gems
.PHONY : clean
diff --git a/mrbgems/gem_helper.c b/mrbgems/generator.c
index 24b959df9..8d8bee0cf 100644
--- a/mrbgems/gem_helper.c
+++ b/mrbgems/generator.c
@@ -138,32 +138,16 @@ make_gem_makefile()
for_each_gem(" ", "/mrblib/*.rb", "\tcat", "> mrblib_gem.rbtmp", "mrblib");
puts("");
- puts(".PHONY : test");
- puts("test : mrbtest");
- puts("\t@./mrbtest");
+ puts(".PHONY : prepare-test");
+ puts("prepare-test : mrbgemtest.ctmp");
puts("");
- puts("mrbtest : driver.o mrbtest.o");
- puts("\t$(CC) $(CFLAGS) -o ./mrbtest ./mrbtest.o ../../lib/libmruby.a ./driver.o");
+ puts("mrbgemtest.ctmp : mrbgemtest.rbtmp");
+ puts("\t../../bin/mrbc -Bmrbgemtest_irep -omrbgemtest.ctmp mrbgemtest.rbtmp");
puts("");
- puts("driver.o : ../../test/driver.c");
- puts("\t$(CC) $(CFLAGS) -o $@ -c $<");
- puts("");
-
- puts("mrbtest.o : mrbtest.c");
- puts("");
-
- puts("mrbtest.c : mrbtest.ctmp");
- puts("\tcat ../../test/init_mrbtest.c mrbtest.ctmp > mrbtest.c");
- puts("");
-
- puts("mrbtest.ctmp : mrbtest.rbtmp");
- puts("\t../../bin/mrbc -Bmrbtest_irep -omrbtest.ctmp mrbtest.rbtmp");
- puts("");
-
- puts("mrbtest.rbtmp :");
- for_each_gem("", "/test/*.rb ", "\tcat ../../test/assert.rb ", "> mrbtest.rbtmp", "");
+ puts("mrbgemtest.rbtmp :");
+ for_each_gem(" ", "/test/*.rb ", "\tcat", " > mrbgemtest.rbtmp", "");
puts("");
puts(".PHONY : clean");
diff --git a/test/Makefile b/test/Makefile
index 18bc79b5a..efabdc367 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -68,13 +68,16 @@ $(OBJS) : %.o : %.c
$(CC) $(ALL_CFLAGS) -MMD $(INCLUDES) -c $< -o $@
# Compile C source from merged mruby source
-$(CLIB) : $(RLIB) $(MRBC) $(INIT)
- $(MRBC) -Bmrbtest_irep -o$(DLIB) $(RLIB); $(CAT) $(INIT) $(DLIB) > $@
+$(CLIB) : ../mrbgems/g/mrbgemtest.ctmp $(RLIB) $(MRBC) $(INIT)
+ $(MRBC) -Bmrbtest_irep -o$(DLIB) $(RLIB); $(CAT) $(INIT) $(DLIB) ../mrbgems/g/mrbgemtest.ctmp > $@
# merge mruby sources
$(RLIB) : $(ASSLIB) $(MRBS)
$(CAT) $(ASSLIB) $(MRBS) > $@
+../mrbgems/g/mrbgemtest.ctmp :
+ @$(MAKE) prepare-test -C ../mrbgems
+
# clean up
.PHONY : clean
clean :
diff --git a/test/init_mrbtest.c b/test/init_mrbtest.c
index b9f09dd2f..2bc2f2e4b 100644
--- a/test/init_mrbtest.c
+++ b/test/init_mrbtest.c
@@ -5,13 +5,16 @@
#include "mruby/proc.h"
extern const char mrbtest_irep[];
+extern const char mrbgemtest_irep[];
void
mrb_init_mrbtest(mrb_state *mrb)
{
int n = mrb_read_irep(mrb, mrbtest_irep);
+ int m = mrb_read_irep(mrb, mrbgemtest_irep);
mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
+ mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[m]), mrb_top_self(mrb));
if (mrb->exc) {
mrb_p(mrb, mrb_obj_value(mrb->exc));
exit(0);