Skip to content

Latest commit

 

History

History
75 lines (52 loc) · 2.33 KB

README.md

File metadata and controls

75 lines (52 loc) · 2.33 KB

clue/make.php

A GNU Make clone written in pure PHP. Run your Makefiles no matter whether GNU make is available.

Table of contents

Why?

GNU Make is a build automation tool that automatically builds (executable) programs or libraries from source code by reading a Makefile which specifies how to derive the target program. Besides building target programs, this is also often used to help automating repetitive work, such as the program setup, test environment and build deployment.

Here's a simple Makefile with two build targets and a set of simple rules:

build:
	@echo -n .
	@sleep 1
	@echo -n .
	@sleep 1
	@echo -n .
	@sleep 1
	@echo OK

test:
	vendor/bin/phpunit

If you have GNU Make installed, you can simply execute the first target like this:

$ make build
...OK

However, not every system has GNU Make installed (think Docker containers, shared hosting, Windows machines etc.). That's where this project comes into play.

Once installed, you can simply execute the first target like this:

$ php vendor/bin/make.php build
...OK

You can reuse your existing Makefile without switching to a different build script language. Or in other words: Run your Makefiles no matter whether GNU make is available.

Install

A clue·access project

This project is currently under active development, you're looking at a temporary placeholder repository.

Do you want early access to my unreleased projects? You can either be patient and wait for general availability or consider becoming a sponsor on GitHub for early access.

Do you sponsor me on GitHub? Thank you for supporting sustainable open-source, you're awesome! The prototype is available here: https://github.com/clue-access/make.php.

Support open-source and join clue·access ❤️

License

This project will be released under the permissive MIT license.

Did you know that I offer custom development services and issuing invoices for sponsorships of releases and for contributions? Contact me (@clue) for details.