On 08/02/13 19:48, Mark Galeck wrote:
> --- On Fri, 2/8/13, Michael Stahl <[email protected]> wrote:
> 
>>> [mark@grid003 ~]$ cat Makefile
>>> bar1: bar
>>>   touch $@
>>>
>>> bar: foo
>>> foo : baz
>>>   touch foo bar
>>> [mark@grid003 ~]$ touch bar1 foo bar
>>> [mark@grid003 ~]$ touch baz
>>> [mark@grid003 ~]$ make bar1
>>> touch foo bar
>>> touch bar1
>>
>> but how often do users invoke a particular file target
>> manually?
>>
>>  [0] /tmp > make
>>  touch foo bar
>>  [0] /tmp > make
>>  touch bar1
>>
>> is a result far more likely to happen in practice with your
>> Makefile.

actually the above should do the same for both of us, since the default
target is "bar1" there so it shouldn't make a difference if you invoke
"make" or "make bar1"

> Michael,  I am sorry for being so dumb apparently, but I still don't see it.  
> Can you tell me the sequence of steps to reproduce the problem?  

apparently the problem is tricky and depends on the exact dependency
structure and the invoked target:

> [mark@grid003 ~]$ cat Makefile
> all: foo bar bar1
> 
> bar1: bar
>         touch $@
> 
> bar: foo
> foo : baz
>         touch foo bar

with this ^ Makefile and make (3.82, Fedora18) and make-3.81 built from
source:

[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > make bar1
touch foo bar
[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > make
touch foo bar
touch bar1
[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > ~/stuff/make-3.81/make
touch foo bar
touch bar1
[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > ~/stuff/make-3.81/make bar1
touch foo bar

with "all" not depending on every target it's different:

[0] /tmp > sed -i "s/foo bar bar1/bar1/" Makefile
[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > ~/stuff/make-3.81/make
touch foo bar
[0] /tmp > touch foo bar bar1 && touch baz
[0] /tmp > make
touch foo bar

regards,
 michael


_______________________________________________
Help-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-make

Reply via email to