huge
This commit is contained in:
93
Makefile
93
Makefile
@@ -1,56 +1,85 @@
|
||||
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)
|
||||
CP := cp
|
||||
RM := rm
|
||||
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
|
||||
SRCDIR := .
|
||||
|
||||
OPTFLAG := -O2
|
||||
CCFLAGS += $(OPTFLAG) -fPIC -Wall -fstrict-flex-arrays -fvisibility=hidden -Wformat=2 -Wconversion -Wimplicit-fallthrough
|
||||
|
||||
SANITIZE_FLAGS := -fsanitize=undefined -fsanitize=address
|
||||
LTO_FLAGS := -flto=auto
|
||||
|
||||
ifdef SANITIZE
|
||||
CCFLAGS += $(SANITIZE_FLAGS)
|
||||
endif
|
||||
ifdef LTO
|
||||
CCFLAGS += $(LTO_FLAGS)
|
||||
endif
|
||||
|
||||
override CPPFLAGS += -I$(SRCDIR) -I$(SRCDIR)/kiwi -I$(LUA_INCDIR)
|
||||
override CXXFLAGS += -std=c++14 -fno-rtti $(CCFLAGS)
|
||||
override CFLAGS += -std=c99 $(CCFLAGS)
|
||||
|
||||
ifneq ($(filter %gcc,$(CC)),)
|
||||
CXX := $(patsubst %gcc,%g++,$(CC))
|
||||
PCH := ljkiwi.hpp.gch
|
||||
else
|
||||
ifeq ($(CC),clang)
|
||||
CXX := clang++
|
||||
CXXFLAGS += -std=c++14
|
||||
ifneq ($(SANITIZE),)
|
||||
CFLAGS += -fsanitize=undefined -fsanitize=address
|
||||
endif
|
||||
else
|
||||
CXX := $(CC)
|
||||
ifneq ($(filter %clang,$(CC)),)
|
||||
CXX := $(patsubst %clang,%clang++,$(CC))
|
||||
override CXXFLAGS += -pedantic -Wno-c99-extensions
|
||||
PCH := ljkiwi.hpp.pch
|
||||
endif
|
||||
endif
|
||||
|
||||
OBJS := ckiwi.o luakiwi.o
|
||||
ifdef LUA
|
||||
LUA_VERSION ?= $(lastword $(shell $(LUA) -e "print(_VERSION)"))
|
||||
endif
|
||||
|
||||
VPATH = $(SRCDIR)/ckiwi $(SRCDIR)/luakiwi
|
||||
ifndef LUA_VERSION
|
||||
LJKIWI_CKIWI := 1
|
||||
else
|
||||
ifneq ($(LUA_VERSION),5.1)
|
||||
LJKIWI_CKIWI :=
|
||||
endif
|
||||
endif
|
||||
|
||||
all: ckiwi.$(LIB_EXT)
|
||||
OBJS := luakiwi.o
|
||||
ifdef LJKIWI_CKIWI
|
||||
OBJS += ckiwi.o
|
||||
endif
|
||||
|
||||
vpath %.cpp $(SRCDIR)/ckiwi $(SRCDIR)/luakiwi
|
||||
vpath %.h $(SRCDIR)/ckiwi $(SRCDIR)/luakiwi
|
||||
|
||||
all: ljkiwi.$(LIB_EXT)
|
||||
|
||||
install:
|
||||
cp -f ckiwi.$(LIB_EXT) $(INST_LIBDIR)/ckiwi.$(LIB_EXT)
|
||||
cp -f kiwi.lua $(INST_LUADIR)/kiwi.lua
|
||||
$(CP) -f ljkiwi.$(LIB_EXT) $(INST_LIBDIR)/ljkiwi.$(LIB_EXT)
|
||||
$(CP) -f kiwi.lua $(INST_LUADIR)/kiwi.lua
|
||||
|
||||
clean:
|
||||
rm -f ckiwi.$(LIB_EXT) $(OBJS)
|
||||
$(RM) -f ljkiwi.$(LIB_EXT) $(OBJS) $(PCH)
|
||||
|
||||
ckiwi.o: $(PCH) ckiwi.cpp ckiwi.h
|
||||
luakiwi.o: $(PCH) luakiwi-int.h luacompat.h
|
||||
|
||||
ckiwi.$(LIB_EXT): $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $(CFLAGS) $(CFLAGS_EXTRA) -I$(SRCDIR)/kiwi $(LIBFLAG) -o $@ $^
|
||||
ljkiwi.$(LIB_EXT): $(OBJS)
|
||||
$(CXX) $(CCFLAGS) $(LIBFLAG) -o $@ $(OBJS)
|
||||
|
||||
ckiwi.o: ckiwi.h
|
||||
luakiwi.o: ckiwi.h luakiwi-int.h luacompat.h
|
||||
%.hpp.gch: %.hpp
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -x c++-header -o $@ $<
|
||||
|
||||
%.hpp.pch: %.hpp
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -x c++-header -o $@ $<
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -I$(LUA_INCDIR) $(CFLAGS) $(CFLAGS_EXTRA) -c -o $@ $<
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) -I$(LUA_INCDIR) $(CXXFLAGS) $(CFLAGS) $(CXXFLAGS_EXTRA) -c -o $@ $<
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
.PHONY: all install clean
|
||||
|
||||
Reference in New Issue
Block a user