help-make
[Top][All Lists]
Advanced

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

Re: Recursive Make Considered Harmful (was: Re: executing a rule prior t


From: Philip Guenther
Subject: Re: Recursive Make Considered Harmful (was: Re: executing a rule prior to any targets?)
Date: Thu, 24 Oct 2002 00:43:46 -0700

gk <address@hidden> writes:
>Does your system allow specifying targets without a full path?
>In other words, it would be nice to type:
>$cd obj.platform/util/foo/; make bar.o

Well, for historical reasons related to how I developed it out the
original recursive make based system, the make is performed from the
source directory tree, not from the object directory tree.  Yes, yes,
this means VPATH doesn't work with the system.  That's fine with me
because it (manually) achieves the benefits of VPATH that we care
about.

As a result, the only 'local' (pathless) targets that it supports are
one for generating preprocessed C (with a .i suffix) from the original
source.  These aren't used in a normal build but are useful when trying
to figure out what that evil macro added by the other guys does or which
system .h file contains the garbage killing your nice pure code.  <wink>
To properly handle the dependencies when you type "make foo.i", I put
this in one of the master makefiles:

# Map pathless .i targets into absolute ones.
%.i: ${CURDIR}/%.i ;

Poof, make has the full path to match up with the ones in the dependecy
entries.

On the otherhand, there are no rules in this system for building .o
files in the source tree.  I suppose I could provide a similar rule for
mapping pathless .o targets into the corresponding targets in the object
tree, but we've been satisified with just letting make build the default
target for the local directory which will always require any modified
files in the local directory to be built.

That answer your question?


Philip Guenther




reply via email to

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