Publisher: O'Reilly Media Released: November 2004 Pages: 302
The utility simply known as make is one of the most enduring features of both Unix and other operating systems. First invented in the 1970s, make still turns up to this day as the central engine in most programming projects; it even builds the Linux kernel. In the third edition of the classic Managing Projects with GNU make, readers will learn why this utility continues to hold its top position in project build software, despite many younger competitors. The premise behind make is simple: after you change source files and want to rebuild your program or other output files, make checks timestamps to see what has changed and rebuilds just what you need, without wasting time rebuilding other files. But on top of this simple principle, make layers a rich collection of options that lets you manipulate multiple directories, build different versions of programs for different platforms, and customize your builds in other ways. This edition focuses on the GNU version of make, which has deservedly become the industry standard. GNU make contains powerful extensions that are explored in this book. It is also popular because it is free software and provides a version for almost every platform, including a version for Microsoft Windows as part of the free Cygwin project. Managing Projects with GNU make, 3rd Edition provides guidelines on meeting the needs of large, modern projects. Also added are a number of interesting advanced topics such as portability, parallelism, and use with Java. Robert Mecklenburg, author of the third edition, has used make for decades with a variety of platforms and languages. In this book he zealously lays forth how to get your builds to be as efficient as possible, reduce maintenance, avoid errors, and thoroughly understand what make is doing. Chapters on C++ and Java provide makefile entries optimized for projects in those languages. The author even includes a discussion of the makefile used to build the book. |
-
Basic Concepts -
Chapter 1 How to Write a Simple Makefile - Targets and Prerequisites
- Dependency Checking
- Minimizing Rebuilds
- Invoking make
- Basic Makefile Syntax
-
Chapter 2 Rules - Explicit Rules
- Variables
- Finding Files with VPATH and vpath
- Pattern Rules
- The Implicit Rules Database
- Special Targets
- Automatic Dependency Generation
- Managing Libraries
-
Chapter 3 Variables and Macros - What Variables Are Used For
- Variable Types
- Macros
- When Variables Are Expanded
- Target- and Pattern-Specific Variables
- Where Variables Come From
- Conditional and include Processing
- Standard make Variables
-
Chapter 4 Functions - User-Defined Functions
- Built-in Functions
- Advanced User-Defined Functions
-
Chapter 5 Commands - Parsing Commands
- Which Shell to Use
- Empty Commands
- Command Environment
- Evaluating Commands
- Command-Line Limits
-
Advanced and Specialized Topics -
Chapter 6 Managing Large Projects - Recursive make
- Nonrecursive make
- Components of Large Systems
- Filesystem Layout
- Automating Builds and Testing
-
Chapter 7 Portable Makefiles - Portability Issues
- Cygwin
- Managing Programs and Files
- Working with Nonportable Tools
- Automake
-
Chapter 8 C and C++ - Separating Source and Binary
- Read-Only Source
- Dependency Generation
- Supporting Multiple Binary Trees
- Partial Source Trees
- Reference Builds, Libraries, and Installers
-
Chapter 9 Java - Alternatives to make
- A Generic Java Makefile
- Compiling Java
- Managing Jars
- Reference Trees and Third-Party Jars
- Enterprise JavaBeans
-
Chapter 10 Improving the Performance of make - Benchmarking
- Identifying and Handling Bottlenecks
- Parallel make
- Distributed make
-
Chapter 11 Example Makefiles - The Book Makefile
- The Linux Kernel Makefile
-
Chapter 12 Debugging Makefiles - Debugging Features of make
- Writing Code for Debugging
- Common Error Messages
-
Appendixes -
Appendix A Running make -
Appendix B The Outer Limits - Data Structures
- Arithmetic
-
Appendix C GNU Free Documentation License—GNU Project—Free Software Foundation (FSF) - 0. PREAMBLE
- 1. APPLICABILITY AND DEFINITIONS
- 2. VERBATIM COPYING
- 3. COPYING IN QUANTITY
- 4. MODIFICATIONS
- 5. COMBINING DOCUMENTS
- 6. COLLECTIONS OF DOCUMENTS
- 7. AGGREGATION WITH INDEPENDENT WORKS
- 8. TRANSLATION
- 9. TERMINATION
- 10. FUTURE REVISIONS OF THIS LICENSE
-
Colophon |
- Title:
- Managing Projects with GNU Make, 3rd Edition
- By:
- Robert Mecklenburg
- Publisher:
- O'Reilly Media
- Formats:
-
- Print
- Ebook
- Safari Books Online
- Print:
- November 2004
- Ebook:
- February 2009
- Pages:
- 302
- Print ISBN:
- 978-0-596-00610-5
- | ISBN 10:
- 0-596-00610-1
- Ebook ISBN:
- 978-0-596-10445-0
- | ISBN 10:
- 0-596-10445-6
|
-
Robert Mecklenburg Robert Mecklenburg began using Unix as a student in 1977 and has been programming professionally for 23 years. His make experience started in 1982 at NASA with Unix version 7. Robert received his Ph.D. in Computer Science from the University of Utah in 1991. Since then, he has worked in many fields ranging from mechanical CAD to bioinformatics, and he brings his extensive experience in C++, Java, and Lisp to bear on the problems of project management with make. View Robert Mecklenburg's full profile page. |
Colophon Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The animal on the cover of Managing Projects with GNU Make, Third Edition is a potto, a member of the loris family. A small primate native to the tropical forests of West Africa, the potto is 17 inches long and covered with dense, wooly, reddish brown fur. Its opposable thumbs give it an excellent grasp, leaving it well adapted to its life in the trees. The potto spends its days sleeping in crevices or holes in trees, emerging at night to hunt for food (insects, snails, and bats). Unlike many primates, the potto generally lives alone. Matt Hutchinson was the production editor for Managing Projects with GNU Make, Third Edition. Octal Publishing, Inc. provided production services. Johnna Dinse wrote the index. Adam Witwer, Jamie Peppard, and Darren Kelly provided quality control. Edie Freedman designed the cover of this book. The cover image is a 19th-century engraving from the Dover Pictorial Archive. Clay Fernald produced the cover layout with QuarkXPress 4.1 using Adobe's ITC Garamond font. David Futato designed the interior layout. This book was converted by Joe Wizda to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSans Mono Condensed. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand MX and Adobe Photoshop CS. |
|
Description
|
Table of Contents
|
Product Details
|
About the Author
|
Colophon
|
 |
|
 |
|
|
|
Recommended for You
|
Recently Viewed
|
 |
|
By David Lerner, Aaron Freimark, Tekserve Corporation
November 2002
Ebook: $7.99
Print & Ebook: $10.95
Print: $9.95
By Hans Bergsten
April 2004
Ebook: $39.99
Print & Ebook: $54.99
Print: $49.99
By Nancy Duarte
August 2008
Ebook: $27.99
Print & Ebook: $38.49
Print: $34.99
|
Customer Reviews
8/1/2011 (1 of 1 customers found this review helpful) By perlrtst from New York, NY About Me Developer, Sys Admin - Accurate
- Concise
- Easy to understand
- Helpful examples
- Well-written
6/15/2009 (1 of 3 customers found this review helpful) By marzvix from Undisclosed 9/2/2007 (2 of 2 customers found this review helpful) 3.0Useful book, but could be better By Anonymous from Undisclosed 5/2/2006 (2 of 2 customers found this review helpful) 2.0A flawed but useful book 4/1/2006 (1 of 2 customers found this review helpful) 4.0See, make is a real language. By Richard from Undisclosed 1/10/2006 (7 of 14 customers found this review helpful) By Anonymous from Undisclosed
|
|
|