Enlightenment CVS committal

Author  : mej
Project : eterm
Module  : libast

Dir     : eterm/libast


Modified Files:
        ChangeLog autogen.sh configure.in libast.m4 


Log Message:
Thu Jul 13 14:02:08 2006                        Michael Jennings (mej)

Added thread, mutex, and condition interfaces along with their
corresponding pthreads-based implementations.  Not quite done yet, and
not tested.

Added dynamically-loadable module object class along with
corresponding unit tests.  Appears to work fine.
----------------------------------------------------------------------

===================================================================
RCS file: /cvs/e/eterm/libast/ChangeLog,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -3 -r1.145 -r1.146
--- ChangeLog   25 Apr 2006 15:18:41 -0000      1.145
+++ ChangeLog   13 Jul 2006 23:03:44 -0000      1.146
@@ -787,3 +787,12 @@
 
 Began work on UTF-8/Unicode strings.
 ----------------------------------------------------------------------
+Thu Jul 13 14:02:08 2006                        Michael Jennings (mej)
+
+Added thread, mutex, and condition interfaces along with their
+corresponding pthreads-based implementations.  Not quite done yet, and
+not tested.
+
+Added dynamically-loadable module object class along with
+corresponding unit tests.  Appears to work fine.
+----------------------------------------------------------------------
===================================================================
RCS file: /cvs/e/eterm/libast/autogen.sh,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- autogen.sh  18 Jul 2005 05:26:39 -0000      1.10
+++ autogen.sh  13 Jul 2006 23:03:44 -0000      1.11
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Run this to generate all the initial makefiles, etc.
-# $Id: autogen.sh,v 1.10 2005/07/18 05:26:39 vapier Exp $
+# $Id: autogen.sh,v 1.11 2006/07/13 23:03:44 mej Exp $
 
 broken() {
     echo
@@ -55,9 +55,9 @@
 export LIBTOOLIZE ACLOCAL AUTOCONF AUTOHEADER AUTOMAKE
 
 # Check for existing libast.m4 we can use.  Use the local one if not.
-if test ! -f "`$ACLOCAL --print-ac-dir`/libast.m4"; then
+#if test ! -f "`$ACLOCAL --print-ac-dir`/libast.m4"; then
     ACLOCAL_FLAGS="-I . $ACLOCAL_FLAGS"
-fi
+#fi
 
 # Run the stuff.
 (set -x && $LIBTOOLIZE -c -f) || abort libtool
===================================================================
RCS file: /cvs/e/eterm/libast/configure.in,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- configure.in        5 Feb 2006 05:56:01 -0000       1.27
+++ configure.in        13 Jul 2006 23:03:44 -0000      1.28
@@ -1,4 +1,4 @@
-dnl# $Id: configure.in,v 1.27 2006/02/05 05:56:01 mej Exp $
+dnl# $Id: configure.in,v 1.28 2006/07/13 23:03:44 mej Exp $
 
 test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
 test "x$ACLOCAL" = "x" && ACLOCAL=aclocal
@@ -96,6 +96,7 @@
 AST_MMX_SUPPORT()
 AST_ARG_REGEXP(REGEXP)
 AST_ARG_BACKQUOTE_EXEC(ALLOW_BACKQUOTE_EXEC)
+AST_PTHREADS()
 
 AST_FLAGS()
 AC_SUBST(CC)
===================================================================
RCS file: /cvs/e/eterm/libast/libast.m4,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- libast.m4   22 Dec 2005 23:28:55 -0000      1.14
+++ libast.m4   13 Jul 2006 23:03:44 -0000      1.15
@@ -1,6 +1,6 @@
 dnl#####################################################################
 dnl# Autoconf m4 macros for LibAST
-dnl# $Id: libast.m4,v 1.14 2005/12/22 23:28:55 mej Exp $
+dnl# $Id: libast.m4,v 1.15 2006/07/13 23:03:44 mej Exp $
 dnl#####################################################################
 
 dnl#
@@ -182,7 +182,7 @@
 dnl#
 AC_DEFUN([AST_IMLIB2_SUPPORT], [
     AC_ARG_WITH(imlib,
-    [  --with-imlib[=DIR]      compile with Imlib2 support (default)],
+    [  --with-imlib[=DIR]        compile with Imlib2 support (default)],
     [
         if test "$withval" != "no"; then 
             if test "$withval" != "yes"; then
@@ -347,7 +347,7 @@
 dnl#
 AC_DEFUN([AST_ARG_DEBUG], [
     AC_MSG_CHECKING(for debugging level)
-    AC_ARG_WITH(debugging, [  --with-debugging[=num]  compile in debugging 
support.  num >= 0], [
+    AC_ARG_WITH(debugging, [  --with-debugging[=num]    compile in debugging 
support.  num >= 0], [
                     if test "$withval" = "yes"; then
                         withval=4
                     fi
@@ -368,7 +368,7 @@
 ])
 AC_DEFUN([AST_ARG_REGEXP], [
     AC_ARG_WITH(regexp,
-    [  --with-regexp[=TYPE]  specify the type of regular expression support 
(bsd, posix, pcre)],
+    [  --with-regexp[=TYPE]      specify the type of regular expression 
support (bsd, posix, pcre)],
     [$1=$withval], [$1=yes])
     AST_REGEXP_SUPPORT($1)
     AC_MSG_CHECKING(for regular expression support)
@@ -377,7 +377,7 @@
 AC_DEFUN([AST_ARG_BACKQUOTE_EXEC], [
     AC_MSG_CHECKING(if backquote execution support should be enabled)
     AC_ARG_WITH(backquote-exec,
-        [  --without-backquote-exec   disables the execution of commands from 
inside config files],
+        [  --without-backquote-exec  disables the execution of commands from 
inside config files],
         [
             if test "$withval" = "no"; then
                 AC_MSG_RESULT(no)
@@ -688,3 +688,195 @@
         AC_MSG_RESULT([unknown, assuming none])
     fi
 ])
+
+dnl# Taken from http://autoconf-archive.cryp.to/acx_pthread.html
+AC_DEFUN([AST_PTHREADS], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+ast_pthreads_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with 
CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, ast_pthreads_ok=yes)
+        AC_MSG_RESULT($ast_pthreads_ok)
+        if test x"$ast_pthreads_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ast_pthreads_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads 
-mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ast_pthreads_flags="-pthreads pthread -mt -pthread $ast_pthreads_flags"
+        ;;
+esac
+
+if test x"$ast_pthreads_ok" = xno; then
+for flag in $ast_pthreads_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                pthread-config)
+                AC_CHECK_PROG(ast_pthreads_config, pthread-config, yes, no)
+                if test x"$ast_pthreads_config" = xno; then continue; fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config 
--libs`"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_TRY_LINK([#include <pthread.h>],
+                    [pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+                    [ast_pthreads_ok=yes])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($ast_pthreads_ok)
+        if test "x$ast_pthreads_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ast_pthreads_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        attr_name=unknown
+        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+            AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
+                        [attr_name=$attr; break])
+        done
+        AC_MSG_RESULT($attr_name)
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with cc_r
+        AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ast_pthreads_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREADS,1,[Define if you have POSIX 
threads libraries and header files.]),[$1])
+        :
+else
+        ast_pthreads_ok=no
+        $2
+fi
+AC_LANG_RESTORE
+])dnl AST_PTHREADS




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to