automake
[Top][All Lists]
Advanced

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

Re: Automatic dependency tracking when using non-depcomp tools


From: Karl Berry
Subject: Re: Automatic dependency tracking when using non-depcomp tools
Date: Tue, 22 Nov 2022 18:32:51 -0700

Hi Hans - first, congratulations on getting this to work at all.
I don't recall anyone else undertaking this. I'm afraid I don't have any
particular insights, but just so you know someone read your mail:

      Question: Is it OK for me to hook into ./$(DEPDIR)/ at all?
                I could use just some file in $(builddir), after all.

I don't see a specific problem with using $(DEPDIR), yet if you can use
your own directory in builddir, that seems safer. Just in principle.

      Question: Is *.cdep a good name? I want to avoid name collisions.

I don't know of anything else that uses .cdep (not that I would,
necessarily), and have nothing against it myself. OTOH, using xml seems
more unusual than targeting C, so maybe .xmldep or even .xmlcdep, unless
the long extension is irritating in some way.

      Question: Is it ok for me to use $(am__mv)?

It seems no am__ variables are documented. So, although in practice I
expect it would be fine, yet since it is merely "mv -f", in your place I
would be tempted to define my own variable for it.

I have one other comment, about the dummy file that is created:

    provide an explicit recipe to create a dummy dep file to

In a relatively recent change (not in 1.16.5), Automake's dep setup was
changed to create an empty file instead of one with the line "# dummy".
In large enough projects, this turned out to make a noticeable speed
difference (having to create a regular file and not just an inode).
I'll append the ChangeLog entry.

Happy hacking,
Karl

2022-05-23  Jan Engelhardt  <jengelh@inai.de>

        deps: create empty file instead of dummy file.

        This change is per an automake thread, see both before and after:
        https://lists.gnu.org/archive/html/automake/2022-05/msg00006.html

        * lib/am/depend.am ($(am__depfiles_remade)): create empty files
        for dependencies instead of files with a line '# dummy'. Turns out
        this is noticeably faster.
        * THANKS: update Jan's email address.
        * NEWS: mention this.




reply via email to

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