all: @echo wildcard: $(wildcard ~) @echo shell : $(shell echo ~) # GNU Make version 3.78.1 (as shipped with RedHat 6.2) # GNU bash, version 1.14.7(1) (as shipped with RedHat 6.2) # Here's the output I get: # 09:00:28 [erich@emerald erich]$ make -f weird # wildcard: /home/erich # shell : ~ # I would have expected *both* commands to have expanded the tilde, # not just the command that calls `wildcard'.