automake
[Top][All Lists]
Advanced

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

PATCH: Fix dependency tracking (revised)


From: Robert Boehne
Subject: PATCH: Fix dependency tracking (revised)
Date: Wed, 25 Apr 2001 15:39:53 -0500

Problem:
  Makefile.in's created with --include-deps do not allow configure
to turn off dependency tracking.  If --disable-dependency-tracking
is specified to configure, the rules for object files are invalid,
causing make to exit without building anything.  Also, if a compiler
that does not support dependencies is used, the same problem occurrs
when --enable-dependency-tracking is specified to configure.

Solution:
  The reasons for this are that @AMDEP_TRUE@ in the handle_dependencies
function (subroutine?) is AC_SUBST'd to "" when automake is created
from automake.in.  The object file rules in depend2.am must also be
adjusted to remove the 'depcomp' lines completely if dependency
tracking is not desired or available.  If not, these rules will
attempt to execute these lines as separate commands because 
@AMDEPBACKSLASH@ is substituted with "" when dependency tracking
is off.


ChangeLog entry:

2001-04-25  Robert Boehne <address@hidden>

        * configure.in: Add _am_dep_true='@AMDEP_TRUE@' and AC_SUBST it.
        * automake.in: (handle_dependencies) Replace @AMDEP_TRUE@ in
        $output_rules with @_am_dep_true@ so that @AMDEP_TRUE@ isn't
        substituted away when automake is created by configure.
        * depend2.am: Add @AMDEP_TRUE@ to the beginning of lines for
        dependency tracking in the rules for object files so that
        disabling dependency tracking with 'configure' will work.
        * configure: Regenerate.


-- 
Robert Boehne             Software Engineer
Ricardo Software   Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email:  address@hidden
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1046
diff -u -r1.1046 automake.in
--- automake.in 2001/04/24 18:00:14     1.1046
+++ automake.in 2001/04/25 20:18:50
@@ -3229,7 +3229,7 @@
            $output_rules .= "\n";
            foreach my $iter (@deplist)
            {
-               $output_rules .= ('@AMDEP_TRUE@@_am_include@ @_am_quote@'
+               $output_rules .= ('@_am_dep_true@ @_am_include@ @_am_quote@'
                                  . $iter . '@_am_quote@' . "\n");
            }
 
Index: configure
===================================================================
RCS file: /cvs/automake/automake/configure,v
retrieving revision 1.81
diff -u -r1.81 configure
--- configure   2001/04/24 09:44:16     1.81
+++ configure   2001/04/25 20:18:50
@@ -676,7 +676,7 @@
   echo "configure: warning: ${am_backtick}missing' script is too old or 
missing" 1>&2
 fi
 
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -904,6 +904,7 @@
 $PERL -e 'require 5.005;' || {
    { echo "configure: error: perl 5.005 or better is required" 1>&2; exit 1; }
 }
+_am_dep_true='@AMDEP_TRUE@'
 
 trap '' 1 2 15
 cat > confcache <<\EOF
@@ -1072,6 +1073,7 @@
 address@hidden@%$AMDEPBACKSLASH%g
 address@hidden@%$DEPDIR%g
 address@hidden@%$PERL%g
address@hidden@%$_am_dep_true%g
 
 CEOF
 EOF
Index: configure.in
===================================================================
RCS file: /cvs/automake/automake/configure.in,v
retrieving revision 1.77
diff -u -r1.77 configure.in
--- configure.in        2001/02/16 05:56:09     1.77
+++ configure.in        2001/04/25 20:18:50
@@ -13,6 +13,7 @@
 $PERL -e 'require 5.005;' || {
    AC_MSG_ERROR([perl 5.005 or better is required])
 }
-
+_am_dep_true='@AMDEP_TRUE@'
+AC_SUBST(_am_dep_true)
 AC_OUTPUT([Makefile automake aclocal m4/Makefile tests/Makefile],
 [chmod +x automake aclocal])
Index: depend2.am
===================================================================
RCS file: /cvs/automake/automake/depend2.am,v
retrieving revision 1.35
diff -u -r1.35 depend2.am
--- depend2.am  2001/04/11 17:29:06     1.35
+++ depend2.am  2001/04/25 20:18:50
@@ -31,9 +31,9 @@
 ?GENERIC?%EXT%.o:
 ?!GENERIC?%OBJ%: %SOURCE%
 if %AMDEP%
-       source='%SOURCE%' object='%OBJ%' libtool=no @AMDEPBACKSLASH@
-       depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
-       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
address@hidden@ source='%SOURCE%' object='%OBJ%' libtool=no @AMDEPBACKSLASH@
address@hidden@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
address@hidden@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
 endif %AMDEP%
        %COMPILE% -c -o %OBJ% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
 
@@ -41,9 +41,9 @@
 ?GENERIC?%EXT%.lo:
 ?!GENERIC?%LTOBJ%: %SOURCE%
 if  %AMDEP%
-       source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
-       depfile='$(DEPDIR)/%BASE%.Plo' tmpdepfile='$(DEPDIR)/%BASE%.TPlo' 
@AMDEPBACKSLASH@
-       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
address@hidden@ source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
address@hidden@ depfile='$(DEPDIR)/%BASE%.Plo' 
tmpdepfile='$(DEPDIR)/%BASE%.TPlo' @AMDEPBACKSLASH@
address@hidden@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
 endif  %AMDEP%
        %LTCOMPILE% -c -o %LTOBJ% `test -f %SOURCE% || echo 
'$(srcdir)/'`%SOURCE%
 endif %?LIBTOOL%
@@ -51,8 +51,8 @@
 ?GENERIC?%EXT%.obj:
 ?!GENERIC?%OBJOBJ%: %SOURCE%
 if %AMDEP%
-       source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
-       depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
-       $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
address@hidden@ source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
address@hidden@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' 
@AMDEPBACKSLASH@
address@hidden@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
 endif %AMDEP%
        %COMPILE% -c -o %OBJOBJ% `cygpath -w %SOURCE%`

reply via email to

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