Makefile目标中设置变量的清晰可读方式

时间:2016-11-29 11:36:30

标签: makefile

以下是我目前如何为不同的目标自定义Makefile变量(玩具示例):

#set default values
ARG_A = 100
ARG_B = 50
OP    = ,

#combine vars for easier reuse in multiple targets
OPTS = $(ARG_A) $(OP) $(ARG_B)

math:
    python -c "print $(OPTS)"

#add custom targets with various variable overrides
plus: OP=+
plus: math

minus: OP=-
minus: math

plus100: ARG_B = 100
plus100: plus

minus100: ARG_B = 100
minus100: minus

custom: ARG_A = 29
custom: ARG_B = 149
custom: OP = *
custom: math

这对我来说已经看起来干净可读,因为它不使用任何花哨的if-then-else模式,并且不会滥用$(shell ...)逻辑。

问题:是否有更好(但仍然干净)的方法来实现列出的变量覆盖?特别是,我喜欢摆脱重复的target:名称。

0 个答案:

没有答案