Use these Makefile "puzzle" pieces by making your main Makefile
look like this:
ifeq (,$(wildcard support-firecloud/Makefile))
INSTALL_SUPPORT_FIRECLOUD := $(shell git submodule update --init --recursive support-firecloud)
ifneq (,$(filter undefine,$(.FEATURES)))
undefine INSTALL_SUPPORT_FIRECLOUD
endif
endif
include support-firecloud/repo/mk/generic.common.mk
include support-firecloud/repo/mk/...
# ------------------------------------------------------------------------------
... include here custom EXE variables, which call which/npm-which ...
... include here custom variables ...
... include here support-firecloud variables (configuration) ...
# ------------------------------------------------------------------------------
... include here your custom targets ...
The pieces MUST be included in this order:
- common (e.g. generic.common.mk)
- deps
- build
- check
- test
- release
- misc
NOTE All are split into:
- docs
- includes
- variables
- targets
The high-level colletions of pieces are as follows:
- core.common.mk - the "bare minimum" for generic repositories
- generic.common.mk - core.common.mk + the "must have" for generic repositories
- js.common.mk - generic.common.mk + the "must have" for JavaScript repositories
- node.common.mk - js.common.mk + the "must have" for NodeJS repositories
- py.common.mk - generic.common.mk + the "must have" for Python repositories
NOTE It is only *.common.mk
makefiles that can include
. All others are atomic.
Addon pieces by type of repository:
- generic
- JavaScript/NodeJS
- Python
For a full list of available pieces click here.