] For large UNIX projects, the traditional method of building the ] project is to use recursive make. On some projects, this results in ] build times which are unacceptably large, when all you want to do is ] change one file. In examining the source of the overly long build ] times, it became evident that a number of apparently unrelated ] problems combine to produce the delay, but on analysis all have the ] same root cause. ] This paper explores an number of problems regarding the use of ] recursive make, and shows that they are all symptoms of the same ] problem. Symptoms that the UNIX community have long accepted as a ] fact of life, but which need not be endured any longer. These ] problems include recursive makes which take ``forever'' to work out ] that they need to do nothing, recursive makes which do too much, or ] too little, recursive makes which are overly sensitive to changes in ] the source code and require constant Makefile intervention to keep ] them working. I'm increasingly of the opinion that make by itself is an inadequate tool. This inadequacy is evidenced by the existence of autoconf, automake and libtool. All of this functionality could be provided by a few perl modules and you would have Makefile.pl or something... Recursive make Considered Harmful |