diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-09-19 07:27:07 +0900 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-09-19 07:27:07 +0900 |
| commit | c6a520c6b5362e26cb9d741eed08f4fc3426b3ad (patch) | |
| tree | 05955125080e5e4d3b19809bda7fdfa7d02f2197 /mrbgems/Makefile | |
| parent | ac235e25e54c55784b175cf9e66b8db89a54bd44 (diff) | |
| download | mruby-c6a520c6b5362e26cb9d741eed08f4fc3426b3ad.tar.gz mruby-c6a520c6b5362e26cb9d741eed08f4fc3426b3ad.zip | |
Built generator for an variable amount of gems
Diffstat (limited to 'mrbgems/Makefile')
| -rw-r--r-- | mrbgems/Makefile | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/mrbgems/Makefile b/mrbgems/Makefile index b8f35f2a9..970baadac 100644 --- a/mrbgems/Makefile +++ b/mrbgems/Makefile @@ -5,24 +5,43 @@ LIBRGEMS := ../lib/libmruby_gems.a INIT := init_gems RM_F := rm -f CC_FLAGS := -Wall -Werror-implicit-function-declaration -g -O3 -MMD -I. -I./../include -GEM_DIRS := $(wildcard g/*) +MMAKER := ./gem_helper +MMAKER_BIN := $(MMAKER) +export CC = gcc +export LL = gcc ############################## # generic build targets, rules .PHONY : all -all : $(GEM_DIRS) - echo $(GEM_DIRS) +all : $(INIT).o all_gems -# driver build rule -#$(INIT).o : $(INIT).c -# gcc $(CC_FLAGS) -c $(INIT).c -o $(INIT).o +$(INIT).o : $(INIT).c + @echo "Build the driver which initiailizes all gems" + gcc $(CC_FLAGS) -c $< -o $@ -$(GEM_DIRS) : - echo $@ +all_gems : $(MMAKER_BIN) g/Makefile + @echo "Build all gems" + $(MAKE) -C g + +$(MMAKER_BIN) : $(MMAKER).o + @echo "Build the generator which creates the driver and Gem Makefile" + $(LL) -o $@ $(CC_FLAGS) $< +$(MMAKER).o : $(MMAKER).c + $(CC) $(CC_FLAGS) -MMD -c $< -o $@ + +$(INIT).c : $(MMAKER_BIN) + @echo "Generate Gem driver" + $(MMAKER_BIN) $(INIT) > $@ + +g/Makefile : + @echo "Generate Gem Makefile" + $(MMAKER_BIN) makefile > $@ # clean driver and all gems .PHONY : clean -clean : g/* - $(RM_F) $(INIT).o $(INIT).d $(LIBRGEMS) - $(MAKE) clean -C $< +clean : $(MMAKER_BIN) + @echo "Cleanup Gems" + $(MMAKER_BIN) makefile > g/Makefile + $(MAKE) clean -C g + -$(RM_F) $(INIT).c *.o *.d $(MMAKER_BIN) g/Makefile |
