https://github.com/matthewdeanmartin/makemake
quality gates for Makefile
https://github.com/matthewdeanmartin/makemake
automation build-tools ci-cd devops makefile programming quality-gates
Last synced: about 7 hours ago
JSON representation
quality gates for Makefile
- Host: GitHub
- URL: https://github.com/matthewdeanmartin/makemake
- Owner: matthewdeanmartin
- License: mit
- Created: 2025-09-29T18:05:44.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-09-29T18:57:16.000Z (4 months ago)
- Last Synced: 2026-01-19T04:24:39.875Z (15 days ago)
- Topics: automation, build-tools, ci-cd, devops, makefile, programming, quality-gates
- Language: Makefile
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# makemake
Quality gates for Makefile
## Hello World Python Package with Comprehensive Makefile Validation
This repository contains a complete hello_world Python package with a comprehensive Makefile that includes all the tools necessary to validate a Makefile.
### Package Structure
```
.
├── hello_world/ # Python package
│ └── __init__.py # Package with hello() function
├── pyproject.toml # Modern Python packaging configuration
├── Makefile # Comprehensive validation targets
├── demo.py # Demonstration script
└── README.md # This file
```
### Makefile Validation Tools
The Makefile includes targets for all these validation tools:
- **almost-make**: Check Makefile compatibility with make alternatives
- **make2help**: Generate help documentation from Makefile
- **make-help**: Help system validation
- **make-help-helper**: Help utilities
- **makefile-checker**: Validate Makefile syntax and best practices
- **shellcheck-makefile**: Check shell scripts in Makefile with shellcheck
- **shellcheck-py**: Check Python scripts with shellcheck-py
- **mbake**: Makefile build tool validation
### Usage
1. **Quick Demo**: Run the demonstration script
```bash
python3 demo.py
```
2. **Install Package**: Install the hello_world package
```bash
make install-core # Install core tools (handles conflicts)
```
3. **Run All Validations**: Execute the complete validation pipeline
```bash
make validate-makefile
```
4. **Get Help**: See all available targets
```bash
make help
```
5. **Test Package**: Run basic package tests
```bash
make test
```
### Key Features
- **Graceful Fallbacks**: All validation tools have fallback behavior when not installed
- **Dependency Management**: Resolves conflicts between make-help and mbake through optional dependencies
- **Comprehensive Pipeline**: Single target (`validate-makefile`) runs all validation tools
- **Development Workflow**: Includes clean, build, test, and format targets
- **Self-Documenting**: Auto-generated help from target descriptions
### Available Targets
- `help` - Show help message
- `all` - Install dependencies, validate Makefile, and run tests
- `install` - Install package with all available tools
- `install-core` - Install core validation tools (no conflicts)
- `test` - Run basic package tests
- `validate-makefile` - Run all Makefile validation tools
- `clean` - Clean build artifacts
- `build` - Build the package
- `show-structure` - Display package structure
### Individual Tool Targets
Each validation tool has its own target for granular control:
- `almost-make`, `make2help`, `make-help`, `make-help-helper`
- `makefile-checker`, `shellcheck-makefile`, `shellcheck-py`, `mbake`
The Makefile demonstrates best practices for:
- Tool availability checking
- Graceful error handling
- Comprehensive documentation
- Modular validation pipeline
- Cross-platform compatibility