18.4 Obsolete Macros

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.

Macro: AC_AIX

This macro is a platform-specific subset of AC_USE_SYSTEM_EXTENSIONS (see AC_USE_SYSTEM_EXTENSIONS).

Macro: AC_ALLOCA

Replaced by AC_FUNC_ALLOCA (see AC_FUNC_ALLOCA).

Macro: AC_ARG_ARRAY

Removed because of limited usefulness.

Macro: AC_C_CROSS

This macro is obsolete; it does nothing.

Macro: AC_C_LONG_DOUBLE

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.

Macro: AC_CANONICAL_SYSTEM

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).

Macro: AC_CHAR_UNSIGNED

Replaced by AC_C_CHAR_UNSIGNED (see AC_C_CHAR_UNSIGNED).

Macro: AC_CHECK_TYPE (type, default)

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:

  1. If there are three or four arguments, the modern version is used.
  2. If the second argument appears to be a C or C++ type, then the obsolete version is used. This happens if the argument is a C or C++ builtin type or a C identifier ending in ‘_t’, optionally followed by one of ‘[(* ’ and then by a string of zero or more characters taken from the set ‘[]()* _a-zA-Z0-9’.
  3. If the second argument is spelled with the alphabet of valid C and C++ types, the user is warned and the modern version is used.
  4. Otherwise, the modern version is used.

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
Macro: AC_CHECKING (feature-description)

Same as

AC_MSG_NOTICE([checking feature-description…]

See AC_MSG_NOTICE.

Macro: AC_COMPILE_CHECK (echo-text, includes, function-body, action-if-true, [action-if-false])

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).

Macro: AC_CONST

Replaced by AC_C_CONST (see AC_C_CONST).

Macro: AC_CROSS_CHECK

Same as AC_C_CROSS, which is obsolete too, and does nothing :-).

Macro: AC_CYGWIN

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.

Macro: AC_DECL_SYS_SIGLIST

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.

Macro: AC_DECL_YYTEXT

Does nothing, now integrated in AC_PROG_LEX (see AC_PROG_LEX).

Macro: AC_DIAGNOSE (category, message)

Replaced by m4_warn (see m4_warn).

Macro: AC_DIR_HEADER

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:

HeaderOld SymbolNew Symbol
dirent.hDIRENTHAVE_DIRENT_H
sys/ndir.hSYSNDIRHAVE_SYS_NDIR_H
sys/dir.hSYSDIRHAVE_SYS_DIR_H
ndir.hNDIRHAVE_NDIR_H
Macro: AC_DYNIX_SEQ

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).

Macro: AC_EXEEXT

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.

Macro: AC_EMXOS2

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).

Macro: AC_ENABLE (feature, action-if-given, [action-if-not-given])

This is an obsolete version of AC_ARG_ENABLE that does not support providing a help string (see AC_ARG_ENABLE).

Macro: AC_ERROR

Replaced by AC_MSG_ERROR (see AC_MSG_ERROR).

Macro: AC_FATAL (message)

Replaced by m4_fatal (see m4_fatal).

Macro: AC_FIND_X

Replaced by AC_PATH_X (see AC_PATH_X).

Macro: AC_FIND_XTRA

Replaced by AC_PATH_XTRA (see AC_PATH_XTRA).

Macro: AC_FOREACH

Replaced by m4_foreach_w (see m4_foreach_w).

Macro: AC_FUNC_CHECK

Replaced by AC_CHECK_FUNC (see AC_CHECK_FUNC).

Macro: AC_FUNC_SETVBUF_REVERSED

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.

Macro: AC_FUNC_WAIT3

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.

Macro: AC_GCC_TRADITIONAL

Replaced by AC_PROG_GCC_TRADITIONAL (see AC_PROG_GCC_TRADITIONAL), which is itself obsolete.

Macro: AC_GETGROUPS_T

Replaced by AC_TYPE_GETGROUPS (see AC_TYPE_GETGROUPS).

Macro: AC_GETLOADAVG

Replaced by AC_FUNC_GETLOADAVG (see AC_FUNC_GETLOADAVG).

Macro: AC_GNU_SOURCE

This macro is a platform-specific subset of AC_USE_SYSTEM_EXTENSIONS (see AC_USE_SYSTEM_EXTENSIONS).

Macro: AC_HAVE_FUNCS

Replaced by AC_CHECK_FUNCS (see AC_CHECK_FUNCS).

Macro: AC_HAVE_HEADERS

Replaced by AC_CHECK_HEADERS (see AC_CHECK_HEADERS).

Macro: AC_HAVE_LIBRARY (library, [action-if-found], [action-if-not-found], [other-libraries])

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.

Macro: AC_HAVE_POUNDBANG

Replaced by AC_SYS_INTERPRETER (see AC_SYS_INTERPRETER).

Macro: AC_HEADER_CHECK

Replaced by AC_CHECK_HEADER (see AC_CHECK_HEADER).

