blob: d81463eca6a0373a15bbe16c93c2c5ddb68f1a4c (
plain) (
tree)
|
|
@SET_MAKE@
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
ALL_DEPENDS=common common_sql login login_sql char char_sql map map_sql ladmin tools converters plugins save
SQL_DEPENDS=common_sql login_sql char_sql map_sql save
COMMON_SQL_DEPENDS=
LOGIN_SQL_DEPENDS=common_sql
CHAR_SQL_DEPENDS=common_sql
MAP_SQL_DEPENDS=common_sql
CONVERTERS_DEPENDS=common_sql
else
ALL_DEPENDS=common login char map ladmin tools plugins save
SQL_DEPENDS=needs_mysql
COMMON_SQL_DEPENDS=needs_mysql
LOGIN_SQL_DEPENDS=needs_mysql
CHAR_SQL_DEPENDS=needs_mysql
MAP_SQL_DEPENDS=needs_mysql
CONVERTERS_DEPENDS=needs_mysql
endif
#####################################################################
.PHONY: txt sql common common_sql login login_sql char char_sql map map_sql \
ladmin tools converters plugins addons save clean help depend
all: $(ALL_DEPENDS)
txt: common login char map conf
sql: $(SQL_DEPENDS)
common:
@$(MAKE) -C src/common txt
common_sql: $(COMMON_SQL_DEPENDS)
@$(MAKE) -C src/common sql
login: common
@$(MAKE) -C src/login
login_sql: $(LOGIN_SQL_DEPENDS)
@$(MAKE) -C src/login_sql
char: common
@$(MAKE) -C src/char
char_sql: $(CHAR_SQL_DEPENDS)
@$(MAKE) -C src/char_sql
map: common
@$(MAKE) -C src/map txt
map_sql: $(MAP_SQL_DEPENDS)
@$(MAKE) -C src/map sql
ladmin: common
@$(MAKE) -C src/ladmin
tools:
@$(MAKE) -C src/tool
converters: $(CONVERTERS_DEPENDS)
@$(MAKE) -C src/txt-converter
plugins addons: common
@$(MAKE) -C src/plugins
save:
# 1) create save folder
# 2) add missing files
# 3) remove remaining .svn folder
@echo "building save folder..."
@if test ! -d save ; then mkdir save ; fi
@for f in $$(ls save-tmpl) ; do if test ! -e save/$$f ; then cp save-tmpl/$$f save ; fi ; done
@rm -rf save/.svn
clean:
@$(MAKE) -C src/common $@
@$(MAKE) -C src/login $@
@$(MAKE) -C src/login_sql $@
@$(MAKE) -C src/char $@
@$(MAKE) -C src/char_sql $@
@$(MAKE) -C src/map $@
@$(MAKE) -C src/ladmin $@
@$(MAKE) -C src/plugins $@
@$(MAKE) -C src/tool $@
@$(MAKE) -C src/txt-converter $@
help:
@echo "most common targets are 'all' 'txt' 'sql' 'clean' 'help'"
@echo "possible targets are:"
@echo "'common' - builds object files used in TXT servers"
@echo "'common_sql' - builds object files used in SQL servers"
@echo "'login' - builds login server (TXT version)"
@echo "'login_sql' - builds login server (SQL version)"
@echo "'char' - builds char server (TXT version)"
@echo "'char_sql' - builds char server (SQL version)"
@echo "'map' - builds map server (TXT version)"
@echo "'map_sql' - builds map server (SQL version)"
@echo "'ladmin' - builds remote administration tool"
@echo "'tools' - builds all the tools in src/tools"
@echo "'converters' - builds the login/char converters"
@echo "'plugins' - builds all the plugins in src/plugins"
@echo "'addons'"
@echo "'save' - builds save folder from the template"
@echo "'all' - builds all above targets"
@echo "'txt' - builds txt servers (targets 'common' 'login' 'char' 'map' and"
@echo " 'save')"
@echo "'sql' - builds sql servers (targets 'common_sql' 'login_sql' 'char_sql'"
@echo " and 'map_sql')"
@echo "'clean' - cleans builds and objects"
@echo "'help' - outputs this message"
#####################################################################
needs_mysql:
@echo "MySQL not found or disabled by the configure script"
@exit 1
#####################################################################
# TODO
# Server Packet Protocol version (also defined in src/common/mmo.h)
# CFLAGS += -DPACKETVER=8
# Makes map-wide script variables be saved to SQL instead of TXT files.
# CFLAGS += -DMAPREGSQL
# OPT += -DGCOLLECT
# LIBS += -lgc
# OPT += -DMEMWATCH
# OPT += -DDMALLOC -DDMALLOC_FUNC_CHECK
# LIBS += -ldmalloc
# OPT += -DBCHECK
install: conf/%.conf conf/%.txt
$(shell mkdir -p /opt/eathena/bin/)
$(shell mkdir -p /opt/eathena/etc/eathena/)
$(shell mkdir -p /opt/eathena/var/log/eathena/)
$(shell mv save /opt/eathena/etc/eathena/save)
$(shell mv db /opt/eathena/etc/eathena/db)
$(shell mv conf /opt/eathena/etc/eathena/conf)
$(shell mv npc /opt/eathena/etc/eathena/npc)
$(shell mv log/* /opt/eathena/var/log/eathena/)
$(shell cp *-server* /opt/eathena/bin/)
$(shell cp ladmin /opt/eathena/bin/)
$(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/)
$(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/)
$(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/)
$(shell ln -s /opt/eathena/etc/eathena/npc/ /opt/eathena/bin/)
$(shell ln -s /opt/eathena/var/log/eathena/ /opt/eathena/bin/log)
bin-clean:
$(shell rm /opt/eathena/bin/login-server*)
$(shell rm /opt/eathena/bin/char-server*)
$(shell rm /opt/eathena/bin/map-server*)
$(shell rm /opt/eathena/bin/ladmin)
uninstall:
bin-clean
$(shell rm /opt/eathena/bin/save)
$(shell rm /opt/eathena/bin/db)
$(shell rm /opt/eathena/bin/conf)
$(shell rm /opt/eathena/bin/npc)
$(shell rm /opt/eathena/bin/log)
$(shell rm -rf /opt/eathena/etc/eathena)
$(shell rm -rf /opt/eathena/var/log/eathena)
|