GNU Make项目管理(第三版,影印版)
GNU Make项目管理(第三版,影印版)
Robert Mecklenburg
出版时间:2005年06月
页数:304
众所周知make工具是Unix和其他操作系统上最悠久的特色。make在二十世纪七十年代被发明,现在仍被作为大多数的编程项目的核心编译辅助工具在使用。它甚至可以构建Linux内核。本书第三版中,你将知道为何在许多新的竞争者出现的情况下这个工具仍在项目构建软件中占据头等位置。
make的思路很简单:当你改变了源文件并想重新构建程序或者其他的输出文件时,make检查时间戳看哪些改变了,并按要求重新构建这些文件,而不需要浪费时间重新构建其他文件。但是在这个基本的原则之上,make提供了丰富的选项集合,让你能够操作多个目录,为不同平台构建不同的版本,能够以其他的方式定制你的构建过程。
本书第三版主要讨论了GNU版的make,它目前已经成为工业标准。书中仔细探讨了GNU make的各种扩展。GNU make非常流行,因为它是自由软件,为几乎每个平台包括Microsoft Windows(作为自由项目Cygwin的一部分)都提供了不同的版本。
Robert Mecklenburg——本书第三版的作者,在不同的平台和语言下使用make已经有数十年了。在本书中,他热心地列出了怎样让你的构建尽可能地有效,怎样减少维护、避免错误,并且让你彻底理解make在干什么。关于C++和Java的章节为使用这些语言的项目提供了优化的makefile条目。作者甚至提供了一个关于构建这本书的makefile的讨论。
  1. Foreword
  2. Preface
  3. Part I. Basic Concepts
  4. 1. How to Write a Simple Makefile
  5. Targets and Prerequisites
  6. Dependency Checking
  7. Minimizing Rebuilds
  8. Invoking make
  9. Basic Makefile Syntax
  10. 2. Rules
  11. Explicit Rules
  12. Variables
  13. Finding Files with VPATH and vpath
  14. Pattern Rules
  15. The Implicit Rules Database
  16. Special Targets
  17. Automatic Dependency Generation
  18. Managing Libraries
  19. 3. Variables and Macros
  20. What Variables Are Used For
  21. Variable Types
  22. Macros
  23. When Variables Are Expanded
  24. Target-and Pattern-Specific Variables
  25. Where Variables Come From
  26. Conditional and include Processing
  27. Standard make Variables
  28. 4. Functions
  29. User-Defined Functions
  30. Built-in Functions
  31. Advanced User-Defined Functions
  32. 5. Commands
  33. Parsing Commands
  34. Which Shell to Use
  35. Empty Commands
  36. Command Environment
  37. Evaluating Commands
  38. Command-Line Limits
  39. Part II. Advanced and Specialized Topics
  40. 6. Managing Large Projects
  41. Recursive make
  42. Nonrecursive make
  43. Components of Large Systems
  44. Filesystem Layout
  45. Automating Builds and Testing
  46. 7. Portable Makefiles
  47. Portability Issues
  48. Cygwin
  49. Managing Programs and Files
  50. Working with Nonportable Tools
  51. Automake
  52. 8. C and C++
  53. Separating Source and Binary
  54. Read-Only Source
  55. Dependency Generation
  56. Supporting Multiple Binary Trees
  57. Partial Source Trees
  58. Reference Builds,Libraries,and Installers
  59. 9. Java
  60. Alternatives to make
  61. A Generic Java Makefile
  62. Compiling Java
  63. Managing Jars
  64. Reference Trees and Third-Party Jars
  65. Enterprise JavaBeans
  66. 10. Improving the Performance of make
  67. Benchmarking
  68. Identifying and Handling Bottlenecks
  69. Parallel make
  70. Distributed make
  71. 11. Example Makefiles
  72. The Book Makefile
  73. The Linux Kernel Makefile
  74. 12. Debugging Makefiles
  75. Debugging Features of make
  76. Writing Code for Debugging
  77. Common Error Messages
  78. Part III. Appendixes
  79. A. Running make
  80. B. The Outer Limits
  81. C. GNU Free Documentation License—GNU Project—Free Software
  82. Foundation (FSF)
  83. Index
书名:GNU Make项目管理(第三版,影印版)
作者:Robert Mecklenburg
国内出版社:东南大学出版社
出版时间:2005年06月
页数:304
书号:7-5641-0045-1
原版书出版商:O'Reilly Media
Robert Mecklenburg
 
Robert Mecklenburg在1977年还是学生的时候就开始使用Unix了,他是一位有23年经验的专业程序设计师。他的项目经验始于1982年在NASA使用Unix Version 7作为开发环境。1991年,Robert于犹他州州立大学取得计算机科学博士学位。之后,他在许多领域工作过,范围从机械计算机辅助设计到生物信息学,这让他能够将C++、Java和Lisp的广泛经验应用在make项目管理的许多问题上。
Robert Mecklenburg began using Unix as a student in 1977 and has been program-ming professionally for 23 years.His make experience started in 1982 at NASA with Unix Version 7. Robert received his PhD 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 brings his extensive experience in C++, Java, and Lisp to bear on the problems of project management with make.
 
 
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.