(autoconf.info.gz) Particular Programs
Info Catalog
(autoconf.info.gz) Alternative Programs
(autoconf.info.gz) Generic Programs
Particular Program Checks
-------------------------
These macros check for particular programs--whether they exist, and
in some cases whether they support certain features.
- Macro: AC_PROG_AWK
Check for `gawk', `mawk', `nawk', and `awk', in that order, and
set output variable `AWK' to the first one that is found. It
tries `gawk' first because that is reported to be the best
implementation.
- Macro: AC_PROG_EGREP
Check for `grep -E' and `egrep', in that order, and set output
variable `EGREP' to the first one that is found.
- Macro: AC_PROG_FGREP
Check for `grep -F' and `fgrep', in that order, and set output
variable `FGREP' to the first one that is found.
- Macro: AC_PROG_INSTALL
Set output variable `INSTALL' to the path of a BSD compatible
`install' program, if one is found in the current `PATH'.
Otherwise, set `INSTALL' to `DIR/install-sh -c', checking the
directories specified to `AC_CONFIG_AUX_DIR' (or its default
directories) to determine DIR ( Output). Also set the
variables `INSTALL_PROGRAM' and `INSTALL_SCRIPT' to `${INSTALL}'
and `INSTALL_DATA' to `${INSTALL} -m 644'.
This macro screens out various instances of `install' known not to
work. It prefers to find a C program rather than a shell script,
for speed. Instead of `install-sh', it can also use `install.sh',
but that name is obsolete because some `make' programs have a rule
that creates `install' from it if there is no `Makefile'.
Autoconf comes with a copy of `install-sh' that you can use. If
you use `AC_PROG_INSTALL', you must include either `install-sh' or
`install.sh' in your distribution, or `configure' will produce an
error message saying it can't find them--even if the system you're
on has a good `install' program. This check is a safety measure
to prevent you from accidentally leaving that file out, which
would prevent your package from installing on systems that don't
have a BSD-compatible `install' program.
If you need to use your own installation program because it has
features not found in standard `install' programs, there is no
reason to use `AC_PROG_INSTALL'; just put the file name of your
program into your `Makefile.in' files.
- Macro: AC_PROG_LEX
If `flex' is found, set output variable `LEX' to `flex' and
`LEXLIB' to `-lfl', if that library is in a standard place.
Otherwise set `LEX' to `lex' and `LEXLIB' to `-ll'.
Define `YYTEXT_POINTER' if `yytext' is a `char *' instead of a
`char []'. Also set output variable `LEX_OUTPUT_ROOT' to the base
of the file name that the lexer generates; usually `lex.yy', but
sometimes something else. These results vary according to whether
`lex' or `flex' is being used.
You are encouraged to use Flex in your sources, since it is both
more pleasant to use than plain Lex and the C source it produces
is portable. In order to ensure portability, however, you must
either provide a function `yywrap' or, if you don't use it (e.g.,
your scanner has no `#include'-like feature), simply include a
`%noyywrap' statement in the scanner's source. Once this done,
the scanner is portable (unless _you_ felt free to use nonportable
constructs) and does not depend on any library. In this case, and
in this case only, it is suggested that you use this Autoconf
snippet:
AC_PROG_LEX
if test "$LEX" != flex; then
LEX="$SHELL $missing_dir/missing flex"
AC_SUBST(LEX_OUTPUT_ROOT, lex.yy)
AC_SUBST(LEXLIB, '')
fi
The shell script `missing' can be found in the Automake
distribution.
To ensure backward compatibility, Automake's `AM_PROG_LEX' invokes
(indirectly) this macro twice, which will cause an annoying but
benign "`AC_PROG_LEX' invoked multiple times" warning. Future
versions of Automake will fix this issue; meanwhile, just ignore
this message.
- Macro: AC_PROG_LN_S
If `ln -s' works on the current file system (the operating system
and file system support symbolic links), set the output variable
`LN_S' to `ln -s'; otherwise, if `ln' works, set `LN_S' to `ln',
and otherwise set it to `cp -p'.
If you make a link in a directory other than the current
directory, its meaning depends on whether `ln' or `ln -s' is used.
To safely create links using `$(LN_S)', either find out which
form is used and adjust the arguments, or always invoke `ln' in
the directory where the link is to be created.
In other words, it does not work to do:
$(LN_S) foo /x/bar
Instead, do:
(cd /x && $(LN_S) foo bar)
- Macro: AC_PROG_RANLIB
Set output variable `RANLIB' to `ranlib' if `ranlib' is found, and
otherwise to `:' (do nothing).
- Macro: AC_PROG_YACC
If `bison' is found, set output variable `YACC' to `bison -y'.
Otherwise, if `byacc' is found, set `YACC' to `byacc'. Otherwise
set `YACC' to `yacc'.
Info Catalog
(autoconf.info.gz) Alternative Programs
(autoconf.info.gz) Generic Programs
automatically generated byinfo2html