SRCDIR := . CC := $(CROSS)gcc CFLAGS := -fPIC -O3 CXXFLAGS := -I$(SRCDIR)/kiwi -fno-rtti #F_LTO := -flto=auto CXXFLAGS_EXTRA := -std=c++14 -Wall $(F_LTO) -fstrict-flex-arrays=3 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