summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2012-11-21 15:56:09 +0800
committerDaniel Bovensiepen <[email protected]>2012-11-21 15:56:09 +0800
commitf97e3facd2e64ecfdf75be5cb579c47ffade3562 (patch)
treedfc702fd78f7cf9bb11d3548551703a89a054845
parentf591d116b0f2c0952aa63aaf28df1f2574b0e7a3 (diff)
downloadmruby-f97e3facd2e64ecfdf75be5cb579c47ffade3562.tar.gz
mruby-f97e3facd2e64ecfdf75be5cb579c47ffade3562.zip
Improve building of Gems to single Archive Files
-rw-r--r--mrbgems/Makefile12
1 files changed, 8 insertions, 4 deletions
diff --git a/mrbgems/Makefile b/mrbgems/Makefile
index a30f804d7..462540c09 100644
--- a/mrbgems/Makefile
+++ b/mrbgems/Makefile
@@ -17,21 +17,26 @@ else
GENERATOR_BIN := $(GENERATOR)
endif
GEM_MAKEFILE := g/Makefile
+GEM_MAKEFILE_LIST := g/MakefileGemList
GEMDLIB := g/mrbgemtest.ctmp
##############################
# generic build targets, rules
.PHONY : all
-all : $(INIT).o all_gems
+all : all_gems gem_init.a
+
+gem_init.a : $(INIT).o
+ $(AR) rs gem_init.a $(INIT).o
all_gems : $(GENERATOR_BIN)
+ @echo "Generate Gem List Makefile"
+ $(GENERATOR_BIN) makefile_list > $(GEM_MAKEFILE_LIST)
@echo "Generate Gem Makefile"
$(GENERATOR_BIN) makefile > $(GEM_MAKEFILE)
@echo "Build all gems"
$(MAKE) -C g
-
$(INIT).c : $(GENERATOR_BIN)
@echo "Generate Gem driver"
$(GENERATOR_BIN) $(INIT) > $@
@@ -39,7 +44,6 @@ $(INIT).c : $(GENERATOR_BIN)
$(INIT).o : $(INIT).c
@echo "Build the driver which initializes all gems"
$(CC) $(CC_FLAGS) -MMD -c $< -o $@
- $(AR) rs $(LIBR) $@
# Generator
@@ -60,4 +64,4 @@ clean : $(GENERATOR_BIN)
@echo "Cleanup Gems"
$(GENERATOR_BIN) makefile > $(GEM_MAKEFILE)
$(MAKE) clean -C g
- -$(RM_F) $(INIT).c *.o *.d $(GENERATOR_BIN) $(GEM_MAKEFILE)
+ -$(RM_F) $(INIT).c *.o *.d $(GENERATOR_BIN) $(GEM_MAKEFILE) $(GEM_MAKEFILE_LIST) gem_init.a