From 148a155a241de8cd1c70dcfaa8f7f1dd2d6919d3 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 31 Jan 2001 16:50:02 +0000 Subject: [PATCH] * depend2.am: Instead of replacing @PFX@ in $(@PFX@COMPILE), and then replacing `$(@PFX@COMPILE)' for the files that need some special flags, use only @COMPILE@. Similarly for @LTCOMPILE@. Try to document this file. * automake.in (add_depend2): Adjust to these changes. --- ChangeLog | 10 +++++++++- automake.in | 50 +++++++++++++++++++++++++++----------------------- depend2.am | 16 ++++++++++++---- lib/am/depend2.am | 16 ++++++++++++---- 4 files changed, 60 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b1f9a6..554cefb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2001-01-31 Akim Demaille + * depend2.am: Instead of replacing @PFX@ in $(@PFX@COMPILE), and + then replacing `$(@PFX@COMPILE)' for the files that need some + special flags, use only @COMPILE@. Similarly for @LTCOMPILE@. + Try to document this file. + * automake.in (add_depend2): Adjust to these changes. + +2001-01-31 Akim Demaille + * automake.in (%factored_dependencies): New. (file_contents): Use it. (handle_phony): Rename as... @@ -9,7 +17,7 @@ 2001-01-31 Akim Demaille * automake.in: maintainer-check fixes. - + 2001-01-31 Akim Demaille * automake.in (file_contents): Rewrite: instead of trying to parse diff --git a/automake.in b/automake.in index d5152ac..980adc2 100755 --- a/automake.in +++ b/automake.in @@ -2956,12 +2956,13 @@ sub add_depend2 { local ($lang) = @_; + # Get information on $LANG. + my $pfx = $language_map{"$lang-autodep"}; + my $fpfx = ($pfx eq '') ? 'CC' : $pfx; + my $flag = $language_map{"$lang-flags"}; + # First include code for ordinary objects. - local ($key) = $lang . '-autodep'; local ($xform, $ext); - - local ($pfx) = $language_map{$key}; - local ($fpfx) = ($pfx eq '') ? 'CC' : $pfx; $xform = &transform ('PFX' => $pfx, 'FPFX' => $fpfx); $xform .= $seen_objext ? 's/^OBJEXT//;' : 's/^OBJEXT.*$//;'; @@ -2972,12 +2973,16 @@ sub add_depend2 # target. In this case we don't want to include the generic code. if ($use_dependencies) { - local ($xform1) = ($xform - . &transform ('BASE' => '$*', - 'SOURCE' => '$<', - 'OBJ' => '$@', - 'LTOBJ' => '$@', - 'OBJOBJ' => '$@')); + my $compile = '$(' . $pfx . 'COMPILE)'; + my $ltcompile = '$(LT' . $pfx . 'COMPILE)'; + my $xform1 = ($xform + . &transform ('BASE' => '$*', + 'SOURCE' => '$<', + 'OBJ' => '$@', + 'LTOBJ' => '$@', + 'OBJOBJ' => '$@', + 'COMPILE' => $compile, + 'LTCOMPILE' => $ltcompile)); foreach $ext (&lang_extensions ($lang)) { @@ -3008,10 +3013,11 @@ sub add_depend2 $obj = $list[$i + 2]; $i += 3; - local ($flag) = $language_map{$lang . '-flags'}; - local ($val) = "(${derived}_${flag}"; - ($rule = $language_map{$lang . '-compile'}) =~ - s/\(AM_$flag/$val/; + my $val = "${derived}_${flag}"; + + my $obj_compile = $language_map{"$lang-compile"}; + $obj_compile =~ s/\(AM_$flag/\($val/; + my $obj_ltcompile = '$(LIBTOOL) --mode=compile ' . $obj_compile; # Generate a transform which will turn suffix targets in # depend2.am into real targets for the particular objects we @@ -3020,16 +3026,14 @@ sub add_depend2 &file_contents ('depend2', $xform - . &transform ('$(' . $pfx . 'COMPILE)' - => $rule, - '$(LT' . $pfx . 'COMPILE)' - => '$(LIBTOOL) --mode=compile ' . $rule, + . &transform ('COMPILE' => $obj_compile, + 'LTCOMPILE' => $obj_ltcompile, # Handle source and obj transforms. - 'OBJ' => $obj . '.o', - 'OBJOBJ' => $obj . '.obj', - 'LTOBJ' => $obj . '.lo', - 'BASE' => $obj, - 'SOURCE' => $source) + 'OBJ' => $obj . '.o', + 'OBJOBJ' => $obj . '.obj', + 'LTOBJ' => $obj . '.lo', + 'BASE' => $obj, + 'SOURCE' => $source) # Generate rule for `.o'. . 's/^\@EXT\@\.o:/' . $obj . '.o: ' . $source . '/g;' # Maybe generate rule for `.lo'. Might be eliminated diff --git a/depend2.am b/depend2.am index 7e5f229..e14239c 100644 --- a/depend2.am +++ b/depend2.am @@ -1,5 +1,5 @@ ## automake - create Makefile.in from Makefile.am -## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000 +## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ## Free Software Foundation, Inc. ## This program is free software; you can redistribute it and/or modify @@ -16,22 +16,30 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. + +## This file is read several times: +## - once per language for generic compilation rules +## - once for each file which requires specific flags. +## +## It is worth noting that @AMDEP@ and @AMDEPBACKSLASH@ are not +## transformed by automake, they are AC_SUBST'ed. + @AMDEP@@FPFX@DEPMODE = @@FPFX@DEPMODE@ @EXT@.o: @AMDEP@ source='@SOURCE@' object='@OBJ@' libtool=no @AMDEPBACKSLASH@ @AMDEP@ depfile='$(DEPDIR)/@BASE@.Po' tmpdepfile='$(DEPDIR)/@BASE@.TPo' @AMDEPBACKSLASH@ @AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(@PFX@COMPILE) -c -o @OBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ + @COMPILE@ -c -o @OBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ LIBTOOL@EXT@.lo: LIBTOOL@AMDEP@ source='@SOURCE@' object='@LTOBJ@' libtool=yes @AMDEPBACKSLASH@ LIBTOOL@AMDEP@ depfile='$(DEPDIR)/@BASE@.Plo' tmpdepfile='$(DEPDIR)/@BASE@.TPlo' @AMDEPBACKSLASH@ LIBTOOL@AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ -LIBTOOL $(LT@PFX@COMPILE) -c -o @LTOBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ +LIBTOOL @LTCOMPILE@ -c -o @LTOBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ OBJEXT@EXT@.obj: OBJEXT@AMDEP@ source='@SOURCE@' object='@OBJOBJ@' libtool=no @AMDEPBACKSLASH@ OBJEXT@AMDEP@ depfile='$(DEPDIR)/@BASE@.Po' tmpdepfile='$(DEPDIR)/@BASE@.TPo' @AMDEPBACKSLASH@ OBJEXT@AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ -OBJEXT $(@PFX@COMPILE) -c -o @OBJOBJ@ `cygpath -w @SOURCE@` +OBJEXT @COMPILE@ -c -o @OBJOBJ@ `cygpath -w @SOURCE@` diff --git a/lib/am/depend2.am b/lib/am/depend2.am index 7e5f229..e14239c 100644 --- a/lib/am/depend2.am +++ b/lib/am/depend2.am @@ -1,5 +1,5 @@ ## automake - create Makefile.in from Makefile.am -## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000 +## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ## Free Software Foundation, Inc. ## This program is free software; you can redistribute it and/or modify @@ -16,22 +16,30 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. + +## This file is read several times: +## - once per language for generic compilation rules +## - once for each file which requires specific flags. +## +## It is worth noting that @AMDEP@ and @AMDEPBACKSLASH@ are not +## transformed by automake, they are AC_SUBST'ed. + @AMDEP@@FPFX@DEPMODE = @@FPFX@DEPMODE@ @EXT@.o: @AMDEP@ source='@SOURCE@' object='@OBJ@' libtool=no @AMDEPBACKSLASH@ @AMDEP@ depfile='$(DEPDIR)/@BASE@.Po' tmpdepfile='$(DEPDIR)/@BASE@.TPo' @AMDEPBACKSLASH@ @AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(@PFX@COMPILE) -c -o @OBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ + @COMPILE@ -c -o @OBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ LIBTOOL@EXT@.lo: LIBTOOL@AMDEP@ source='@SOURCE@' object='@LTOBJ@' libtool=yes @AMDEPBACKSLASH@ LIBTOOL@AMDEP@ depfile='$(DEPDIR)/@BASE@.Plo' tmpdepfile='$(DEPDIR)/@BASE@.TPlo' @AMDEPBACKSLASH@ LIBTOOL@AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ -LIBTOOL $(LT@PFX@COMPILE) -c -o @LTOBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ +LIBTOOL @LTCOMPILE@ -c -o @LTOBJ@ `test -f @SOURCE@ || echo '$(srcdir)/'`@SOURCE@ OBJEXT@EXT@.obj: OBJEXT@AMDEP@ source='@SOURCE@' object='@OBJOBJ@' libtool=no @AMDEPBACKSLASH@ OBJEXT@AMDEP@ depfile='$(DEPDIR)/@BASE@.Po' tmpdepfile='$(DEPDIR)/@BASE@.TPo' @AMDEPBACKSLASH@ OBJEXT@AMDEP@ $(@FPFX@DEPMODE) $(depcomp) @AMDEPBACKSLASH@ -OBJEXT $(@PFX@COMPILE) -c -o @OBJOBJ@ `cygpath -w @SOURCE@` +OBJEXT @COMPILE@ -c -o @OBJOBJ@ `cygpath -w @SOURCE@` -- 2.7.4