Browse Source

Align build scripts to Volksdata.

scossu 2 weeks ago
parent
commit
5bb57b0c3d
2 changed files with 32 additions and 11 deletions
  1. 30 10
      Makefile
  2. 2 1
      volksdata-scm-1.rockspec

+ 30 - 10
Makefile

@@ -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 \

+ 2 - 1
volksdata-scm-1.rockspec

@@ -26,5 +26,6 @@ dependencies = {
 
 build = {
    type = "make",
-   install_target = "local_install",
+   -- TODO set this based on parameters passed to luarocks.
+   variables = {LOCAL = "1", DEBUG = "1"},
 }