`configure'.
* acgeneral.m4 (AT_FILE_DEPENDENCY, _AC_CONFIG_DEPENDENCY,
_AC_CONFIG_DEPENDENCIES): New macros.
(AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_LINKS): Use them.
+2000-05-11 Akim Demaille <akim@epita.fr>
+
+ Provide a means to track the dependencies of files created by
+ `configure'.
+
+ * acgeneral.m4 (AT_FILE_DEPENDENCY, _AC_CONFIG_DEPENDENCY,
+ _AC_CONFIG_DEPENDENCIES): New macros.
+ (AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_LINKS): Use them.
+
2000-05-11 Akim Demaille <akim@epita.fr>
Merge AC_DECL_YYTEXT into AC_PROG_LEX.
-1, [$4], [$3])])
+# AT_FILE_DEPENDENCY(DEST, SOURCE1, [SOURCE2...])
+# -----------------------------------------------
+# This macro does nothing, it's a hook to be read with `autoconf --trace'.
+# It announces DEST depends upon the SOURCE1 etc.
+define([AT_FILE_DEPENDENCY], [])
+
+
+# _AC_CONFIG_DEPENDENCY(DEST, [SOURCE1], [SOURCE2...])
+# ----------------------------------------------------
+# Be sure that a missing dependency is expressed as a dependency upon
+# `DEST.in'.
+define([_AC_CONFIG_DEPENDENCY],
+[ifval([$2],
+ [AT_FILE_DEPENDENCY($@)],
+ [AT_FILE_DEPENDENCY([$1], [$1.in])])])
+
+
+# _AC_CONFIG_DEPENDENCIES(DEST[:SOURCE1[:SOURCE2...]]...)
+# -------------------------------------------------------
+# Declare the DESTs depend upon their SOURCE1 etc.
+define([_AC_CONFIG_DEPENDENCIES],
+[AC_DIVERT_PUSH([KILL])
+AC_FOREACH([AC_File], [$1],
+ [_AC_CONFIG_DEPENDENCY(patsubst(AC_File, [:], [,]))])
+AC_DIVERT_POP()dnl
+])
+
+
# _AC_CONFIG_UNIQUE(DEST[:SOURCE]...)
# -----------------------------------
#
AC_DEFUN([AC_CONFIG_HEADERS],
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
m4_append([AC_LIST_HEADERS], [ $1])
dnl Register the commands
ifelse([$2],,, [AC_FOREACH([AC_File], [$1],
AC_DEFUN(AC_CONFIG_LINKS,
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
ifelse(regexp([$1], [^\.:\| \.:]), -1,,
[AC_FATAL([$0: invalid destination: `.'])])
m4_append([AC_LIST_LINKS], [ $1])
AC_DEFUN([AC_CONFIG_FILES],
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
m4_append([AC_LIST_FILES], [ $1])
dnl Register the commands.
ifelse([$2],,, [AC_FOREACH([AC_File], [$1],
-1, [$4], [$3])])
+# AT_FILE_DEPENDENCY(DEST, SOURCE1, [SOURCE2...])
+# -----------------------------------------------
+# This macro does nothing, it's a hook to be read with `autoconf --trace'.
+# It announces DEST depends upon the SOURCE1 etc.
+define([AT_FILE_DEPENDENCY], [])
+
+
+# _AC_CONFIG_DEPENDENCY(DEST, [SOURCE1], [SOURCE2...])
+# ----------------------------------------------------
+# Be sure that a missing dependency is expressed as a dependency upon
+# `DEST.in'.
+define([_AC_CONFIG_DEPENDENCY],
+[ifval([$2],
+ [AT_FILE_DEPENDENCY($@)],
+ [AT_FILE_DEPENDENCY([$1], [$1.in])])])
+
+
+# _AC_CONFIG_DEPENDENCIES(DEST[:SOURCE1[:SOURCE2...]]...)
+# -------------------------------------------------------
+# Declare the DESTs depend upon their SOURCE1 etc.
+define([_AC_CONFIG_DEPENDENCIES],
+[AC_DIVERT_PUSH([KILL])
+AC_FOREACH([AC_File], [$1],
+ [_AC_CONFIG_DEPENDENCY(patsubst(AC_File, [:], [,]))])
+AC_DIVERT_POP()dnl
+])
+
+
# _AC_CONFIG_UNIQUE(DEST[:SOURCE]...)
# -----------------------------------
#
AC_DEFUN([AC_CONFIG_HEADERS],
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
m4_append([AC_LIST_HEADERS], [ $1])
dnl Register the commands
ifelse([$2],,, [AC_FOREACH([AC_File], [$1],
AC_DEFUN(AC_CONFIG_LINKS,
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
ifelse(regexp([$1], [^\.:\| \.:]), -1,,
[AC_FATAL([$0: invalid destination: `.'])])
m4_append([AC_LIST_LINKS], [ $1])
AC_DEFUN([AC_CONFIG_FILES],
[AC_DIVERT_PUSH([KILL])
_AC_CONFIG_UNIQUE([$1])
+_AC_CONFIG_DEPENDENCIES([$1])
m4_append([AC_LIST_FILES], [ $1])
dnl Register the commands.
ifelse([$2],,, [AC_FOREACH([AC_File], [$1],