diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-05-12 12:55:31 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-05-12 12:55:31 +0200 |
| commit | 92d8e2abb667347b732d5cfe02206b36e8c6a126 (patch) | |
| tree | 72f0283ee3d82c66ff45d6926d43a35741778f42 /README.md | |
| parent | 7e4feff7dd221d730dff2ae262ae4be7357d43a7 (diff) | |
| download | makext-92d8e2abb667347b732d5cfe02206b36e8c6a126.tar.gz | |
Typo fixes in readme and added Alternative tools section
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 42 |
1 files changed, 27 insertions, 15 deletions
@@ -3,12 +3,11 @@ Makext is a collection of useful extensions for Makefiles, aimed at simplifying and enhancing the functionality of Make-based projects. These extensions provide additional features and convenience functions to -improve the build process, manage dependencies, and streamline common -tasks. +improve the overall usage of GNU Make as a task runner. > [!NOTE] > This extensions are abusing GNU Make in some sense since it was not -> meant to really be a task runner. Keep that in mind. However, dispite +> meant to really be a task runner. Keep that in mind. However, despite > that, I constantly find myself using it as such. ### Extensions @@ -16,7 +15,7 @@ tasks. | Extension | Description | |-------------|-----------------------------------------------------| | help | Displays all targets with a comment in help format. | -| assure | Check for the existance of programs on a machine. | +| assure | Check for the existence of programs on a machine. | | environment | Loads environmental variables from other files. | Additional features: @@ -56,11 +55,11 @@ help: .help ## Help extension -This is all that is needed to start using `makext`. One of the extensions -is `.help` which displays all the targets in the `Makefile` and their -descriptions which are provided as comments next to the target definition. +One of the extensions is `.help` which displays all the targets in the +`Makefile` and their descriptions which are provided as comments next +to the target definition. -Lets check how and example `Makefile` would look. It +Lets check how and example `Makefile` would look like. It is recommended to use `.PHONY` for targets that are not actual files. In the example below I am not doing that though, but it is wise to follow that rule. Check [4.6 Phony @@ -85,7 +84,8 @@ run-tests: @echo "Running tests..." ``` -This will give us under we execute command `make` the following result. +This will give us the following result when we execute command `make` +without any arguments. ```text $ make @@ -98,7 +98,8 @@ Targets: - Targets without defined comment next to the target will be ignored from help list. In this case `run-tests` is missing from the list. - Targets that start with `.` will also be ignored. -- Prerequisites in targets will be ommited from the result. +- Prerequisites in targets will be omitted from the result. See how + `clean-cache` is missing from `build-app` target. ## Description & License information @@ -112,13 +113,16 @@ Same goes for license information. Provide this information by creating If these variables are not present this information will not be displayed in the help. +Description and license information is also formatted to max 75 characters +per row. + > [!IMPORTANT] > Variables `MEX_DESCRIPTION` and `MEX_LICENSE` must be defined before you > include `makext.mk` to your `Makefile`. This is needed because the way > GNU Make is parsing Makefiles. ```make -MEX_DESCRIPTION="This provides some additional tools for makefiles." +MEX_DESCRIPTION="This provides some additional tools for this project." MEX_LICENSE="Released under the BSD two-clause license, see the LICENSE file for more information." include makext.mk @@ -164,14 +168,14 @@ build-app: .assure `.assure` prerequisite will loop over the list of programs defined in `MEX_ASSURE` variable and in case one is missing will exit `make` with -status code error 1. This will stop executing the recipe and therefore +error status code 1. This will stop executing the recipe and therefore not execute anything in target `build-app`. ## Environment extension This extension helps loading of additional environmental files in your project. The files should have environmental variables defined in the -usual way. Seperate each file by a space and that is about it. +usual way. Separate each file by a space and that is about it. If a file is missing this will break the execution of make and exit with status code 1. @@ -190,7 +194,7 @@ MEX_ENVIRONMENT="local.env second.env" include makext.mk demo-envars: - @echo "Envrionment variables" + @echo "Environment variables" @echo " HOME: $(HOME)" @echo " TERM: $(TERM)" @echo " ENV: $(MEX_ENVIRONMENT)" @@ -202,7 +206,15 @@ After that they can be used in your recipes like all the other variables you have. They will however override variables the shell already has defined. -## Acknowledgement +## Alternative tools + +- https://github.com/casey/just +- https://github.com/ruby/rake +- https://github.com/taskctl/taskctl +- https://github.com/go-task/task +- https://github.com/pydoit/doit + +## Acknowledgment - https://stackoverflow.com/a/59087509 |
