2020-05-29 05:09:24 +00:00
|
|
|
|
#
|
|
|
|
|
# Makefile
|
|
|
|
|
# mas
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# Variables
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
CMD_NAME = mas
|
|
|
|
|
SHELL = /bin/sh
|
2023-11-25 23:59:53 +00:00
|
|
|
|
PREFIX ?= $(shell brew --prefix)
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
# trunk
|
|
|
|
|
# SWIFT_VERSION = swift-DEVELOPMENT-SNAPSHOT-2020-04-23-a
|
|
|
|
|
|
|
|
|
|
# Swift 5.3
|
|
|
|
|
# SWIFT_VERSION = swift-5.3-DEVELOPMENT-SNAPSHOT-2020-04-21-a
|
|
|
|
|
|
2022-09-22 01:27:32 +00:00
|
|
|
|
SWIFT_VERSION = 5.7
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
# set EXECUTABLE_DIRECTORY according to your specific environment
|
|
|
|
|
# run swift build and see where the output executable is created
|
|
|
|
|
|
|
|
|
|
# OS specific differences
|
|
|
|
|
UNAME = ${shell uname}
|
2021-05-07 18:39:13 +00:00
|
|
|
|
ARCH = ${shell uname -m}
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
ifeq ($(UNAME), Darwin)
|
2021-05-07 18:39:13 +00:00
|
|
|
|
PLATFORM = $(ARCH)-apple-macosx
|
2020-05-29 05:09:24 +00:00
|
|
|
|
EXECUTABLE_DIRECTORY = ./.build/${PLATFORM}/debug
|
|
|
|
|
endif
|
|
|
|
|
|
2022-07-04 23:29:28 +00:00
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# Help
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
|
|
|
|
|
|
.PHONY: help
|
|
|
|
|
help: MAKEFILE_FMT = " \033[36m%-25s\033[0m%s\n"
|
|
|
|
|
help: ## (default) Displays this message
|
2022-09-22 01:27:32 +00:00
|
|
|
|
@echo "mas Makefile"
|
2022-07-04 23:29:28 +00:00
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Targets:"
|
|
|
|
|
@grep -E '^[a-zA-Z0-9_-]*:.*?##' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?##"}; {printf $(MAKEFILE_FMT), $$1, $$2}'
|
|
|
|
|
: # Hacky way to display a newline ##
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
#
|
2024-02-19 04:52:15 +00:00
|
|
|
|
# ℹ️ Info Targets
|
2020-05-29 05:09:24 +00:00
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
.PHONY: version
|
2022-07-04 23:29:28 +00:00
|
|
|
|
version: ## Prints versions of tools used by this Makefile.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
xcodebuild -version
|
2021-03-20 15:58:29 +00:00
|
|
|
|
swiftenv version
|
2020-05-29 05:09:24 +00:00
|
|
|
|
swift --version
|
2021-05-07 18:39:13 +00:00
|
|
|
|
swift package tools-version
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
.PHONY: init
|
2022-07-04 23:29:28 +00:00
|
|
|
|
init: ## Installs tools.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
- swiftenv install $(SWIFT_VERSION)
|
|
|
|
|
swiftenv local $(SWIFT_VERSION)
|
|
|
|
|
|
2024-02-19 04:52:15 +00:00
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# 👢 Bootstrap
|
|
|
|
|
#
|
|
|
|
|
|
2020-05-29 05:09:24 +00:00
|
|
|
|
.PHONY: bootstrap
|
2022-07-04 23:29:28 +00:00
|
|
|
|
bootstrap: ## Installs tools.
|
2024-03-30 17:03:55 +00:00
|
|
|
|
script/bootstrap -f
|
|
|
|
|
|
|
|
|
|
.PHONY: bootstrap-update
|
|
|
|
|
bootstrap-update: ## Upgrades and installs tools.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/bootstrap
|
|
|
|
|
|
2024-02-19 04:52:15 +00:00
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# 👩🏻💻 Development Targets
|
|
|
|
|
#
|
|
|
|
|
|
2020-05-29 05:09:24 +00:00
|
|
|
|
.PHONY: clean
|
2022-07-04 23:29:28 +00:00
|
|
|
|
clean: ## Cleans built products.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/clean
|
|
|
|
|
|
2024-02-19 04:52:15 +00:00
|
|
|
|
.PHONY: lint
|
|
|
|
|
lint: ## Lints source code.
|
|
|
|
|
script/lint
|
|
|
|
|
|
|
|
|
|
.PHONY: format
|
|
|
|
|
format: ## Formats source code.
|
|
|
|
|
script/format
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
|
|
|
|
.PHONY: build
|
2022-07-04 23:29:28 +00:00
|
|
|
|
build: ## Builds the project.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/build
|
|
|
|
|
|
|
|
|
|
.PHONY: test
|
2022-07-04 23:29:28 +00:00
|
|
|
|
test: build ## Runs tests.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/test
|
|
|
|
|
|
|
|
|
|
# make run ARGS="asdf"
|
|
|
|
|
.PHONY: run
|
|
|
|
|
run: build
|
|
|
|
|
${EXECUTABLE_DIRECTORY}/${CMD_NAME} $(ARGS)
|
|
|
|
|
|
2024-02-19 06:08:13 +00:00
|
|
|
|
.PHONY: update-headers
|
|
|
|
|
update-headers: ## Updates private macOS headers.
|
2024-02-19 04:52:15 +00:00
|
|
|
|
script/update_headers
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# 🕊️ Swift Package Targets
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
.PHONY: describe
|
|
|
|
|
describe: ## Describes the Swift package.
|
|
|
|
|
swift package describe
|
|
|
|
|
|
|
|
|
|
.PHONY: resolve
|
|
|
|
|
resolve: ## Resolves SwiftPM dependencies.
|
|
|
|
|
swift package resolve
|
|
|
|
|
|
|
|
|
|
.PHONY: dependencies
|
|
|
|
|
dependencies: resolve ## Lists SwiftPM dependencies.
|
|
|
|
|
swift package show-dependencies
|
|
|
|
|
|
|
|
|
|
.PHONY: update
|
|
|
|
|
update: resolve ## Updates SwiftPM dependencies.
|
|
|
|
|
swift package update
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
#
|
|
|
|
|
# 🚀 Release Targets
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
.PHONY: build-universal
|
|
|
|
|
build-universal: ## Builds a "fat" universal binary.
|
|
|
|
|
script/build --universal
|
|
|
|
|
|
2020-05-29 05:09:24 +00:00
|
|
|
|
.PHONY: install
|
2024-02-19 04:52:15 +00:00
|
|
|
|
install: build ## Installs the binary.
|
2020-07-30 12:24:38 +00:00
|
|
|
|
script/install $(PREFIX)
|
2020-05-29 05:09:24 +00:00
|
|
|
|
|
2023-11-29 03:25:43 +00:00
|
|
|
|
.PHONY: install-universal
|
|
|
|
|
install-universal: build-universal ## Installs a universal binary.
|
|
|
|
|
script/install --universal
|
|
|
|
|
|
2020-05-29 05:09:24 +00:00
|
|
|
|
.PHONY: uninstall
|
2024-02-19 04:52:15 +00:00
|
|
|
|
uninstall: ## Uninstalls the binary.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/uninstall
|
|
|
|
|
|
|
|
|
|
.PHONY: package
|
2022-07-04 23:29:28 +00:00
|
|
|
|
package: build ## Packages the project.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/package
|
|
|
|
|
|
2024-02-19 06:16:30 +00:00
|
|
|
|
.PHONY: package-install
|
|
|
|
|
package-install: package ## Installs the package.
|
2020-05-29 05:09:24 +00:00
|
|
|
|
script/package_install
|
|
|
|
|
|
2024-02-19 04:52:15 +00:00
|
|
|
|
.PHONY: bottle
|
2024-02-19 06:31:03 +00:00
|
|
|
|
bottle: ## Builds Homebrew bottles.
|
2024-02-19 04:52:15 +00:00
|
|
|
|
script/bottle
|
2024-02-19 06:31:03 +00:00
|
|
|
|
|
|
|
|
|
.PHONY: brew_formula_update
|
|
|
|
|
brew_formula_update: ## Updates homebrew-core formula.
|
|
|
|
|
script/brew_formula_update
|
|
|
|
|
|
|
|
|
|
.PHONY: brew_release_validate
|
|
|
|
|
brew_release_validate: ## Builds Homebrew bottle for the current system.
|
|
|
|
|
script/brew_release_validate
|