Add default makefile for Gems

This commit is contained in:
Daniel Bovensiepen
2012-09-20 00:27:56 +08:00
parent ab548b1c19
commit 19fa4a0993
3 changed files with 47 additions and 25 deletions
+37
View File
@@ -0,0 +1,37 @@
# 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
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
@echo "Gem '$(GEM)' is done"
gem-info:
@echo "Building Gem '$(GEM)'"
.PHONY : clean
clean : gem-clean
@echo "Gem '$(GEM)' is clean"
+8 -21
View File
@@ -1,25 +1,12 @@
GEMNAME := hello_world
MRUBY_ROOT = ../../../
include ../../Makefile4gem
INCLUDES = -I$(MRUBY_ROOT)include -I$(MRUBY_ROOT)src -I.
CFLAGS = $(INCLUDES) -O3 -g -Wall -Werror-implicit-function-declaration
RM_F := rm -f
AR := ar
GEM := hello_world
ifeq ($(strip $(LIBR)),)
# default mruby library
LIBR = $(MRUBY_ROOT)lib/libmruby.a
endif
GEM_C_FILES := $(wildcard $(SRC_DIR)/*.c)
GEM_OBJECTS := $(patsubst %.c, %.o, $(GEM_C_FILES))
.PHONY : all
all : src/hello_world.o
@$(AR) rs $(LIBR) src/hello_world.o
@echo "Gem '$(GEMNAME)' is done"
gem-all : $(GEM_OBJECTS)
$(AR) rs $(LIBR) $<
src/hello_world.o : src/hello_world.c
@gcc -c $(CFLAGS) src/hello_world.c -o src/hello_world.o
.PHONY : clean
clean :
-$(RM_F) src/*.o
@echo "Gem '$(GEMNAME)' is clean"
gem-clean :
-$(RM) $(GEM_OBJECTS)
+2 -4
View File
@@ -1,6 +1,4 @@
mruby-md5
hello world
=========
MD5 digest function.
This library comes original from mattn (http://github.com/mattn/mruby-md5)
This is an example gem which implements just one method +HW.say+ in a C extension.