summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-03-22 20:44:58 +0000
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-03-22 20:44:58 +0000
commit62b1bb0c213c37b58e5a7bb8359f41168c34f817 (patch)
treef1de97d131b2fa1bf0a75ab75c1f6d329df7555d /m4
parent17a17afd5835c29cc8da396771278f2ead31e8fe (diff)
downloadxine-lib-62b1bb0c213c37b58e5a7bb8359f41168c34f817.tar.gz
xine-lib-62b1bb0c213c37b58e5a7bb8359f41168c34f817.tar.bz2
Fix crosscompile to use build and host definition from autoconf, rather than using hacksaround. Also replace the whole pthread check with an improved macro originally written for XCB, this way it's not going to try linking the fake -lpthread on Darwin, and it also does not force a -I/usr/local/include on FreeBSD. The new macro respects the same variables set by ports, so that it's even more transparent to FreeBSD users.
CVS patchset: 8739 CVS date: 2007/03/22 20:44:58
Diffstat (limited to 'm4')
-rw-r--r--m4/Makefile.am3
-rw-r--r--m4/pthreads.m459
2 files changed, 61 insertions, 1 deletions
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 8f6fcc85d..d78fb6a88 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -31,4 +31,5 @@ EXTRA_DIST = glibc2.m4 intdiv0.m4 intmax.m4 inttypes.m4 inttypes_h.m4 inttypes-p
progtest.m4 \
xine.m4 \
_xine.m4 \
- xv.m4
+ xv.m4 \
+ pthreads.m4
diff --git a/m4/pthreads.m4 b/m4/pthreads.m4
new file mode 100644
index 000000000..28d72dd4f
--- /dev/null
+++ b/m4/pthreads.m4
@@ -0,0 +1,59 @@
+dnl Detection of the Pthread implementation flags and libraries
+dnl Diego Pettenò <flameeyes-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org> 2006-11-03
+dnl
+dnl CC_PTHREAD_FLAGS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl This macro checks for the Pthread flags to use to build
+dnl with support for PTHREAD_LIBS and PTHREAD_CFLAGS variables
+dnl used in FreeBSD ports.
+dnl
+dnl This macro is released as public domain, but please mail
+dnl to flameeyes@gmail.com if you want to add support for a
+dnl new case, or if you're going to use it, so that there will
+dnl always be a version available.
+AC_DEFUN([CC_PTHREAD_FLAGS], [
+ AC_REQUIRE([CC_CHECK_WERROR])
+ AC_ARG_VAR([PTHREAD_CFLAGS], [C compiler flags for Pthread support])
+ AC_ARG_VAR([PTHREAD_LIBS], [linker flags for Pthread support])
+
+ dnl if PTHREAD_* are not set, default to -pthread (GCC)
+ if test "${PTHREAD_CFLAGS-unset}" = "unset"; then
+ case $host in
+ *-hpux11*) PTHREAD_CFLAGS="" ;;
+ *-darwin*) PTHREAD_CFLAGS="" ;;
+ *) PTHREAD_CFLAGS="-pthread" ;;
+ esac
+ fi
+ if test "${PTHREAD_LIBS-unset}" = "unset"; then
+ case $host in
+ *-hpux11*) PTHREAD_LIBS="-lpthread" ;;
+ *-darwin*) PTHREAD_LIBS="" ;;
+ *) PTHREAD_LIBS="-pthread" ;;
+ esac
+ fi
+
+ AC_CACHE_CHECK([if $CC supports Pthread],
+ AS_TR_SH([cc_cv_pthreads]),
+ [ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $cc_cv_werror $PTHREAD_CFLAGS"
+ LIBS="$LIBS $PTHREAD_LIBS"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[pthread_create(NULL, NULL, NULL, NULL);]]
+ )],
+ [cc_cv_pthreads=yes],
+ [cc_cv_pthreads=no])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ ])
+
+ AC_SUBST([PTHREAD_LIBS])
+ AC_SUBST([PTHREAD_CFLAGS])
+
+ if test x$cc_cv_pthreads = xyes; then
+ ifelse([$1], , [:], [$1])
+ else
+ ifelse([$2], , [:], [$2])
+ fi
+])