Skip to main content

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 debug and test generation 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkmake-0.1.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for mkmake-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e49101b6e49d2354c7e63d6bea7ba9d6571b7ef0b09cd5648a2735f425b53835
MD5 481c696fde3949169eda2a3d10dbfcba
BLAKE2b-256 dd4cf91dc6fd5317151e3a995d34906d69bba2887735c2e3ffe3e24b9b515414

See more details on using hashes here.

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

Hashes for mkmake-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0c63a498c661cf33f11b607c195cfcd5e181d8d5021c5bcf3b680c554b194a9
MD5 0783303a718c9c004847ec16a02f9f07
BLAKE2b-256 f5303d9ca9841e35d529cbb431f49a9b997e88d80149b1001679b1578cc1d2dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page