1 # This file is part of GCC. 2 # 3 # GCC is free software; you can redistribute it and/or modify it under 4 # the terms of the GNU General Public License as published by the Free 5 # Software Foundation; either version 3, or (at your option) any later 6 # version. 7 # 8 # GCC is distributed in the hope that it will be useful, but WITHOUT 9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 11 # for more details. 12 # 13 # You should have received a copy of the GNU General Public License 14 # along with GCC; see the file COPYING3. If not see 15 # <http://www.gnu.org/licenses/>. 16 # 17 # Contributed by Richard Guenther <rguenther (a] suse.de> 18 # Based on cloog.m4 19 20 # ISL_INIT_FLAGS () 21 # ------------------------- 22 # Provide configure switches for ISL support. 23 # Initialize isllibs/islinc according to the user input. 24 AC_DEFUN([ISL_INIT_FLAGS], 25 [ 26 AC_ARG_WITH([isl-include], 27 [AS_HELP_STRING( 28 [--with-isl-include=PATH], 29 [Specify directory for installed ISL include files])]) 30 AC_ARG_WITH([isl-lib], 31 [AS_HELP_STRING( 32 [--with-isl-lib=PATH], 33 [Specify the directory for the installed ISL library])]) 34 35 AC_ARG_ENABLE(isl-version-check, 36 [AS_HELP_STRING( 37 [--disable-isl-version-check], 38 [disable check for ISL version])], 39 ENABLE_ISL_CHECK=$enableval, 40 ENABLE_ISL_CHECK=yes) 41 42 # Initialize isllibs and islinc. 43 case $with_isl in 44 no) 45 isllibs= 46 islinc= 47 ;; 48 "" | yes) 49 ;; 50 *) 51 isllibs="-L$with_isl/lib" 52 islinc="-I$with_isl/include" 53 ;; 54 esac 55 if test "x${with_isl_include}" != x ; then 56 islinc="-I$with_isl_include" 57 fi 58 if test "x${with_isl_lib}" != x; then 59 isllibs="-L$with_isl_lib" 60 fi 61 dnl If no --with-isl flag was specified and there is in-tree ISL 62 dnl source, set up flags to use that and skip any version tests 63 dnl as we cannot run them before building ISL. 64 if test "x${islinc}" = x && test "x${isllibs}" = x \ 65 && test -d ${srcdir}/isl; then 66 isllibs='-L$$r/$(HOST_SUBDIR)/isl/'"$lt_cv_objdir"' ' 67 islinc='-I$$r/$(HOST_SUBDIR)/isl/include -I$$s/isl/include' 68 ENABLE_ISL_CHECK=no 69 AC_MSG_WARN([using in-tree ISL, disabling version check]) 70 fi 71 ] 72 ) 73 74 # ISL_REQUESTED (ACTION-IF-REQUESTED, ACTION-IF-NOT) 75 # ---------------------------------------------------- 76 # Provide actions for failed ISL detection. 77 AC_DEFUN([ISL_REQUESTED], 78 [ 79 AC_REQUIRE([ISL_INIT_FLAGS]) 80 81 if test "x${with_isl}" = xno; then 82 $2 83 elif test "x${with_isl}" != x \ 84 || test "x${with_isl_include}" != x \ 85 || test "x${with_isl_lib}" != x ; then 86 $1 87 else 88 $2 89 fi 90 ] 91 ) 92 93 # _ISL_CHECK_CT_PROG(MAJOR, MINOR) 94 # -------------------------------------------- 95 # Helper for verifying ISL compile time version. 96 m4_define([_ISL_CHECK_CT_PROG],[AC_LANG_PROGRAM( 97 [#include <isl/version.h> 98 #include <string.h>], 99 [if (strncmp (isl_version (), "isl-$1.$2", strlen ("isl-$1.$2")) != 0) 100 return 1; 101 ])]) 102 103 # ISL_CHECK_VERSION ISL_CHECK_VERSION (MAJOR, MINOR) 104 # ---------------------------------------------------------------- 105 # Test the found ISL to be exact of version MAJOR.MINOR and at least 106 # REVISION. 107 AC_DEFUN([ISL_CHECK_VERSION], 108 [ 109 if test "${ENABLE_ISL_CHECK}" = yes ; then 110 _isl_saved_CFLAGS=$CFLAGS 111 _isl_saved_LDFLAGS=$LDFLAGS 112 _isl_saved_LIBS=$LIBS 113 114 CFLAGS="${_isl_saved_CFLAGS} ${islinc} ${gmpinc}" 115 LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs}" 116 LIBS="${_isl_saved_LIBS} -lisl" 117 118 AC_MSG_CHECKING([for version $1.$2 of ISL]) 119 AC_RUN_IFELSE([_ISL_CHECK_CT_PROG($1,$2)], 120 [gcc_cv_isl=yes], 121 [gcc_cv_isl=no], 122 [gcc_cv_isl=yes]) 123 AC_MSG_RESULT([$gcc_cv_isl]) 124 125 CFLAGS=$_isl_saved_CFLAGS 126 LDFLAGS=$_isl_saved_LDFLAGS 127 LIBS=$_isl_saved_LIBS 128 fi 129 ] 130 ) 131 132 # ISL_IF_FAILED (ACTION-IF-FAILED) 133 # ---------------------------------- 134 # Executes ACTION-IF-FAILED, if GRAPHITE was requested and 135 # the checks failed. 136 AC_DEFUN([ISL_IF_FAILED], 137 [ 138 ISL_REQUESTED([graphite_requested=yes], [graphite_requested=no]) 139 140 if test "${gcc_cv_isl}" = no ; then 141 isllibs= 142 islinc= 143 fi 144 145 if test "${graphite_requested}" = yes \ 146 && test "x${isllibs}" = x \ 147 && test "x${islinc}" = x ; then 148 $1 149 fi 150 ] 151 ) 152