automake-patches
[Top][All Lists]
Advanced

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

Re: possible fix for PR/315


From: Alexandre Duret-Lutz
Subject: Re: possible fix for PR/315
Date: Tue, 23 Apr 2002 10:22:05 +0200
User-agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.2 (i386-debian-linux-gnu)

>>> "Richard" == Richard Boulton <address@hidden> writes:

[...]

 Richard> I note that the information required to do the proper fix for this is
 Richard> available [in handle_single_transform_list]

[...]

 Richard> The function containing this is reasonably close in
 Richard> calling sequence to &subobjname: 

Unfortunately, it is run later, inside several loops, where it
seems hard to extract.  Besides, it's not complete: you only
know whether the single variable currently processed by
&handle_single_transform_list will involve per-target flags.

Duplicating object variable at this level will not
work on:

  baz_SOURCES = $(foo)
  foo_SOURCES = $(foo)
  foo_CXXFLAGS = -mumble
  foo = a.c $(bar)
  bar = b.cc

we can detect that c.cc requires foo_CXXFLAGS in one case, hence
generate

  am_object_1 = b.o      # For baz
  am_object_2 = foo-b.o  # For foo

but when processing foo we don't know that foo_CXXFLAGS is
involved, so will probably define

  am_object_3 = a.o $(am_object_1)
*and*
  am_object_3 = a.o $(am_object_2)

(and output only the last definition, I guess).


Before sending this patch, I tried to make a function to answer
the question "is this target using per-target flags?".  This
means

  - expanding the {,dist_,nodist}{,EXTRA}*_SOURCES recursively
  - applying suffix rules to all people, gathering all languages
    used 
  - looking for flags definition for each language

I stopped when I realized I was duplicating too much code from
&handle_single_transform_list :(


Now, there might be another way.  That would be to define the
am_object_N variable after &handle_single_transform_list as run.
This looks very simple to do; maybe even simpler than what we
have now:  

Let's forget about substitutions, targets, and per-target flags.
Basically, we just need am_object_N variables which are unique
for their *content*.  If we define them after
&handle_single_transform_list has run, we know the content and
can check whether there is a variable we can reuse, or if we
need to create another one.

I'll try to do that tonight.

Thanks!
-- 
Alexandre Duret-Lutz




reply via email to

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