Skip to main content

A makefile parser

Project description

AlmostMake

A pure-python, not-quite-POSIX-compliant implementation of make.

Usage

AlmostMake installs the almake command-line utility.

Running almake in a directory with a file named Makefile causes almake to satisfy the first target defined in that file.

For example, say Makefile contains the following:

# A makefile!

# This is the first target.
# (Pretend `echo 'Hello, world'`
# is indented with a single tab)
firstTarget:
    echo 'Hello, world'

# firstTarget isn't the name of a real file!
# Mark it as PHONY. We need this because if 
# firstTarget were to be a file in the same
# folder as Makefile, its existence (and lack
# of newer dependencies) would cause `almake`
# to do nothing!
.PHONY: firstTarget

almake then runs the commands associated with firstTarget. Each line is given its own shell.

almake also makes available the almost_make module! Documentation on this is coming, but for now, check out the source on GitHub!

Installation

From PyPI...

AlmostMake is on the Python Package Index! To install it, run:

$ python3 -m pip install almost-make-personalizedrefrigerator

To update it,

$ python3 -m pip install --upgrade almost-make-personalizedrefrigerator

From GitHub...

As AlmostMake is hosted on GitHub, it can be installed by cloning:

$ git clone https://github.com/personalizedrefrigerator/AlmostMake.git
$ cd AlmostMake
$ make install

You may also need to install setuptools, wheel, and twine. See Packaging Python Projects for a brief overview of these packages. They can be installed as follows:

$ python3 -m pip install --user --upgrade setuptools wheel twine

Testing

To test AlmostMake, run,

$ make test

Note, however, that make test depends on make install!

At present, it has only been tested on Debian and Ubuntu with Python 3.7 and 3.8. It may work with other operating systems and Python versions, but this is not guaranteed.

If you find that AlmostMake works on a platform not listed here, post an issue or comment on this project's GitHub repository! Pull requests and feedback are welcome!

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

almost_make-0.0.9.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

almost_make-0.0.9-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file almost_make-0.0.9.tar.gz.

File metadata

  • Download URL: almost_make-0.0.9.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for almost_make-0.0.9.tar.gz
Algorithm Hash digest
SHA256 8fdf40144142a959509c86ae0743568d08e57b1eb43937a58db97520ce2f32d6
MD5 31986720eccbf86e4f989824abf5ab6d
BLAKE2b-256 7914cd039935d91efa343699c1ca3a45e210e25ae5258a1303e3909cea143744

See more details on using hashes here.

File details

Details for the file almost_make-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: almost_make-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for almost_make-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 16b5ef1237f566a41c087f8014c604c3343823f7e2ed01ff4e12fb2bd029a35b
MD5 41038d8cd24e169d742db5d85ee76c74
BLAKE2b-256 4ae0909486ec05d408f67c319f06ec54c0c4ed7eee0a60abe6f3e30d0b8decdc

See more details on using hashes here.

Supported by

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