# SPDX-FileCopyrightText: © 2020 Caleb Maclennan # SPDX-License-Identifier: GPL-3.0-only # Mix output messages from parallel targets, will be collated by CLI MAKEFLAGS += --output-sync=none # Default to not echoing commands before running MAKEFLAGS += --silent # Disable as many built in file type builds as possible MAKEFLAGS += --no-builtin-rules # Avoid silent errors to ease debugging MAKEFLAGS += --warn-undefined-variables .SUFFIXES: # Don't drop intermediate artifacts (saves rebuild time and aids debugging) .SECONDARY: .PRECIOUS: % .DELETE_ON_ERROR: # Deprecate direct usage under `make` without the CLI ifeq ($(FONTSHIP_CLI),) $(error Use of fontship rule file inclusion outside of the CLI is deprecated!) endif # Run complete recipes in wrapper script that facilitates clean CLI output SHELL := $(FONTSHIPDIR)/lib/make-shell.zsh .SHELLFLAGS = -w DEBUG ?= false # also later set in rules.mk just to be visible with other settings ifeq ($(DEBUG),true) .SHELLFLAGS += -x endif # We *must* pass at least one argument to our custom shell before make adds the # shell code it wants to execute. We use this one because its easy to falsify # in our $(shell) wrapper environment... .SHELLFLAGS += _WRAPTARGET=true # Differentiate shells used to run recipes vs. shell wrapper function # See https://stackoverflow.com/q/65553367/313192 _ENV := _WRAPTARGET=false .SHELLFLAGS += $(eval @?=)$(and $@,target=$@) .ONESHELL: .SECONDEXPANSION: # Use paths discovered by autoconf by default, but allow projects to override # with paths of their own. CMP ?= @CMP@ FONTMAKE ?= @FONTMAKE@ FONTV ?= @FONTV@ GFTOOLS ?= @GFTOOLS@ FIND ?= @FIND@ GIT ?= @GIT@ GREP ?= @GREP@ PSAUTOHINT ?= @PSAUTOHINT@ PYTHON ?= @PYTHON@ SED ?= @SED@ SFDNORMALIZE ?= @SFDNORMALIZE@ SFD2UFO ?= @SFD2UFO@ SFNT2WOFF ?= @SFNT2WOFFZOPFLI@ TTFAUTOHINT ?= @TTFAUTOHINT@ TTX ?= @TTX@ UFONORMALIZER ?= @UFONORMALIZER@ WOFF2COMPRESS ?= @WOFF2_COMPRESS@ ZSH ?= @ZSH@ .PHONY: default default: all NORMALIZE_MODE ?= include $(FONTSHIPDIR)/rules/functions.mk