lutango/Makefile

66 lines
1.4 KiB
Makefile

#------------------------------------------------------------------------------
#
# luTango - Lua binding for Tango
#
# Copyright (C) 2023 Grzegorz Kowalski
# See LICENSE for legal information
#
# file: Makefile
#
# Build configuration
#
#------------------------------------------------------------------------------
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)