Every configure script must call AC_INIT
before doing
anything else that produces output. Calls to silent macros, such as
AC_DEFUN
, may also occur prior to AC_INIT
, although these
are generally used via aclocal.m4, since that is implicitly
included before the start of configure.ac. The only other
required macro is AC_OUTPUT
(see Output).
Process any command-line arguments and perform various initializations and verifications.
Set the name of the package and its version. These are typically used in --version support, including that of configure. The optional argument bug-report should be the email to which users should send bug reports. The package tarname differs from package: the latter designates the full package name (e.g., ‘GNU Autoconf’), while the former is meant for distribution tar ball names (e.g., ‘autoconf’). It defaults to package with ‘GNU ’ stripped, lower-cased, and all characters other than alphanumerics and underscores are changed to ‘-’. If provided, url should be the home page for the package.
It is preferable that the arguments of
AC_INIT
be static, i.e., there should not be any shell computation, but they can be computed by M4.The following M4 macros (e.g.,
AC_PACKAGE_NAME
), output variables (e.g.,PACKAGE_NAME
), and preprocessor symbols (e.g.,PACKAGE_NAME
), are defined byAC_INIT
:
AC_PACKAGE_NAME
,PACKAGE_NAME
- Exactly package.
AC_PACKAGE_TARNAME
,PACKAGE_TARNAME
- Exactly tarname, possibly generated from package.
AC_PACKAGE_VERSION
,PACKAGE_VERSION
- Exactly version.
AC_PACKAGE_STRING
,PACKAGE_STRING
- Exactly ‘package version’.
AC_PACKAGE_BUGREPORT
,PACKAGE_BUGREPORT
- Exactly bug-report, if one was provided.
AC_PACKAGE_URL
,PACKAGE_URL
- Exactly url, if one was provided. If url was empty, but package begins with ‘GNU ’, then this defaults to ‘http://www.gnu.org/software/tarname/’, otherwise, no URL is assumed.
If your configure script does its own option processing, it
should inspect ‘$@’ or ‘$*’ immediately after calling
AC_INIT
, because other Autoconf macros liberally use the
set command to process strings, and this has the side effect
of updating ‘$@’ and ‘$*’. However, we suggest that you use
standard macros like AC_ARG_ENABLE
instead of attempting to
implement your own option processing. See Site Configuration.