您可以直接在 gmake 中执行此操作,而无需使用 GNU Make 标准库:
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
VAR = MixedCaseText
LOWER_VAR = $(call lc,$(VAR))
all:
@echo $(VAR)
@echo $(LOWER_VAR)
它看起来有点笨拙,但它可以完成工作。
如果您使用 $(shell) 品种,请务必使用 := 而不是仅使用 =,如 LOWER_VAR := $(shell echo $VAR | tr A-Z a-z)。这样,您只需在声明变量时调用一次 shell,而不是每次引用变量时!
希望对您有所帮助。