mirror of
https://github.com/HerculesWS/Hercules
synced 2026-08-15 12:23:13 -04:00
212 lines
6.2 KiB
Makefile
212 lines
6.2 KiB
Makefile
# This file is part of Hercules.
|
|
# http://herc.ws - http://github.com/HerculesWS/Hercules
|
|
#
|
|
# Copyright (C) 2012-2015 Hercules Dev Team
|
|
# Copyright (C) Athena Dev Teams
|
|
#
|
|
# Hercules is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# @configure_input@
|
|
|
|
@SET_MAKE@
|
|
|
|
HAVE_MYSQL=@HAVE_MYSQL@
|
|
ifeq ($(HAVE_MYSQL),yes)
|
|
ALL_DEPENDS=common_sql login_sql char_sql map_sql tools sysinfo | import
|
|
SQL_DEPENDS=common_sql login_sql char_sql map_sql sysinfo | import
|
|
COMMON_SQL_DEPENDS=mt19937ar libconfig sysinfo
|
|
LOGIN_SQL_DEPENDS=mt19937ar libconfig common_sql sysinfo
|
|
CHAR_SQL_DEPENDS=mt19937ar libconfig common_sql sysinfo
|
|
MAP_SQL_DEPENDS=mt19937ar libconfig common_sql sysinfo
|
|
TOOLS_DEPENDS=mt19937ar libconfig common_sql sysinfo
|
|
else
|
|
ALL_DEPENDS=needs_mysql
|
|
SQL_DEPENDS=needs_mysql
|
|
COMMON_SQL_DEPENDS=needs_mysql
|
|
LOGIN_SQL_DEPENDS=needs_mysql
|
|
CHAR_SQL_DEPENDS=needs_mysql
|
|
MAP_SQL_DEPENDS=needs_mysql
|
|
TOOLS_DEPENDS=needs_mysql
|
|
endif
|
|
|
|
WITH_PLUGINS=@WITH_PLUGINS@
|
|
ifeq ($(WITH_PLUGINS),yes)
|
|
ALL_DEPENDS+=plugins
|
|
PLUGIN_DEPENDS=common_sql
|
|
else
|
|
PLUGIN_DEPENDS=no_plugins
|
|
endif
|
|
|
|
HAVE_PERL=@HAVE_PERL@
|
|
HAVE_DOXYGEN=@HAVE_DOXYGEN@
|
|
|
|
MF_TARGETS = Makefile $(addsuffix /Makefile, src/common 3rdparty/mt19937ar \
|
|
3rdparty/libconfig src/char src/login src/map src/plugins \
|
|
src/tool src/test tools/HPMHookGen)
|
|
|
|
CC = @CC@
|
|
export CC
|
|
|
|
#####################################################################
|
|
.PHONY: sql \
|
|
common_sql \
|
|
mt19937ar \
|
|
login_sql \
|
|
char_sql \
|
|
map_sql \
|
|
tools \
|
|
plugins \
|
|
import \
|
|
test \
|
|
clean \
|
|
buildclean \
|
|
distclean \
|
|
sysinfo \
|
|
hooks \
|
|
help
|
|
|
|
all: $(ALL_DEPENDS)
|
|
|
|
sql: $(SQL_DEPENDS)
|
|
|
|
$(MF_TARGETS): %: %.in
|
|
@echo " CONFIGURE"
|
|
@if [ -x config.status ]; then \
|
|
echo "Reconfiguring with options: $$(./config.status --config)"; \
|
|
./config.status; \
|
|
else \
|
|
echo "Unable to find a previous config.status. ./configure will be re-run with the default options."; \
|
|
echo "If you want to use custom options, please press CTRL-C and run ./configure yourself"; \
|
|
for i in 1 2 3 4 5 6 7 8 9 10; do \
|
|
printf "\a. "; \
|
|
sleep 1; \
|
|
done; \
|
|
echo ""; \
|
|
./configure; \
|
|
fi;
|
|
|
|
common_sql: $(COMMON_SQL_DEPENDS) src/common/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/common sql
|
|
|
|
mt19937ar: 3rdparty/mt19937ar/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C 3rdparty/mt19937ar
|
|
|
|
libconfig: 3rdparty/libconfig/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C 3rdparty/libconfig
|
|
|
|
login_sql: $(LOGIN_SQL_DEPENDS) src/login/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/login sql
|
|
|
|
char_sql: $(CHAR_SQL_DEPENDS) src/char/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/char
|
|
|
|
map_sql: $(MAP_SQL_DEPENDS) src/map/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/map sql
|
|
|
|
tools: $(TOOLS_DEPENDS) src/tool/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/tool
|
|
|
|
test: src/test/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/test
|
|
|
|
plugins: $(PLUGIN_DEPENDS) src/plugins/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/plugins
|
|
|
|
plugin.%: $(PLUGIN_DEPENDS) src/plugins/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C src/plugins $(patsubst plugin.%,%,$@)
|
|
|
|
hooks: tools/HPMHookGen/Makefile
|
|
@echo " MAKE $@"
|
|
@$(MAKE) -C tools/HPMHookGen
|
|
|
|
import: Makefile
|
|
@# 1) create conf/import folder
|
|
@# 2) add missing files
|
|
@echo "building conf/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
|
|
|
|
clean buildclean: $(MF_TARGETS)
|
|
@$(MAKE) -C src/common $@
|
|
@$(MAKE) -C 3rdparty/mt19937ar $@
|
|
@$(MAKE) -C 3rdparty/libconfig $@
|
|
@$(MAKE) -C src/login $@
|
|
@$(MAKE) -C src/char $@
|
|
@$(MAKE) -C src/map $@
|
|
@$(MAKE) -C src/plugins $@
|
|
@$(MAKE) -C src/tool $@
|
|
@$(MAKE) -C src/test $@
|
|
@$(MAKE) -C tools/HPMHookGen $@
|
|
|
|
distclean: clean
|
|
@-rm -f $(MF_TARGETS) config.status config.log
|
|
|
|
sysinfo: config.status
|
|
@./sysinfogen.sh src/common/sysinfo_new.inc @CFLAGS@ @CPPFLAGS@
|
|
@if cmp -s src/common/sysinfo.inc src/common/sysinfo_new.inc; then \
|
|
rm src/common/sysinfo_new.inc ; \
|
|
else \
|
|
mv src/common/sysinfo_new.inc src/common/sysinfo.inc ; \
|
|
fi
|
|
|
|
config.status: configure
|
|
@echo " RECONFIGURE"
|
|
@./config.status --recheck && ./config.status
|
|
|
|
help: Makefile
|
|
@echo "most common targets are 'all' 'sql' 'clean' 'plugins' 'help'"
|
|
@echo "possible targets are:"
|
|
@echo "'common_sql' - builds object files used in SQL servers"
|
|
@echo "'mt19937ar' - builds object file of Mersenne Twister MT19937"
|
|
@echo "'libconfig' - builds object files of libconfig"
|
|
@echo "'login_sql' - builds login server"
|
|
@echo "'char_sql' - builds char server"
|
|
@echo "'map_sql' - builds map server"
|
|
@echo "'tools' - builds all the tools in src/tools"
|
|
@echo "'import' - builds conf/import folder from the template conf/import-tmpl"
|
|
@echo "'all' - builds all the above targets"
|
|
@echo "'sql' - builds sql servers (targets 'common_sql' 'login_sql' 'char_sql'"
|
|
@echo " 'map_sql' and 'import')"
|
|
@echo "'plugins' - builds all available plugins"
|
|
@echo "'plugin.Name' - builds plugin named 'Name'"
|
|
@echo "'test' - builds tests"
|
|
@echo "'clean' - cleans executables and objects"
|
|
@echo "'buildclean' - cleans build temporary (object) files, without deleting the"
|
|
@echo " executables"
|
|
@echo "'distclean' - cleans files generated by ./configure"
|
|
@echo "'sysinfo' - re-generates the System Info include"
|
|
ifeq ($(HAVE_PERL)$(HAVE_DOXYGEN),yesyes)
|
|
@echo "'hooks' - re-generates the definitions for the HPM"
|
|
endif
|
|
@echo "'help' - outputs this message"
|
|
|
|
#####################################################################
|
|
|
|
needs_mysql:
|
|
@echo "MySQL not found or disabled by the configure script"
|
|
@exit 1
|
|
|
|
no_plugins:
|
|
@echo "Plugins disabled by the configure script"
|
|
@exit 1
|