Useful Links
Computer Science
Other Tools and Technologies
Make Build Tool
1. Introduction to Build Automation and Make
2. Getting Started with Makefiles
3. Variables and Macros
4. Rules and Patterns
5. Functions
6. Conditional Processing
7. Managing Complex Projects
8. Advanced Topics and Best Practices
9. Make Beyond Compilation
Advanced Topics and Best Practices
Command-Line Options and Flags
File and Directory Options
-f file (Specify Makefile)
-C dir (Change Directory)
-I dir (Include Directory)
Execution Control Options
-n (Dry Run)
-k (Keep Going)
-S (Cancel Keep Going)
-j [N] (Parallel Execution)
-l [N] (Load Average Limit)
Build Behavior Options
-B (Unconditional Make)
-t (Touch Targets)
-q (Question Mode)
-W file (What If)
Information and Debugging Options
-d (Debug Output)
-p (Print Database)
-v (Version Information)
--trace
Variable and Environment Options
-e (Environment Override)
-i (Ignore Errors)
-s (Silent Mode)
Combining Multiple Flags
Flag Interaction Rules
Common Flag Combinations
Recipe Control and Formatting
Recipe Prefixes
@ (Suppress Command Echoing)
Selective Echo Suppression
Use Cases and Best Practices
- (Ignore Errors)
Error Handling Strategies
Conditional Error Ignoring
+ (Execute Regardless of -n)
Dry Run Exceptions
Essential Command Execution
Multiline Recipes
Line Continuation Syntax
Shell Behavior Across Lines
Variable Scope in Multiline Recipes
Complex Command Sequences
Recipe Execution Environment
Shell Selection
Environment Variable Inheritance
Working Directory Context
Advanced Rule Types
Double-Colon Rules
Syntax and Semantics
Multiple Rule Definitions
Use Cases and Limitations
Interaction with Single-Colon Rules
Order-Only Prerequisites
Definition and Syntax (|)
Use Cases
Directory Creation
Tool Dependencies
Configuration Dependencies
Interaction with Regular Prerequisites
Grouped Targets
Multiple Target Rules
Shared Recipe Execution
Target Synchronization
Debugging and Troubleshooting
Makefile Debugging Techniques
Using $(info) and $(warning)
Variable Value Inspection
Rule Execution Tracing
Dependency Analysis
Analyzing the Dependency Graph
Circular Dependency Detection
Missing Dependency Identification
Performance Analysis
Build Time Profiling
Bottleneck Identification
Parallel Build Optimization
Common Error Patterns
Syntax Errors
Missing Tab Characters
Undefined Variables
Circular Dependencies
File Permission Issues
Debugging Tools and Flags
--print-data-base Flag
--debug Options
Trace Output Analysis
Make Flavors and Compatibility
GNU Make
GNU-specific Features
Extension Functions
Advanced Capabilities
Version Differences
BSD Make
BSD Make Syntax
Differences from GNU Make
Compatibility Issues
Migration Strategies
POSIX Standard for Make
POSIX Compliance Requirements
Portable Makefile Writing
Feature Limitations
Cross-Platform Considerations
Other Make Implementations
Microsoft NMAKE
Solaris Make
Feature Comparison Matrix
Previous
7. Managing Complex Projects
Go to top
Next
9. Make Beyond Compilation