|
17.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_ALLOCA
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 Types.
— Macro: AC_CANONICAL_SYSTEM
Determine the system type and set output variables to the names of the
canonical system types. See Canonicalizing, 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.
— Macro: AC_CHAR_UNSIGNED
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 Types, 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 by a simple heuristics:
- If there are three or four arguments, the modern version is used.
- 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’.
- 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.
- 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
#if !HAVE_LOFF_T
typedef loff_t off_t;
#endif
— Macro: AC_CHECKING ( feature-description)
Same as ‘AC_MSG_NOTICE([checking feature-description...]’.
— 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
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 . 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. */
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
])
— Macro: AC_DECL_YYTEXT
Does nothing, now integrated in AC_PROG_LEX .
— Macro: AC_DIR_HEADER
Like calling 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
|
— 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 .
— 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 .
— Macro: AC_ERROR
AC_MSG_ERROR
— Macro: AC_FIND_X
AC_PATH_X
— Macro: AC_FIND_XTRA
AC_PATH_XTRA
— Macro: AC_FOREACH
m4_foreach_w
— Macro: AC_FUNC_CHECK
AC_CHECK_FUNC
— 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
AC_PROG_GCC_TRADITIONAL
— Macro: AC_GETGROUPS_T
AC_TYPE_GETGROUPS
— Macro: AC_GETLOADAVG
AC_FUNC_GETLOADAVG
— Macro: AC_HAVE_FUNCS
AC_CHECK_FUNCS
— Macro: AC_HAVE_HEADERS
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.
— Macro: AC_HAVE_POUNDBANG
AC_SYS_INTERPRETER (different calling convention)
— Macro: AC_HEADER_CHECK
AC_CHECK_HEADER
— Macro: AC_HEADER_EGREP
AC_EGREP_HEADER
— Macro: AC_HELP_STRING
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)
— Macro: AC_INLINE
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.
— 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])
— Macro: AC_LANG_C
Same as ‘AC_LANG([C])’.
— Macro: AC_LANG_CPLUSPLUS
Same as ‘AC_LANG([C++])’.
— Macro: AC_LANG_FORTRAN77
Same as ‘AC_LANG([Fortran 77])’.
— 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) .
— 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.
— Macro: AC_LINK_FILES ( source..., dest...)
This is an obsolete version of 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
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.
— 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 Types.
— Macro: AC_LONG_FILE_NAMES
AC_SYS_LONG_FILE_NAMES
— Macro: AC_MAJOR_HEADER
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])’. Adjust your code to depend upon
HAVE_MEMORY_H , not NEED_MEMORY_H ; see Standard Symbols.
— Macro: AC_MINGW32
Similar to AC_CYGWIN but checks for the MinGW compiler
environment and sets MINGW32 .
— Macro: AC_MINUS_C_MINUS_O
AC_PROG_CC_C_O
— Macro: AC_MMAP
AC_FUNC_MMAP
— Macro: AC_MODE_T
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.
— Macro: AC_OFF_T
AC_TYPE_OFF_T
— Macro: AC_OUTPUT ( [file]..., [extra-cmds], [init-cmds])
The use of 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
— 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 .
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
AC_TYPE_PID_T
— Macro: AC_PREFIX
AC_PREFIX_PROGRAM
— Macro: AC_PROGRAMS_CHECK
AC_CHECK_PROGS
— Macro: AC_PROGRAMS_PATH
AC_PATH_PROGS
— Macro: AC_PROGRAM_CHECK
AC_CHECK_PROG
— Macro: AC_PROGRAM_EGREP
AC_EGREP_CPP
— Macro: AC_PROGRAM_PATH
AC_PATH_PROG
— Macro: AC_REMOTE_TAPE
removed because of limited usefulness
— Macro: AC_RESTARTABLE_SYSCALLS
AC_SYS_RESTARTABLE_SYSCALLS
— Macro: AC_RETSIGTYPE
AC_TYPE_SIGNAL
— 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.
— Macro: AC_SETVBUF_REVERSED
AC_FUNC_SETVBUF_REVERSED
— Macro: AC_SET_MAKE
AC_PROG_MAKE_SET
— Macro: AC_SIZEOF_TYPE
AC_CHECK_SIZEOF
— Macro: AC_SIZE_T
AC_TYPE_SIZE_T
— Macro: AC_STAT_MACROS_BROKEN
AC_HEADER_STAT
— Macro: AC_STDC_HEADERS
AC_HEADER_STDC
— Macro: AC_STRCOLL
AC_FUNC_STRCOLL
— Macro: AC_ST_BLKSIZE
AC_CHECK_MEMBERS
— Macro: AC_ST_BLOCKS
AC_STRUCT_ST_BLOCKS
— Macro: AC_ST_RDEV
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
AC_DECL_SYS_SIGLIST
— Macro: AC_TEST_CPP
AC_TRY_CPP , replaced by AC_PREPROC_IFELSE .
— Macro: AC_TEST_PROGRAM
AC_TRY_RUN , replaced by AC_RUN_IFELSE .
— Macro: AC_TIMEZONE
AC_STRUCT_TIMEZONE
— Macro: AC_TIME_WITH_SYS_TIME
AC_HEADER_TIME
— 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.
— Macro: AC_TRY_LINK ( includes, function-body, [action-if-true], [action-if-false])
Same as:
AC_LINK_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.
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.
— Macro: AC_TRY_LINK_FUNC ( function, [action-if-found], [action-if-not-found])
This macro is equivalent to
‘AC_LINK_IFELSE([AC_LANG_CALL([], [function])],
[action-if-found], [action-if-not-found])’.
— Macro: AC_TRY_RUN ( program, [action-if-true], [action-if-false], [action-if-cross-compiling])
Same as:
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[program]])],
[action-if-true],
[action-if-false],
[action-if-cross-compiling])
See Runtime.
— Macro: AC_UID_T
AC_TYPE_UID_T
— Macro: AC_UNISTD_H
Same as ‘AC_CHECK_HEADERS([unistd.h])’.
— Macro: AC_USG
Define USG if the BSD string functions are defined in
strings.h. You should no longer depend upon USG , but on
HAVE_STRING_H ; see Standard Symbols.
— Macro: AC_UTIME_NULL
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)
AC_MSG_RESULT .
— Macro: AC_VFORK
AC_FUNC_VFORK
— Macro: AC_VPRINTF
AC_FUNC_VPRINTF
— Macro: AC_WAIT3
AC_FUNC_WAIT3
— Macro: AC_WARN
AC_MSG_WARN
— Macro: AC_WORDS_BIGENDIAN
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=])
— Macro: AC_YYTEXT_POINTER
AC_DECL_YYTEXT
|
|