bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

automake 1.5 bug causing needless rebuild of config.h


From: Paul Eggert
Subject: automake 1.5 bug causing needless rebuild of config.h
Date: Mon, 24 Sep 2001 11:45:39 -0700 (PDT)

automake 1.5 has some code to use stamp file names like 'stamp-h1',
'stamp-h2' etc, but this code isn't working properly.  A patch is
enclosed at the end of this message.  The patch simply removes the
trailing '1', '2', etc.  Quite possibly this fix is just a workaround
for the real problem, but it works for me.

This problem was originally reported by Bruno Haible (thanks!) for GNU
tar 1.13.24 and textutils 2.0.15.  I enclose his bug report below.
You can find copies of the buggy package distributions in
<ftp://alpha.gnu.org/gnu/tar/tar-1.13.24.gz> and in
<ftp://alpha.gnu.org/gnu/fetish/textutils-2.0.15.tar.gz>.

> From: Bruno Haible <address@hidden>
> Date: Mon, 24 Sep 2001 19:21:29 +0200 (CEST)
> 
> In both textutils-2.0.15 and tar-1.13.24, when I type
> 
>    ./configure
>    make
> 
> the "make" starts out re-making config.h which was already created at
> the end of configure.
> 
> $ ./configure
> .....
> config.status: creating config.h
> config.status: executing default-1 commands
> config.status: executing default-2 commands
> config.status: creating po/POTFILES
> config.status: creating po/Makefile
> $  make
> cd . \
>   && CONFIG_FILES= CONFIG_HEADERS=config.h \
>      /bin/sh ./config.status
> config.status: creating config.h
> config.status: config.h is unchanged
> config.status: executing default-1 commands
> config.status: executing default-2 commands
> make  all-recursive
> ....
> 
> Where does this come from? I don't have this stupid Makefile behaviour
> in projects with automake-1.4-p5.


Here is the patch.

2001-09-24  Paul Eggert  <address@hidden>

        * m4/header.m4 (_AM_Config_Header_Index): Remove.
        (AM_CONFIG_HEADER): Don't use it.  It wasn't working, and was
        causing needless rebuilds.

===================================================================
RCS file: m4/header.m4,v
retrieving revision 1.5
retrieving revision 1.5.0.1
diff -pu -r1.5 -r1.5.0.1
--- m4/header.m4        2001/07/21 05:27:26     1.5
+++ m4/header.m4        2001/09/24 18:29:30     1.5.0.1
@@ -11,18 +11,16 @@ AC_PREREQ([2.12])
 
 AC_DEFUN([AM_CONFIG_HEADER],
 [ifdef([AC_FOREACH],dnl
-        [dnl init our file count if it isn't already
-        m4_ifndef([_AM_Config_Header_Index], 
m4_define([_AM_Config_Header_Index], [0]))
+        [
         dnl prepare to store our destination file list for use in config.status
         AC_FOREACH([_AM_File], [$1],
                    [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
-                   m4_define([_AM_Config_Header_Index], 
m4_incr(_AM_Config_Header_Index))
                    dnl and add it to the list of files AC keeps track of, along
                    dnl with our hook
                    AC_CONFIG_HEADERS(_AM_File,
 dnl COMMANDS, [, INIT-CMDS]
 [# update the timestamp
-echo timestamp 
>"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h"
 ][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
                    m4_popdef([_AM_Dest])])],dnl
 [AC_CONFIG_HEADER([$1])



reply via email to

[Prev in Thread] Current Thread [Next in Thread]