Generate project and meta Makefiles with a Python API
Project description
mkmake
mkmake is a Python package for generating Makefiles for multiple related C projects from code.
Features
- Generate project and meta Makefiles from Python project definitions.
- Model mixed project types with a shared API (
CProject,YYProject,TestProject). - Discover and wire header dependencies for C projects.
- Inject dependency include paths and library linkage across project boundaries.
- Configure build variants through
debugandtestgeneration flags.
Quick Start
from mkmake import make_projects
from mkmake.projects import CProject, TestProject, YYProject
Define projects in a dictionary, then call make_projects(...) with build flags:
projects = {
"core": CProject("core", output_name="libcore.a"),
"parser": YYProject("parser", output_name="libparser.a", depends=["core"]),
"tests": TestProject("tests", test_command="python3 {0} {1}", depends=["core", "parser"]),
}
make_projects(projects, debug=True, test=True)
Full usage example: examples/generic_make.py
Limitations
- package-only API surface
- no CLI in package code
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mkmake-0.1.1.tar.gz
(9.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkmake-0.1.1.tar.gz.
File metadata
- Download URL: mkmake-0.1.1.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e49101b6e49d2354c7e63d6bea7ba9d6571b7ef0b09cd5648a2735f425b53835
|
|
| MD5 |
481c696fde3949169eda2a3d10dbfcba
|
|
| BLAKE2b-256 |
dd4cf91dc6fd5317151e3a995d34906d69bba2887735c2e3ffe3e24b9b515414
|
File details
Details for the file mkmake-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mkmake-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0c63a498c661cf33f11b607c195cfcd5e181d8d5021c5bcf3b680c554b194a9
|
|
| MD5 |
0783303a718c9c004847ec16a02f9f07
|
|
| BLAKE2b-256 |
f5303d9ca9841e35d529cbb431f49a9b997e88d80149b1001679b1578cc1d2dd
|