diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a54466a --- /dev/null +++ b/Makefile @@ -0,0 +1,70 @@ +all: test + +LMODULES := supple +CMODULES := supple.capi +MODULES := $(LMODULES) $(CMODULES) +LUA_VER := 5.1 + +INST_BASE := /usr/local +LINST_ROOT := $(DESTDIR)$(INST_BASE)/share/lua/$(LUA_VER) +CINST_ROOT := $(DESTDIR)$(INST_BASE)/lib/lua/$(LUA_VER) + +LMOD_FILES := $(patsubst %,%.lua,$(subst .,/,$(LMODULES))) +CMOD_FILES := $(patsubst %,%.so,$(subst .,/,$(CMODULES))) + +CMOD_TARGETS := $(patsubst %,lib/%.so,$(subst .,/,$(CMODULES))) +CMOD_OBJECTS := $(patsubst %,lib/%.o,$(subst .,/,$(CMODULES))) + +.PRECIOUS: $(CMOD_OBJECTS) + +INCS := -I/usr/include/lua$(LUA_VER) +OPT := -O0 -g +CFLAGS := $(INCS) $(OPT) $(CFLAGS) +LFLAGS := -O1 -g -shared $(LFLAGS) + +%.so: %.o + $(CC) $(LFLAGS) -shared -o $@ $^ -llua$(LUA_VER) + +%.o: %.c + $(CC) $(CFLAGS) -fPIC -o $@ -c $< + +build: $(CMOD_TARGETS) + +install: build + mkdir -p $(LINST_ROOT)/supple + mkdir -p $(CINST_ROOT)/supple + for MOD in $(sort $(LMOD_FILES)); do \ + cp lib/$${MOD} $(LINST_ROOT)/$${MOD}; \ + done + for MOD in $(sort $(CMOD_FILES)); do \ + cp lib/$${MOD} $(CINST_ROOT)/$${MOD}; \ + done + +LUA := LUA_PATH="$(shell pwd)/lib/?.lua;$(shell pwd)/extras/luacov/src/?.lua;;" LUA_CPATH="$(shell pwd)/lib/?.so;;" lua$(LUA_VER) + +clean: + $(RM) luacov.report.out luacov.stats.out + $(RM) $(CMOD_TARGETS) $(CMOD_OBJECTS) + +distclean: clean + find . -name "*~" -delete + +.PHONY: example +example: + $(LUA) example/supple-example.lua + +.PHONY: test +test: build + @$(RM) luacov.stats.out + @ERR=0; \ + for MOD in $(sort $(MODULES)); do \ + echo -n "$${MOD}: "; \ + $(LUA) test/test-$${MOD}.lua; \ + test "x$$?" = "x0" || ERR=1; \ + done; \ + $(LUA) extras/luacov/src/bin/luacov -X luacov. -X test. $(LMODULES); \ + exit $$ERR + +.PHONY: interactive +interactive: build + $(LUA) -e'lace=require"supple"' -i |