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.
Installation
pip install mkmake
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.2.tar.gz
(9.4 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.2.tar.gz.
File metadata
- Download URL: mkmake-0.1.2.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bf75168f240792f0419c5b4aba2dc07e08a53d77439f4c6f191bb0f52552700
|
|
| MD5 |
9f6566a609dbe892e4e7bf0f6c4cc11e
|
|
| BLAKE2b-256 |
99b70c14f75ec7f75b13f072f18ed3dbda02110deed7f8e7fe5902db3f1f00f6
|
File details
Details for the file mkmake-0.1.2-py3-none-any.whl.
File metadata
- Download URL: mkmake-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.3 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 |
5f6d622951c1a2a318ee4df68be49f3e5ab288e512ce491ac14497c66f7dbadd
|
|
| MD5 |
372307516fb0fc64eec80682c391aa3d
|
|
| BLAKE2b-256 |
bfac7f23d9a798e50e50f3bb778da611059b7fcacf1f6c39f85a6eecfabaca78
|