Skip to main content

Generate project and meta Makefiles with a Python API

Project description

mkmake

PyPI version

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 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.2.tar.gz (9.4 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.2-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

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

Hashes for mkmake-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8bf75168f240792f0419c5b4aba2dc07e08a53d77439f4c6f191bb0f52552700
MD5 9f6566a609dbe892e4e7bf0f6c4cc11e
BLAKE2b-256 99b70c14f75ec7f75b13f072f18ed3dbda02110deed7f8e7fe5902db3f1f00f6

See more details on using hashes here.

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

Hashes for mkmake-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f6d622951c1a2a318ee4df68be49f3e5ab288e512ce491ac14497c66f7dbadd
MD5 372307516fb0fc64eec80682c391aa3d
BLAKE2b-256 bfac7f23d9a798e50e50f3bb778da611059b7fcacf1f6c39f85a6eecfabaca78

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