diff options
| author | mimaki <[email protected]> | 2012-04-20 09:39:03 +0900 |
|---|---|---|
| committer | mimaki <[email protected]> | 2012-04-20 09:39:03 +0900 |
| commit | e0d6430f63c4cbe0c71ce82ee23284671389a818 (patch) | |
| tree | 41abad7f12eced98d9ac14d141cea62464c3332f /src/Makefile | |
| parent | 54ad561098ed353ada70205c39b2c42a2a2eb9e5 (diff) | |
| download | mruby-e0d6430f63c4cbe0c71ce82ee23284671389a818.tar.gz mruby-e0d6430f63c4cbe0c71ce82ee23284671389a818.zip | |
add mruby sources
Diffstat (limited to 'src/Makefile')
| -rw-r--r-- | src/Makefile | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 000000000..41a2c83a0 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,89 @@ +# makefile discription. +# basic build file for RiteVM library +# 11.Apr.2011 coded by Kenji Yoshimoto. +# 31.Aug.2011 coded by Hiroshi Mimaki. + +# project-specific macros +# extension of the executable-file is modifiable(.exe .out ...) +BASEDIR = . +TARGET := ../lib/ritevm +ifeq ($(OS),Windows_NT) +LIB := $(TARGET).lib +else +LIB := $(TARGET).a +endif +YSRC := $(BASEDIR)/parse.y +YC := $(BASEDIR)/y.tab.c +EXCEPT1 := $(YC) $(BASEDIR)/minimain.c $(BASEDIR)/compile.c $(BASEDIR)/dump.c $(BASEDIR)/cdump.c +OBJY := $(patsubst %.c,%.o,$(YC)) +OBJ1 := $(patsubst %.c,%.o,$(filter-out $(EXCEPT1),$(wildcard $(BASEDIR)/*.c))) +#OBJ2 := $(patsubst %.c,%.o,$(wildcard $(BASEDIR)/ext/regex/*.c)) +#OBJ3 := $(patsubst %.c,%.o,$(wildcard $(BASEDIR)/ext/enc/*.c)) +OBJS := $(OBJ1) $(OBJ2) $(OBJ3) +# mruby libraries +EXTC := $(BASEDIR)/../mrblib/mrblib.c +EXTRB := $(wildcard $(BASEDIR)/../mrblib/*.rb) +EXTM := $(patsubst %.c,%.o,$(EXTC)) +# extend libraries +#EXT1 := $(patsubst %.c,%.o,$(wildcard $(BASEDIR)/ext/socket/*.c)) +EXTS := $(EXT1) + +# libraries, includes +INCLUDES = -I$(BASEDIR) -I$(BASEDIR)/../include +#INCLUDES = -I$(RITEVM_ROOT) + +# compiler, linker (gcc) +CC = gcc +AR = ar +YACC = bison + +DEBUG_MODE = 1 +ifeq ($(DEBUG_MODE),1) +CFLAGS = -g +else +CFLAGS = -O3 +endif +ALL_CFLAGS = -Wall -Werror-implicit-function-declaration $(CFLAGS) +MAKE_FLAGS = --no-print-directory CC="$(CC)" LL="$(LL)" + +############################## +# generic build targets, rules + +.PHONY : all +all : $(EXTM) $(LIB) + @echo "make: built targets of `pwd`" + +# executable constructed using linker from object files +$(LIB) : $(OBJS) $(OBJY) $(EXTM) $(EXTS) + $(AR) r $@ $(OBJS) $(OBJY) $(EXTM) $(EXTS) + +-include $(OBJS:.o=.d) $(OBJY:.o=.d) + +# objects compiled from source +$(OBJS) : %.o : %.c + $(CC) $(ALL_CFLAGS) -MMD $(INCLUDES) -c $< -o $@ + +# mruby library compile +$(EXTM) : $(EXTRB) $(OBJS) $(OBJY) + $(MAKE) -C ../mrblib $(MAKE_FLAGS) + +# extend libraries complile +$(EXTS) : %.o : %.c + $(CC) $(ALL_CFLAGS) -MMD $(INCLUDES) -c $< -o $@ + +# parser complie +$(OBJY) : $(YC) + $(CC) $(ALL_CFLAGS) -MMD $(INCLUDES) -c $(YC) -o $(OBJY) + +# yacc complie +$(YC) : $(YSRC) + $(YACC) -o $(YC) $(YSRC) + +# clean up +.PHONY : clean #cleandep +clean : + $(MAKE) clean -C ../mrblib $(MAKE_FLAGS) + -rm -f $(LIB) $(OBJS) $(OBJY) $(YC) + -rm -f $(OBJS:.o=.d) $(OBJY:.o=.d) + @echo "make: removing targets, objects and depend files of `pwd`" + |
