.PHONY: build install clean SHELL := /bin/bash BUILD_DIR := $(CURDIR)/build INC_PATH := $(LUA_BINDIR)/../include/nerv/luaT LUA_DIR = $(INST_LUADIR)/threads LIB_PATH := $(LUA_BINDIR)/../lib OBJ_DIR := $(BUILD_DIR)/objs SUBDIR := lib test OBJS := lib/init.o lib/threads.o lib/THThread.o LIBS := $(INST_LIBDIR)/libthreads.so LUA_LIBS := init.lua threads.lua test/test-threads.lua INCLUDE := -I $(LUA_INCDIR) -I $(INC_PATH) -DLUA_USE_APICHECK -DUSE_PTHREAD_THREADS OBJS := $(addprefix $(OBJ_DIR)/,$(OBJS)) OBJ_SUBDIR := $(addprefix $(OBJ_DIR)/,$(SUBDIR)) LUA_SUBDIR := $(addprefix $(LUA_DIR)/,$(SUBDIR)) LUA_LIBS := $(addprefix $(LUA_DIR)/,$(LUA_LIBS)) CFLAGS := -Wall -Wextra -O0 build: $(OBJ_DIR) $(OBJ_SUBDIR) $(OBJS) install: $(LUA_DIR) $(LUA_SUBDIR) $(LIBS) $(LUA_LIBS) $(OBJ_DIR) $(LUA_DIR) $(OBJ_SUBDIR) $(LUA_SUBDIR): -mkdir -p $@ $(LUA_DIR)/%.lua: %.lua cp $< $@ $(OBJ_DIR)/%.o: %.c $(patsubst /%.o,/%.c,$@) gcc -c -o $@ $< $(INCLUDE) -fPIC $(CFLAGS) $(LIBS): $(OBJS) gcc -shared -o $@ $^ $(LDFLAGS) -Wl,-rpath=$(LIB_PATH) -L$(LIB_PATH) -lnervcore -lluaT -lpthread clean: -rm -rf $(OBJ_DIR)