Macro: AC_HEADER_EGREP

Replaced by AC_EGREP_HEADER (see AC_EGREP_HEADER).

Macro: AC_HEADER_TIME

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.

Macro: AC_HELP_STRING

Replaced by AS_HELP_STRING (see AS_HELP_STRING).

Macro: AC_INIT (unique-file-in-source-dir)

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.

Macro: AC_INLINE

Replaced by AC_C_INLINE (see AC_C_INLINE).

Macro: AC_INT_16_BITS

If the C type int is 16 bits wide, define INT_16_BITS. Use ‘AC_CHECK_SIZEOF(int)’ instead (see AC_CHECK_SIZEOF).

Macro: AC_IRIX_SUN

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.

Macro: AC_ISC_POSIX

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).

Macro: AC_LANG_C

Same as ‘AC_LANG([C])’ (see AC_LANG).

Macro: AC_LANG_CPLUSPLUS

Same as ‘AC_LANG([C++])’ (see AC_LANG).

Macro: AC_LANG_FORTRAN77

Same as ‘AC_LANG([Fortran 77])’ (see AC_LANG).

Macro: AC_LANG_RESTORE

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.

Macro: AC_LANG_SAVE

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])
Macro: AC_LN_S

Replaced by AC_PROG_LN_S (see AC_PROG_LN_S).

Macro: AC_LONG_64_BITS

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).

Macro: AC_LONG_DOUBLE

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.

Macro: AC_LONG_FILE_NAMES

Replaced by

AC_SYS_LONG_FILE_NAMES

See AC_SYS_LONG_FILE_NAMES.

Macro: AC_MAJOR_HEADER

Replaced by AC_HEADER_MAJOR (see AC_HEADER_MAJOR).

Macro: AC_MEMORY_H

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.

Macro: AC_MINGW32

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).

Macro: AC_MINIX

This macro is a platform-specific subset of AC_USE_SYSTEM_EXTENSIONS (see AC_USE_SYSTEM_EXTENSIONS).

Macro: AC_MINUS_C_MINUS_O

Replaced by AC_PROG_CC_C_O (see AC_PROG_CC_C_O).

Macro: AC_MMAP

Replaced by AC_FUNC_MMAP (see AC_FUNC_MMAP).

Macro: AC_MODE_T

Replaced by AC_TYPE_MODE_T (see AC_TYPE_MODE_T).

Macro: AC_OBJEXT

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.

Macro: AC_OBSOLETE (this-macro-name, [suggestion])

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).

Macro: AC_OFF_T

Replaced by AC_TYPE_OFF_T (see AC_TYPE_OFF_T).

Macro: AC_OUTPUT ([file]…, [extra-cmds], [init-cmds])

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.

Macro: AC_OUTPUT_COMMANDS (extra-cmds, [init-cmds])

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: []"]])
Macro: AC_PID_T

Replaced by AC_TYPE_PID_T (see AC_TYPE_PID_T).

Macro: AC_PREFIX

Replaced by AC_PREFIX_PROGRAM (see AC_PREFIX_PROGRAM).

Macro: AC_PROG_CC_C89

Now done by AC_PROG_CC (see AC_PROG_CC).

Macro: AC_PROG_CC_C99

Now done by AC_PROG_CC (see AC_PROG_CC).

Macro: AC_PROG_CC_STDC

Now done by AC_PROG_CC (see AC_PROG_CC).

Macro: AC_PROG_GCC_TRADITIONAL

Used to put GCC into “traditional” (pre-ISO C) compilation mode, on systems with headers that did not work correctly with a standard-compliant compiler. GCC has not supported traditional compilation in many years, and all of the systems that required this are long obsolete themselves. This macro is now a compatibility synonym for AC_PROG_CC (see AC_PROG_CC).

Macro: AC_PROGRAMS_CHECK

Replaced by AC_CHECK_PROGS (see AC_CHECK_PROGS).

Macro: AC_PROGRAMS_PATH

Replaced by AC_PATH_PROGS (see AC_PATH_PROGS).

Macro: AC_PROGRAM_CHECK

Replaced by AC_CHECK_PROG (see AC_CHECK_PROG).

Macro: AC_PROGRAM_EGREP

Replaced by AC_EGREP_CPP (see AC_EGREP_CPP).

Macro: AC_PROGRAM_PATH

Replaced by AC_PATH_PROG (see AC_PATH_PROG).

Macro: AC_REMOTE_TAPE

Removed because of limited usefulness.

Macro: AC_RESTARTABLE_SYSCALLS

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.

Macro: AC_RETSIGTYPE

Replaced by AC_TYPE_SIGNAL (see AC_TYPE_SIGNAL), which itself is obsolete.

Macro: AC_RSH

Removed because of limited usefulness.

Macro: AC_SCO_INTL

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).

Macro: AC_SETVBUF_REVERSED

Replaced by

AC_FUNC_SETVBUF_REVERSED

