1. MAKE = gmake
  2. CC = g++
  3. INCDIR =
  4. LIBDIR =
  5. BINDIR = ..
  6. OBJDIR = .obj
  7. GCC_VERSION = $(shell $(CC) --version 2>&1 | grep "(GCC)" | cut -d' ' -f3 | cut -d'.' -f1)
  8. BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1)
  9. P4_VERSION = 44850
  10. $(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)
  11. TARGET = $(BINDIR)/db_r$(P4_VERSION)
  12. CFLAGS = -g -Wall -O2 -pipe -fno-rtti -fno-exceptions -pthread -D_THREAD_SAFE
  13. ifeq ($(GCC_VERSION), 4)
  14. CFLAGS += -mtune=i686
  15. else
  16. CFLAGS += -mcpu=i686
  17. endif
  18. # boost
  19. INCDIR += -I../../boost
  20. LIBDIR += -L../../libthecore/lib -L../../libsql -L../../libpoly -L../../libgame/lib -L/usr/local/lib/mysql
  21. ifeq ($(BSD_VERSION), 7)
  22. INCDIR += -I../../libmysql/7.x-5.1.35
  23. LIBDIR += -L../../libmysql/7.x-5.1.35
  24. else
  25. INCDIR += -I../../libmysql/5.x-5.1.35
  26. LIBDIR += -L../../libmysql/5.x-5.1.35
  27. endif
  28. LIBS = -lthecore -lmysqlclient -lsql -lpoly -lgame -lm -lz
  29. SRCS = Config.cpp NetBase.cpp Peer.cpp PeerBase.cpp Main.cpp Lock.cpp DBManager.cpp \
  30. Cache.cpp LoginData.cpp ClientManager.cpp ClientManagerPlayer.cpp ClientManagerLogin.cpp \
  31. ClientManagerBoot.cpp ClientManagerParty.cpp ClientManagerGuild.cpp GuildManager.cpp HB.cpp \
  32. PrivManager.cpp MoneyLog.cpp ItemAwardManager.cpp ClientManagerEventFlag.cpp Marriage.cpp \
  33. Monarch.cpp BlockCountry.cpp ItemIDRangeManager.cpp ClientManagerHorseName.cpp version.cpp \
  34. AuctionManager.cpp ProtoReader.cpp CsvReader.cpp
  35. OBJS = $(SRCS:%.cpp=$(OBJDIR)/%.o)
  36. default: $(TARGET)
  37. $(TARGET): $(OBJS)
  38. @echo linking ...
  39. @$(CC) $(CFLAGS) $(LIBDIR) $(OBJS) $(LIBS) -o $(TARGET)
  40. @touch version.cpp
  41. $(OBJDIR)/%.o: %.cpp
  42. @echo compile $<
  43. @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@
  44. $(OBJDIR)/version.o: version.cpp
  45. @$(CC) $(CFLAGS) -D__USER__=\"$(USER)\" -D__HOSTNAME__=\"$(HOSTNAME)\" -D__PWD__=\"$(PWD)\" -D__P4_VERSION__=\"$(P4_VERSION)\" -c $< -o $@
  46. @echo compile $<
  47. $(OBJDIR):
  48. @mkdir $(OBJDIR)
  49. clean:
  50. @rm -f $(OBJS) $(BINDIR)/db_r*
  51. dep:
  52. @touch Depend
  53. makedepend -fDepend $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(SRCS) 2> /dev/null
  54. sinclude Depend