makefile-generation
Generate language-specific Makefile with common development targets
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Table of Contents
- Use When
- Standard Targets
- Python Makefile
- Rust Makefile
- TypeScript Makefile
- Workflow
- 1. Detect Language
- 2. Load Template
- 3. Collect Project Info
- 4. Render Template
- 5. Verify
- Customization
- Related Skills
Makefile Generation Skill
Generate a Makefile with standard development targets for Python, Rust, or TypeScript projects.
Use When
- Need a Makefile for a project without one
- Want to update Makefile with new targets
- Standardizing build automation across projects
Standard Targets
Python Makefile
Common targets:
-
help- Show available targets -
install- Install dependencies with uv -
lint- Run ruff linting -
format- Format code with ruff -
typecheck- Run mypy type checking -
test- Run pytest -
test-coverage- Run tests with coverage report -
check-all- Run all quality checks -
clean- Remove generated files and caches -
build- Build distribution packages -
publish- Publish to PyPI
Rust Makefile
Common targets:
-
help- Show available targets -
fmt- Format with rustfmt -
lint- Run clippy -
check- Cargo check -
test- Run tests -
build- Build release binary -
clean- Clean build artifacts
TypeScript Makefile
Common targets:
-
help- Show available targets -
install- Install npm dependencies -
lint- Run ESLint -
format- Format with Prettier -
typecheck- Run tsc type checking -
test- Run Jest tests -
build- Build for production -
dev- Start development server
Workflow
1. Detect Language
# Check for language indicators
if [ -f "pyproject.toml" ]; then
LANGUAGE="python"
elif [ -f "Cargo.toml" ]; then
LANGUAGE="rust"
elif [ -f "package.json" ]; then
LANGUAGE="typescript"
fi
Verification: Run the command with --help flag to verify availability.
2. Load Template
from pathlib import Path
template_path = Path("plugins/attune/templates") / language / "Makefile.template"
Verification: Run the command with --help flag to verify availability.
3. Collect Project Info
metadata = {
"PROJECT_NAME": "my-project",
"PROJECT_MODULE": "my_project",
"PYTHON_VERSION": "3.10",
}
Verification: Run the command with --help flag to verify availability.
4. Render Template
from template_engine import TemplateEngine
engine = TemplateEngine(metadata)
engine.render_file(template_path, Path("Makefile"))
Verification: Run the command with --help flag to verify availability.
5. Verify
make help
Verification: Run make --dry-run to verify build configuration.
Customization
Users can add custom targets after the generated ones:
# ============================================================================
# CUSTOM TARGETS
# ============================================================================
deploy: build ## Deploy to production
./scripts/deploy.sh
Verification: Run the command with --help flag to verify availability.
Related Skills
-
Skill(attune:project-init)- Full project initialization -
Skill(abstract:makefile-dogfooder)- Makefile testing and validation
Troubleshooting
Common Issues
Command not found Ensure all dependencies are installed and in PATH
Permission errors Check file permissions and run with appropriate privileges
Unexpected behavior
Enable verbose logging with --verbose flag
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-31
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!