# This is the default Makefile integrated # by each Gem. It integrates important constants # for usage inside of a Gem. # mruby src root MRUBY_ROOT := ../../../ # Tools CC := gcc RM := rm -f AR := ar SRC_DIR := src MRB_DIR := mrblib INCLUDES := -I$(SRC_DIR) -I$(MRUBY_ROOT)include -I$(MRUBY_ROOT)src -I. CFLAGS := $(INCLUDES) -O3 -g -Wall -Werror-implicit-function-declaration # LIBR can be manipulated with command line arguments ifeq ($(strip $(LIBR)),) # default mruby library LIBR := $(MRUBY_ROOT)lib/libmruby.a endif # Default rules which are calling the # gem specific gem-all and gem-clean # implementations of a gem .PHONY : all all : gem-info gem-all gem-info: @echo "Building Gem '$(GEM)'" # Building target for C and Ruby files gem-c-and-rb-files : gem_mixlib.o $(AR) rs gem.a $(GEM_OBJECTS) $^ gem_mixlib.c : gem_mrblib_header.ctmp gem_mrblib_irep.ctmp gem_mixlib_init.ctmp cat $^ > $@ gem_mixlib_init.ctmp : ../../generator gem_mixlib $(GEM) > $@ # Building target for C files gem-c-files : gem_srclib.o $(AR) rs gem.a $(GEM_OBJECTS) $< gem_srclib.c : ../../generator gem_srclib $(GEM) > $@ # Building target for Ruby Files gem-rb-files : gem_mrblib.o $(AR) rs gem.a $< gem_mrblib.c : gem_mrblib_header.ctmp gem_mrblib_irep.ctmp gem_mrblib_init.ctmp cat $^ > $@ gem_mrblib_header.ctmp : ../../generator gem_mrblib > $@ gem_mrblib_init.ctmp : ../../generator gem_mrblib $(GEM) > $@ gem_mrblib_irep.ctmp : gem_mrblib.rbtmp ../../../bin/mrbc -Bgem_mrblib_irep_$(GEM) -o$@ $< gem_mrblib.rbtmp : cat $(GEM_RB_FILES) > $@ gem-clean-c-and-rb-files : -$(RM) gem.a gem_mixlib.o gem_mixlib.c gem_mrblib_header.ctmp gem_mrblib_irep.ctmp gem_mixlib_init.ctmp gem_mrblib.rbtmp gem-clean-c-files : -$(RM) gem.a gem_srclib.c gem_srclib.o $(GEM_OBJECTS) gem-clean-rb-files : -$(RM) gem.a gem_mrblib.o gem_mrblib.c gem_mrblib_header.ctmp gem_mrblib_init.ctmp gem_mrblib_irep.ctmp gem_mrblib.rbtmp .PHONY : clean clean : gem-clean @echo "Gem '$(GEM)' is clean"