summaryrefslogtreecommitdiff
path: root/Makefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in181
1 files changed, 181 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 000000000..a1075c85a
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,181 @@
+@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 conf
+ SQL_DEPENDS=common_sql login_sql char_sql map_sql conf
+ 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 conf
+ 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 conf 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
+
+conf:
+# conf:
+# 1) create conf and conf/import folders
+# 2) add missing import files
+# 3) copy the rest of the files and folders
+# 4) remove remaining .svn folders
+ @echo "building conf folder..."
+ @if test ! -d conf ; then mkdir conf ; fi
+ @if test ! -d conf/import ; then mkdir conf/import ; fi
+ @for f in $$(ls conf-tmpl/import) ; do if test ! -e conf/import/$$f ; then cp conf-tmpl/import/$$f conf/import ; fi ; done
+ @for f in $$(ls conf-tmpl) ; do if test "$$f" != "import" ; then cp -rf conf-tmpl/$$f conf ; fi ; done
+ @rm -rf conf/*/.svn
+# save:
+# 1) create save folder
+# 2) add missing files
+ @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
+
+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 "'conf' - builds conf and save folders from the templates"
+ @echo "'all' - builds all above targets"
+ @echo "'txt' - builds txt servers (targets 'common' 'login' 'char' 'map' and"
+ @echo " 'conf')"
+ @echo "'sql' - builds sql servers (targets 'common_sql' 'login_sql' 'char_sql'"
+ @echo " 'map_sql' and 'conf')"
+ @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)