Makefile.in 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. @SET_MAKE@
  2. HAVE_MYSQL=@HAVE_MYSQL@
  3. OMAP=@OMAP@
  4. ifeq ($(HAVE_MYSQL),yes)
  5. ALL_DEPENDS=server tools
  6. SERVER_DEPENDS=common login char map web import
  7. COMMON_DEPENDS=libconfig rapidyaml yaml-cpp
  8. LOGIN_DEPENDS=libconfig common
  9. CHAR_DEPENDS=libconfig common rapidyaml
  10. MAP_DEPENDS=libconfig common rapidyaml
  11. WEB_DEPENDS=libconfig common yaml-cpp httplib
  12. else
  13. ALL_DEPENDS=needs_mysql
  14. SERVER_DEPENDS=needs_mysql
  15. COMMON_DEPENDS=needs_mysql
  16. LOGIN_DEPENDS=needs_mysql
  17. CHAR_DEPENDS=needs_mysql
  18. MAP_DEPENDS=needs_mysql
  19. WEB_DEPENDS=needs_mysql
  20. endif
  21. #####################################################################
  22. .PHONY: all server sql \
  23. common \
  24. login \
  25. char \
  26. map \
  27. web \
  28. tools \
  29. import \
  30. clean help \
  31. install uninstall bin-clean \
  32. all: $(ALL_DEPENDS)
  33. sql: $(SERVER_DEPENDS)
  34. @echo "-!- 'make sql' is now deprecated. Please run 'make server' to continue. -!-"
  35. server: $(SERVER_DEPENDS)
  36. common: $(COMMON_DEPENDS)
  37. @$(MAKE) -C src/common server
  38. login: $(LOGIN_DEPENDS)
  39. @$(MAKE) -C src/login server
  40. char: $(CHAR_DEPENDS)
  41. @$(MAKE) -C src/char
  42. map: $(MAP_DEPENDS)
  43. @$(MAKE) -C src/map server
  44. web: $(WEB_DEPENDS)
  45. @$(MAKE) -C src/web server
  46. libconfig:
  47. @$(MAKE) -C 3rdparty/libconfig
  48. tools:
  49. @$(MAKE) -C src/tool
  50. @$(MAKE) -C src/map tools
  51. rapidyaml:
  52. @$(MAKE) -C 3rdparty/rapidyaml
  53. yaml-cpp:
  54. @$(MAKE) -C 3rdparty/yaml-cpp
  55. httplib:
  56. @$(MAKE) -C 3rdparty/httplib
  57. import:
  58. # 1) create conf/import folder
  59. # 2) add missing files
  60. # 3) remove remaining .svn folder
  61. @echo "building conf/import, conf/msg_conf/import and db/import folder..."
  62. @if test ! -d conf/import ; then mkdir conf/import ; fi
  63. @for f in $$(ls conf/import-tmpl) ; do if test ! -e conf/import/$$f ; then cp conf/import-tmpl/$$f conf/import ; fi ; done
  64. @rm -rf conf/import/.svn
  65. @if test ! -d conf/msg_conf/import ; then mkdir conf/msg_conf/import ; fi
  66. @for f in $$(ls conf/msg_conf/import-tmpl) ; do if test ! -e conf/msg_conf/import/$$f ; then cp conf/msg_conf/import-tmpl/$$f conf/msg_conf/import ; fi ; done
  67. @rm -rf conf/msg_conf/import/.svn
  68. @if test ! -d db/import ; then mkdir db/import ; fi
  69. @for f in $$(ls db/import-tmpl) ; do if test ! -e db/import/$$f ; then cp db/import-tmpl/$$f db/import ; fi ; done
  70. @rm -rf db/import/.svn
  71. clean:
  72. @$(MAKE) -C src/common $@
  73. @$(MAKE) -C 3rdparty/libconfig $@
  74. @$(MAKE) -C 3rdparty/rapidyaml $@
  75. @$(MAKE) -C 3rdparty/yaml-cpp $@
  76. @$(MAKE) -C 3rdparty/httplib $@
  77. @$(MAKE) -C src/login $@
  78. @$(MAKE) -C src/char $@
  79. @$(MAKE) -C src/map $@
  80. @$(MAKE) -C src/web $@
  81. @$(MAKE) -C src/tool $@
  82. help:
  83. @echo "most common targets are 'all' 'server' 'conf' 'clean' 'help'"
  84. @echo "possible targets are:"
  85. @echo "'common' - builds object files used for the three servers"
  86. @echo "'libconfig' - builds object files of libconfig"
  87. @echo "'rapidyaml' - builds object files of rapidyaml"
  88. @echo "'yaml-cpp' - builds object files of yaml-cpp"
  89. @echo "'httplib' - builds object files of httplib"
  90. @echo "'login' - builds login server"
  91. @echo "'char' - builds char server"
  92. @echo "'map' - builds map server"
  93. @echo "'web' - builds web server"
  94. @echo "'tools' - builds all the tools in src/tools"
  95. @echo "'import' - builds conf/import, conf/msg_conf/import and db/import folders from their template folders (x-tmpl)"
  96. @echo "'all' - builds all the above targets"
  97. @echo "'server' - builds servers (targets 'common' 'login' 'char' 'map' and 'import')"
  98. @echo "'clean' - cleans builds and objects"
  99. @echo "'install' - run installer which sets up rathena in /opt/"
  100. @echo "'bin-clean' - deletes installed binaries"
  101. @echo "'uninstall' - run uninstaller which erases all installation changes"
  102. @echo "'help' - outputs this message"
  103. needs_mysql:
  104. @echo "MySQL not found or disabled by the configure script"
  105. @exit 1
  106. install:
  107. @sh ./install.sh
  108. bin-clean:
  109. @sh ./uninstall.sh bin
  110. uninstall:
  111. @sh ./uninstall.sh all
  112. #####################################################################