Makefile 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. CC = gcc -pipe
  2. # CC = gcc -pipe -DPCRE_SUPPORT
  3. # CC = g++ --pipe
  4. # CC = gcc -pipe -DGCOLLECT
  5. # CC = gcc -pipe -DDMALLOC -DDMALLOC_FUNC_CHECK
  6. # CC = /usr/local/bin/gcc -fbounds-checking -pipe -DBCHECK
  7. # GCLIB = -lgc
  8. # GCLIB = -L/usr/local/lib -lpcre
  9. GCLIB =
  10. # GCLIB = -ldmalloc
  11. PACKETDEF = -DPACKETVER=6 -DNEW_006b -DSO_REUSEPORT
  12. #PACKETDEF = -DPACKETVER=5 -DNEW_006b
  13. #PACKETDEF = -DPACKETVER=4 -DNEW_006b
  14. #PACKETDEF = -DPACKETVER=3 -DNEW_006b
  15. #PACKETDEF = -DPACKETVER=2 -DNEW_006b
  16. #PACKETDEF = -DPACKETVER=1 -DNEW_006b
  17. PLATFORM = $(shell uname)
  18. ifeq ($(findstring FreeBSD,$(PLATFORM)), FreeBSD)
  19. MAKE = gmake
  20. else
  21. MAKE = make
  22. endif
  23. ifeq ($(findstring NetBSD,$(PLATFORM)), NetBSD)
  24. MAKE = gmake
  25. endif
  26. OPT = -g -O2 -ffast-math -Wall -Wno-sign-compare
  27. # OPT += -DDUMPSTACK -rdynamic
  28. ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN)
  29. OS_TYPE = -DCYGWIN
  30. CFLAGS = $(OPT) -DFD_SETSIZE=4096 -I../common $(PACKETDEF) $(OS_TYPE)
  31. else
  32. OS_TYPE =
  33. CFLAGS = $(OPT) -I../common $(PACKETDEF) $(OS_TYPE)
  34. # CFLAGS = -DTWILIGHT $(OPT) -Wall -I../common $(PACKETDEF) $(OS_TYPE)
  35. endif
  36. MYSQLFLAG_INCLUDE_DEFAULT = /usr/local/include/mysql
  37. ifdef SQLFLAG
  38. MYSQLFLAG_CONFIG = $(shell which mysql_config)
  39. ifeq ($(findstring /,$(MYSQLFLAG_CONFIG)), /)
  40. MYSQLFLAG_VERSION = $(shell $(MYSQLFLAG_CONFIG) --version | sed s:\\..*::)
  41. endif
  42. ifeq ($(findstring 4,$(MYSQLFLAG_VERSION)), 4)
  43. MYSQLFLAG_CONFIG_ARGUMENT = --cflags
  44. endif
  45. ifeq ($(findstring 5,$(MYSQLFLAG_VERSION)), 5)
  46. MYSQLFLAG_CONFIG_ARGUMENT = --include
  47. endif
  48. ifndef MYSQLFLAG_CONFIG_ARGUMENT
  49. MYSQLFLAG_CONFIG_ARGUMENT = --cflags
  50. endif
  51. ifeq ($(findstring /,$(MYSQLFLAG_CONFIG)), /)
  52. MYSQLFLAG_INCLUDE = $(shell $(MYSQLFLAG_CONFIG) $(MYSQLFLAG_CONFIG_ARGUMENT))
  53. else
  54. MYSQLFLAG_INCLUDE = -I$(MYSQLFLAG_INCLUDE_DEFAULT)
  55. endif
  56. LIB_S_DEFAULT = -L/usr/local/lib/mysql -lmysqlclient -lz
  57. MYSQLFLAG_CONFIG = $(shell which mysql_config)
  58. ifeq ($(findstring /,$(MYSQLFLAG_CONFIG)), /)
  59. LIB_S = $(shell $(MYSQLFLAG_CONFIG) --libs)
  60. else
  61. LIB_S = $(LIB_S_DEFAULT)
  62. endif
  63. MYLIB = CC="$(CC)" CFLAGS="$(CFLAGS) $(MYSQLFLAG_INCLUDE)" LIB_S="$(LIB_S) $(GCLIB)"
  64. endif
  65. MKDEF = CC="$(CC)" CFLAGS="$(CFLAGS)" LIB_S="$(GCLIB)"
  66. all: conf txt
  67. conf:
  68. cp -r conf-tmpl conf
  69. rm -rf conf/.svn conf/*/.svn
  70. cp -r save-tmpl save
  71. rm -rf save/.svn
  72. txt : src/common/GNUmakefile src/login/GNUmakefile src/char/GNUmakefile src/map/GNUmakefile src/ladmin/GNUmakefile conf
  73. cd src ; cd common ; $(MAKE) $(MKDEF) $@ ; cd ..
  74. cd src ; cd login ; $(MAKE) $(MKDEF) $@ ; cd ..
  75. cd src ; cd char ; $(MAKE) $(MKDEF) $@ ; cd ..
  76. cd src ; cd map ; $(MAKE) $(MKDEF) $@ ; cd ..
  77. cd src ; cd ladmin ; $(MAKE) $(MKDEF) $@ ; cd ..
  78. ifdef SQLFLAG
  79. sql: src/common/GNUmakefile src/login_sql/GNUmakefile src/char_sql/GNUmakefile src/map/GNUmakefile src/txt-converter/login/GNUmakefile src/txt-converter/char/GNUmakefile conf
  80. cd src ; cd common ; $(MAKE) $(MKDEF) $@ ; cd ..
  81. cd src ; cd login_sql ; $(MAKE) $(MYLIB) $@ ; cd ..
  82. cd src ; cd char_sql ; $(MAKE) $(MYLIB) $@ ; cd ..
  83. cd src ; cd map ; $(MAKE) $(MYLIB) $@ ; cd ..
  84. cd src ; cd txt-converter ; cd login ; $(MAKE) $(MYLIB) ; cd ..
  85. cd src ; cd txt-converter ; cd char ; $(MAKE) $(MYLIB) ; cd ..
  86. else
  87. sql:
  88. $(MAKE) CC="$(CC)" OPT="$(OPT)" SQLFLAG=1 $@
  89. endif
  90. tools:
  91. cd src ; cd tool && $(MAKE) $(MKDEF) && cd ..
  92. webserver:
  93. cd src ; cd webserver && $(MAKE) $(MKDEF) && cd ..
  94. clean: src/common/GNUmakefile src/login/GNUmakefile src/char/GNUmakefile src/map/GNUmakefile src/ladmin/GNUmakefile src/txt-converter/login/GNUmakefile src/txt-converter/char/GNUmakefile
  95. cd src ; cd common ; $(MAKE) $(MKDEF) $@ ; cd ..
  96. cd src ; cd login ; $(MAKE) $(MKDEF) $@ ; cd ..
  97. cd src ; cd login_sql ; $(MAKE) $(MKLIB) $@ ; cd ..
  98. cd src ; cd char ; $(MAKE) $(MKDEF) $@ ; cd ..
  99. cd src ; cd char_sql ; $(MAKE) $(MKLIB) $@ ; cd ..
  100. cd src ; cd map ; $(MAKE) $(MKLIB) $@ ; cd ..
  101. cd src ; cd ladmin ; $(MAKE) $(MKDEF) $@ ; cd ..
  102. cd src ; cd txt-converter ; cd login ; $(MAKE) $(MKLIB) $@ ; cd ..
  103. cd src ; cd txt-converter ; cd char ; $(MAKE) $(MKLIB) $@ ; cd ..
  104. src/common/GNUmakefile: src/common/Makefile
  105. sed -e 's/$$>/$$^/' src/common/Makefile > src/common/GNUmakefile
  106. src/login/GNUmakefile: src/login/Makefile
  107. sed -e 's/$$>/$$^/' src/login/Makefile > src/login/GNUmakefile
  108. src/login_sql/GNUmakefile: src/login_sql/Makefile
  109. sed -e 's/$$>/$$^/' src/login_sql/Makefile > src/login_sql/GNUmakefile
  110. src/char/GNUmakefile: src/char/Makefile
  111. sed -e 's/$$>/$$^/' src/char/Makefile > src/char/GNUmakefile
  112. src/char_sql/GNUmakefile: src/char_sql/Makefile
  113. sed -e 's/$$>/$$^/' src/char_sql/Makefile > src/char_sql/GNUmakefile
  114. src/map/GNUmakefile: src/map/Makefile
  115. sed -e 's/$$>/$$^/' src/map/Makefile > src/map/GNUmakefile
  116. src/ladmin/GNUmakefile: src/ladmin/Makefile
  117. sed -e 's/$$>/$$^/' src/ladmin/Makefile > src/ladmin/GNUmakefile
  118. src/txt-converter/login/GNUmakefile: src/txt-converter/login/Makefile
  119. sed -e 's/$$>/$$^/' src/txt-converter/login/Makefile > src/txt-converter/login/GNUmakefile
  120. src/txt-converter/char/GNUmakefile: src/txt-converter/char/Makefile
  121. sed -e 's/$$>/$$^/' src/txt-converter/char/Makefile > src/txt-converter/char/GNUmakefile