forked from daneos/lutango
66 lines
1.4 KiB
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)
|