forked from emissary-ingress/emissary
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvar.mk
32 lines (29 loc) · 820 Bytes
/
var.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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
var. = $(dir $(_var.mk)).var.
$(var.)%: FORCE $(WRITE_IFCHANGED)
@printf '%s' $(call quote.shell,$($*)) | $(WRITE_IFCHANGED) $@
clobber: _clobber-var
_clobber-var:
rm -f $(var.)*
.PHONY: _clobber-var
endif