...

Text file src/github.com/datawire/ambassador/v2/build-aux/var.mk

Documentation: github.com/datawire/ambassador/v2/build-aux

     1# Copyright 2019 Datawire. All rights reserved.
     2#
     3# Magic for depending on the value of a variable.
     4#
     5## Eager inputs ##
     6#  (none)
     7## Lazy inputs ##
     8#  (none)
     9## Outputs ##
    10#  - Variable: var. = build-aux/.var.
    11#  - Targets: $(var.)%
    12## common.mk targets ##
    13#  - clobber
    14#
    15# To have a target depend on the variable FOO, just depend on "$(var.)FOO".  For example:
    16#
    17#     foo.o: foo.c $(var.)FOOFLAGS
    18#         $(CC) $(FOOFLAGS) -o $@ $<
    19ifeq ($(words $(filter $(abspath $(lastword $(MAKEFILE_LIST))),$(abspath $(MAKEFILE_LIST)))),1)
    20_var.mk := $(lastword $(MAKEFILE_LIST))
    21include $(dir $(_var.mk))prelude.mk
    22include $(dir $(_var.mk))tools.mk
    23
    24var. = $(dir $(_var.mk)).var.
    25$(var.)%: FORCE $(tools/write-ifchanged)
    26	@printf '%s' $(call quote.shell,$($*)) | $(tools/write-ifchanged) $@
    27
    28clobber: _clobber-var
    29_clobber-var:
    30	rm -f $(var.)*
    31.PHONY: _clobber-var
    32
    33endif

View as plain text