# Copyright 2019 Datawire. All rights reserved. # # Magic for depending on the value of a variable. # ## Eager inputs ## # (none) ## Lazy inputs ## # (none) ## Outputs ## # - Variable: var. = build-aux/.var. # - Targets: $(var.)% ## common.mk targets ## # - clobber # # To have a target depend on the variable FOO, just depend on "$(var.)FOO". For example: # # foo.o: foo.c $(var.)FOOFLAGS # $(CC) $(FOOFLAGS) -o $@ $< ifeq ($(words $(filter $(abspath $(lastword $(MAKEFILE_LIST))),$(abspath $(MAKEFILE_LIST)))),1) _var.mk := $(lastword $(MAKEFILE_LIST)) include $(dir $(_var.mk))prelude.mk include $(dir $(_var.mk))tools.mk var. = $(dir $(_var.mk)).var. $(var.)%: FORCE $(tools/write-ifchanged) @printf '%s' $(call quote.shell,$($*)) | $(tools/write-ifchanged) $@ clobber: _clobber-var _clobber-var: rm -f $(var.)* .PHONY: _clobber-var endif