/ bin / sh:VARIABLE:找不到命令

时间:2016-01-03 02:07:37

标签: shell makefile gnu-make

我的Makefile中有以下目标:

~/.zshrc: zsh/*
    DESTDIR ?= $(shell echo '~/.') 
    SUDO ?= $(shell echo '') 
    sed -e "s_DESTDIR_$(DESTDIR)_" \
        -e "s_SUDO_$(SUDO)_" \
        -e "s_LIBDIR_$(LIBDIR)_" \
        -e '/^#/ d' $+ > $@

但每当我运行make ~.zshrc时,我都会收到以下错误:

DESTDIR ?= ~/. 
/bin/sh: DESTDIR: command not found
make: *** [/Users/henrikgiesel/.zshrc] Error 127

我不知道是什么原因引起的。我必须逃避什么吗?我在文件的另一个点PWD ?= $(shell pwd),它工作得很好。

1 个答案:

答案 0 :(得分:0)

target: respondencies - block的内部与Makefile的文件级别不同。

DESTDIR ?= $(shell echo '~/.')之类的命令只能在文件级别执行。 target - 块内的所有内容基本上都是shell命令,由/ bin / sh执行。