Abstract
The make program is widely used in large software projects to reduce compilation time. make skips source files that would have compiled to the same result as in the previous build. (Or so it is hoped.) The crucial issue of safeness of omitting a brute-force build is addressed by defining a semantic model for make. Safeness is shown to hold if a set of criteria are satisfied, including soundness, fairness, and completeness of makefile rules. Conditions are established under which a makefile can safely be modified by deleting, adding, or rewriting rules.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R. Adams, W. Tichy, and A. Weinert. The cost of selective recompilation and environment processing. ACM Transactions on Software Engineering and Methodology, Vol. 3(1), January 1994, 3–28.
Demers, A., Reps, T., and Teitelbaum, T. Incremental evaluation for attribute grammars with application to syntax-directed editors. Proc. Eighth ACM Symposium on Principles of Programming Languages, Williamsburg, VA, January, 1981, 105–116.
M. Elsman. Static Interpretation of Modules. Proc. International Conference on Functional Programming, September 99, Paris, France.
S. I. Feldman. Make-a program for maintaining computer programs. Software-Practice and Experience, Vol. 9, 1979, 255–265.
R. Ford and D. Sawamiphakdi. A Greedy Concurrent Approach to Incremental Code Generation. Proc. 12th Annual ACM Symposium on Principles of Programming Languages, New Orleans, Louisiana, 1985, 165–178.
Institute of Electrical and Electronics Engineers. Information technology-Portable Operating System Interface (POSIX). ANSI/IEEE Std. 1003.2, 1993, Part 2: Shell and Utilities, Volume 1, 1013–1020.
N. Jørgensen. Safeness of Make-Based Incremental Recompilation. URL: http://www.ruc.dk/~nielsj/research/papers/make.pdf.
K. Marriott and H. Søndergaard. Analysis of constraint logic programs, Proc. North American Conference on Logic Programming, Austin, 1988, 521–540.
P. Miller. Recursive make considered harmful. URL: http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html.
The Mozilla build process is described at the URL: http://www.mozilla.org/tinderbox.html in the context of a presentation of the build tool “Tinderbox”.
P.J. Nicklin. Mkmf-makefile editor. UNIX Programmer’s Manual 4.2 BSD, June 1983.
A. Oram and S. Talbott. Managing projects with make. O’Reilly, 1993.
R. Quinton. Make and Makefiles. URL: http://www.ibiblio.org/pub/docs/unix-tutorials/courses/make.ps.
S. Robbins. JavaDeps-automatic dependency tracking for Java. http://www.cs.mcgill.ca/~stever/software/JavaDeps/. The JavaDeps tool is a SourceForge project available at http://sourceforge.net/projects/jmk.
D.A. Schmidt. Denotational semantics-a methodoogy for language development. Allyn and Bacon, 1986.
R. Stallman and R. McGrath. GNU Make, Version 3.77. Free Software Foundation, 1998.
W. F. Ticky. Smart recompilation. ACM Transactions on Programming Languages and Systems, Vol. 8(3), July 1986, 273–291.
K. Walden. Automatic Generation of Make Dependencies. Software-Practice and Experience, Vol. 14(6), June 1984, 575–585.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jørgensen, N. (2002). Safeness of Make-Based Incremental Recompilation. In: Eriksson, LH., Lindsay, P.A. (eds) FME 2002:Formal Methods—Getting IT Right. FME 2002. Lecture Notes in Computer Science, vol 2391. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45614-7_8
Download citation
DOI: https://doi.org/10.1007/3-540-45614-7_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43928-8
Online ISBN: 978-3-540-45614-8
eBook Packages: Springer Book Archive