Currently, DX_INIT expands to a bunch of text, mostly whitespace.
This is not normally a serious problem, except when DX_BASEDIR
is called at the top level without previously expanding DX_INIT.
Since DX_BASEDIR is intended to be expanded during argument
collection, the result is that DX_INIT's output ends up as part
of the argument where DX_BASEDIR appears.
Fixing this turns out to be somewhat non-trivial. Both DX_INIT and
DX_BASEDIR need to be changed.
- First, avoid using AC_REQUIRE in DX_BASEDIR. This relies on
diversions which do not work correctly during argument collection.
- Rewrite DX_INIT so that it expands to no text whatsoever.
- Finally, the AC_DEFUN_ONCE mechanism appears to insert newlines
where the macros are called for the first time. Use m4_ignore
to eat that inside DX_BASEDIR.