Software build systems : principles and experience
“This book represents a thorough and extensive treatment of the software build process including the choices, benefits, and challenges of a well designed build process. I recommend it not only to all software build engineers but to all software developers since a well designed build process is key t...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
[Place of publication not identified]
Addison Wesley
2011
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629261806719 |
Tabla de Contenidos:
- Cover
- CONTENTS
- PREFACE
- Why Do Build Systems Become Complex?
- The True Cost of a Build System
- The Focus of This Book
- Who Should Read This Book?
- How This Book Is Organized
- Summary
- ACKNOWLEDGMENTS
- ABOUT THE AUTHOR
- PART I: THE BASICS
- Chapter 1 BUILD SYSTEM OVERVIEW
- What Is a Build System?
- Components of a Build System
- The Build Process and Build Description
- How a Build System Is Used
- Build System Quality
- Summary
- Chapter 2 A MAKE-BASED BUILD SYSTEM
- Calculator Example
- Creating a Simple Makefile
- Simplifying the Makefile
- Additional Build Targets
- Using a Framework
- Summary
- Chapter 3 THE RUNTIME VIEW OF A PROGRAM
- Executable Programs
- Libraries
- Configuration and Data Files
- Distributed Programs
- Summary
- Chapter 4 FILE TYPES AND COMPILATION TOOLS
- C/C++
- Java
- C#
- Other File Types
- Summary
- Chapter 5 SUBTARGETS AND BUILD VARIANTS
- Building Subtargets
- Building Different Editions of the Software
- Building Different Target Architectures
- Summary
- PART II: THE BUILD TOOLS
- Chapter 6 MAKE
- The GNU Make Programming Language
- Real-World Build System Scenarios
- Praise and Criticism
- Similar Tools
- Summary
- Chapter 7 ANT
- The Ant Programming Language
- Real-World Build System Scenarios
- Praise and Criticism
- Similar Tools
- Summary
- Chapter 8 SCons
- The SCons Programming Language
- Real-World Build System Scenarios
- Praise and Criticism
- Similar Tools
- Summary
- Chapter 9 CMAKE
- The CMake Programming Language
- Real-World Build System Scenarios
- Praise and Criticism
- Similar Build Tools
- Summary
- Chapter 10 ECLIPSE
- The Eclipse Concepts and GUI
- Real-World Build System Scenarios
- Praise and Criticism
- Similar Build Tools
- Summary
- PART III: ADVANCED TOPICS
- Chapter 11 DEPENDENCIES.
- The Dependency Graph
- The Problem with Bad Dependencies
- Step 1: Computing the Dependency Graph
- Step 2: Determining Which Files Are Out-of-Date
- Step 3: Sequencing the Compilation Steps
- Summary
- Chapter 12 BUILDING WITH METADATA
- Debugging Support
- Profiling Support
- Coverage Support
- Source Code Documentation
- Unit Testing
- Static Analysis
- Adding Metadata to a Build System
- Summary
- Chapter 13 SOFTWARE PACKAGING AND INSTALLATION
- Archive Files
- Package-Management Tools
- Custom-Built GUI Installation Tools
- Summary
- Chapter 14 VERSION MANAGEMENT
- What Should Be Version-Controlled
- What Should Not Be in the Source Tree
- Version Numbering
- Summary
- Chapter 15 BUILD MACHINES
- Native and Cross-Compilation
- Centralized Development Environments
- Open-Source Development Environments
- GNU Autoconf
- Summary
- Chapter 16 TOOL MANAGEMENT
- Rules for Managing Tools
- Writing Your Own Compilation Tools
- Summary
- PART IV: SCALING UP
- Chapter 17 REDUCING COMPLEXITY FOR END USERS
- Build Frameworks
- Reasons to Avoid Supporting Multiple Variants
- Various Ways to Reduce Complexity
- Scheduling and Staffing Build System Changes
- Summary
- Chapter 18 MANAGING BUILD SIZE
- The Problem with Monolithic Builds
- Component-Based Software
- People and Process Management
- Apache Ivy
- Chapter 19 FASTER BUILDS
- Measuring Build System Performance
- Build Avoidance: Eliminating Unnecessary Rebuilds
- Parallelism
- Reducing Disk Usage
- Summary
- REFERENCES
- INDEX.