Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!ufqtp!bernhold From: bernhold@qtp.ufl.edu (David E. Bernholdt) Newsgroups: comp.software-eng Subject: Do people really use Make? Message-ID: <634@orange.qtp.ufl.edu> Date: 11 Aug 89 02:45:13 GMT Reply-To: bernhold@qtp.ufl.edu (David E. Bernholdt) Organization: University of Florida Quantum Theory Project Lines: 53 I guess the subject says most of it. Do people use the generic unix make utility to build programs? What alternatives are available/in use? I've read about cake -- I'm sure there must be others. My situation is probably not unique: My group maintains a research code of > 300,000 lines. It presently runs on many different hardware/OS combinations, as many non-unix as unix. The "master" source is kept on a single machine and "remote" machines have pre-processed copies of the source which are compilable on that hardware/OS. As you might imagine, making sure all of the changes a propagated to all machines properly can be a real nightmare. I am trying to develop a set of makefiles which are general (I don't want to spend my life tailoring makefiles for every program tha comes along) and have the ability to 1) generate an executable from either un- or pre-processed source (for unix-based machines) NOTE: In some cases, this will involve making a number of different executables even from a single pre-processed source. For example, a Sun network where you need SPARC, Sun3-FPA and Sun3-68881 executables. 2) generate a source "update" for non-unix machines (and probably a script for the OS which will build the new/changed pieces and make a new executable to go with it) The code is mainly fortran, but I would like the makefiles to be able to handle C, shell, etc. as well. A colleague (sp?) of mine developed a pretty general set of makefiles and a "generator" for them. It satisfies (1) pretty well, but is inadequate for (2), and does not readily admit of other languages. He and I are working on an improved version, and the more I try to make a clean, general makefile, the more frustrated I get. Our initial decision was that we should stay with the generic make because that means one less "support tool" to port to each machine we want to run on. It is fairly important to us that a new installation of our code not require too much baggage, but I am becoming ever more strongly convinced that make is not the right tool for the job. What I know about cake, for example, tells me that it would handle this *much* better. I am interested in your own experiences -- with projects of this "scope" (its not the size of the code, but that we have to run it wherever we can get time) and with make and make replacements. Thanks... -- David Bernholdt bernhold@qtp.ufl.edu Quantum Theory Project bernhold@ufpine.bitnet University of Florida Gainesville, FL 32611 904/392 6365