Skip to content

matthewdeanmartin/makemake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

    python3 demo.py
  2. Install Package: Install the hello_world package

    make install-core  # Install core tools (handles conflicts)
  3. Run All Validations: Execute the complete validation pipeline

    make validate-makefile
  4. Get Help: See all available targets

    make help
  5. Test Package: Run basic package tests

    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

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •