
- Added Abstractions for Atomic Operations (lock instructions.. windows guy's may now this as Interlocked* stuff ..) - Added Threading api abstraction for Pthread based OS's and Windows - Added Spinlock Implementation (uses CAS / if you need more informations - just read the source - its simple.) - Due to Interlocked(Compare)Exchange64 .. we now require at least i686 (Pentium Pro) for 32Bit Builds :) youll also may feel some performance improvements when using 32bit builsd due to "newer" minimal arch the compiler is now able to use CMOV's .... ================================================================ = Important Warning: ================================================================ Dont use threading at the moment athena is not threadsafe! you'll mess up everthing when accessing data from other threads .., no synchronization is provided. A way to process tasks asynchronously will come up after / with the new socket system. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16221 54d463be-8e91-2dee-dedb-b68131a5f0ec
140 lines
4.3 KiB
Makefile
140 lines
4.3 KiB
Makefile
@SET_MAKE@
|
|
|
|
HAVE_MYSQL=@HAVE_MYSQL@
|
|
ifeq ($(HAVE_MYSQL),yes)
|
|
ALL_DEPENDS=common_sql login_sql char_sql map_sql tools import
|
|
SQL_DEPENDS=common_sql login_sql char_sql map_sql import
|
|
COMMON_SQL_DEPENDS=mt19937ar libconfig
|
|
LOGIN_SQL_DEPENDS=mt19937ar libconfig common_sql
|
|
CHAR_SQL_DEPENDS=mt19937ar libconfig common_sql
|
|
MAP_SQL_DEPENDS=mt19937ar libconfig common_sql
|
|
CONVERTERS_DEPENDS=common_sql
|
|
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
|
|
endif
|
|
|
|
|
|
#####################################################################
|
|
.PHONY: sql \
|
|
common_sql \
|
|
mt19937ar \
|
|
login_sql \
|
|
char_sql \
|
|
map_sql \
|
|
tools \
|
|
import \
|
|
test \
|
|
clean help
|
|
|
|
all: $(ALL_DEPENDS)
|
|
|
|
sql: $(SQL_DEPENDS)
|
|
|
|
common_sql: $(COMMON_SQL_DEPENDS)
|
|
@$(MAKE) -C src/common sql
|
|
|
|
mt19937ar:
|
|
@$(MAKE) -C 3rdparty/mt19937ar
|
|
|
|
libconfig:
|
|
@$(MAKE) -C 3rdparty/libconfig
|
|
|
|
login_sql: $(LOGIN_SQL_DEPENDS)
|
|
@$(MAKE) -C src/login sql
|
|
|
|
char_sql: $(CHAR_SQL_DEPENDS)
|
|
@$(MAKE) -C src/char
|
|
|
|
map_sql: $(MAP_SQL_DEPENDS)
|
|
@$(MAKE) -C src/map sql
|
|
|
|
tools:
|
|
@$(MAKE) -C src/tool
|
|
|
|
test:
|
|
@$(MAKE) -C src/test
|
|
|
|
import:
|
|
# 1) create conf/import folder
|
|
# 2) add missing files
|
|
# 3) remove remaining .svn folder
|
|
@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
|
|
@rm -rf conf/import/.svn
|
|
|
|
clean:
|
|
@$(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/tool $@
|
|
@$(MAKE) -C src/test $@
|
|
|
|
help:
|
|
@echo "most common targets are 'all' 'sql' 'conf' 'clean' '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 (SQL version)"
|
|
@echo "'char_sql' - builds char server (SQL version)"
|
|
@echo "'map_sql' - builds map server (SQL version)"
|
|
@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 "'test' - builds tests"
|
|
@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
|
|
|
|
install: conf/%.conf conf/%.txt
|
|
$(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.")
|
|
$(shell mkdir -p /opt/rathena/bin/)
|
|
$(shell mkdir -p /opt/rathena/etc/rathena/)
|
|
$(shell mkdir -p /opt/rathena/var/log/rathena/)
|
|
$(shell mv save /opt/rathena/etc/rathena/save)
|
|
$(shell mv db /opt/rathena/etc/rathena/db)
|
|
$(shell mv conf /opt/rathena/etc/rathena/conf)
|
|
$(shell mv npc /opt/rathena/etc/rathena/npc)
|
|
$(shell mv log/* /opt/rathena/var/log/rathena/)
|
|
$(shell cp *-server* /opt/rathena/bin/)
|
|
$(shell ln -s /opt/rathena/etc/rathena/save/ /opt/rathena/bin/)
|
|
$(shell ln -s /opt/rathena/etc/rathena/db/ /opt/rathena/bin/)
|
|
$(shell ln -s /opt/rathena/etc/rathena/conf/ /opt/rathena/bin/)
|
|
$(shell ln -s /opt/rathena/etc/rathena/npc/ /opt/rathena/bin/)
|
|
$(shell ln -s /opt/rathena/var/log/rathena/ /opt/rathena/bin/log)
|
|
|
|
bin-clean:
|
|
$(shell rm /opt/rathena/bin/login-server*)
|
|
$(shell rm /opt/rathena/bin/char-server*)
|
|
$(shell rm /opt/rathena/bin/map-server*)
|
|
|
|
uninstall:
|
|
$(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.")
|
|
bin-clean
|
|
$(shell rm /opt/rathena/bin/save)
|
|
$(shell rm /opt/rathena/bin/db)
|
|
$(shell rm /opt/rathena/bin/conf)
|
|
$(shell rm /opt/rathena/bin/npc)
|
|
$(shell rm /opt/rathena/bin/log)
|
|
$(shell rm -rf /opt/rathena/etc/rathena)
|
|
$(shell rm -rf /opt/rathena/var/log/rathena)
|