Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.unix.programmer > #266

Re: Makefile dependency graphs

From Rainer Weikusat <rweikusat@mssgmbh.com>
Newsgroups comp.unix.programmer
Subject Re: Makefile dependency graphs
Date 2011-04-29 20:59 +0100
Message-ID <87liyssu9y.fsf@sapphire.mobileactivedefense.com> (permalink)
References (3 earlier) <838c970a-2b0d-41a8-a029-f5ec491bdbd1@v36g2000prm.googlegroups.com> <835fb0fd-4cd5-4caf-9d8d-c5022400d9fb@d19g2000prh.googlegroups.com> <IU.D20110429.T015530.P403.Q1@J.de.Boyne.Pollard.localhost> <0olp88-1qn.ln1@wilbur.25thandClement.com> <83a3dddf-e528-42ec-9156-14c62d652bd3@d26g2000prn.googlegroups.com>

Show all headers | View raw


Joshua Maurice <joshuamaurice@gmail.com> writes:

[...]

> So, with that out of the way, let me talk about why I think make's
> directed acyclic dependency graph of file timestamps is inherently
> broken. The best is by example. I've found 3 distinct problems that
> require some interesting "makefile coding" to get incrementally
> correct.
>
> 1- Remove a node from a wildcard list. Ex: delete a cpp file. (I
> assume your makefiles use wildcards to compile all the cpp files in a
> directory. If they don't, then I think your build system has usability
> issues.) A naive make build system will not notice that the
> corresponding object file ought to be deleted, and the corresponding
> linked target ought to be rebuilt. Remember, (naive) make only
> rebuilds when there's a prereq with a newer file timestamp than a
> target. A full clean rebuild would produce different results.

There is no reason to delete the object file insofar the build is
concerned. The problem here is really that insufficient information is
provided to make: All it 'knows' about is that 'all files in directory
a' need to be compiled and that 'all object code file in
directory b' should be linked together. If some human does something
which violates the precondition the Makefile depends on, it won't (and
can't) work correctly anymore.

> 2- Add a node which hides another on a search path. Ex: add a header
> file which "hides" another header file on an include path. If you add
> a new header file which "obscures" another, (naive) make won't detect
> this, and a full clean rebuild would produce different results.

This is the same as the first 'issue': Precondition correctnes of
Makefile depends on violated by user.

> 3- Change compilation options. A naive make solution won't trigger a
> rebuild if you add or remove a cpp preprocessor command line macro
> define. Again, a full clean rebuild will have different results than
> your incremental build.

And again. 

Back to comp.unix.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-25 04:54 -0700
  Re: Makefile portability Leclerc <gordan.sikic.remove@this.inet.hr> - 2011-04-26 08:51 +0200
    Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-26 04:25 -0700
    Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-04-26 16:18 +0100
      Re: Makefile portability William Ahern <william@wilbur.25thandClement.com> - 2011-04-26 11:19 -0700
        Re: Makefile portability Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-27 18:53 +0100
          Re: Makefile portability "Charlie Gibbs" <cgibbs@kltpzyxm.invalid> - 2011-04-27 14:14 -0800
            Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-30 01:07 -0700
              Re: Makefile portability Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-30 13:45 +0100
            Re: Makefile portability Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-30 13:14 +0100
            Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-28 00:02 -0700
              Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-28 20:43 +0100
                Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-28 13:57 -0700
                Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-29 11:18 +0100
                Re: Makefile portability Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-29 20:43 +0100
                Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-30 11:38 +0100
              Re: Makefile portability and file utility programs Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-29 20:27 +0100
                Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-29 15:26 -0700
                Re: Makefile portability Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-29 23:45 +0100
                Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-30 11:26 +0100
      Re: Makefile portability Leclerc <gordan.sikic.remove@this.inet.hr> - 2011-04-27 09:28 +0200
  Re: Makefile portability Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-26 11:28 -0700
    Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-04-26 21:41 +0100
      Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-26 23:17 -0700
        Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-04-27 14:08 +0100
      Re: Makefile portability Leo Havmøller <rtxleh@nospam.nospam> - 2011-04-27 13:15 +0200
        Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-27 05:50 -0700
          Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-28 20:36 +0100
            Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-28 14:12 -0700
              Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-29 11:03 +0100
                Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-29 09:30 -0700
      Re: Makefile portability Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-27 15:08 -0700
        Re: Makefile portability Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-27 15:17 -0700
          Re: Makefile dependency graphs gordonb.d36yw@burditt.org (Gordon Burditt) - 2011-04-30 02:02 -0500
            Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-30 00:36 -0700
          Re: Makefile dependency graphs Michael Press <rubrum@pacbell.net> - 2011-04-30 01:13 -0700
            Re: Makefile dependency graphs William Ahern <william@wilbur.25thandClement.com> - 2011-04-30 11:30 -0700
              Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-30 15:44 -0700
              Re: Makefile dependency graphs Michael Press <rubrum@pacbell.net> - 2011-05-03 11:48 -0700
          Re: Makefile dependency graphs Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-30 12:59 +0100
          Re: Makefile dependency graphs Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-29 02:55 +0100
            Re: Makefile dependency graphs William Ahern <william@wilbur.25thandClement.com> - 2011-04-28 19:52 -0700
              Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 02:10 -0700
                Re: Makefile dependency graphs Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-04-29 20:59 +0100
                Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 15:21 -0700
                Re: Makefile dependency graphs Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM> - 2011-04-29 20:08 +0100
                Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 15:08 -0700
                Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 16:11 -0700
              Re: Makefile dependency graphs William Ahern <william@wilbur.25thandClement.com> - 2011-04-29 16:03 -0700
                Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 16:48 -0700
                Re: Makefile dependency graphs Joshua Maurice <joshuamaurice@gmail.com> - 2011-04-29 16:54 -0700
  Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-04-28 20:33 +0100
    Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-04-28 14:20 -0700
    Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-04-30 18:03 +0100
      Re: Makefile portability William Ahern <william@wilbur.25thandClement.com> - 2011-04-30 12:01 -0700
      Re: Makefile portability Rui Maciel <rui.maciel@gmail.com> - 2011-05-01 12:33 +0100
        Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-05-02 03:44 +0100
          Re: Makefile portability William Ahern <william@wilbur.25thandClement.com> - 2011-05-01 21:27 -0700
          Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-05-02 00:11 -0700
      Re: Makefile portability Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-05-02 13:41 +0100
        Re: Makefile portability Freedom on the Oceans <alex.buell@munted.org.uk> - 2011-05-02 14:36 +0100
          Re: Makefile portability tm <thomas.mertes@gmx.at> - 2011-05-02 08:09 -0700
        Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-05-02 23:49 +0100
          Re: Makefile portability Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-05-03 10:41 +0100
            Re: Makefile portability Nobody <nobody@nowhere.com> - 2011-05-05 08:30 +0100

csiph-web