Improve usage documentation

This commit is contained in:
Glenn Y. Rolland 2021-07-23 15:46:18 +02:00
parent ac5a30448d
commit d70b96a071

View file

@ -10,18 +10,48 @@ A drop-in collection of makefiles libraries for your projects
## Usage
* Add this repository as a GIT submodule of your project
```
git submodule add https://github.com/glenux/makefiles-forever .makefiles
```
* Include needed features in the end of your makefile
```
# [...]
Add this repository as a GIT submodule of your project
-include .makefiles/featureA.mk
-include .makefiles/featureB.mk
```
## Good practices
```shell-session
$ git submodule add https://github.com/glenux/makefiles-forever .makefiles
```
Include needed features in the end of your makefile
```makefile
# [...]
-include .makefiles/featureA.mk
-include .makefiles/featureB.mk
```
Declare API variables (ex: `*_SRC_DIR`, `*_DEST_DIR`) for each module
```makefile
# Configuration for featureA from Makefiles Forever
FEATUREA_SRC_DIR=/path/to/somewhere
FEATUREA_DEST_DIR=/some/other/path
# Configuration for featureB from Makefiles Forever
FEATUREA_SRC_DIR=/another/path
FEATUREB_DEST_DIR=/a/different/one
```
Use pre-defined targets as dependencies of your targets:
```makefile
build: featureA-build
build: featureB-build
clean: featureA-clean
clean: featureB-clean
```
Feature files usually define more targets than just build and clean, and you
can use those too!
## Good practices for coding .mk files
* Keep task parallelism in mind
* Make all targets available from root makefile