# CILK_PROG_GNU_MAKE - determine whether make is GNU make AC_DEFUN(CILK_PROG_GNU_MAKE, [AC_MSG_CHECKING(whether ${MAKE-make} is GNU make) set dummy ${MAKE-make}; AC_CACHE_VAL(ac_cv_prog_gnu_make, [cat > conftestmake <<\EOF TEST=1 OK=bogus ifeq ($(TEST),1) OK=is-gnu-make endif all: @echo ${OK} EOF changequote(, )dnl # GNU make sometimes prints "make[1]: Entering...", which would confuse us. ac_maketemp=`${MAKE-make} -f conftestmake 2>/dev/null | grep is-gnu-make` changequote([, ])dnl if test -n "$ac_maketemp"; then ac_cv_prog_gnu_make=yes else ac_cv_prog_gnu_make=no fi rm -f conftestmake])dnl if test "$ac_cv_prog_gnu_make" = "yes"; then AC_MSG_RESULT(yes) HAVE_GNU_MAKE=yes else AC_MSG_RESULT(no) HAVE_GNU_MAKE=no fi AC_SUBST([HAVE_GNU_MAKE])dnl ]) # CILK_GCC_SPECS AC_DEFUN(CILK_GCC_SPECS, [AC_CACHE_CHECK(whether ${CC-cc} accepts --specs, ac_gcc_accept_specs, [echo 'void f(){}' > conftest.c echo '' >spectest if test -z "`${CC-cc} --specs=spectest -c conftest.c 2>&1`"; then ac_gcc_accept_specs=yes else ac_gcc_accept_specs=no fi rm -f conftest* spectest ])]) # CILK_CHECK_CC_FLAGS AC_DEFUN(CILK_CHECK_CC_FLAGS, [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK(whether ${CC-cc} accepts $1, ac_$2, [echo 'void f(){}' > conftest.c if test -z "`${CC-cc} $1 -c conftest.c 2>&1`"; then ac_$2=yes else ac_$2=no fi rm -f conftest* ]) if test "$ac_$2" = yes; then : $3 else : $4 fi ]) dnl determine whether gcc's version is $1.$2 or later AC_DEFUN(ACX_PROG_GCC_VERSION, [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK(whether we are using gcc $1.$2 or later, ac_cv_prog_gcc_$1_$2, [ dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp. cat > conftest.c < $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2) yes; # endif #endif EOF if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc_$1_$2=yes else ac_cv_prog_gcc_$1_$2=no fi ]) if test "$ac_cv_prog_gcc_$1_$2" = yes; then : $3 else : $4 fi ]) dnl Link a function with #include first dnl ACX_CHECK_PTHREAD_FUNC(FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) AC_DEFUN(ACX_CHECK_PTHREAD_FUNC, [AC_MSG_CHECKING([for $1 with LIBS="$LIBS"]) AC_CACHE_VAL(acx_cv_func_$1, [AC_TRY_LINK([ #include #include ], [ $2; ], eval "ac_cv_func_$1=yes", eval "ac_cv_func_$1=no")]) if eval "test \"`echo '$ac_cv_func_'$1`\" = yes"; then AC_MSG_RESULT(yes) ifelse([$3], , :, [$3]) else AC_MSG_RESULT(no) ifelse([$4], , , [$4])dnl fi ]) dnl auxiliary function for checking pthreads AC_DEFUN(CILK_PTHREAD_CHECK_LIB, [ cilk_pthread_save_LIBS="$LIBS" cilk_pthread_save_CFLAGS="$CFLAGS" LIBS="$LIBS $1" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" cilk_pthread_ok=yes ACX_CHECK_PTHREAD_FUNC(pthread_create, [pthread_create(0, 0, 0, 0)], , cilk_pthread_ok=no) ACX_CHECK_PTHREAD_FUNC(pthread_join, [pthread_join(0, 0)], , cilk_pthread_ok=no) LIBS="$cilk_pthread_save_LIBS" CFLAGS="$cilk_pthread_save_CFLAGS" if test "$cilk_pthread_ok" = "yes"; then PTHREAD_LIBS="$1" fi ]) dnl determine whether pthreads work AC_DEFUN(CILK_PTHREAD, [ cilk_pthread_ok=no dnl First, check if the POSIX threads header, pthread.h, is available. dnl If it isn't, don't bother looking for the threads libraries. AC_CHECK_HEADER(pthread.h, , cilk_pthread_ok=noheader) PTHREAD_CFLAGS="" dnl More AIX/DEC lossage: must compile with -D_THREAD_SAFE dnl (also on FreeBSD) or -D_REENTRANT: (cc_r subsumes this on AIX, dnl but it doesn't hurt to -D as well, esp. if cc_r is not available.) AC_MSG_CHECKING([if more special flags are required for pthreads]) ok=no AC_REQUIRE([AC_CANONICAL_HOST]) case "${host_cpu}-${host_os}" in *-freebsd*) ok="-pthread -D_THREAD_SAFE" PTHREAD_CFLAGS="$ok $PTHREAD_CFLAGS";; alpha*-osf*) ok="-D_REENTRANT -D__C_ASM_H" PTHREAD_CFLAGS="$ok $PTHREAD_CFLAGS";; esac AC_MSG_RESULT(${ok}) if test x"$cilk_pthread_ok" != xyes; then CILK_PTHREAD_CHECK_LIB([-lpthread]) fi if test x"$cilk_pthread_ok" != xyes; then CILK_PTHREAD_CHECK_LIB([-lpthreads]) fi if test x"$cilk_pthread_ok" != xyes; then CILK_PTHREAD_CHECK_LIB([]) fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) dnl Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$cilk_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else cilk_pthread_ok=no $2 fi ])dnl CILK_PTHREADS