Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
B

bake

> 数据库
Open source

mbake is a Makefile formatter and linter. It only took 50 years!

756 stars0 likes0 views
WebsiteGitHub

About

mbake is a Makefile formatter and linter. It only took 50 years!

mbake

Features

  • Smart formatting: Tabs for recipes, consistent spacing, line continuation cleanup
  • Intelligent .PHONY detection: Automatically identifies and manages phony targets
  • Syntax validation: Ensures Makefiles are valid before and after formatting
  • Configurable rules: Customize behavior via {XDG_CONFIG_HOME}/bake.toml
  • CI/CD ready: Check mode for automated formatting validation
  • VSCode extension: Full editor integration available

Installation

# Install from PyPI
pip install mbake

# Or install VSCode extension
# Search for "mbake Makefile Formatter" in VSCode Extensions

Quick Start

# Format a Makefile
mbake format Makefile

# Check if formatting is needed (CI/CD mode)
mbake format --check Makefile

# Validate Makefile syntax
mbake validate Makefile

# Initialize configuration
mbake init

Usage

Basic Commands

# Format files
mbake format Makefile                   # Format single file
mbake format --check Makefile           # Check formatting (CI/CD)
mbake format --diff Makefile            # Show changes without modifying

# Validate syntax
mbake validate Makefile                 # Check Makefile syntax with GNU make

# Configuration
mbake init                              # Create config file
mbake config                            # Show current settings
mbake update                            # Update to latest version

Key Options

  • --check: Check formatting without making changes (perfect for CI/CD)
  • --diff: Show what changes would be made
  • --backup: Create backup before formatting
  • --validate: Validate syntax after formatting
  • --timeout: Timeout to use for syntax checks
  • --config: Use custom configuration file

Configuration

Create a config file with mbake init. Key settings:

…

Smart .PHONY Detection

mbake intelligently detects phony targets by analyzing recipe commands:

# These are automatically detected as phony
test:
 npm test

clean:
 rm -f *.o

deploy:
 ssh user@server 'systemctl restart app'

# This creates a file, so it's NOT phony
myapp.o: myapp.c
 gcc -c myapp.c -o myapp.o

Enable auto-insertion in your config:

[formatter]
auto_insert_phony_declarations = true

Examples

Before and After

# Before: Inconsistent spacing and indentation
CC:=gcc
CFLAGS= -Wall -g
SOURCES=main.c \
  utils.c \
    helper.c

all: $(TARGET)
    $(CC) $(CFLAGS) -o $@ $^

clean:
    rm -f *.o
# After: Clean, consistent formatting
CC := gcc
CFLAGS = -Wall -g
SOURCES = main.c \
  utils.c \
  helper.c

all: $(TARGET)
	$(CC) $(CFLAGS) -o $@ $^

clean:
	rm -f *.o

Disable Formatting

Use special comments to disable formatting in specific regions:

# bake-format off
CUSTOM_FORMAT= \
      1 \
  45678 \
#bake-format on

CI/CD Integration

# GitHub Actions example
- name: Check Makefile formatting
  run: |
    pip install mbake
    mbake format --check Makefile

Exit codes: 0 (success), 1 (needs formatting), 2 (error)

Contributing

Contributions welcome! See CONTRIBUTING.md for details.

# Development setup
git clone https://github.com/ebodshojaei/bake.git
cd mbake
pip install -e ".[dev]"
pytest  # Run tests

License

MIT License - see LICENSE for details.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Pythonfmtformatterformattingmake

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category数据库
PricingOpen source

> Related tools

P
PostgreSQL
功能强大的开源关系型数据库
R
Redis
内存数据结构存储,常用作缓存与队列
M
MySQL
广泛使用的开源关系型数据库