diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | mrbgems/Makefile | 8 | ||||
| -rw-r--r-- | mrbgems/generator.c | 13 |
3 files changed, 13 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore index 420533b61..ccc701bcf 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ CMakeCache.txt /mrbgems/g/MakefileGemList /mrbgems/g/mrbgemtest.ctmp /mrbgems/g/mrbgemtest.rbtmp +/mrbgems/g/*/gem_srclib.c diff --git a/mrbgems/Makefile b/mrbgems/Makefile index c9cd7add2..2c0a0962c 100644 --- a/mrbgems/Makefile +++ b/mrbgems/Makefile @@ -40,15 +40,15 @@ $(GEM_INIT).a : $(GEM_INIT).o all_gems : $(GENERATOR_BIN) @echo "Generate Gem List Makefile" - $(GENERATOR_BIN) makefile_list "$(ACTIVE_GEMS)" > $(GEM_MAKEFILE_LIST) + $(GENERATOR_BIN) makefile_list $(ACTIVE_GEMS) > $(GEM_MAKEFILE_LIST) @echo "Generate Gem Makefile" - $(GENERATOR_BIN) makefile "$(ACTIVE_GEMS)" "$(MRUBY_ROOT)" > $(GEM_MAKEFILE) + $(GENERATOR_BIN) makefile $(ACTIVE_GEMS) "$(MRUBY_ROOT)" > $(GEM_MAKEFILE) @echo "Build all gems" $(MAKE) -C g MRUBY_ROOT='$(MRUBY_ROOT)' ACTIVE_GEMS="$(ACTIVE_GEMS)" $(GEM_INIT).c : $(GENERATOR_BIN) @echo "Generate Gem driver" - $(GENERATOR_BIN) $(GEM_INIT) "$(ACTIVE_GEMS)" > $@ + $(GENERATOR_BIN) $(GEM_INIT) $(ACTIVE_GEMS) > $@ $(GEM_INIT).o : $(GEM_INIT).c @echo "Build the driver which initializes all gems" @@ -71,6 +71,6 @@ prepare-test : .PHONY : clean clean : $(GENERATOR_BIN) @echo "Cleanup Gems" - $(GENERATOR_BIN) makefile "$(ACTIVE_GEMS)" "$(MRUBY_ROOT)" > $(GEM_MAKEFILE) + $(GENERATOR_BIN) makefile $(ACTIVE_GEMS) "$(MRUBY_ROOT)" > $(GEM_MAKEFILE) $(MAKE) clean -C g ACTIVE_GEMS="$(ACTIVE_GEMS)" MRUBY_ROOT='$(MRUBY_ROOT)' -$(RM_F) $(GEM_INIT).c *.o *.d $(GENERATOR_BIN) $(GEM_MAKEFILE) $(GEM_MAKEFILE_LIST) gem_init.a diff --git a/mrbgems/generator.c b/mrbgems/generator.c index 108405b24..f5b1304fa 100644 --- a/mrbgems/generator.c +++ b/mrbgems/generator.c @@ -28,7 +28,7 @@ static char static char *get_full_path(char *path, char *mruby_root) { - char full_path[1024] = { 0 }; + static char full_path[1024] = { 0 }; if (path[0] == '/') { /* An absolute UNIX path starts with a slash */ strcpy(full_path, path); @@ -60,8 +60,9 @@ static char * String which will be the replacement * */ -static char -*replace(const char *s, const char *old, const char *new) + +static char * +replace(const char *s, const char *old, const char *new) { char *ret; int i, count = 0; @@ -75,7 +76,7 @@ static char } } - ret = malloc(i + count * (newlen - oldlen)); + ret = malloc(i + count * (newlen - oldlen) + 1); if (ret == NULL) exit(EXIT_FAILURE); @@ -148,7 +149,7 @@ for_each_gem (char before[1024], char after[1024], char gem_name[1024] = { 0 }; int char_index; char gem_list[1024][1024] = { { 0 }, { 0 } }; - int gem_index; + int gem_index = 0; int i; int skip; FILE *check; @@ -184,6 +185,8 @@ for_each_gem (char before[1024], char after[1024], skip = FALSE; else skip = TRUE; + if (check) + fclose(check); } if (skip == FALSE) |
