forked from enlightenment/efl
* link correctly ecore against pthread
* use the efl_pthread.m4 macro * add configure output for pthread support in ecore SVN revision: 43627
This commit is contained in:
parent
1b98d1216c
commit
1b7b929a09
|
@ -709,11 +709,8 @@ fi
|
||||||
AC_SUBST(quartz_ldflags)
|
AC_SUBST(quartz_ldflags)
|
||||||
|
|
||||||
# basic pthread support
|
# basic pthread support
|
||||||
AC_CHECK_HEADER(pthread.h,
|
|
||||||
[
|
EFL_CHECK_PTHREAD([have_pthread="yes"], [have_pthread="no"])
|
||||||
AC_DEFINE(BUILD_PTHREAD, 1, [Build thread worker])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
### Checks for types
|
### Checks for types
|
||||||
AC_CHECK_SIZEOF(int, 4)
|
AC_CHECK_SIZEOF(int, 4)
|
||||||
|
@ -1181,6 +1178,7 @@ echo
|
||||||
echo " Core:"
|
echo " Core:"
|
||||||
echo
|
echo
|
||||||
echo " Ecore........................: always"
|
echo " Ecore........................: always"
|
||||||
|
echo " Thread support.............: $have_pthread"
|
||||||
echo " GLib support...............: $have_glib"
|
echo " GLib support...............: $have_glib"
|
||||||
echo " Ecore_Job....................: $have_ecore_job"
|
echo " Ecore_Job....................: $have_ecore_job"
|
||||||
echo " Ecore_Txt....................: $have_ecore_txt"
|
echo " Ecore_Txt....................: $have_ecore_txt"
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
|
||||||
|
dnl That code is public domain and can be freely used or copied.
|
||||||
|
|
||||||
|
dnl Macro that check if several ASM instruction sets are available or not.
|
||||||
|
|
||||||
|
dnl Usage: EFL_CHECK_EFL_CHECK_PTHREAD([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||||
|
dnl Call AC_SUBST(EFL_PTHREAD_FLAGS)
|
||||||
|
dnl Define EFL_HAVE_PTHREAD
|
||||||
|
|
||||||
|
AC_DEFUN([EFL_CHECK_PTHREAD],
|
||||||
|
[
|
||||||
|
|
||||||
|
dnl configure option
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([pthread],
|
||||||
|
[AC_HELP_STRING([--disable-pthread], [enable POSIX threads code @<:@default=yes@:>@])],
|
||||||
|
[
|
||||||
|
if test "x${enableval}" = "xyes" ; then
|
||||||
|
_efl_enable_pthread="yes"
|
||||||
|
else
|
||||||
|
_efl_enable_pthread="no"
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[_efl_enable_pthread="yes"])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to build POSIX threads code])
|
||||||
|
AC_MSG_RESULT([${_efl_enable_pthread}])
|
||||||
|
|
||||||
|
dnl check if the compiler supports pthreads
|
||||||
|
|
||||||
|
_efl_have_pthread="no"
|
||||||
|
|
||||||
|
if test "x${_efl_enable_pthread}" = "xyes" ; then
|
||||||
|
AC_CHECK_HEADER(pthread.h,
|
||||||
|
[_efl_have_pthread="yes"],
|
||||||
|
[_efl_have_pthread="no"])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether system support POSIX threads])
|
||||||
|
AC_MSG_RESULT([${_efl_enable_pthread}])
|
||||||
|
|
||||||
|
if test "x${_efl_have_pthread}" = "xyes" ; then
|
||||||
|
case "$host_os" in
|
||||||
|
mingw*)
|
||||||
|
EFL_PTHREAD_CFLAGS="-mthreads"
|
||||||
|
EFL_PTHREAD_LIBS="-mthreads -lpthreadGC2"
|
||||||
|
;;
|
||||||
|
solaris*)
|
||||||
|
EFL_PTHREAD_CFLAGS="-mt"
|
||||||
|
EFL_PTHREAD_LIBS="-mt"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
EFL_PTHREAD_CFLAGS="-pthread"
|
||||||
|
EFL_PTHREAD_LIBS="-pthread"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(EFL_PTHREAD_CFLAGS)
|
||||||
|
AC_SUBST(EFL_PTHREAD_LIBS)
|
||||||
|
|
||||||
|
if test "x${_efl_have_pthread}" = "xyes" ; then
|
||||||
|
AC_DEFINE(EFL_HAVE_PTHREAD, 1, [Define to mention that POSIX threads are supported])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${_efl_have_pthread}" = "xyes" ; then
|
||||||
|
ifelse([$1], , :, [$1])
|
||||||
|
else
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -1,7 +1,7 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
AM_CPPFLAGS = @EVIL_CFLAGS@ @WIN32_CPPFLAGS@ @EFL_ECORE_BUILD@
|
AM_CPPFLAGS = @GLIB_CFLAGS@ @EVIL_CFLAGS@ @EINA_CFLAGS@ @WIN32_CPPFLAGS@ @EFL_ECORE_BUILD@
|
||||||
AM_CFLAGS = @WIN32_CFLAGS@ @EINA_CFLAGS@ @WIN32_CPPFLAGS@ @GLIB_CFLAGS@
|
AM_CFLAGS = @WIN32_CFLAGS@ @EFL_PTHREAD_CFLAGS@
|
||||||
|
|
||||||
lib_LTLIBRARIES = libecore.la
|
lib_LTLIBRARIES = libecore.la
|
||||||
include_HEADERS = \
|
include_HEADERS = \
|
||||||
|
@ -39,7 +39,7 @@ ecore_value.c \
|
||||||
ecore_thread.c \
|
ecore_thread.c \
|
||||||
ecore_glib.c
|
ecore_glib.c
|
||||||
|
|
||||||
libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ -lm
|
libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ -lm
|
||||||
libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_release_info@
|
libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_release_info@
|
||||||
|
|
||||||
EXTRA_DIST = ecore_private.h
|
EXTRA_DIST = ecore_private.h
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
# include <Evil.h>
|
# include <Evil.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "ecore_private.h"
|
#include "ecore_private.h"
|
||||||
#include "Ecore.h"
|
#include "Ecore.h"
|
||||||
|
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
typedef struct _Ecore_Pthread_Worker Ecore_Pthread_Worker;
|
typedef struct _Ecore_Pthread_Worker Ecore_Pthread_Worker;
|
||||||
typedef struct _Ecore_Pthread_Data Ecore_Pthread_Data;
|
typedef struct _Ecore_Pthread_Data Ecore_Pthread_Data;
|
||||||
typedef struct _Ecore_Pthread Ecore_Pthread;
|
typedef struct _Ecore_Pthread Ecore_Pthread;
|
||||||
|
@ -39,7 +39,7 @@ struct _Ecore_Pthread_Data
|
||||||
static int _ecore_thread_count_max = 0;
|
static int _ecore_thread_count_max = 0;
|
||||||
static int ECORE_THREAD_PIPE_DEL = 0;
|
static int ECORE_THREAD_PIPE_DEL = 0;
|
||||||
|
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
static int _ecore_thread_count = 0;
|
static int _ecore_thread_count = 0;
|
||||||
static Eina_List *_ecore_thread_data = NULL;
|
static Eina_List *_ecore_thread_data = NULL;
|
||||||
static Eina_List *_ecore_thread = NULL;
|
static Eina_List *_ecore_thread = NULL;
|
||||||
|
@ -164,7 +164,7 @@ _ecore_thread_init(void)
|
||||||
_ecore_thread_count_max = 1;
|
_ecore_thread_count_max = 1;
|
||||||
|
|
||||||
ECORE_THREAD_PIPE_DEL = ecore_event_type_new();
|
ECORE_THREAD_PIPE_DEL = ecore_event_type_new();
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
del_handler = ecore_event_handler_add(ECORE_THREAD_PIPE_DEL, _ecore_thread_pipe_del, NULL);
|
del_handler = ecore_event_handler_add(ECORE_THREAD_PIPE_DEL, _ecore_thread_pipe_del, NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ void
|
||||||
_ecore_thread_shutdown(void)
|
_ecore_thread_shutdown(void)
|
||||||
{
|
{
|
||||||
/* FIXME: If function are still running in the background, should we kill them ? */
|
/* FIXME: If function are still running in the background, should we kill them ? */
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
Ecore_Pthread_Worker *work;
|
Ecore_Pthread_Worker *work;
|
||||||
Ecore_Pthread_Data *pth;
|
Ecore_Pthread_Data *pth;
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ ecore_thread_run(void (*func_heavy)(void *data),
|
||||||
void (*func_cancel)(void *data),
|
void (*func_cancel)(void *data),
|
||||||
const void *data)
|
const void *data)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
Ecore_Pthread_Worker *work;
|
Ecore_Pthread_Worker *work;
|
||||||
Ecore_Pthread_Data *pth;
|
Ecore_Pthread_Data *pth;
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ ecore_thread_run(void (*func_heavy)(void *data),
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
ecore_thread_cancel(Ecore_Thread *thread)
|
ecore_thread_cancel(Ecore_Thread *thread)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef EFL_HAVE_PTHREAD
|
||||||
Ecore_Pthread_Worker *work;
|
Ecore_Pthread_Worker *work;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue