Properly formatting the ‘help strings’ which are used in
AC_ARG_WITH
(see External Software) and AC_ARG_ENABLE
(see Package Options) can be challenging. Specifically, you want
your own ‘help strings’ to line up in the appropriate columns of
‘configure --help’ just like the standard Autoconf ‘help
strings’ do. This is the purpose of the AS_HELP_STRING
macro.
Expands into a help string that looks pretty when the user executes ‘configure --help’. It is typically used in
AC_ARG_WITH
(see External Software) orAC_ARG_ENABLE
(see Package Options). The following example makes this clearer.AC_ARG_WITH([foo], [AS_HELP_STRING([--with-foo], [use foo (default is no)])], [use_foo=$withval], [use_foo=no])Then the last few lines of ‘configure --help’ appear like this:
--enable and --with options recognized: --with-foo use foo (default is no)Macro expansion is performed on the first argument. However, the second argument of
AS_HELP_STRING
is treated as a whitespace separated list of text to be reformatted, and is not subject to macro expansion. Since it is not expanded, it should not be double quoted. See Autoconf Language, for a more detailed explanation.The
AS_HELP_STRING
macro is particularly helpful when the left-hand-side and/or right-hand-side are composed of macro arguments, as shown in the following example. Be aware that left-hand-side may not expand to unbalanced quotes, although quadrigraphs can be used.AC_DEFUN([MY_ARG_WITH], [AC_ARG_WITH(m4_translit([[$1]], [_], [-]), [AS_HELP_STRING([--with-m4_translit([$1], [_], [-])], [use $1 (default is $2)])], [use_[]$1=$withval], [use_[]$1=$2])]) MY_ARG_WITH([a_b], [no])Here, the last few lines of ‘configure --help’ will include:
--enable and --with options recognized: --with-a-b use a_b (default is no)The parameters indent-column and wrap-column were introduced in Autoconf 2.62. Generally, they should not be specified; they exist for fine-tuning of the wrapping.
AS_HELP_STRING([--option], [description of option]) ⇒ --option description of option AS_HELP_STRING([--option], [description of option], [15], [30]) ⇒ --option description of ⇒ option