Messages in this thread | | | Date | Sat, 26 Jan 2002 19:29:58 -0600 | Subject | Re: touch commands in Makefiles | From | Peter Samuelson <> |
| |
[Brendan Simon] > Why are header file touched in Makefiles ?
Dependency reasons. Header files depend on whatever CONFIG options they reference, and this is implemented via proxy header files. Say you have foo.c which includes foo_bar.h which makes a reference to CONFIG_BAR. The correct dep tree would be
foo.o: foo.c foo_bar.h CONFIG_BAR
but, as it turned out, it was easier / more efficient to represent the tree as
foo.o: foo.c foo_bar.h foo_bar.h: CONFIG_BAR
This second tree is not strictly correct -- foo_bar.h does *not* in fact need to be rebuilt when CONFIG_BAR changes -- so the 'touch' commands are there to make it work correctly.
If you don't like it (and most of us don't!), you should patch your tree with Keith Owens's 2.5 makefile structure, "kbuild-2.5". It fixes this problem (and many others). It is hoped that kbuild-2.5 will be merged with Linux 2.5 in the near future.
Peter - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |