| Marketplace
|
 |
|
15.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 section 9.2 Macro Names, for a
description of the new naming scheme. Below, 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_CANONICAL_SYSTEM
-
Determine the system type and set output variables to the names of the
canonical system types. See section 11.2 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.
- 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. Firstly, although
it is a member of the CHECK clan, singular sub-family, it does
more than just checking. Second, 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([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-found, [action-if-not-found])
-
This is an obsolete version of
AC_TRY_LINK (see section 6.3 Examining Libraries), 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).
- 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 very special meaning when
running CygWin32, and should not be changed. That's yet another reason
not to use this macro.
- 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 (Sequent UNIX), 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 Unix and `.exe' if Win32 or OS/2.
- 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_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 is being removed from the Open Group
standards, and will not appear in the next revision of 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_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
-
AC_C_LONG_DOUBLE
- 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 See section 5.1.1 Standard Symbols.
- Macro: AC_MINGW32
-
Similar to
AC_CYGWIN but checks for the MingW32 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 Unix, `obj' if Win32. 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, while
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
| | 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_STRUCT_ST_BLKSIZE
- Macro: AC_ST_BLOCKS
-
AC_STRUCT_ST_BLOCKS
- Macro: AC_ST_RDEV
-
AC_STRUCT_ST_RDEV
- 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 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.
- Macro: AC_SYS_SIGLIST_DECLARED
-
AC_DECL_SYS_SIGLIST
- Macro: AC_TEST_CPP
-
AC_TRY_CPP
- Macro: AC_TEST_PROGRAM
-
AC_TRY_RUN
- Macro: AC_TIMEZONE
-
AC_STRUCT_TIMEZONE
- Macro: AC_TIME_WITH_SYS_TIME
-
AC_HEADER_TIME
- 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 See section 5.1.1 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
|
 |