Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.unix.programmer > #266
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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