Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!uw-beaver!sumax!polari!6sceng!blm From: blm@6sceng.UUCP (Brian Matthews) Newsgroups: comp.software-eng Subject: Re: Anyone know of a "better" 'make' than vanilla System-V's?. Message-ID: <533@6sceng.UUCP> Date: 3 Oct 90 20:09:16 GMT References: <1990Oct3.000440.5275@hades.ausonics.oz.au> Organization: Six Sigma CASE, Inc. Lines: 32 In article <1990Oct3.000440.5275@hades.ausonics.oz.au> greyham@hades.ausonics.oz.au (Greyham Stoney) writes: |* The Makefile is assumed to reside in the current directory and each Makefile |must contain the rules saying how to make objects, since make's |built-in rules aren't right. You don't mention what version of System V you're running, but I believe make from Version 2 on up has understood the include statement. I can't recall the exact syntax, but at my last job we had a file containing all of the special rules we needed, then each makefile just included it. For things that couldn't be handled by inference rules, we came up with a set of variables that were set in the include file and used by all of the makefiles. This worked pretty well, and allowed changes to be made in one place. It also allowed our integration group to have a different included file that did things they needed to do, but to use everyone's makefiles unchanged. |* Dependancies must be explicitly listed in the Makefile; and they are never |kept up to date: No ammount of forcing people is going to keep them up |to date, and it's a pretty pointless exercise anyway. [...] |Why can't the dependancies be discerned from the source file at |make time?. You can do this with make as well. There are a number of ways, but you basically want the makefile to depend on all of the sources. If a source file changes, run a program that extracts include dependencies and builds a new makefile. |Are there any make-like systems that conquer these two basic problems?. Both can be handled fairly easily by make already. -- Brian L. Matthews blm@6sceng.UUCP