VERSION=$(shell git describe --tags --always --dirty)\:$(shell date +'%Y%m%d') SRC_DIR := src BUILD_DIR := build OUT_DIR := lib ifeq ($(LUA_VERSION),) LUA_VERSION := 5.1 endif ifeq ($(PREFIX),) PREFIX := /usr/local/lib/lua/$(LUA_VERSION)/lutango endif LUT_INCLUDE := $(SRC_DIR) SRCS := $(shell find . -name '*.cpp') OBJS := $(SRCS:%=$(BUILD_DIR)/%.o) SONAME := core.so.$(VERSION) SOLINK := core.so CC = g++ CXX = $(CC) CFLAGS = -shared -fpic -D_REENTRANT -DVERSION=\"$(VERSION)\" -I$(LUT_INCLUDE) -Wl,--no-undefined CFLAGS += $(shell pkg-config --cflags tango lua$(LUA_VERSION)) LDFLAGS = $(shell pkg-config --libs tango lua$(LUA_VERSION)) CPPFLAGS += $(CFLAGS) dir-guard=@mkdir -p $(@D) .PHONY: default clean install default: $(OUT_DIR)/$(SONAME) $(OUT_DIR)/$(SONAME): $(OBJS) $(dir-guard) $(CXX) $^ $(CPPFLAGS) $(LDFLAGS) -o $@ $(BUILD_DIR)/%.cpp.o: %.cpp $(dir-guard) $(CXX) $(CPPFLAGS) -c $< -o $@ clean: rm -rf build rm -rf lib install: install -d $(PREFIX) install -m 644 $(SRC_DIR)/*.lua $(PREFIX) install -s -m 644 $(OUT_DIR)/$(SONAME) $(PREFIX) ln -sf $(PREFIX)/$(SONAME) $(PREFIX)/$(SOLINK)