[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Several macros are obsoleted in Autoconf, for various reasons (typically they failed to quote properly, couldn't be extended for more recent issues etc.). They are still supported, but deprecated: their use should be avoided.
During the jump from Autoconf version 1 to version 2, most of the macros were renamed to use a more uniform and descriptive naming scheme, but their signature did not change. See section 9.2 Macro Names, for a description of the new naming scheme. Below, if there is just the mapping from old names to new names for these macros, the reader is invited to refer to the definition of the new macro for the signature and the description.
AC_FUNC_ALLOCA
The user is encouraged to use either AC_CANONICAL_BUILD
, or
AC_CANONICAL_HOST
, or AC_CANONICAL_TARGET
, depending on
the needs. Using AC_CANONICAL_TARGET
is enough to run the two
other macros.
AC_C_CHAR_UNSIGNED
AC_CHECK_TYPE
, deprecated because of its flaws. Firstly, although
it is a member of the CHECK
clan, singular sub-family, it does
more than just checking. Secondly, missing types are not
typedef
'd, they are #define
'd, which can lead to
incompatible code in the case of pointer types.
This use of AC_CHECK_TYPE
is obsolete and discouraged; see
5.9.2 Generic Type Checks, for the description of the current macro.
If the type type is not defined, define it to be the C (or C++) builtin type default, e.g., `short' or `unsigned'.
This macro is equivalent to:
AC_CHECK_TYPE([type],, [AC_DEFINE_UNQUOTED([type], [default], [Define to `default' if <sys/types.h> does not define.])]) |
In order to keep backward compatibility, the two versions of
AC_CHECK_TYPE
are implemented, selected by a simple heuristics:
You are encouraged either to use a valid builtin type, or to use the
equivalent modern code (see above), or better yet, to use
AC_CHECK_TYPES
together with
#if !HAVE_LOFF_T typedef loff_t off_t; #endif |
AC_TRY_COMPILE
itself replaced by
AC_COMPILE_IFELSE
(see section 6.4 Running the Compiler), with the
addition that it prints `checking for echo-text' to the
standard output first, if echo-text is non-empty. Use
AC_MSG_CHECKING
and AC_MSG_RESULT
instead to print
messages (see section 7.4 Printing Messages).
AC_C_CONST
AC_C_CROSS
, which is obsolete too, and does nothing
:-)
.
CYGWIN
is set to `yes'. Don't use this macro, the dignified
means to check the nature of the host is using
AC_CANONICAL_HOST
. As a matter of fact this macro is defined as:
AC_REQUIRE([AC_CANONICAL_HOST])[]dnl case $host_os in *cygwin* ) CYGWIN=yes;; * ) CYGWIN=no;; esac |
Beware that the variable CYGWIN
has a very special meaning when
running CygWin32, and should not be changed. That's yet another reason
not to use this macro.
AC_PROG_LEX
.
AC_FUNC_CLOSEDIR_VOID
andAC_HEADER_DIRENT
,
but defines a different set of C preprocessor macros to indicate which
header file is found:
Header | Old Symbol | New Symbol |
`dirent.h' | DIRENT | HAVE_DIRENT_H |
`sys/ndir.h' | SYSNDIR | HAVE_SYS_NDIR_H |
`sys/dir.h' | SYSDIR | HAVE_SYS_DIR_H |
`ndir.h' | NDIR | HAVE_NDIR_H |
LIBS
. This macro used to be defined as
AC_CHECK_LIB(seq, getmntent, LIBS="-lseq $LIBS") |
now it is just AC_FUNC_GETMNTENT
.
EXEEXT
based on the output of the
compiler, which is now done automatically. Typically set to empty
string if Unix and `.exe' if Win32 or OS/2.
AC_CYGWIN
but checks for the EMX environment on OS/2
and sets EMXOS2
.
AC_MSG_ERROR
AC_PATH_X
AC_PATH_XTRA
AC_CHECK_FUNC
wait3
is found and fills in the contents of its third argument
(a `struct rusage *'), which HP-UX does not do, define
HAVE_WAIT3
.
These days portable programs should use waitpid
, not
wait3
, as wait3
is being removed from the Open Group
standards, and will not appear in the next revision of POSIX.
AC_PROG_GCC_TRADITIONAL
AC_TYPE_GETGROUPS
AC_FUNC_GETLOADAVG
AC_CHECK_FUNCS
AC_CHECK_HEADERS
AC_CHECK_LIB
with a
function argument of main
. In addition, library can
be written as any of `foo', `-lfoo', or `libfoo.a'. In
all of those cases, the compiler is passed `-lfoo'. However,
library cannot be a shell variable; it must be a literal name.
AC_SYS_INTERPRETER
(different calling convention)
AC_CHECK_HEADER
AC_EGREP_HEADER
AC_INIT
used to have a single argument, and was
equivalent to:
AC_INIT AC_CONFIG_SRCDIR(unique-file-in-source-dir) |
AC_C_INLINE
int
is 16 bits wide, define INT_16_BITS
.
Use `AC_CHECK_SIZEOF(int)' instead.
LIBS
. If you were using it to get getmntent
, use
AC_FUNC_GETMNTENT
instead. If you used it for the NIS versions
of the password and group functions, use `AC_CHECK_LIB(sun,
getpwnam)'. Up to Autoconf 2.13, it used to be
AC_CHECK_LIB(sun, getmntent, LIBS="-lsun $LIBS") |
now it is defined as
AC_FUNC_GETMNTENT AC_CHECK_LIB(sun, getpwnam) |
AC_LANG_SAVE
, remove it from the stack, and call
AC_LANG(language)
.
AC_LANG
) on a stack.
The current language does not change. AC_LANG_PUSH
is preferred.
AC_CONFIG_LINKS
. An updated
version of:
AC_LINK_FILES(config/$machine.h config/$obj_format.h, host.h object.h) |
is:
AC_CONFIG_LINKS(host.h:config/$machine.h object.h:config/$obj_format.h) |
AC_PROG_LN_S
LONG_64_BITS
if the C type long int
is 64 bits wide.
Use the generic macro `AC_CHECK_SIZEOF([long int])' instead.
AC_C_LONG_DOUBLE
AC_SYS_LONG_FILE_NAMES
AC_HEADER_MAJOR
NEED_MEMORY_H
if the mem
functions were
defined in `memory.h'. Today it is equivalent to
`AC_CHECK_HEADERS(memory.h)'. Adjust your code to depend upon
HAVE_MEMORY_H
, not NEED_MEMORY_H
; see 5.1.1 Standard Symbols.
AC_CYGWIN
but checks for the MingW32 compiler
environment and sets MINGW32
.
AC_PROG_CC_C_O
AC_FUNC_MMAP
AC_TYPE_MODE_T
OBJEXT
based on the output of the
compiler, after .c files have been excluded. Typically set to `o'
if Unix, `obj' if Win32. Now the compiler checking macros handle
this automatically.
AC_OBSOLETE
. If suggestion is given,
it is printed at the end of the warning message; for example, it can be
a suggestion for what to use instead of this-macro-name.
For instance
AC_OBSOLETE([$0], [; use AC_CHECK_HEADERS(unistd.h) instead])dnl |
You are encouraged to use AU_DEFUN
instead, since it gives better
services to the user.
AC_TYPE_OFF_T
AC_OUTPUT
with argument is deprecated. This obsoleted
interface is equivalent to:
AC_CONFIG_FILES(file...) AC_CONFIG_COMMANDS([default], extra-cmds, init-cmds) AC_OUTPUT |
configure
. This macro may be called multiple times. It is
obsolete, replaced by AC_CONFIG_COMMANDS
.
Here is an unrealistic example:
fubar=27 AC_OUTPUT_COMMANDS([echo this is extra $fubar, and so on.], [fubar=$fubar]) AC_OUTPUT_COMMANDS([echo this is another, extra, bit], [echo init bit]) |
Aside from the fact that AC_CONFIG_COMMANDS
requires an
additional key, an important difference is that
AC_OUTPUT_COMMANDS
is quoting its arguments twice, unlike
AC_CONFIG_COMMANDS
. This means that AC_CONFIG_COMMANDS
can safely be given macro calls as arguments:
AC_CONFIG_COMMANDS(foo, [my_FOO()]) |
Conversely, where one level of quoting was enough for literal strings
with AC_OUTPUT_COMMANDS
, you need two with
AC_CONFIG_COMMANDS
. The following lines are equivalent:
AC_OUTPUT_COMMANDS([echo "Square brackets: []"]) AC_CONFIG_COMMANDS([default], [[echo "Square brackets: []"]]) |
AC_TYPE_PID_T
AC_PREFIX_PROGRAM
AC_PROG_CC
.
AC_CHECK_PROGS
AC_PATH_PROGS
AC_CHECK_PROG
AC_EGREP_CPP
AC_PATH_PROG
AC_SYS_RESTARTABLE_SYSCALLS
AC_TYPE_SIGNAL
LIBS
. This
macro used to
AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS") |
Now it just calls AC_FUNC_STRFTIME
instead.
AC_FUNC_SETVBUF_REVERSED
AC_PROG_MAKE_SET
AC_CHECK_SIZEOF
AC_TYPE_SIZE_T
AC_HEADER_STAT
AC_HEADER_STDC
AC_FUNC_STRCOLL
AC_CHECK_MEMBERS
AC_STRUCT_ST_BLOCKS
AC_CHECK_MEMBERS
HAVE_RESTARTABLE_SYSCALLS
. This macro does
not check if system calls are restarted in general--it tests whether a
signal handler installed with signal
(but not sigaction
)
causes system calls to be restarted. It does not test if system calls
can be restarted when interrupted by signals that have no handler.
These days portable programs should use sigaction
with
SA_RESTART
if they want restartable system calls. They should
not rely on HAVE_RESTARTABLE_SYSCALLS
, since nowadays whether a
system call is restartable is a dynamic issue, not a configuration-time
issue.
AC_DECL_SYS_SIGLIST
AC_TRY_CPP
, replaced with AC_PREPROC_IFELSE
.
AC_TRY_RUN
, replaced with AC_RUN_IFELSE
.
AC_STRUCT_TIMEZONE
AC_HEADER_TIME
This macro double quotes both includes and function-body.
For C and C++, includes is any #include
statements needed
by the code in function-body (includes will be ignored if
the currently selected language is Fortran 77). This macro also uses
CFLAGS
or CXXFLAGS
if either C or C++ is the currently
selected language, as well as CPPFLAGS
, when compiling. If
Fortran 77 is the currently selected language then FFLAGS
will be
used when compiling.
This macro double quotes the input.
This macro double quotes both includes and function-body.
Depending on the current language (see section 6.1 Language Choice), create a test program to see whether a function whose body consists of function-body can be compiled and linked. If the file compiles and links successfully, run shell commands action-if-found, otherwise run action-if-not-found.
This macro double quotes both includes and function-body.
For C and C++, includes is any #include
statements needed
by the code in function-body (includes will be ignored if
the currently selected language is Fortran 77). This macro also uses
CFLAGS
or CXXFLAGS
if either C or C++ is the currently
selected language, as well as CPPFLAGS
, when compiling. If
Fortran 77 is the currently selected language then FFLAGS
will be
used when compiling. However, both LDFLAGS
and LIBS
will
be used during linking in all cases.
AC_TYPE_UID_T
USG
if the BSD string functions are defined in
`strings.h'. You should no longer depend upon USG
, but on
HAVE_STRING_H
; see 5.1.1 Standard Symbols.
AC_FUNC_UTIME_NULL
AC_MSG_RESULT
.
AC_FUNC_VFORK
AC_FUNC_VPRINTF
AC_FUNC_WAIT3
AC_MSG_WARN
AC_C_BIGENDIAN
LIBS
if on
Xenix. Also, if `dirent.h' is being checked for, added
`-ldir' to LIBS
. Now it is merely an alias of
AC_HEADER_DIRENT
instead, plus some code to detect whether
running XENIX on which you should not depend:
AC_MSG_CHECKING([for Xenix]) AC_EGREP_CPP(yes, [#if defined M_XENIX && !defined M_UNIX yes #endif], [AC_MSG_RESULT([yes]); XENIX=yes], [AC_MSG_RESULT([no]); XENIX=]) |
AC_DECL_YYTEXT
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |