- 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
62 lines
1.9 KiB
Makefile
62 lines
1.9 KiB
Makefile
|
|
COMMON_H = $(shell ls ../common/*.h)
|
|
|
|
MT19937AR_OBJ = ../../3rdparty/mt19937ar/mt19937ar.o
|
|
MT19937AR_H = ../../3rdparty/mt19937ar/mt19937ar.h
|
|
MT19937AR_INCLUDE = -I../../3rdparty/mt19937ar
|
|
|
|
LIBCONFIG_OBJ = ../../3rdparty/libconfig/libconfig.o ../../3rdparty/libconfig/grammar.o \
|
|
../../3rdparty/libconfig/scanctx.o ../../3rdparty/libconfig/scanner.o ../../3rdparty/libconfig/strbuf.o
|
|
LIBCONFIG_H = ../../3rdparty/libconfig/libconfig.h ../../3rdparty/libconfig/grammar.h \
|
|
../../3rdparty/libconfig/parsectx.h ../../3rdparty/libconfig/scanctx.h ../../3rdparty/libconfig/scanner.h \
|
|
../../3rdparty/libconfig/strbuf.h ../../3rdparty/libconfig/wincompat.h
|
|
LIBCONFIG_INCLUDE = -I../../3rdparty/libconfig
|
|
|
|
TEST_SPINLOCK_OBJ=obj/test_spinlock.o
|
|
TEST_SPINLOCK_H=
|
|
TEST_SPINLOCK_DEPENDS=obj $(TEST_SPINLOCK_OBJ) ../common/obj_sql/common_sql.a ../common/obj_all/common.a $(MT19937AR_OBJ)
|
|
|
|
@SET_MAKE@
|
|
|
|
#####################################################################
|
|
.PHONY :all test_spinlock
|
|
|
|
all: test_spinlock
|
|
|
|
clean:
|
|
@echo " CLEAN test"
|
|
@rm -rf *.o obj ../../test_spinlock@EXEEXT@
|
|
|
|
#####################################################################
|
|
|
|
# object directories
|
|
|
|
obj:
|
|
@echo " MKDIR obj"
|
|
@-mkdir obj
|
|
|
|
#executables
|
|
|
|
test_spinlock: $(TEST_SPINLOCK_DEPENDS)
|
|
@echo " LD $@"
|
|
@@CC@ @LDFLAGS@ -o ../../test_spinlock@EXEEXT@ $(TEST_SPINLOCK_OBJ) ../common/obj_sql/common_sql.a ../common/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@
|
|
|
|
# login object files
|
|
|
|
obj/%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H)
|
|
@echo " CC $<"
|
|
@@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) -DWITH_SQL @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
|
|
|
|
# missing object files
|
|
../common/obj_all/common.a:
|
|
@$(MAKE) -C ../common sql
|
|
|
|
../common/obj_sql/common_sql.a:
|
|
@$(MAKE) -C ../common sql
|
|
|
|
MT19937AR_OBJ:
|
|
@$(MAKE) -C ../../3rdparty/mt19937ar
|
|
|
|
LIBCONFIG_OBJ:
|
|
@$(MAKE) -C ../../3rdparty/libconfig
|