See AC_FUNC_SETVBUF_REVERSED.

Macro: AC_SET_MAKE

Replaced by AC_PROG_MAKE_SET (see AC_PROG_MAKE_SET).

Macro: AC_SIZEOF_TYPE

Replaced by AC_CHECK_SIZEOF (see AC_CHECK_SIZEOF).

Macro: AC_SIZE_T

Replaced by AC_TYPE_SIZE_T (see AC_TYPE_SIZE_T).

Macro: AC_STAT_MACROS_BROKEN

Replaced by AC_HEADER_STAT (see AC_HEADER_STAT).

Macro: AC_STDC_HEADERS

Replaced by AC_HEADER_STDC (see AC_HEADER_STDC), which is itself obsolete. Nowadays it is safe to assume the facilities of C89 exist.

Macro: AC_STRCOLL

Replaced by AC_FUNC_STRCOLL (see AC_FUNC_STRCOLL).

Macro: AC_STRUCT_ST_BLKSIZE

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.

Macro: AC_STRUCT_ST_RDEV

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.

Macro: AC_ST_BLKSIZE

Replaced by AC_CHECK_MEMBERS (see AC_CHECK_MEMBERS).

Macro: AC_ST_BLOCKS

Replaced by AC_STRUCT_ST_BLOCKS (see AC_STRUCT_ST_BLOCKS).

Macro: AC_ST_RDEV

Replaced by AC_CHECK_MEMBERS (see AC_CHECK_MEMBERS).

Macro: AC_SYS_RESTARTABLE_SYSCALLS

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.

Macro: AC_SYS_SIGLIST_DECLARED

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).

Macro: AC_TEST_CPP

This macro was renamed AC_TRY_CPP, which in turn was replaced by AC_PREPROC_IFELSE (see AC_PREPROC_IFELSE).

Macro: AC_TEST_PROGRAM

This macro was renamed AC_TRY_RUN, which in turn was replaced by AC_RUN_IFELSE (see AC_RUN_IFELSE).

Macro: AC_TIMEZONE

Replaced by AC_STRUCT_TIMEZONE (see AC_STRUCT_TIMEZONE).

Macro: AC_TIME_WITH_SYS_TIME

Replaced by AC_HEADER_TIME (see AC_HEADER_TIME), which is itself obsolete; nowadays one need only do ‘AC_CHECK_HEADERS([sys/time.h])’.

Macro: AC_TRY_COMPILE (includes, function-body, [action-if-true], [action-if-false])

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).

Macro: AC_TRY_CPP (input, [action-if-true], [action-if-false])

Same as:

AC_PREPROC_IFELSE(
  [AC_LANG_SOURCE([[input]])],
  [action-if-true],
  [action-if-false])

See Running the Preprocessor.

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.

Macro: AC_TRY_RUN (program, [action-if-true], [action-if-false], [action-if-cross-compiling = ‘AC_MSG_FAILURE])

Same as:

AC_RUN_IFELSE(
  [AC_LANG_SOURCE([[program]])],
  [action-if-true],
  [action-if-false],
  [action-if-cross-compiling])

See Checking Runtime Behavior.

Macro: AC_TYPE_SIGNAL

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.

Macro: AC_UID_T

Replaced by AC_TYPE_UID_T (see AC_TYPE_UID_T).

Macro: AC_UNISTD_H

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.

Macro: AC_USG

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 standard 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.

Macro: AC_UTIME_NULL

Replaced by AC_FUNC_UTIME_NULL (see AC_FUNC_UTIME_NULL).

Macro: AC_VALIDATE_CACHED_SYSTEM_TUPLE ([cmd])

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.

Macro: AC_VERBOSE (result-description)

Replaced by AC_MSG_RESULT (see AC_MSG_RESULT).

Macro: AC_VFORK

Replaced by AC_FUNC_FORK (see AC_FUNC_FORK).

Macro: AC_VPRINTF

Replaced by AC_FUNC_VPRINTF (see AC_FUNC_VPRINTF).

Macro: AC_WAIT3

This macro was renamed AC_FUNC_WAIT3. However, these days portable programs should use waitpid, not wait3, as wait3 has been removed from Posix.

Macro: AC_WARN

Replaced by AC_MSG_WARN (see AC_MSG_WARN).

Macro: AC_WARNING (message)

Replaced by m4_warn (see m4_warn).

Macro: AC_WITH (package, action-if-given, [action-if-not-given])

This is an obsolete version of AC_ARG_WITH that does not support providing a help string (see AC_ARG_WITH).

Macro: AC_WORDS_BIGENDIAN

Replaced by AC_C_BIGENDIAN (see AC_C_BIGENDIAN).

Macro: AC_XENIX_DIR

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).

Macro: AC_YYTEXT_POINTER

This macro was renamed AC_DECL_YYTEXT, which in turn was integrated into AC_PROG_LEX (see AC_PROG_LEX).