dnl Copyright © 2015 Nick Bowler 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. AT_BANNER([Autoconf macros]) m4_define([TEST_CONFIGURE_AC], [AT_DATA([configure.ac], [[AC_INIT([test], [0]) ]$1[ AC_OUTPUT ]]) cp "$srcdir/install-sh" \ "$srcdir/config.guess" \ "$srcdir/config.sub" \ . ]) m4_define([TEST_AUTORECONF], [AT_CHECK([autoreconf -I "$srcdir/m4"], [0], [], [stderr])]) m4_define([TEST_CONFIGURE], [AT_CHECK([./configure $1], [0], [ignore])]) dnl Verify that the DX_BASEDIR macro expands correctly during argument dnl collection. Crucially, the output must not contain any other text. AT_SETUP([DX_BASEDIR during argument collection]) AT_DATA([test.in], [[@TEST@ ]]) TEST_CONFIGURE_AC( [[AC_SUBST([TEST], 'm4@&t@_dquote(DX_BASEDIR)') AC_CONFIG_FILES([test]) ]]) TEST_AUTORECONF TEST_CONFIGURE printf '%s\n' "$srcdir" | sed -e 's:/\./:/:g' -e 's:/\.$::g' \ -e 's:\(.\)//*:\1/:g' >expout AT_CHECK([cat test], [0], [expout]) AT_CLEANUP dnl Verify that DX_BASEDIR is correctly AC_SUBSTed AT_SETUP([DX_BASEDIR output substitution]) AT_DATA([test.in], [[@DX_BASEDIR@ ]]) TEST_CONFIGURE_AC( [[DX_INIT AC_CONFIG_FILES([test]) ]]) TEST_AUTORECONF TEST_CONFIGURE printf '%s\n' "$srcdir" | sed -e 's:/\./:/:g' -e 's:/\.$::g' \ -e 's:\(.\)//*:\1/:g' >expout AT_CHECK([cat test], [0], [expout]) AT_CLEANUP dnl Verify that DX_BASEDIR is set correctly implicitly AT_SETUP([DX_BASEDIR implicit definition]) AT_DATA([test.in], [[@DX_BASEDIR@ ]]) TEST_CONFIGURE_AC( [[DX_EXPORTED_SH AC_CONFIG_FILES([test]) ]]) TEST_AUTORECONF TEST_CONFIGURE AT_CLEANUP AT_SETUP([DX_COMMAND_OUTPUT]) AT_DATA([expout], [[ leading whitespace trailing whitespace @&t@ embedded\ backslashes @&t@ backslash\ newline ]]) TEST_CONFIGURE_AC( [[DX_COMMAND_OUTPUT([var], [cat expout]) AS@&t@_ECHO(["$var"]) >test.out ]]) TEST_AUTORECONF TEST_CONFIGURE AT_CHECK([cat test.out], [0], [expout]) AT_CLEANUP