我想知道是否可以在makefile配方中调用make,但是这样新的invokation不会继承当前makefile的导出变量。
例如:
include $(TRG).vars
OLD_TRG=`cat .last_trg`
all:
if [ $(TRG) -ne $(OLD_TRG) ]; then \
read -p "Clean required -- press enter"; \
make clean TRG=$(OLD_TRG); \
fi
echo $(TRG) > .last_trg
clean:
[ $(SOMEVAR) ] && rm -rf $(SOMEVAR)
如果对于上述内容,SOMEVAR
已在$(TRG).vars
中定义,而在$(OLD_TRG).vars
中未定义,那么make clean
调用将从父级继承SOMEVAR
makefile,可能会清理错误的目录。我希望make clean不会从当前的makefile继承任何环境,因此它可以独立清理。