123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- # StarPU --- Runtime system for heterogeneous multicore architectures.
- #
- # Copyright (C) 2011-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- #
- # StarPU is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
- # the Free Software Foundation; either version 2.1 of the License, or (at
- # your option) any later version.
- #
- # StarPU is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- # See the GNU Lesser General Public License in COPYING.LGPL for more details.
- #
- # STARPU_SEARCH_LIBS(NAME, FUNCTION, SEARCH-LIBS,
- # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
- # [OTHER-LIBRARIES])
- #
- # Like AC_SEARCH_LIBS, but puts -l flags into $1_LDFLAGS instead of LIBS, and
- # AC_SUBSTs it
- AC_DEFUN([STARPU_SEARCH_LIBS], [dnl
- _LIBS_SAV="$LIBS"
- LIBS=""
- AC_SEARCH_LIBS([$2], [$3], [$4], [$5], [$6])
- STARPU_$1_LDFLAGS="$STARPU_$1_LDFLAGS $LIBS"
- LIBS=$_LIBS_SAV
- AC_SUBST(STARPU_$1_LDFLAGS)
- ])dnl
- # STARPU_CHECK_LIB(NAME, LIBRARY, FUNCTION,
- # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
- # [OTHER-LIBRARIES])
- #
- # Like AC_CHECK_LIB, but puts -l flags into $1_LDFLAGS instead of LIBS, and
- # AC_SUBSTs it
- AC_DEFUN([STARPU_CHECK_LIB], [dnl
- _LIBS_SAV="$LIBS"
- LIBS=""
- AC_CHECK_LIB([$2], [$3], [$4], [$5], [$6])
- STARPU_$1_LDFLAGS="$STARPU_$1_LDFLAGS $LIBS"
- LIBS=$_LIBS_SAV
- AC_SUBST(STARPU_$1_LDFLAGS)
- ])dnl
- # STARPU_HAVE_LIBRARY(NAME, LIBRARY,
- # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
- # [OTHER-LIBRARIES])
- # Like AC_HAVE_LIBRARY, but puts -l flags into $1_LDFLAGS instead of LIBS, and
- # AC_SUBSTs it
- AC_DEFUN([STARPU_HAVE_LIBRARY], [dnl
- STARPU_CHECK_LIB([$1], [$2], main, [$3], [$4], [$5])
- ])dnl
- # STARPU_INIT_ZERO(INCLUDES, TYPE, INIT_MACRO)
- # Checks whether when TYPE is initialized with INIT_MACRO, the content is just
- # plain zeroes
- AC_DEFUN([STARPU_INIT_ZERO], [dnl
- AC_MSG_CHECKING(whether $3 just zeroes)
- AC_RUN_IFELSE([AC_LANG_PROGRAM(
- $1,
- [[$2 var = $3;
- char *p;
- for (p = (char*) &var; p < (char*) (&var+1); p++)
- if (*p != 0)
- return 1;
- return 0;
- ]],
- )],
- [AC_DEFINE([STARPU_$3_ZERO], [1], [Define to 1 if `$3' is just zeroes])
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
- ])dnl
- # IS_SUPPORTED_CFLAG(flag)
- # ------------------------
- # Check if the CFLAGS `flag' is supported by the compiler
- AC_DEFUN([IS_SUPPORTED_CFLAG],
- [
- AC_REQUIRE([AC_PROG_CC])
- AC_MSG_CHECKING([whether C compiler support $1])
- SAVED_CFLAGS="$CFLAGS"
- CFLAGS="$1"
- AC_LINK_IFELSE(
- AC_LANG_PROGRAM(
- [[]],
- [[AC_LANG_SOURCE([const char *hello = "Hello World";])]]
- ),
- [
- m4_default_nblank([$2], [GLOBAL_AM_CFLAGS="$GLOBAL_AM_CFLAGS $1"])
- AC_MSG_RESULT(yes)
- option_available=1
- ],
- [
- AC_MSG_RESULT(no)
- option_available=0
- ]
- )
- CFLAGS="$SAVED_CFLAGS"
- ])
- # IS_SUPPORTED_CXXFLAG(flag)
- # ------------------------
- # Check if the CXXFLAGS `flag' is supported by the compiler
- AC_DEFUN([IS_SUPPORTED_CXXFLAG],
- [
- AC_REQUIRE([AC_PROG_CXX])
- AC_LANG_PUSH([C++])
- AC_MSG_CHECKING([whether CXX compiler support $1])
- SAVED_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$1"
- AC_LINK_IFELSE(
- AC_LANG_PROGRAM(
- [[]],
- [[AC_LANG_SOURCE([const char *hello = "Hello World";])]]
- ),
- [
- m4_default_nblank([$2], [GLOBAL_AM_CXXFLAGS="$GLOBAL_AM_CXXFLAGS $1"])
- AC_MSG_RESULT(yes)
- option_available=1
- ],
- [
- AC_MSG_RESULT(no)
- option_available=0
- ]
- )
- CXXFLAGS="$SAVED_CXXFLAGS"
- AC_LANG_POP([C++])
- ])
- # IS_SUPPORTED_FFLAG(flag)
- # ------------------------
- # Check if the FFLAGS `flag' is supported by the compiler
- AC_DEFUN([IS_SUPPORTED_FFLAG],
- [
- AC_LANG_PUSH([Fortran 77])
- AC_MSG_CHECKING([whether Fortran 77 compiler support $1])
- SAVED_FFLAGS="$FFLAGS"
- FFLAGS="$1"
- AC_LINK_IFELSE(
- AC_LANG_PROGRAM(
- [],
- [[AC_LANG_SOURCE([])]]
- ),
- [
- m4_default_nblank([$2], [GLOBAL_AM_FFLAGS="$GLOBAL_AM_FFLAGS $1"])
- AC_MSG_RESULT(yes)
- option_available=1
- ],
- [
- AC_MSG_RESULT(no)
- option_available=0
- ]
- )
- FFLAGS="$SAVED_FFLAGS"
- AC_LANG_POP([Fortran 77])
- ])
- # IS_SUPPORTED_FCFLAG(flag)
- # ------------------------
- # Check if the FCLAGS `flag' is supported by the compiler
- AC_DEFUN([IS_SUPPORTED_FCFLAG],
- [
- AC_LANG_PUSH([Fortran])
- AC_MSG_CHECKING([whether Fortran compiler support $1])
- SAVED_FCFLAGS="$FCFLAGS"
- FCFLAGS="$1"
- AC_LINK_IFELSE(
- AC_LANG_PROGRAM(
- [],
- [[AC_LANG_SOURCE([])]]
- ),
- [
- m4_default_nblank([$2], [GLOBAL_AM_FCFLAGS="$GLOBAL_AM_FCFLAGS $1"])
- AC_MSG_RESULT(yes)
- option_available=1
- ],
- [
- AC_MSG_RESULT(no)
- option_available=0
- ]
- )
- FCFLAGS="$SAVED_FCFLAGS"
- AC_LANG_POP([Fortran])
- ])
- # IS_SUPPORTED_FLAG(flag)
- # ------------------------
- # Check with C, C++, F77 and F90 that the `flag' is supported by the compiler
- AC_DEFUN([IS_SUPPORTED_FLAG],
- [
- IS_SUPPORTED_CFLAG($1)
- IS_SUPPORTED_CXXFLAG($1)
- IS_SUPPORTED_FFLAG($1)
- IS_SUPPORTED_FCFLAG($1)
- ])
- # AC_PYTHON_MODULE(modulename, [action-if-found], [action-if-not-found])
- # Check if the given python module is available
- AC_DEFUN([AC_PYTHON_MODULE],
- [
- echo "import $1" | $PYTHON - 2>/dev/null
- if test $? -ne 0 ; then
- $3
- else
- $2
- fi
- ])
|