🎯 Add help make target

This commit is contained in:
Ben Chatelain 2022-07-04 17:29:28 -06:00
parent f3ef215900
commit dc4b5f55e2

View file

@ -3,7 +3,6 @@
# mas # mas
# #
################################################################################ ################################################################################
# #
# Variables # Variables
@ -33,46 +32,60 @@ PLATFORM = $(ARCH)-apple-macosx
EXECUTABLE_DIRECTORY = ./.build/${PLATFORM}/debug EXECUTABLE_DIRECTORY = ./.build/${PLATFORM}/debug
endif endif
################################################################################
#
# Help
#
.DEFAULT_GOAL := help
.PHONY: help
help: MAKEFILE_FMT = " \033[36m%-25s\033[0m%s\n"
help: ## (default) Displays this message
@echo "Ditto main Makefile."
@echo ""
@echo "Targets:"
@grep -E '^[a-zA-Z0-9_-]*:.*?##' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?##"}; {printf $(MAKEFILE_FMT), $$1, $$2}'
@echo ""
@echo "Parameters:"
@grep -E '^[A-Z0-9_-]* ?\?=.*?##' $(MAKEFILE_LIST) | awk 'BEGIN {FS = " ?\\?=.*?##"}; {printf $(MAKEFILE_FMT), $$1, $$2}'
: # Hacky way to display a newline ##
################################################################################ ################################################################################
# #
# Targets # Targets
# #
# Prints versions of tools used by this Makefile.
.PHONY: version .PHONY: version
version: version: ## Prints versions of tools used by this Makefile.
xcodebuild -version xcodebuild -version
swiftenv version swiftenv version
swift --version swift --version
swift package tools-version swift package tools-version
.PHONY: init .PHONY: init
init: init: ## Installs tools.
- swiftenv install $(SWIFT_VERSION) - swiftenv install $(SWIFT_VERSION)
swiftenv local $(SWIFT_VERSION) swiftenv local $(SWIFT_VERSION)
.PHONY: bootstrap .PHONY: bootstrap
bootstrap: bootstrap: ## Installs tools.
script/bootstrap script/bootstrap
.PHONY: clean .PHONY: clean
clean: clean: ## Cleans built products.
script/clean script/clean
.PHONY: distclean
distclean: clean
.PHONY: updateHeaders .PHONY: updateHeaders
updateHeaders: updateHeaders: ## Updates private headers.
script/update_headers script/update_headers
.PHONY: build .PHONY: build
build: build: ## Builds the project.
script/build script/build
.PHONY: test .PHONY: test
test: build test: build ## Runs tests.
script/test script/test
# make run ARGS="asdf" # make run ARGS="asdf"
@ -81,54 +94,53 @@ run: build
${EXECUTABLE_DIRECTORY}/${CMD_NAME} $(ARGS) ${EXECUTABLE_DIRECTORY}/${CMD_NAME} $(ARGS)
.PHONY: install .PHONY: install
install: install: ## Installs the project.
script/install $(PREFIX) script/install $(PREFIX)
.PHONY: uninstall .PHONY: uninstall
uninstall: uninstall: ## Uninstalls the project.
script/uninstall script/uninstall
.PHONY: format .PHONY: format
format: format: ## Formats source code.
script/format script/format
.PHONY: lint .PHONY: lint
lint: lint: ## Lints source code.
script/lint script/lint
.PHONY: danger .PHONY: danger
danger: danger: ## Runs danger.
script/danger script/danger
# Builds bottles # Builds bottles
.PHONY: bottles .PHONY: bottles
bottles: bottles: ## Builds bottles.
script/bottle script/bottle
# Alias for bottles
.PHONY: bottle .PHONY: bottle
bottle: bottles bottle: bottles ## Alias for bottles
.PHONY: package .PHONY: package
package: build package: build ## Packages the project.
script/package script/package
.PHONY: packageInstall .PHONY: packageInstall
packageInstall: package packageInstall: package ## Installs the package.
script/package_install script/package_install
.PHONY: describe .PHONY: describe
describe: describe: ## Describes the Swift package.
swift package describe swift package describe
.PHONY: resolve .PHONY: resolve
resolve: resolve: ## Resolves SwiftPM dependencies.
swift package resolve swift package resolve
.PHONY: dependencies .PHONY: dependencies
dependencies: resolve dependencies: resolve ## Lists SwiftPM dependencies.
swift package show-dependencies swift package show-dependencies
.PHONY: update .PHONY: update
update: resolve update: resolve ## Updates SwiftPM dependencies.
swift package update swift package update