我这样写Makefile
:
all:
@echo $(wildcard $(include)/*.sh)
@echo $(include)
.PHONY:all
我输入make "include=~"
,输出
/home/ubuntu/caps_esc.sh /home/ubuntu/ss.sh
/home/ubuntu
但是当输入make "include=~ "
(注意空格!)时,输出是
/home/ubuntu
/home/ubuntu
表示变量include
为~
加上空格。
所以我的问题是,Makefile如何将字符串分成单个单词?
答案 0 :(得分:1)
使用空格来分隔标记,额外的空格会产生$(wildcard ~ /*.sh)
,这会为wildcard
函数提供两个标记,~
和/*.sh
,而不是单个标记{ {1}}。
Make只会在某些情况下修剪空白,你应该阅读manual了解详细信息。