make-alpha
[Top][All Lists]
Advanced

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

Re: secondary expansion changes


From: Boris Kolpackov
Subject: Re: secondary expansion changes
Date: Thu, 24 Sep 2009 09:29:02 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

Hi Paul,

Paul D. Smith <address@hidden> writes:

> I'd really appreciate it if folks with larger, more complex secondary 
> expansion environments would give it a whirl.

There appears to be a regression in order-only prerequisite handling
when second expansion is on. Here is a test makefile, place it into
/tmp/:

.SECONDEXPANSION:

.PRECIOUS: %/.
%/.:
        mkdir -p $*

/tmp/%.so: | $$(dir $$@).
        @echo $^
        touch $@

all: /tmp/foo.so stamp

/tmp/foo.so: foo.o

foo.o:
        touch $@

.PHONY: stamp
stamp:
        @sleep 1
        touch stamp
        rm stamp

It shows two things that I also observe in my build system:

1. Order-only prerequisite ends up in $^ (see /tmp/%.so).

2. Order-only prerequisite is treated as a normal prerequisite. This
   is manifesting itself in rebuilds of /tmp/foo.so on subsequent
   executions of make even though both foo.o and foo.so are up to
   date. The reason for this is the stamp target which changes the
   directory timestamp after /tmp/foo.so has been updated. 

It looks like order-only prerequisites that are parsed during the
second expansion end up as normal prerequisite.


Boris




reply via email to

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