Bring basic Makefile
support to any system with Python.
Simply install with pip install py3make
then execute py3make
in a directory containing a Makefile
.
py3make
works on any platform (Linux, Windows, Mac, FreeBSD, Solaris/SunOS).
py3make
does not require any library to run, just a vanilla Python
interpreter will do.
The goal is not to reproduce a whole implementation of GNU make
, but only a very fast and succinct
commands runner. This is often used to ease running tests and deployments locally, before uploading to
a continuous integration/continuous deployment system such as GitHub Workflows.
Do not be fooled by the lack of updates: this module is very stable and is very frequently (daily) used in most of my Python projects.
This repository is a "fork" by the original author to regain full editing permissions stolen by a co-author, to update this package with full freedom.
Table of contents
pip install py3make
Pull and install in the current directory:
pip install -e git+https://github.com/lrq3000/py3make.git
The list of all changes is available either on GitHub's Releases: or on crawlers such as allmychanges.com.
Simply install then execute py3make -p
to list commands and py3make <command>
to use a command, in a directory containing a Makefile
.
For compatibility, ensure:
- Every alias is preceded by @[+]make (eg: @make alias)
- A maximum of one @make alias or command per line
Sample makefile compatible with py3make
:
PY=python -m py_compile
.PHONY:
all
test
install
compile
all:
@+make test
@make install
test:
nosetest
install:
python setup.py\
install
compile:
$(PY) test.py
circle:
# of life
circle
empty:
# this is a comment
If you get a "Permission Denied" error, please check if maybe your antivirus may be preventing the launch of compiled python scripts, if the Scripts subdirectory is in the PATH, or other issues with the Python install.
py3make --help
All source code is hosted on GitHub. Contributions are welcome.
See the CONTRIBUTE file for more information.
The main developers, ranked by surviving lines of code (git fame -wMC), are: