@SET_MAKE@ HAVE_MYSQL=@HAVE_MYSQL@ OMAP=@OMAP@ ifeq ($(HAVE_MYSQL),yes) ALL_DEPENDS=server tools SERVER_DEPENDS=common login char map web import COMMON_DEPENDS=libconfig rapidyaml yaml-cpp LOGIN_DEPENDS=libconfig common CHAR_DEPENDS=libconfig common rapidyaml MAP_DEPENDS=libconfig common rapidyaml WEB_DEPENDS=libconfig common yaml-cpp httplib else ALL_DEPENDS=needs_mysql SERVER_DEPENDS=needs_mysql COMMON_DEPENDS=needs_mysql LOGIN_DEPENDS=needs_mysql CHAR_DEPENDS=needs_mysql MAP_DEPENDS=needs_mysql WEB_DEPENDS=needs_mysql endif ##################################################################### .PHONY: all server sql \ common \ login \ char \ map \ web \ tools \ import \ clean help \ install uninstall bin-clean \ all: $(ALL_DEPENDS) sql: $(SERVER_DEPENDS) @echo "-!- 'make sql' is now deprecated. Please run 'make server' to continue. -!-" server: $(SERVER_DEPENDS) common: $(COMMON_DEPENDS) @$(MAKE) -C src/common server login: $(LOGIN_DEPENDS) @$(MAKE) -C src/login server char: $(CHAR_DEPENDS) @$(MAKE) -C src/char map: $(MAP_DEPENDS) @$(MAKE) -C src/map server web: $(WEB_DEPENDS) @$(MAKE) -C src/web server libconfig: @$(MAKE) -C 3rdparty/libconfig tools: @$(MAKE) -C src/tool @$(MAKE) -C src/map tools rapidyaml: @$(MAKE) -C 3rdparty/rapidyaml yaml-cpp: @$(MAKE) -C 3rdparty/yaml-cpp httplib: @$(MAKE) -C 3rdparty/httplib import: # 1) create conf/import folder # 2) add missing files # 3) remove remaining .svn folder @echo "building conf/import, conf/msg_conf/import and db/import folder..." @if test ! -d conf/import ; then mkdir conf/import ; fi @for f in $$(ls conf/import-tmpl) ; do if test ! -e conf/import/$$f ; then cp conf/import-tmpl/$$f conf/import ; fi ; done @rm -rf conf/import/.svn @if test ! -d conf/msg_conf/import ; then mkdir conf/msg_conf/import ; fi @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 @rm -rf conf/msg_conf/import/.svn @if test ! -d db/import ; then mkdir db/import ; fi @for f in $$(ls db/import-tmpl) ; do if test ! -e db/import/$$f ; then cp db/import-tmpl/$$f db/import ; fi ; done @rm -rf db/import/.svn clean: @$(MAKE) -C src/common $@ @$(MAKE) -C 3rdparty/libconfig $@ @$(MAKE) -C 3rdparty/rapidyaml $@ @$(MAKE) -C 3rdparty/yaml-cpp $@ @$(MAKE) -C 3rdparty/httplib $@ @$(MAKE) -C src/login $@ @$(MAKE) -C src/char $@ @$(MAKE) -C src/map $@ @$(MAKE) -C src/web $@ @$(MAKE) -C src/tool $@ help: @echo "most common targets are 'all' 'server' 'conf' 'clean' 'help'" @echo "possible targets are:" @echo "'common' - builds object files used for the three servers" @echo "'libconfig' - builds object files of libconfig" @echo "'rapidyaml' - builds object files of rapidyaml" @echo "'yaml-cpp' - builds object files of yaml-cpp" @echo "'httplib' - builds object files of httplib" @echo "'login' - builds login server" @echo "'char' - builds char server" @echo "'map' - builds map server" @echo "'web' - builds web server" @echo "'tools' - builds all the tools in src/tools" @echo "'import' - builds conf/import, conf/msg_conf/import and db/import folders from their template folders (x-tmpl)" @echo "'all' - builds all the above targets" @echo "'server' - builds servers (targets 'common' 'login' 'char' 'map' and 'import')" @echo "'clean' - cleans builds and objects" @echo "'install' - run installer which sets up rathena in /opt/" @echo "'bin-clean' - deletes installed binaries" @echo "'uninstall' - run uninstaller which erases all installation changes" @echo "'help' - outputs this message" needs_mysql: @echo "MySQL not found or disabled by the configure script" @exit 1 install: @sh ./install.sh bin-clean: @sh ./uninstall.sh bin uninstall: @sh ./uninstall.sh all #####################################################################