|
@@ -1,14 +1,32 @@
|
|
|
+LOCAL ?= 0
|
|
|
+DEBUG ?= 0
|
|
|
+
|
|
|
+LOCAL_PREFIX ?= $(HOME)/.local
|
|
|
+ifneq ($(LOCAL), 0)
|
|
|
+PREFIX ?= $(LOCAL_PREFIX)
|
|
|
+else
|
|
|
PREFIX ?= /usr/local
|
|
|
+endif
|
|
|
+
|
|
|
+VOLK_ROOT = ext/volksdata
|
|
|
+VOLK_LIBDIR = $(VOLK_ROOT)/build
|
|
|
|
|
|
INCLUDE = -I$(PREFIX)/include
|
|
|
+VOLK_INCLUDE = -I$(VOLK_ROOT)/include
|
|
|
CFLAGS = -shared -DDEBUG -Og -ggdb -Wall -fPIC
|
|
|
-LDFLAGS = -L$(PREFIX)/lib -llua -lvolksdata_dbg
|
|
|
+LDFLAGS = -L$(PREFIX)/lib -L$(VOLK_LIBDIR) -llua -llmdb -lxxhash -luuid
|
|
|
|
|
|
LUAC_SRC = $(wildcard src/*.c)
|
|
|
#OBJ = $(patsubst src/%.c, lib/%.so, $(LUAC_SRC))
|
|
|
-OBJ = volksdata.so
|
|
|
+OBJ = lua_volksdata.so
|
|
|
OBJPATH = lib/$(OBJ)
|
|
|
|
|
|
+ifneq ($(DEBUG), 0)
|
|
|
+VOLK_LIB = $(VOLK_LIBDIR)/libvolksdata_dbg.a
|
|
|
+else
|
|
|
+VOLK_LIB = $(VOLK_LIBDIR)/libvolksdata.a
|
|
|
+endif
|
|
|
+
|
|
|
LUA_VER=5.4
|
|
|
INSTALL_SUFFIX=lib/lua/$(LUA_VER)
|
|
|
INSTALL_DIR=$(PREFIX)/$(INSTALL_SUFFIX)
|
|
@@ -20,23 +38,20 @@ VALGRIND_LOG=/tmp/lua_volksdata_valgrind.log
|
|
|
|
|
|
|
|
|
.PHONY: lib
|
|
|
-lib: $(OBJPATH)
|
|
|
+lib: $(VOLK_LIB) $(OBJPATH)
|
|
|
|
|
|
+$(VOLK_LIB):
|
|
|
+ $(MAKE) -C $(VOLK_ROOT) lib LOCAL=1 DEBUG=$(DEBUG) LOCAL_PREFIX=$(VOLK_ROOT)
|
|
|
|
|
|
$(OBJPATH): src/*.c src/lua_volksdata.h
|
|
|
- $(CC) $(INCLUDE) $(CFLAGS) $(LDFLAGS) -o $@ src/*.c
|
|
|
+ $(CC) $(INCLUDE) $(CFLAGS) $(LDFLAGS) -o $@ src/*.c $(VOLK_LIB)
|
|
|
|
|
|
|
|
|
-install: $(OBJPATH)
|
|
|
+install: lib
|
|
|
mkdir -p $(INSTALL_DIR)
|
|
|
cp $(OBJPATH) $(INSTALL_DIR)
|
|
|
|
|
|
|
|
|
-local_install: $(OBJPATH)
|
|
|
- mkdir -p $(INSTALL_DIR)
|
|
|
- cp $(OBJPATH) $(LOCAL_INSTALL_DIR)
|
|
|
-
|
|
|
-
|
|
|
.PHONY: uninstall
|
|
|
uninstall:
|
|
|
$(RM) $(INSTALL_DIR)/$(OBJ)
|
|
@@ -47,6 +62,11 @@ clean:
|
|
|
$(RM) lib/*.so
|
|
|
|
|
|
|
|
|
+.PHONY: depclean
|
|
|
+depclean:
|
|
|
+ $(MAKE) -C $(VOLK_ROOT) clean LOCAL=1 LOCAL_PREFIX=.
|
|
|
+
|
|
|
+
|
|
|
.PHONY: memcheck
|
|
|
memcheck:
|
|
|
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \
|