$(wildcard PATTERN...) e.g. source = $(wildcard *.p4)
notdir:移除路徑 e.g. nodir=$(notdir $(source))
patsubst:替換wildcard e.g. obj=$(patsubst %.c,%.o,$(dir) ) #將.c副檔名替換為.o副檔名
#也可使用$(var:.c=.o) 或 ${var:.c=.o}
在shell command前面加@可使terminal不會print command的內容,如@echo "test echo"便只會輸出test echo
$@代表target本身,$<代表第一個dependency
:=有點類似於ifndef,若lvalue未被賦予值則將其設為rvalue e.g. UP_CC := g++