137 lines
3.7 KiB
Makefile
137 lines
3.7 KiB
Makefile
CC = clang
|
|
CXX = clang++
|
|
|
|
DB_VERSION = $(shell cat ../../__REVISION__)
|
|
LBITS := $(shell getconf LONG_BIT)
|
|
|
|
INCDIR =
|
|
LIBDIR =
|
|
BINDIR = ..
|
|
OBJDIR = .obj
|
|
$(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)
|
|
|
|
# LIST_OF_CONSTANTS BEGIN
|
|
ENABLE_GCC_AUTODEPEND = 1
|
|
ENABLE_STATIC = 0
|
|
# LIST_OF_CONSTANTS END
|
|
|
|
# Depend Path File
|
|
ifneq ($(ENABLE_GCC_AUTODEPEND), 1)
|
|
DEPFILE = Depend
|
|
endif
|
|
|
|
# Project Flags
|
|
CFLAGS = -m32 -g -Wall -O2 -pipe -fno-rtti -fno-exceptions -Wno-long-long -pthread -D_THREAD_SAFE
|
|
CFLAGS += -Wno-deprecated-declarations -Wno-nonnull-compare -Wno-deprecated-declarations -Wno-array-bounds -Wno-address
|
|
CFLAGS += -Wno-int-in-bool-context -Wno-format-truncation -Wno-deprecated-enum-enum-conversion
|
|
CXXFLAGS = -std=c++20
|
|
|
|
# for clang
|
|
ifneq '' '$(findstring clang++,$(CXX))'
|
|
CFLAGS += -Wno-invalid-source-encoding -Wno-deprecated-anon-enum-enum-conversion -Wno-unknown-warning-option
|
|
# for gcc
|
|
else ifneq '' '$(findstring g++,$(CXX))'
|
|
# for 32bit on 64bit
|
|
ifeq ($(LBITS),64)
|
|
CFLAGS += -L/usr/local/lib32/gcc12
|
|
CFLAGS += -Wl,-rpath=/usr/local/lib32/gcc12
|
|
else
|
|
# for 32bit on 32bit
|
|
CXXFLAGS += -Wl,-rpath=/usr/local/lib/gcc12
|
|
endif
|
|
endif
|
|
|
|
# MySQL
|
|
INCDIR += -I/usr/local/include/mysql
|
|
ifeq ($(LBITS),64)
|
|
LIBS += ../../../Extern/lib/libmysqlclient.a -lz
|
|
else
|
|
LIBS += /usr/local/lib/mysql/libmysqlclient.a /usr/lib/libz.a
|
|
endif
|
|
|
|
ifeq ($(ENABLE_STATIC), 1)
|
|
CFLAGS += -static
|
|
endif
|
|
|
|
# Version defines
|
|
CFLAGS += -D__USER__=\"$(USER)\" -D__HOSTNAME__=\"$(HOSTNAME)\" -D__PWD__=\"$(PWD)\" -D__DB_VERSION__=\"$(DB_VERSION)\"
|
|
|
|
# Boost
|
|
INCDIR += -I../../../Extern/include/boost
|
|
|
|
# Project Libraries
|
|
INCDIR += -I/usr/local/include
|
|
INCDIR += -I../../../Extern/include
|
|
LIBDIR += -I../../../Extern/lib
|
|
|
|
LIBDIR += -L../../libthecore/lib -L../../libsql -L../../libpoly -L../../libgame/lib
|
|
LIBS += -lthecore -lsql -lpoly -lgame -lm
|
|
|
|
# OpenSSL
|
|
ifeq ($(LBITS),64)
|
|
LIBS += /usr/lib32/libcrypto.a /usr/lib32/libssl.a
|
|
else
|
|
LIBS += -lssl -lcrypto
|
|
endif
|
|
|
|
# PROJECT_SRC_FILES BEGIN
|
|
CPPFILE = Config.cpp NetBase.cpp Peer.cpp PeerBase.cpp Main.cpp Lock.cpp DBManager.cpp \
|
|
Cache.cpp LoginData.cpp ClientManager.cpp ClientManagerPlayer.cpp ClientManagerLogin.cpp \
|
|
ClientManagerBoot.cpp ClientManagerParty.cpp ClientManagerGuild.cpp GuildManager.cpp HB.cpp \
|
|
PrivManager.cpp MoneyLog.cpp ItemAwardManager.cpp ClientManagerEventFlag.cpp Marriage.cpp \
|
|
Monarch.cpp ItemIDRangeManager.cpp ClientManagerHorseName.cpp version.cpp \
|
|
ProtoReader.cpp CsvReader.cpp ClientManagerIkarusShop.cpp IkarusShopCache.cpp
|
|
# PROJECT_SRC_FILES END
|
|
|
|
# PROJECT_OBJ_FILES BEGIN
|
|
CPPOBJS = $(CPPFILE:%.cpp=$(OBJDIR)/%.o)
|
|
ifeq ($(ENABLE_GCC_AUTODEPEND), 1)
|
|
CPPDEPS = $(CPPOBJS:%.o=%.d)
|
|
endif
|
|
# PROJECT_OBJ_FILES END
|
|
|
|
# Target Paths
|
|
MAIN_TARGET = $(BINDIR)/db_r$(DB_VERSION)
|
|
|
|
default: $(MAIN_TARGET)
|
|
|
|
$(MAIN_TARGET): $(CPPOBJS)
|
|
@echo linking $(MAIN_TARGET)
|
|
@$(CXX) $(CFLAGS) $(CXXFLAGS) $(LIBDIR) $(CPPOBJS) $(LIBS) -o $(MAIN_TARGET)
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
@echo compiling $<
|
|
@$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCDIR) -c $< -o $@
|
|
ifeq ($(ENABLE_GCC_AUTODEPEND), 1)
|
|
@$(CXX) -MM -MG -MP $(CFLAGS) $(CXXFLAGS) $(INCDIR) -c $< -o $(OBJDIR)/$*.d
|
|
@sed -i '' -e's/$*.o:/$(OBJDIR)\/$*.o:/g' $(OBJDIR)/$*.d
|
|
endif
|
|
|
|
$(OBJDIR):
|
|
@mkdir $(OBJDIR)
|
|
|
|
symlink:
|
|
@ln -fs db_r$(DB_VERSION) $(BINDIR)/db_symlink
|
|
|
|
strip:
|
|
@cp $(BINDIR)/db_r$(DB_VERSION) $(BINDIR)/db_r
|
|
@strip $(BINDIR)/db_r
|
|
|
|
clean:
|
|
@rm -f $(CPPOBJS) $(BINDIR)/db_r*
|
|
|
|
dep:
|
|
ifeq ($(ENABLE_GCC_AUTODEPEND), 1)
|
|
@echo "Note: gcc autodepend is autodetected, so target dep skipped"
|
|
else
|
|
makedepend -f $(DEPFILE) $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(CPPFILE) 2> /dev/null > $(DEPFILE)
|
|
endif
|
|
|
|
# AUTO_DEPEND_CHECK BEGIN
|
|
ifeq ($(ENABLE_GCC_AUTODEPEND), 1)
|
|
sinclude $(CPPDEPS)
|
|
else
|
|
sinclude $(DEPFILE)
|
|
endif
|
|
# AUTO_DEPEND_CHECK END
|