1 dnl Copyright © 2015 Nick Bowler
3 dnl Macro to find an working autotest installation.
5 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
6 dnl This is free software: you are free to do what the fuck you want to.
7 dnl There is NO WARRANTY, to the extent permitted by law.
9 m4_define([_DX_PROG_AUTOTEST_SRC], [cat >conftest.at <<'EOF'
10 m4@&t@_define(@<:@AT_PACKAGE_STRING@:>@, @<:@AC_PACKAGE_STRING@:>@)
11 m4@&t@_define(@<:@AT_PACKAGE_BUGREPORT@:>@, @<:@AC_PACKAGE_BUGREPORT@:>@)
15 m4_define([_DX_PROG_AUTOTEST_CHECK_OUT],
16 [AS_IF([$FGREP "$PACKAGE_STRING" conftest.out >/dev/null 2>&1],
17 [DX_DO([dx_cv_autotest_works=yes],
18 [AS_VAR_SET([dx_cv_autotest_cmd], ["$1"])])])])
20 m4_define([_DX_PROG_AUTOTEST_CHECK_CMD],
21 [AS_IF([test x"$dx_cv_autotest_cmd" = x"false"],
22 [AS_IF([AC_RUN_LOG([$1 conftest.at >conftest.sh])],
23 [AS_IF([AC_RUN_LOG([$SHELL conftest.sh --version >conftest.out])],
24 [_DX_PROG_AUTOTEST_CHECK_OUT($@)])])])])
26 m4_define([_DX_PROG_AUTOTEST_SET_VAR],
27 [DX_DO([AC_CACHE_CHECK([for autotest], [dx_cv_autotest_cmd],
28 [AS_VAR_SET_IF([AUTOTEST],
29 [dx_cv_autotest_cmd=$AUTOTEST],
30 [DX_DO([dx_cv_autotest_works=no dx_cv_autotest_cmd=false],
31 [AS_VAR_SET_IF([AUTOTEST],
32 [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOTEST])])],
33 [AS_VAR_SET_IF([AUTOM4TE],
34 [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOM4TE -l autotest])])],
35 [_DX_PROG_AUTOTEST_CHECK_CMD([autom4te -l autotest])])])])],
36 [AUTOTEST=$dx_cv_autotest_cmd])])
38 AC_DEFUN([DX_PROG_AUTOTEST],
39 [m4_do([AC_REQUIRE([AC_PROG_FGREP])AC_REQUIRE([DX_AUTOMAKE_COMPAT])],
40 [AC_ARG_VAR([AUTOTEST], [command to compile autotest programs])],
41 [DX_DO([_DX_PROG_AUTOTEST_SRC],
42 [_DX_PROG_AUTOTEST_SET_VAR],
43 [AC_CACHE_CHECK([whether autotest works],
44 [dx_cv_autotest_works],
45 [DX_DO([dx_cv_autotest_works=no],
46 [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOTEST])])])])],
47 [AC_SUBST([AUTOTEST])])])