AT_BANNER([Semantics.])
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'])])
ac_sin=sin
AC_CHECK_LIB(m, $ac_sin,,
[AC_MSG_ERROR([cannot find `\$ac_sin' (= `$ac_sin') in `libm'])])
ac_m=m
AC_CHECK_LIB($ac_m, acos,,
[AC_MSG_ERROR([cannot find `acos' in `\$ac_m' (= `$ac_m')])])
ac_asin=asin
AC_CHECK_LIB($ac_m, $ac_asin,,
[AC_MSG_ERROR([cannot find `\$ac_asin' (= `$ac_asin') in `\$ac_m' (= `$at_m')])])
AC_CHECK_LIB(m, cossack,
[AC_MSG_ERROR([found `cossack' in `libm'])])
ac_sinner=sinner
AC_CHECK_LIB(m, $ac_sinner,
[AC_MSG_ERROR([found `\$ac_sinner' (= `$ac_sinner') in `libm'])])
ac_m=m
AC_CHECK_LIB($ac_m, acossack,
[AC_MSG_ERROR([found `acossack' in `\$ac_m' (= `$ac_m')])])
ac_asinner=asinner
AC_CHECK_LIB($ac_m, $ac_asinner,
[AC_MSG_ERROR([found `\$ac_asinner' (= `$ac_asinner') in `\$ac_m' (= `$at_m')])])
])
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
])
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
])
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();
[AT_CHECK_DEFINES(
[])])
AT_CHECK_MACRO([AC_CHECK_FUNCS],
[AC_CHECK_FUNCS(printf autoconf_ftnirp)],
[AT_CHECK_DEFINES(
[/* ])])
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)])
AT_CHECK_AUTOCONF([-W obsolete])
AT_CHECK_AUTOHEADER
AT_CHECK_CONFIGURE
AT_CHECK_ENV
AT_CHECK_DEFINES(
[/* ])
AT_CHECK([sed 's/ */ /g;s/^ //;s/ $//' config.libobjs], [],
[${LIBOBJDIR}autoconf_ftnirp$U.o
])
AT_CLEANUP([config.libobjs])
AT_CHECK_MACRO([AC_CHECK_HEADERS],
[AC_CHECK_HEADERS(stdio.h autoconf_io.h)],
[AT_CHECK_DEFINES(
[/* ])])
AT_SETUP([AC_CHECK_HEADERS_OLD])
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_AUTOHEADER
AT_CHECK_CONFIGURE([CPPFLAGS=-I.])
AT_CHECK_ENV
AT_CHECK_DEFINES(
[])
AT_CLEANUP([header1.h header2.h])
AT_SETUP([AC_CHECK_HEADERS_NEW])
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_AUTOHEADER
AT_CHECK_CONFIGURE([CPPFLAGS=-I.])
AT_CHECK_ENV
AT_CHECK_DEFINES(
[/* ])
AT_CLEANUP([header1.h header2.h header3.h])
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(
[/* ])])
AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF],
[[AC_CHECK_ALIGNOF(char)
AC_CHECK_ALIGNOF(charchar,
[[typedef char charchar[2];]])
AC_CHECK_ALIGNOF(charcharchar)
]],
[AT_CHECK_DEFINES(
[])])
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___ [^0]" config.h]],
0, ignore)
AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
0, ignore)
])
AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF],
[[AC_CHECK_SIZEOF(char)
AC_CHECK_SIZEOF(charchar,,
[[typedef char charchar[2];]])
AC_CHECK_SIZEOF(charcharchar)
]],
[AT_CHECK_DEFINES(
[])])
AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF struct],
[[AC_C_CONST
AC_CHECK_SIZEOF([struct { char c; int x; }])
AC_CHECK_SIZEOF([const struct { const char *p; int x; }])
AC_CHECK_SIZEOF([struct nosuchstruct])
]],
[AT_CHECK([[grep "#define SIZEOF_STRUCT___CHAR_C__INT_X___ [^0]" config.h]],
0, ignore)
AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT___CONST_CHAR_PP__INT_X___ [^0]" config.h]],
0, ignore)
AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
0, ignore)
])
AT_CHECK_MACRO([AC_CHECK_TYPES],
[[AC_CHECK_TYPES([int, struct yes_s, struct no_s],,,
[struct yes_s { int yes ;} ;])]],
[AT_CHECK_DEFINES(
[/* ])])
AT_SETUP([AC_CHECK_TYPES: backward compatibility])
AT_DATA([configure.ac],
[[AC_INIT
define([_AC_CHECK_TYPE_NEW], [NEW])
define([_AC_CHECK_TYPE_OLD], [OLD])
AC_CHECK_TYPE(ptrdiff_t)
AC_CHECK_TYPE(ptrdiff_t, int)
AC_CHECK_TYPE(quad, long long int)
AC_CHECK_TYPE(table_42, [int[42]])
AC_CHECK_TYPE(uint8_t, uint65536_t)
AC_CHECK_TYPE(a,b,c,d)
AC_OUTPUT
]])
AT_CHECK_AUTOCONF
AT_CHECK([[sed -e '/^ 0,
[NEW
OLD
OLD
OLD
OLD
NEW
])
AT_CLEANUP
AT_CHECK_MACRO([AC_CHECK_FILES],
[touch at-exists1 at-exists2
ac_exists2=at-exists2
ac_missing2=at-missing2
AC_CHECK_FILES(at-exists1 at-missing1 $ac_exists2 $ac_missing2)
rm at-exists1 at-exists2],
[AT_CHECK_DEFINES(
[/* ])])
m4_define([AT_CHECK_PROGS_PREPARE],
[mkdir path
cat >path/tool <<\EOF
#! /bin/sh
exit 0
EOF
chmod +x path/tool
for i in 1 2 3 4 5 6
do
mkdir path/$i
cp path/tool path/$i
done
cp path/tool path/6/better])
AT_SETUP([AC_CHECK_PROG & AC_CHECK_PROGS])
AT_CHECK_PROGS_PREPARE
AT_DATA([configure.ac],
[[AC_INIT
pwd=`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
AC_CHECK_PROG(TOOL1, tool, found, not-found, $path)
test "$TOOL1" = found || fail=:
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=:
AC_CHECK_PROGS(TOOL5, missing,, $path)
test -z "$TOOL5" || fail=:
AC_CHECK_PROGS(TOOL6, missing tool better,, $path)
test "$TOOL6" = tool || fail=:
$fail &&
AC_MSG_ERROR([[CHECK_PROG failed]])
AS_EXIT(0)
]])
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
AT_CLEANUP(path)
AT_SETUP([AC_C_BIGENDIAN])
AT_KEYWORDS([cross])
_AT_CHECK_AC_MACRO(
[[AC_C_BIGENDIAN([ac_endian=big],[ac_endian=little],[ac_endian=unknown])
echo $ac_endian > at-endian
]])
rm -f config.hin _AT_CHECK_AC_MACRO(
[[ cross_compiling=yes
ac_tool_warned=yes
AC_C_BIGENDIAN([ac_endian=big],[ac_endian=little],[ac_endian=unknown])
ac_prevendian=`cat at-endian`
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
]])
AT_CONFIGURE_AC([[AC_C_BIGENDIAN]])
AT_CHECK_AUTOHEADER([--force])
AT_CHECK([grep WORDS_BIGENDIAN config.hin], [], [ignore])
AT_CLEANUP(at-endian)
AT_SETUP([AC_PATH_PROG & AC_PATH_PROGS])
AT_CHECK_PROGS_PREPARE
AT_DATA([configure.ac],
[[AC_INIT
pwd=`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
AC_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=:
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=:
$fail &&
AC_MSG_ERROR([[PATH_PROG failed]])
AS_EXIT(0)
]])
AT_CHECK_AUTOCONF
AT_CHECK_CONFIGURE
AT_CLEANUP(path)
AT_SETUP([AC_PATH_XTRA])
_AT_CHECK_AC_MACRO([AC_PATH_XTRA])
AT_CHECK_CONFIGURE([--without-x])
AT_CHECK_DEFINES(
[])
AT_CLEANUP
AT_CHECK_MACRO([AC_SYS_RESTARTABLE_SYSCALLS], , ,[-W no-obsolete])
AT_CHECK_MACRO([AC_FUNC_WAIT3], , ,[-W no-obsolete])