summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--README.md62
-rw-r--r--makext.mk2
3 files changed, 64 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 1b94610..37470e7 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ help: .help
demo: .assure
-build-app: # Build the application
+build-app: clean-cache # Build the application
@echo "Building the application..."
clean-cache: # Clean the cache
diff --git a/README.md b/README.md
index 3176763..0b43054 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,68 @@ Features include:
- Automatic description inclusion in help message.
- Automatic license inclusion in help message.
+## How to use
+
+First you will need to download `makext.mk` file from the repository to
+the same directory where you have `Makefile`.
+
+```sh
+wget -O makext.mk https://github.com/mitjafelicijan/makext/raw/master/makext.mk
+```
+
+Now you can include it in your `Makefile`.
+
+```make
+include makext.mk
+
+help: .help
+```
+
+> [!IMPORTANT]
+> Make sure you create first target `help: .help` before any other
+> targets in your `Makefile`. GNU Make will execute first target if
+> no target provided as an argument when calling `make`.
+
+### 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.
+
+Lets check how and example `Makefile` would look.
+
+```make
+include makext.mk
+
+help: .help
+
+build-app: clean-cache # Build the application
+ @echo "Building the application..."
+
+clean-cache: # Clean the cache
+ @echo "Cleaning the cache..."
+
+deploy-prod: # Deploy to production
+ @echo "Deploying to production..."
+
+run-tests:
+ @echo "Running tests..."
+```
+
+This will give us under we execute command `make` the following result.
+
+```
+Targets:
+ build-app Build the application
+ clean-cache Clean the cache
+ deploy-prod Deploy to production
+ run-tests Run tests
+```
+
+- Targets without defined comments next to the target will be ignored
+ from help list.
+- Targets that start with `.` will also be ignored.
+
## Acknowledgement
- https://stackoverflow.com/a/59087509
diff --git a/makext.mk b/makext.mk
index cf25906..58bd23b 100644
--- a/makext.mk
+++ b/makext.mk
@@ -17,7 +17,7 @@ ifdef MK_DESCRIPTION
@echo "$(MK_DESCRIPTION)\n" | fmt
endif
@echo "Targets:"
- @grep -vE '^[[:space:]]' $(MAKEFILE_LIST) | grep -E '^.*:.* #' | sed -E 's/(.*):.*#(.*)/ \1###\2/' | column -t -s '###'
+ @grep -vE '^[[:space:]]' $(MAKEFILE_LIST) | grep -E '^.*:.* #' | sed -E 's/(.*):(.*):.*#(.*)/ \2###\3/' | column -t -s '###'
ifdef MK_LICENSE
@echo "\n$(MK_LICENSE)" | fmt
endif