X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/483b5af7a619117ae6ec3435bb8689e764e928a0..2d17f059aa8a1e4670b9dad3f24556c7d97f6d45:/m4/autotest.m4 diff --git a/m4/autotest.m4 b/m4/autotest.m4 new file mode 100644 index 0000000..f9e1eea --- /dev/null +++ b/m4/autotest.m4 @@ -0,0 +1,47 @@ +dnl Copyright © 2015 Nick Bowler +dnl +dnl Macro to find an working autotest installation. +dnl +dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2. +dnl This is free software: you are free to do what the fuck you want to. +dnl There is NO WARRANTY, to the extent permitted by law. + +m4_define([_DX_PROG_AUTOTEST_SRC], [cat >conftest.at <<'EOF' +m4@&t@_define(@<:@AT_PACKAGE_STRING@:>@, @<:@AC_PACKAGE_STRING@:>@) +m4@&t@_define(@<:@AT_PACKAGE_BUGREPORT@:>@, @<:@AC_PACKAGE_BUGREPORT@:>@) +AT_INIT +EOF]) + +m4_define([_DX_PROG_AUTOTEST_CHECK_OUT], + [AS_IF([$FGREP "$PACKAGE_STRING" conftest.out >/dev/null 2>&1], + [DX_DO([dx_cv_autotest_works=yes], + [AS_VAR_SET([dx_cv_autotest_cmd], ["$1"])])])]) + +m4_define([_DX_PROG_AUTOTEST_CHECK_CMD], + [AS_IF([test x"$dx_cv_autotest_cmd" = x"false"], + [AS_IF([AC_RUN_LOG([$1 conftest.at >conftest.sh])], + [AS_IF([AC_RUN_LOG([$SHELL conftest.sh --version >conftest.out])], + [_DX_PROG_AUTOTEST_CHECK_OUT($@)])])])]) + +m4_define([_DX_PROG_AUTOTEST_SET_VAR], + [DX_DO([AC_CACHE_CHECK([for autotest], [dx_cv_autotest_cmd], + [AS_VAR_SET_IF([AUTOTEST], + [dx_cv_autotest_cmd=$AUTOTEST], + [DX_DO([dx_cv_autotest_works=no dx_cv_autotest_cmd=false], + [AS_VAR_SET_IF([AUTOTEST], + [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOTEST])])], + [AS_VAR_SET_IF([AUTOM4TE], + [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOM4TE -l autotest])])], + [_DX_PROG_AUTOTEST_CHECK_CMD([autom4te -l autotest])])])])], + [AUTOTEST=$dx_cv_autotest_cmd])]) + +AC_DEFUN([DX_PROG_AUTOTEST], + [m4_do([AC_REQUIRE([AC_PROG_FGREP])], + [AC_ARG_VAR([AUTOTEST], [command to compile autotest programs])], + [DX_DO([_DX_PROG_AUTOTEST_SRC], + [_DX_PROG_AUTOTEST_SET_VAR], + [AC_CACHE_CHECK([whether autotest works], + [dx_cv_autotest_works], + [DX_DO([dx_cv_autotest_works=no], + [_DX_PROG_AUTOTEST_CHECK_CMD([$AUTOTEST])])])])], + [AC_SUBST([AUTOTEST])])])