help-make
[Top][All Lists]
Advanced

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

Re: VPATH/vpath: does it work for -l<libname> prereqs?


From: Maxim Nikulin
Subject: Re: VPATH/vpath: does it work for -l<libname> prereqs?
Date: Sat, 26 Nov 2005 22:07:20 +0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Debian/1.7.8-1

Dear John,

John Graham-Cumming wrote:

Specifically this happens in your case 1 (in the current directory) which you can get around by using $(CURDIR):

    bar: -lfoo ; touch $@
    $(CURDIR)/libfoo.so: ; touch $@
    vpath lib%.so $(CURDIR)

Thank you very much. It's a bright idea. It seems it can help with another my problem too:

Maxim Nikulin wrote:
3. Let's consider deep complicated recursive build (I wouldn't argue
about non-recursive approach and its advantages). Every package install
headers and libraries into intermediate directories so they are
available for other packages. I tried to speed up rebuilding by
minimizing of copy operations. The aim is not to copy a file in the
intermediate directory if it's not outdated. The rule

/intermediate/dir/libfoo.so: libfoo.so
    $(INSTALL) $< $@

leads to complains on circular dependence if /intermediate/dir is in vpath.
(To clarify I should add 'if libfoo.so isn't built yet')

If the absolute path is specified before libfoo.so the problem disappears. However real life is more complicated. I have to invoke alien makefiles during the build. They don't know about intermediate installation so I use 'cp --preserve=timestamps' as INSTALL. In case of such INSTALL in my rules make sometimes decides that it should reinstall file although it hasn't been updated. I think it's due Linux Virtual File System has subsecond precision of timestamps, but ext3 file system stores second only.

--
Maxim Nikulin




reply via email to

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