summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile70
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