Next: Upgrading From Version 1, Previous: Using autoupdate
to Modernize configure.ac, Up: Obsolete Constructs [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 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.
This macro is a platform-specific subset of
AC_USE_SYSTEM_EXTENSIONS
(see AC_USE_SYSTEM_EXTENSIONS).
Replaced by AC_FUNC_ALLOCA
(see AC_FUNC_ALLOCA).
Removed because of limited usefulness.
This macro is obsolete; it does nothing.
If the C compiler supports a working long double
type with more
range or precision than the double
type, define
HAVE_LONG_DOUBLE
.
You should use AC_TYPE_LONG_DOUBLE
or
AC_TYPE_LONG_DOUBLE_WIDER
instead. See Particular Type Checks.
Determine the system type and set output variables to the names of the canonical system types. See Getting the Canonical System Type, for details about the variables this macro sets.
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 (see Getting the Canonical System Type).
Replaced by AC_C_CHAR_UNSIGNED
(see AC_C_CHAR_UNSIGNED).
Autoconf, up to 2.13, used to provide this version of
AC_CHECK_TYPE
, deprecated because of its flaws. First, although
it is a member of the CHECK
clan, it does
more than just checking. Secondly, missing types are defined
using #define
, not typedef
, and this can lead to
problems in the case of pointer types.
This use of AC_CHECK_TYPE
is obsolete and discouraged; see
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 int’ or ‘unsigned int’.
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 using these 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
#ifndef HAVE_LOFF_T typedef loff_t off_t; #endif
Same as
AC_MSG_NOTICE([checking feature-description…]
See AC_MSG_NOTICE.
This is an obsolete version of AC_TRY_COMPILE
itself replaced by
AC_COMPILE_IFELSE
(see 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 Printing Messages).
Replaced by AC_C_CONST
(see AC_C_CONST).
Same as AC_C_CROSS
, which is obsolete too, and does nothing
:-)
.
Check for the Cygwin environment in which case the shell variable
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
(see Getting the Canonical System Type). 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 special meaning when
running Cygwin, and should not be changed. That’s yet another reason
not to use this macro.
Same as:
AC_CHECK_DECLS([sys_siglist], [], [], [#include <signal.h> /* NetBSD declares sys_siglist in unistd.h. */ #ifdef HAVE_UNISTD_H # include <unistd.h> #endif ])
See AC_CHECK_DECLS.
Does nothing, now integrated in AC_PROG_LEX
(see AC_PROG_LEX).
Like calling AC_FUNC_CLOSEDIR_VOID
(see AC_FUNC_CLOSEDIR_VOID) and AC_HEADER_DIRENT
(see AC_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 |
If on DYNIX/ptx, add -lseq to output variable
LIBS
. This macro used to be defined as
AC_CHECK_LIB([seq], [getmntent], [LIBS="-lseq $LIBS"])
now it is just AC_FUNC_GETMNTENT
(see AC_FUNC_GETMNTENT).
Defined the output variable EXEEXT
based on the output of the
compiler, which is now done automatically. Typically set to empty
string if Posix and ‘.exe’ if a DOS variant.
Similar to AC_CYGWIN
but checks for the EMX environment on OS/2
and sets EMXOS2
. Don’t use this macro, the dignified means to
check the nature of the host is using AC_CANONICAL_HOST
(see Getting the Canonical System Type).
This is an obsolete version of AC_ARG_ENABLE
that does not
support providing a help string (see AC_ARG_ENABLE).
Replaced by AC_MSG_ERROR
(see AC_MSG_ERROR).
Replaced by AC_PATH_XTRA
(see AC_PATH_XTRA).
Replaced by m4_foreach_w
(see m4_foreach_w).
Replaced by AC_CHECK_FUNC
(see AC_CHECK_FUNC).
Do nothing. Formerly, this macro checked whether setvbuf
takes
the buffering type as its second argument and the buffer pointer as the
third, instead of the other way around, and defined
SETVBUF_REVERSED
. However, the last systems to have the problem
were those based on SVR2, which became obsolete in 1987, and the macro
is no longer needed.
If 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
has been removed from Posix.
Replaced by AC_PROG_GCC_TRADITIONAL
(see AC_PROG_GCC_TRADITIONAL).
Replaced by AC_TYPE_GETGROUPS
(see AC_TYPE_GETGROUPS).
Replaced by AC_FUNC_GETLOADAVG
(see AC_FUNC_GETLOADAVG).
This macro is a platform-specific subset of
AC_USE_SYSTEM_EXTENSIONS
(see AC_USE_SYSTEM_EXTENSIONS).
Replaced by AC_CHECK_FUNCS
(see AC_CHECK_FUNCS).
Replaced by AC_CHECK_HEADERS
(see AC_CHECK_HEADERS).
This macro is equivalent to calling 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.
See AC_CHECK_LIB.
Replaced by AC_SYS_INTERPRETER
(see AC_SYS_INTERPRETER).
Replaced by AC_CHECK_HEADER
(see AC_CHECK_HEADER).
Replaced by AC_EGREP_HEADER
(see AC_EGREP_HEADER).
This macro used to check whether it was possible to include
time.h and sys/time.h in the same source file,
defining TIME_WITH_SYS_TIME
if so.
Nowadays, it is equivalent to ‘AC_CHECK_HEADERS([sys/time.h])’,
although it does still define TIME_WITH_SYS_TIME
for
compatibility’s sake. time.h is universally present, and the
systems on which sys/time.h conflicted with time.h are
obsolete.
Replaced by AS_HELP_STRING
(see AS_HELP_STRING).
Formerly AC_INIT
used to have a single argument, and was
equivalent to:
AC_INIT AC_CONFIG_SRCDIR(unique-file-in-source-dir)
See AC_INIT and AC_CONFIG_SRCDIR.
Replaced by AC_C_INLINE
(see AC_C_INLINE).
If the C type int
is 16 bits wide, define INT_16_BITS
.
Use ‘AC_CHECK_SIZEOF(int)’ instead (see AC_CHECK_SIZEOF).
If on IRIX (Silicon Graphics Unix), add -lsun to output
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])
See AC_FUNC_GETMNTENT and AC_CHECK_LIB.
This macro adds -lcposix to output variable LIBS
if
necessary for Posix facilities. Sun dropped support for the obsolete
INTERACTIVE Systems Corporation Unix on 2006-07-23. New programs
need not use this macro. It is implemented as
AC_SEARCH_LIBS([strerror], [cposix])
(see AC_SEARCH_LIBS).
Select the language that is saved on the top of the stack, as set
by AC_LANG_SAVE
, remove it from the stack, and call
AC_LANG(language)
. See Language Choice, for the
preferred way to change languages.
Remember the current language (as set by AC_LANG
) on a stack.
The current language does not change. AC_LANG_PUSH
is preferred
(see AC_LANG_PUSH).
This is an obsolete version of AC_CONFIG_LINKS
(see 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])
Replaced by AC_PROG_LN_S
(see AC_PROG_LN_S).
Define LONG_64_BITS
if the C type long int
is 64 bits wide.
Use the generic macro ‘AC_CHECK_SIZEOF([long int])’ instead
(see AC_CHECK_SIZEOF).
If the C compiler supports a working long double
type with more
range or precision than the double
type, define
HAVE_LONG_DOUBLE
.
You should use AC_TYPE_LONG_DOUBLE
or
AC_TYPE_LONG_DOUBLE_WIDER
instead. See Particular Type Checks.
Replaced by
AC_SYS_LONG_FILE_NAMES
Replaced by AC_HEADER_MAJOR
(see AC_HEADER_MAJOR).
Used to define NEED_MEMORY_H
if the mem
functions were
defined in memory.h. Today it is equivalent to
‘AC_CHECK_HEADERS([memory.h])’ (see AC_CHECK_HEADERS). Adjust
your code to get the mem
functions from string.h instead.
Similar to AC_CYGWIN
but checks for the MinGW compiler
environment and sets MINGW32
. Don’t use this macro, the
dignified means to check the nature of the host is using
AC_CANONICAL_HOST
(see Getting the Canonical System Type).
This macro is a platform-specific subset of
AC_USE_SYSTEM_EXTENSIONS
(see AC_USE_SYSTEM_EXTENSIONS).
Replaced by AC_PROG_CC_C_O
(see AC_PROG_CC_C_O).
Replaced by AC_FUNC_MMAP
(see AC_FUNC_MMAP).
Replaced by AC_TYPE_MODE_T
(see AC_TYPE_MODE_T).
Defined the output variable OBJEXT
based on the output of the
compiler, after .c files have been excluded. Typically set to ‘o’
if Posix, ‘obj’ if a DOS variant.
Now the compiler checking macros handle
this automatically.
Make M4 print a message to the standard error output warning that
this-macro-name is obsolete, and giving the file and line number
where it was called. this-macro-name should be the name of the
macro that is calling 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 (see AU_DEFUN).
Replaced by AC_TYPE_OFF_T
(see AC_TYPE_OFF_T).
The use of AC_OUTPUT
with arguments is deprecated. This obsoleted
interface is equivalent to:
AC_CONFIG_FILES(file…) AC_CONFIG_COMMANDS([default], extra-cmds, init-cmds) AC_OUTPUT
See AC_CONFIG_FILES, AC_CONFIG_COMMANDS, and AC_OUTPUT.
Specify additional shell commands to run at the end of
config.status, and shell commands to initialize any variables
from configure
. This macro may be called multiple times. It is
obsolete, replaced by AC_CONFIG_COMMANDS
(see 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: []"]])
Replaced by AC_TYPE_PID_T
(see AC_TYPE_PID_T).
Replaced by AC_PREFIX_PROGRAM
(see AC_PREFIX_PROGRAM).
Now done by AC_PROG_CC
(see AC_PROG_CC).
Now done by AC_PROG_CC
(see AC_PROG_CC).
Now done by AC_PROG_CC
(see AC_PROG_CC).
Replaced by AC_CHECK_PROGS
(see AC_CHECK_PROGS).
Replaced by AC_PATH_PROGS
(see AC_PATH_PROGS).
Replaced by AC_CHECK_PROG
(see AC_CHECK_PROG).
Replaced by AC_EGREP_CPP
(see AC_EGREP_CPP).
Replaced by AC_PATH_PROG
(see AC_PATH_PROG).
Removed because of limited usefulness.
This macro was renamed AC_SYS_RESTARTABLE_SYSCALLS
. However,
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.
Replaced by AC_TYPE_SIGNAL
(see AC_TYPE_SIGNAL), which itself
is obsolete when assuming C89 or better.
Removed because of limited usefulness.
If on SCO Unix, add -lintl to output variable LIBS
. This
macro used to do this:
AC_CHECK_LIB([intl], [strftime], [LIBS="-lintl $LIBS"])
Now it just calls AC_FUNC_STRFTIME
instead (see AC_FUNC_STRFTIME).
Replaced by
AC_FUNC_SETVBUF_REVERSED
Replaced by AC_PROG_MAKE_SET
(see AC_PROG_MAKE_SET).
Replaced by AC_CHECK_SIZEOF
(see AC_CHECK_SIZEOF).
Replaced by AC_TYPE_SIZE_T
(see AC_TYPE_SIZE_T).
Replaced by AC_HEADER_STAT
(see AC_HEADER_STAT).
Replaced by AC_HEADER_STDC
(see AC_HEADER_STDC), which
is itself obsolete. Nowadays it is safe to assume the facilities of C90
exist.
Replaced by AC_FUNC_STRCOLL
(see AC_FUNC_STRCOLL).
If struct stat
contains an st_blksize
member, define
HAVE_STRUCT_STAT_ST_BLKSIZE
. The former name,
HAVE_ST_BLKSIZE
is to be avoided, as its support will cease in
the future. This macro is obsoleted, and should be replaced by
AC_CHECK_MEMBERS([struct stat.st_blksize])
See AC_CHECK_MEMBERS.
If struct stat
contains an st_rdev
member, define
HAVE_STRUCT_STAT_ST_RDEV
. The former name for this macro,
HAVE_ST_RDEV
, is to be avoided as it will cease to be supported
in the future. Actually, even the new macro is obsolete and should be
replaced by:
AC_CHECK_MEMBERS([struct stat.st_rdev])
See AC_CHECK_MEMBERS.
Replaced by AC_CHECK_MEMBERS
(see AC_CHECK_MEMBERS).
Replaced by AC_STRUCT_ST_BLOCKS
(see AC_STRUCT_ST_BLOCKS).
Replaced by AC_CHECK_MEMBERS
(see AC_CHECK_MEMBERS).
If the system automatically restarts a system call that is interrupted
by a signal, define HAVE_RESTARTABLE_SYSCALLS
. This macro does
not check whether system calls are restarted in general—it checks whether a
signal handler installed with signal
(but not sigaction
)
causes system calls to be restarted. It does not check whether 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.
This macro was renamed AC_DECL_SYS_SIGLIST
. However, even that
name is obsolete, as the same functionality is now achieved via
AC_CHECK_DECLS
(see AC_CHECK_DECLS).
This macro was renamed AC_TRY_CPP
, which in turn was replaced by
AC_PREPROC_IFELSE
(see AC_PREPROC_IFELSE).
This macro was renamed AC_TRY_RUN
, which in turn was replaced by
AC_RUN_IFELSE
(see AC_RUN_IFELSE).
Replaced by AC_STRUCT_TIMEZONE
(see AC_STRUCT_TIMEZONE).
Replaced by AC_HEADER_TIME
(see AC_HEADER_TIME), which is
itself obsolete; nowadays one need only do
‘AC_CHECK_HEADERS([sys/time.h])’.
Same as:
AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[includes]], [[function-body]])], [action-if-true], [action-if-false])
See Running the Compiler.
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 is ignored if
the currently selected language is Fortran or Fortran 77). The compiler
and compilation flags are determined by the current language
(see Language Choice).
Same as:
AC_PREPROC_IFELSE( [AC_LANG_SOURCE([[input]])], [action-if-true], [action-if-false])
This macro double quotes the input.
Same as:
AC_LINK_IFELSE( [AC_LANG_PROGRAM([[includes]], [[function-body]])], [action-if-true], [action-if-false])
See Running the Linker.
This macro double quotes both includes and function-body.
Depending on the current language (see 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 is ignored if
the currently selected language is Fortran or Fortran 77). The compiler
and compilation flags are determined by the current language
(see Language Choice), and in addition LDFLAGS
and
LIBS
are used for linking.
This macro is equivalent to
AC_LINK_IFELSE([AC_LANG_CALL([], [function])], [action-if-found], [action-if-not-found])
See Running the Linker.
Same as:
AC_RUN_IFELSE( [AC_LANG_SOURCE([[program]])], [action-if-true], [action-if-false], [action-if-cross-compiling])
If signal.h declares signal
as returning a pointer to a
function returning void
, define RETSIGTYPE
to be
void
; otherwise, define it to be int
. These days, it is
portable to assume C89, and that signal handlers return void
,
without needing to use this macro or RETSIGTYPE
.
When targeting older K&R C, it is possible to define signal handlers as
returning type RETSIGTYPE
, and omit a return statement:
RETSIGTYPE hup_handler () { … }
Replaced by AC_TYPE_UID_T
(see AC_TYPE_UID_T).
Same as ‘AC_CHECK_HEADERS([unistd.h])’ (see AC_CHECK_HEADERS),
which is one of the tests done as a side effect by
AC_INCLUDES_DEFAULT
(see Default Includes), so usually
unnecessary to write explicitly.
Define USG
if the BSD string functions (bcopy
,
bzero
, index
, rindex
, etc) are not defined
in strings.h. Modern code should assume string.h exists
and should use the ISO C string functions (memmove
, memset
,
strchr
, strrchr
, etc) unconditionally.
strings.h may be the only header that declares strcasecmp
,
strncasecmp
, and ffs
. AC_INCLUDES_DEFAULT
checks
for it (see Default Includes); test HAVE_STRINGS_H
.
Replaced by AC_FUNC_UTIME_NULL
(see AC_FUNC_UTIME_NULL).
If the cache file is inconsistent with the current host, target and build system types, it used to execute cmd or print a default error message. This is now handled by default.
Replaced by AC_MSG_RESULT
(see AC_MSG_RESULT).
Replaced by AC_FUNC_FORK
(see AC_FUNC_FORK).
Replaced by AC_FUNC_VPRINTF
(see AC_FUNC_VPRINTF).
This macro was renamed AC_FUNC_WAIT3
. However, these days
portable programs should use waitpid
, not wait3
, as
wait3
has been removed from Posix.
Replaced by AC_MSG_WARN
(see AC_MSG_WARN).
This is an obsolete version of AC_ARG_WITH
that does not
support providing a help string (see AC_ARG_WITH).
Replaced by AC_C_BIGENDIAN
(see AC_C_BIGENDIAN).
This macro used to add -lx to output variable 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=])
Don’t use this macro, the dignified means to check the nature of the
host is using AC_CANONICAL_HOST
(see Getting the Canonical System Type).
This macro was renamed AC_DECL_YYTEXT
, which in turn was
integrated into AC_PROG_LEX
(see AC_PROG_LEX).
Next: Upgrading From Version 1, Previous: Using autoupdate
to Modernize configure.ac, Up: Obsolete Constructs [Contents][Index]