| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746 | #							-*- Autotest -*-AT_BANNER([Semantics.])# Copyright (C) 2000-2002, 2004-2007, 2009-2012 Free Software# Foundation, Inc.## This program is free software: you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation, either version 3 of the License, or# (at your option) any later version.## This program 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 General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.## -------------------------------- #### Members of the AC_CHECK family.  #### -------------------------------- ### AC_CHECK_LIB# ------------# Well, I can't imagine a system where `cos' is neither in libc, nor# in libm.  Nor can I imagine a lib more likely to exists than libm.# But there are systems without libm, on which we don't want to have# this test fail, so exit successfully if `cos' is in libc.AT_CHECK_MACRO([AC_CHECK_LIB],[AC_TRY_LINK_FUNC(cos,		  [AC_MSG_ERROR([`cos' is in `libc'], 77)])AC_CHECK_LIB(m, cos,,	     [AC_MSG_ERROR([cannot find `cos' in `libm'])])# No kidding, using variables was broken in 2.50 :(ac_sin=sinAC_CHECK_LIB(m, $ac_sin,,      [AC_MSG_ERROR([cannot find `\$ac_sin' (= `$ac_sin') in `libm'])])ac_m=mAC_CHECK_LIB($ac_m, acos,,      [AC_MSG_ERROR([cannot find `acos' in `\$ac_m' (= `$ac_m')])])ac_asin=asinAC_CHECK_LIB($ac_m, $ac_asin,,      [AC_MSG_ERROR([cannot find `\$ac_asin' (= `$ac_asin') in `\$ac_m' (= `$ac_m')])])# But if the bug is in the caching mechanism, then be sure we# correctly detect failures.AC_CHECK_LIB(m, cossack,	     [AC_MSG_ERROR([found `cossack' in `libm'])])# No kidding, using variables was broken in 2.50 :(ac_sinner=sinnerAC_CHECK_LIB(m, $ac_sinner,      [AC_MSG_ERROR([found `\$ac_sinner' (= `$ac_sinner') in `libm'])])ac_m=mAC_CHECK_LIB($ac_m, acossack,      [AC_MSG_ERROR([found `acossack' in `\$ac_m' (= `$ac_m')])])ac_asinner=asinnerAC_CHECK_LIB($ac_m, $ac_asinner,      [AC_MSG_ERROR([found `\$ac_asinner' (= `$ac_asinner') in `\$ac_m' (= `$ac_m')])])])# AC_SEARCH_LIBS# --------------AT_CHECK_MACRO([AC_SEARCH_LIBS],[AC_SEARCH_LIBS(cos, oser m ust,,	     [AC_MSG_ERROR([cannot find `cos'])])case "$ac_cv_search_cos" in  -loser|-lust) AC_MSG_ERROR([jeez, $ac_cv_search_cos must be a cool library!]) ;;esac])# AC_SEARCH_LIBS (none needed)# ----------------------------AT_CHECK_MACRO([AC_SEARCH_LIBS (none needed)],[AC_SEARCH_LIBS(printf, oser c ust,,	     [AC_MSG_ERROR([cannot find `printf'])])case "$ac_cv_search_printf" in  -loser|-lust) AC_MSG_ERROR([jeez, $ac_cv_search_printf must be a cool library!]) ;;  -lc) AC_MSG_ERROR([huh, you need to give -lc?])esac])# AC_CHECK_DECLS# --------------# Check that it performs the correct actions:AT_CHECK_MACRO([AC_CHECK_DECLS],[[AC_CHECK_DECLS([yes, no, myenum, mystruct, myfunc, mymacro1, mymacro2],,,		 [[int yes = 1;		   enum { myenum };		   struct { int x[20]; } mystruct;		   extern int myfunc();		   #define mymacro1(arg) arg		   #define mymacro2]])  # The difference in space-before-open-paren is intentional.  AC_CHECK_DECLS([basenam (char *), dirnam(char *),		  [moreargs (char, short, int, long, void *, char [], float, double)]],,,		 [[#ifdef __cplusplus		   extern "C++" char *basenam (char *);		   extern "C++" const char *basenam (const char *);		   #else		   extern char *basenam (const char *);		   #endif		   #ifdef __cplusplus		   extern "C" {		   #endif		   extern int moreargs (char, short, int, long, void *,					char [], float, double);		   #ifdef __cplusplus		   }		   #endif		   ]])  AC_CHECK_DECL([declared (char *)],, [AS_EXIT([1])],		[[#ifdef __cplusplus		  extern "C++" char *declared (char *);		  extern "C++" const char *declared (const char *);		  #else		  extern char *declared (const char *);		  #endif		]])  AC_CHECK_DECL([undeclared (char *)], [AS_EXIT([1])],, [[]])]],[AT_CHECK_DEFINES([#define HAVE_DECL_BASENAM 1#define HAVE_DECL_DIRNAM 0#define HAVE_DECL_MOREARGS 1#define HAVE_DECL_MYENUM 1#define HAVE_DECL_MYFUNC 1#define HAVE_DECL_MYMACRO1 1#define HAVE_DECL_MYMACRO2 1#define HAVE_DECL_MYSTRUCT 1#define HAVE_DECL_NO 0#define HAVE_DECL_YES 1])])# AC_CHECK_FUNCS# --------------# Check that it performs the correct actions:# Must define HAVE_PRINTF, but not HAVE_AUTOCONF_FTNIRPAT_CHECK_MACRO([AC_CHECK_FUNCS],[AC_CHECK_FUNCS(printf autoconf_ftnirp)],[AT_CHECK_DEFINES([/* #undef HAVE_AUTOCONF_FTNIRP */#define HAVE_PRINTF 1])])# AC_REPLACE_FUNCS# ----------------# Check that it performs the correct actions: autoconf_ftnirp.c must# be compiled, and must define HAVE_PRINTF, but not HAVE_AUTOCONF_FTNIRP# FIXME: Maybe check the traces?AT_SETUP([AC_REPLACE_FUNCS])AT_DATA([config.in],[@LIBOBJS@])AT_CONFIGURE_AC([AC_CONFIG_FILES([config.libobjs:config.in])AC_REPLACE_FUNCS([printf \autoconf_ftnirp])funcs='fprintf fopen autoconf_ftnirpf'AH_TEMPLATE([HAVE_FOPEN], [])AH_TEMPLATE([HAVE_FPRINTF], [])AH_TEMPLATE([HAVE_AUTOCONF_FTNIRPF], [])AC_REPLACE_FUNCS([\$funcs])AS_UNSET([funcs])])AT_CHECK_AUTOCONF([-W obsolete])AT_CHECK_AUTOHEADERAT_CHECK_CONFIGUREAT_CHECK_ENVAT_CHECK_DEFINES([/* #undef HAVE_AUTOCONF_FTNIRP *//* #undef HAVE_AUTOCONF_FTNIRPF */#define HAVE_FOPEN 1#define HAVE_FPRINTF 1#define HAVE_PRINTF 1])AT_CHECK([sed 's/  */ /g;s/^ //;s/ $//' config.libobjs], [],	 [${LIBOBJDIR}autoconf_ftnirp$U.o ${LIBOBJDIR}autoconf_ftnirpf$U.o])AT_CLEANUP# AC_CHECK_HEADERS# ----------------# Check that it performs the correct actions:# Must define HAVE_STDIO_H, but not HAVE_AUTOCONF_IO_H.AT_SETUP([AC_CHECK_HEADERS])AT_DATA([autoconf_io.h],[blah blah])AT_CONFIGURE_AC([AC_CHECK_HEADERS(stdio.h autoconf_io.h)])AT_CHECK_AUTOCONF([-W obsolete])AT_CHECK_AUTOHEADERAT_CHECK_CONFIGURE([CPPFLAGS=-I.], [0], [ignore],[configure: WARNING: autoconf_io.h: present but cannot be compiledconfigure: WARNING: autoconf_io.h:     check for missing prerequisite headers?configure: WARNING: autoconf_io.h: see the Autoconf documentationconfigure: WARNING: autoconf_io.h:     section "Present But Cannot Be Compiled"configure: WARNING: autoconf_io.h: proceeding with the compiler's result])AT_CHECK_ENVAT_CHECK_DEFINES([/* #undef HAVE_AUTOCONF_IO_H */#define HAVE_STDIO_H 1])AT_CLEANUP# AC_CHECK_HEADERS_OLD# --------------------# Check that it performs the correct actions:# Must not check prerequisites, hence define header2.hAT_SETUP([AC_CHECK_HEADERS (preprocessor test)])AT_DATA([header1.h],[typedef int foo;])AT_DATA([header2.h],[typedef foo bar;])AT_CONFIGURE_AC([AC_CHECK_HEADERS(header2.h, [], [], -)])AT_CHECK_AUTOCONF([-W obsolete])AT_CHECK_AUTOHEADERAT_CHECK_CONFIGURE([CPPFLAGS=-I.])AT_CHECK_ENVAT_CHECK_DEFINES([#define HAVE_HEADER2_H 1])AT_CLEANUP# AC_CHECK_HEADERS_NEW# --------------------# Check that it performs the correct actions:# Must check prerequisites, hence define header2.h but not header3.hAT_SETUP([AC_CHECK_HEADERS (compiler test)])AT_DATA([header1.h],[typedef int foo;])AT_DATA([header2.h],[typedef foo bar;])AT_DATA([header3.h],[typedef bar wow;])AT_CONFIGURE_AC([AC_CHECK_HEADERS(header2.h header3.h, [], [], [[@%:@include "header1.h"]])])AT_CHECK_AUTOCONF([-W obsolete])AT_CHECK_AUTOHEADERAT_CHECK_CONFIGURE([CPPFLAGS=-I.])AT_CHECK_ENVAT_CHECK_DEFINES([#define HAVE_HEADER2_H 1/* #undef HAVE_HEADER3_H */])AT_CLEANUP# AC_CHECK_MEMBER# ---------------# Check that it performs the correct actions.# Must define HAVE_STRUCT_YES_S_YES, but not HAVE_STRUCT_YES_S_NO.AT_CHECK_MACRO([AC_CHECK_MEMBER],[[AC_CHECK_MEMBER([struct yes_s.yes],		  [AC_DEFINE([HAVE_STRUCT_YES_S_YES], [1],			     [Define to 1 if `yes' is a member of `struct yes_s'.])],,		   [struct sub { int x; };		    struct yes_s { int yes; struct sub substruct; };])  AC_CHECK_MEMBER([struct yes_s.no],		  [AC_DEFINE([HAVE_STRUCT_YES_S_NO], [1],			     [Define to 1 if `no' is a member of `struct yes_s'.])],,		   [struct sub { int x; };		    struct yes_s { int yes; struct sub substruct; };])  AC_CHECK_MEMBER([struct yes_s.substruct],		  [AC_DEFINE([HAVE_STRUCT_YES_S_SUBSTRUCT], [1],			     [Define to 1 if `substruct' is a member of `struct yes_s'.])],,		   [struct sub { int x; };		    struct yes_s { int yes; struct sub substruct; };])]],[AT_CHECK_DEFINES([/* #undef HAVE_STRUCT_YES_S_NO */#define HAVE_STRUCT_YES_S_SUBSTRUCT 1#define HAVE_STRUCT_YES_S_YES 1])])# AC_CHECK_MEMBERS# ----------------# Check that it performs the correct actions.# Must define HAVE_STRUCT_YES_S_YES, but not HAVE_STRUCT_YES_S_NO.AT_CHECK_MACRO([AC_CHECK_MEMBERS],[[AC_CHECK_MEMBERS([struct yes_s.yes, struct yes_s.no, struct yes_s.substruct],,,		   [struct sub { int x; };		    struct yes_s { int yes; struct sub substruct; };])]],[AT_CHECK_DEFINES([/* #undef HAVE_STRUCT_YES_S_NO */#define HAVE_STRUCT_YES_S_SUBSTRUCT 1#define HAVE_STRUCT_YES_S_YES 1])AT_CHECK([grep 'yes.*member of.*yes_s' config.h], [], [ignore])])# AC_CHECK_ALIGNOF# ----------------AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF],[[AC_CHECK_ALIGNOF(char)AC_CHECK_ALIGNOF(charchar,[[#include <stddef.h>#include <stdio.h>typedef char charchar[2];]])AC_CHECK_ALIGNOF(charcharchar)]],[AT_CHECK_DEFINES([#define ALIGNOF_CHAR 1#define ALIGNOF_CHARCHAR 1#define ALIGNOF_CHARCHARCHAR 0])])# AC_CHECK_ALIGNOF struct# -----------------------AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF struct],[[AC_CHECK_ALIGNOF([struct { char c; }])AC_CHECK_ALIGNOF([struct nosuchstruct])]],[AT_CHECK([[grep "#define ALIGNOF_STRUCT___CHAR_C___ [1-9]" config.h]],	 0, ignore)AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]],	 0, ignore)])# AC_CHECK_SIZEOF# ---------------AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF],[[AC_CHECK_SIZEOF(char)AC_CHECK_SIZEOF(charchar,,[[#include <stdio.h>typedef char charchar[2];]])AC_CHECK_SIZEOF(charcharchar)]],[AT_CHECK_DEFINES([#define SIZEOF_CHAR 1#define SIZEOF_CHARCHAR 2#define SIZEOF_CHARCHARCHAR 0])])# AC_CHECK_SIZEOF struct# ----------------------AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF struct],[[AC_C_CONSTAC_CHECK_SIZEOF([struct x], [], [struct x { char c; int x; };])AC_CHECK_SIZEOF([const struct x], [], [struct x { const char *p; int x; };])AC_CHECK_SIZEOF([struct nosuchstruct])# Taken from autoconf.texi:Generic Compiler Characteristics.AC_CHECK_SIZEOF([int *])]],[AT_CHECK([[grep "#define SIZEOF_STRUCT_X [1-9]" config.h]],	 0, ignore)AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT_X [1-9]" config.h]],	 0, ignore)AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]],	 0, ignore)AT_CHECK([[grep "#define SIZEOF_INT_P [1-9]" config.h]],	 0, ignore)])# AC_CHECK_TYPES# --------------# Check that it performs the correct actions.# Must define HAVE_STRUCT_YES_S, HAVE_INT, but not HAVE_STRUCT_NO_S.# `int' and `struct yes_s' are both checked to test both the compiler# builtin types, and defined types.AT_CHECK_MACRO([AC_CHECK_TYPES],[[AC_CHECK_TYPES([int, struct yes_s, struct no_s],,,		 [struct yes_s { int yes ;} ;])]],[AT_CHECK_DEFINES([#define HAVE_INT 1/* #undef HAVE_STRUCT_NO_S */#define HAVE_STRUCT_YES_S 1])])# AC_CHECK_TYPES# --------------# Check that we properly dispatch properly to the old implementation# or to the new one.AT_SETUP([AC_CHECK_TYPES: backward compatibility])AT_DATA([configure.ac],[[AC_INITdefine([_AC_CHECK_TYPE_NEW], [NEW])define([_AC_CHECK_TYPE_OLD], [OLD])#(cut-from-hereAC_CHECK_TYPE(ptrdiff_t)AC_CHECK_TYPE(ptrdiff_t, int)AC_CHECK_TYPE(quad, long long int)AC_CHECK_TYPE(table_42, [int[42]])# Nice machine!AC_CHECK_TYPE(uint8_t, uint65536_t)AC_CHECK_TYPE(a,b,c,d)#to-here)AC_OUTPUT]])AT_CHECK_AUTOCONFAT_CHECK([[sed -e '/^#(cut-from-here/,/^#to-here)/!d' -e '/^#/d' configure]],	 0,	 [NEWOLDOLDOLDOLDNEW])AT_CLEANUP# AC_CHECK_FILES# --------------# FIXME: To really test HAVE_AC_EXISTS2 and HAVE_AC_MISSING2 we need to# open AH_TEMPLATE to `configure.ac', which is not yet the case.AT_CHECK_MACRO([AC_CHECK_FILES],[touch at-exists1 at-exists2ac_exists2=at-exists2ac_missing2=at-missing2AC_CHECK_FILES(at-exists1 at-missing1 $ac_exists2 $ac_missing2)rm at-exists1 at-exists2],[AT_CHECK_DEFINES([#define HAVE_AT_EXISTS1 1/* #undef HAVE_AT_MISSING1 */])])## ------------------------------ #### AC_CHECK_PROG & AC_PATH_PROG.  #### ------------------------------ ### AT_CHECK_PROGS_PREPARE# ----------------------# Create a sub directory `path' with 6 subdirs which all 7 contain# an executable `tool'. `6' contains a `better' tool.m4_define([AT_CHECK_PROGS_PREPARE],[mkdir pathcat >path/tool <<\EOF#! /bin/shexit 0EOFchmod +x path/toolfor i in 1 2 3 4 5 6do  mkdir path/$i  cp path/tool path/$idonecp path/tool path/6/better])# -------------------------------- ## AC_CHECK_PROG & AC_CHECK_PROGS.  ## -------------------------------- #AT_SETUP([AC_CHECK_PROG & AC_CHECK_PROGS])AT_CHECK_PROGS_PREPAREAT_DATA([configure.ac],[[AC_INITpwd=`pwd`p="1${PATH_SEPARATOR}2${PATH_SEPARATOR}3${PATH_SEPARATOR}4${PATH_SEPARATOR}5${PATH_SEPARATOR}6"path=`echo $p | sed -e 's,\([[0-9]]\),'"$pwd"'/path/\1,g'`fail=falseAC_CHECK_PROG(TOOL1, tool, found, not-found, $path)test "$TOOL1" = found || fail=:# Yes, the semantics of this macro is weird.AC_CHECK_PROG(TOOL2, tool,, not-found, $path)test "$TOOL2" = not-found || fail=:AC_CHECK_PROG(TOOL3, tool, tool, not-found, $path, $pwd/path/1/tool)test "$TOOL3" = "$pwd/path/2/tool" || fail=:AC_CHECK_PROG(TOOL4, better, better, not-found, $path, $pwd/path/1/tool)test "$TOOL4" = better || fail=:# When a tool is not found, and no value is given for not-found,# the variable is left empty.AC_CHECK_PROGS(TOOL5, missing,, $path)test -z "$TOOL5" || fail=:AC_CHECK_PROGS(TOOL6, missing tool better,, $path)test "$TOOL6" = tool || fail=:# No AC-OUTPUT, we don't need config.status.$fail &&  AC_MSG_ERROR([[CHECK_PROG failed]])AS_EXIT(0)]])AT_CHECK_AUTOCONFAT_CHECK_CONFIGUREAT_CLEANUP## ---------------- #### AC_C_BIGENDIAN.  #### ---------------- ##AT_SETUP([AC_C_BIGENDIAN])AT_KEYWORDS([cross])# Make sure that AC_C_BIGENDIAN behave the same whether we are# cross-compiling or not._AT_CHECK_AC_MACRO(  [[AC_C_BIGENDIAN(      [ac_endian=big],      [ac_endian=little],      [ac_endian=unknown],      [ac_endian=universal])   echo $ac_endian > at-endian]])rm -f config.hin  # So that next run of autoheader is quiet._AT_CHECK_AC_MACRO(  [[# Force cross compiling.   cross_compiling=yes   ac_tool_warned=yes   AC_C_BIGENDIAN(     [ac_endian=big],     [ac_endian=little],     [ac_endian=unknown],     [ac_endian=universal])   ac_prevendian=`cat at-endian`   # Check that we have found the same result as in the previous run   # or unknown (because the cross-compiling check is allowed to fail;   # although it might be interesting to suppress this comparison, just   # to know on which system it fails if it ever does).   if test $ac_endian != $ac_prevendian && test $ac_endian != unknown; then     AC_MSG_ERROR([unexpected endianness: first run found '$ac_prevendian' but second run found '$ac_endian'])   fi]])# Make sure AC_C_BIGENDIAN with no argument will create a config.h template# containing "WORDS_BIGENDIAN".AT_CONFIGURE_AC([[AC_C_BIGENDIAN]])# --force is necessary, the computer might be too fast.AT_CHECK_AUTOHEADER([--force])AT_CHECK([grep WORDS_BIGENDIAN config.hin], [], [ignore])AT_CLEANUP# ------------------------------ ## AC_PATH_PROG & AC_PATH_PROGS.  ## ------------------------------ #AT_SETUP([AC_PATH_PROG & AC_PATH_PROGS])AT_CHECK_PROGS_PREPAREAT_DATA([configure.ac],[[AC_INITpwd=`pwd`p="1${PATH_SEPARATOR}2${PATH_SEPARATOR}3${PATH_SEPARATOR}4${PATH_SEPARATOR}5${PATH_SEPARATOR}6"path=`echo $p | sed -e 's,\([[0-9]]\),'"$pwd"'/path/\1,g'`fail=falseAC_PATH_PROG(TOOL1, tool, not-found, $path)test "$TOOL1" = "$pwd/path/1/tool" || fail=:AC_PATH_PROG(TOOL2, better, not-found, $path)test "$TOOL2" = "$pwd/path/6/better" || fail=:# When a tool is not found, and no value is given for not-found,# the variable is left empty.AC_PATH_PROGS(TOOL3, missing,, $path)test -z "$TOOL3" || fail=:AC_PATH_PROGS(TOOL4, missing tool better,, $path)test "$TOOL4" = "$pwd/path/1/tool" || fail=:# No AC-OUTPUT, we don't need config.status.$fail &&  AC_MSG_ERROR([[PATH_PROG failed]])AS_EXIT(0)]])AT_CHECK_AUTOCONFAT_CHECK_CONFIGUREAT_CLEANUP# ----------------------------- ## AC_PATH_PROGS_FEATURE_CHECK.  ## ----------------------------- #AT_SETUP([AC_PATH_PROGS_FEATURE_CHECK])# This test doesn't work if `pwd` contains white spacecase `pwd` in  *\ * | *\	*) AT_CHECK([exit 77]) ;;esacAT_CHECK_PROGS_PREPAREAT_DATA([configure.ac],[[AC_INITpwd=`pwd`p="1${PATH_SEPARATOR}2${PATH_SEPARATOR}3${PATH_SEPARATOR}4${PATH_SEPARATOR}5${PATH_SEPARATOR}6"path=`echo $p | sed -e 's,\([[0-9]]\),'"$pwd"'/path/\1,g'`fail=false# Find first candidate and stop searchAC_PATH_PROGS_FEATURE_CHECK(TOOL1, [tool better],  [$ac_path_TOOL1 && ac_cv_path_TOOL1=$ac_path_TOOL1 ac_path_TOOL1_found=:],  fail=:, $path)test -z "$TOOL1" || fail=:test "$ac_cv_path_TOOL1" = "$pwd/path/1/tool" || fail=:# Keep searching each candidateAC_PATH_PROGS_FEATURE_CHECK(TOOL2, [tool better],  [$ac_path_TOOL2 && ac_cv_path_TOOL2=$ac_path_TOOL2],  fail=:, $path)test "$ac_cv_path_TOOL2" = "$pwd/path/6/better" || fail=:# Only accept better candidateAC_PATH_PROGS_FEATURE_CHECK(TOOL3, [tool better],  [case "$ac_path_TOOL3" in #(    *better) ac_cv_path_TOOL3=$ac_path_TOOL3;;  esac],  fail=:, $path)test "$ac_cv_path_TOOL3" = "$pwd/path/6/better" || fail=:# When a tool is not found, and no action is given for not-found,# the variable is left empty.AC_PATH_PROGS_FEATURE_CHECK(TOOL4, missing,  [ac_cv_path_TOOL4=$ac_path_TOOL4], [], $path)test -z "$ac_cv_path_TOOL4" || fail=:# Test action when tool is not foundAC_PATH_PROGS_FEATURE_CHECK(TOOL5, missing, [],  [ac_cv_path_TOOL5='not found'], $path)test "$ac_cv_path_TOOL5" = "not found" || fail=:# Test that pre-set tool bypasses feature testTOOL6=$pwd/path/6/betterAC_PATH_PROGS_FEATURE_CHECK(TOOL6, tool, fail=:, fail=:, $path)test "$ac_cv_path_TOOL6" = "$pwd/path/6/better" || fail=:# A blank pre-set does not bypass feature testTOOL7=AC_PATH_PROGS_FEATURE_CHECK(TOOL7, [tool better],  [$ac_path_TOOL7 && ac_cv_path_TOOL7=$ac_path_TOOL7 ac_path_TOOL7_found=:],  fail=:, $path)test -z "$TOOL7" || fail=:test "$ac_cv_path_TOOL7" = "$pwd/path/1/tool" || fail=:# No AC-OUTPUT, we don't need config.status.$fail &&  AC_MSG_ERROR([[PATH_PROG failed]])AS_EXIT(0)]])AT_CHECK_AUTOCONFAT_CHECK_CONFIGUREAT_CLEANUP## -------------- #### AC_PATH_XTRA.  #### -------------- ##AT_SETUP([AC_PATH_XTRA])_AT_CHECK_AC_MACRO([AC_PATH_XTRA])# Check X_DISPLAY_MISSING.AT_CHECK_CONFIGURE([--without-x])AT_CHECK_DEFINES([#define X_DISPLAY_MISSING 1])AT_CLEANUP## ------------------------------- #### Obsolete non-updatable macros.  #### ------------------------------- ##AT_CHECK_MACRO([AC_SYS_RESTARTABLE_SYSCALLS], , ,[-W no-obsolete])AT_CHECK_MACRO([AC_FUNC_SETVBUF_REVERSED], , ,[-W no-obsolete])AT_CHECK_MACRO([AC_FUNC_WAIT3], , ,[-W no-obsolete])
 |