It will look for all first level child `makefile`, and run assigned target. This
is equivalent to running:
```shell
for i in */makefile; do
make -C $i $target
done
```
Shared logic can be imported via `include ../lib/shared.mk`
Helper functions include 3 current opperations
1. mk_link:: This will create a symbolic link if the file doesn't already exist.
2. rm_link:: Will remove the link if it is a symlink.
3. report :: This color codes the status of a message and adds a leading symbol.
report also can be called with `LAST_RETURN=$? report "message"`
and will expand this to be either `report info "message"` Or `report error
"message"` based on the last return value.
Current status are info, warn, and error.
I'm going to use Mako for notifications for now. Dunst looks like it still has a
couple of issues that need to get resolved before I use it with Wayland.
This will case `make update` to run everytime there is a successful
merge. This will include everytime the is a non no-op merge. This *will
not run* if:
1. There is no changes.
2. There is a conflict in the merge.
Additionally the make install set will now sym link the post-merge hook.
Autoload is used by vim.plug, but the makefile will pull fresh copy of
the vim.plug script on merge (after any non no-op pull).
Backup will keep. Well backups. Never check these in.