57 lines
1.2 KiB
Makefile
57 lines
1.2 KiB
Makefile
SRCDIR := .
|
|
CC := $(CROSS)gcc
|
|
CFLAGS := -fPIC -Os
|
|
CXXFLAGS := -I$(SRCDIR)/kiwi -fno-rtti
|
|
F_LTO := -flto=auto
|
|
CXXFLAGS_EXTRA := -pedantic -std=c++14 -Wall $(F_LTO)
|
|
CFLAGS_EXTRA := -pedantic -std=c99 -Wall $(F_LTO)
|
|
LIBFLAG := -shared
|
|
LIB_EXT := so
|
|
LUA_INCDIR := /usr/include
|
|
|
|
ifeq ($(findstring gcc,$(CC)),gcc)
|
|
CXX := $(subst gcc,g++,$(CC))
|
|
CXXFLAGS += -std=c++14
|
|
ifneq ($(SANITIZE),)
|
|
CFLAGS += -fsanitize=undefined -fsanitize=address
|
|
endif
|
|
else
|
|
ifeq ($(CC),clang)
|
|
CXX := clang++
|
|
CXXFLAGS += -std=c++14
|
|
ifneq ($(SANITIZE),)
|
|
CFLAGS += -fsanitize=undefined -fsanitize=address
|
|
endif
|
|
else
|
|
CXX := $(CC)
|
|
endif
|
|
endif
|
|
|
|
OBJS := ckiwi.o luakiwi.o
|
|
|
|
VPATH = $(SRCDIR)/ckiwi $(SRCDIR)/luakiwi
|
|
|
|
all: ckiwi.$(LIB_EXT)
|
|
|
|
install:
|
|
cp -f ckiwi.$(LIB_EXT) $(INST_LIBDIR)/ckiwi.$(LIB_EXT)
|
|
cp -f kiwi.lua $(INST_LUADIR)/kiwi.lua
|
|
|
|
clean:
|
|
rm -f ckiwi.$(LIB_EXT) $(OBJS)
|
|
|
|
|
|
ckiwi.$(LIB_EXT): $(OBJS)
|
|
$(CXX) $(CXXFLAGS) $(CFLAGS) $(CFLAGS_EXTRA) -I$(SRCDIR)/kiwi $(LIBFLAG) -o $@ $^
|
|
|
|
ckiwi.o: ckiwi.h
|
|
luakiwi.o: ckiwi.h luakiwi-int.h luacompat.h
|
|
|
|
%.o: %.c
|
|
$(CC) -I$(LUA_INCDIR) $(CFLAGS) $(CFLAGS_EXTRA) -c -o $@ $<
|
|
|
|
%.o: %.cpp
|
|
$(CXX) -I$(LUA_INCDIR) $(CXXFLAGS) $(CFLAGS) $(CXXFLAGS_EXTRA) -c -o $@ $<
|
|
|
|
.PHONY: all install clean
|