Hello Niels,
* Niels Lohmann wrote on Tue, Feb 09, 2010 at 08:19:31AM CET:
> > The @ inside the address should not cause any problems.
>
> indeed, it's not. When I use m4_define for the bug address, then I get
> the same error for AT_PACKAGE_STRING.
>
> > Please check
> > again and provide us with something reproducible, or at least cut and
> > pasted commands+output that show that this is problematic.
>
> Here is the output I get when I execute "make testsuite" for the attached
> tarball:
>
> -------------------------------------------------------------------------------
> /bin/sh /Users/niels/test/missing --run autom4te --language=autotest -I '.'
> -o testsuite.tmp testsuite.at
> testsuite.at:1: error: : AT_PACKAGE_BUGREPORT is missing, consider writing
> package.m4
> testsuite.at:1: the top level
> autom4te: /opt/local/bin/gm4 failed with exit status: 1
> -------------------------------------------------------------------------------
>
> testsuite.at:1 is just "AT_INIT".
Your example needed some adaptation, but you're completely right about
the issue. autoconf/lib/autotest/general.m4:AT_INIT has
[m4_ifndef([AT_PACKAGE_BUGREPORT], [m4_fatal(
[$1: AT_PACKAGE_BUGREPORT is missing, consider writing package.m4])])]
[m4_define([AT_TESTSUITE_NAME],
m4_defn([AT_PACKAGE_STRING])[ test suite]m4_ifval([$1],
[m4_expand([: $1])]))]
which requires both AT_PACKAGE_STRING and AT_PACKAGE_BUGREPORT to be
defined as macros, not as shell variables. Sorry about the wrong
advice there. The manual documents this requirement, too:
-- Macro: AT_INIT ([NAME])
Initialize Autotest. Giving a NAME to the test suite is
encouraged if your package includes several test suites. Before
this macro is called, `AT_PACKAGE_STRING' and
`AT_PACKAGE_BUGREPORT' must be defined, which are used to display
information about the testsuite to the user. Typically, these
macros are provided by a file `package.m4' built by `make' (*note
Making testsuite Scripts::), in order to inherit the package name,
version, and bug reporting address from `configure.ac'.
I'm not sure whether this can easily be relaxed to require either a
m4_define or a shell variable, but as it stands, the code matches the
documentation, regardless of my earlier babble. ;-)
Cheers,
Ralf