summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorblacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-06-03 18:53:02 +0000
committerblacksirius <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-06-03 18:53:02 +0000
commit4feeab8c61334ec73172fa01cda951dafde2505f (patch)
tree078521eec3b26bd7fcfd42c9d1615d35be6b3ec9 /configure.in
parent40ede8fd21bdb39c01665c90aa420a03a712c96c (diff)
downloadhercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.gz
hercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.bz2
hercules-4feeab8c61334ec73172fa01cda951dafde2505f.tar.xz
hercules-4feeab8c61334ec73172fa01cda951dafde2505f.zip
feature merge bs-coreoptimize->trunk: Atomic Operations, Threading, Spinlock implemnetation. [commit 1/2, windows will followup]
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16221 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in40
1 files changed, 40 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index ef029bcd5..2d3df1ce2 100644
--- a/configure.in
+++ b/configure.in
@@ -9,6 +9,7 @@ AC_CONFIG_FILES([Makefile src/common/Makefile])
AC_CONFIG_FILES([3rdparty/mt19937ar/Makefile 3rdparty/libconfig/Makefile])
AC_CONFIG_FILES([src/char/Makefile src/login/Makefile])
AC_CONFIG_FILES([src/map/Makefile src/tool/Makefile])
+AC_CONFIG_FILES([src/test/Makefile])
AC_GNU_SOURCE
@@ -337,6 +338,31 @@ if test "$enable_64bit" = "no" ; then
fi
+#
+# check if we're producing 32bit code - so well produce binarys for at least i686 (speedup: cmovs, and cmpchg8 support)
+#
+AC_MSG_CHECKING([whether $CC produces 32bit code])
+AC_RUN_IFELSE(
+ [
+ int main(int argc, char **argv){
+ if(sizeof(void*) == 4) return 0;
+ else return 1;
+ }
+ ],
+ [
+ AC_MSG_RESULT([yes])
+ CFLAGS="$CFLAGS -march=i686"
+ LDFLAGS="$LDFLAGS -march=i686"
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ],
+ [
+ AC_MSG_RESULT([guessing no])
+ ]
+)
+
+
AC_MSG_CHECKING([whether $CC supports -Wno-unused-parameter])
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wno-unused-parameter"
@@ -637,6 +663,20 @@ fi
#
+# pthread
+#
+AC_CHECK_LIB([pthread], [pthread_create], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_sigmask], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_attr_init], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_attr_setstacksize], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_attr_destroy], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_cancel], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+AC_CHECK_LIB([pthread], [pthread_join], [], [AC_MSG_ERROR([pthread library not found or incompatible])])
+
+LDFLAGS="$LDFLAGS -lpthread"
+
+
+#
# MySQL library
#