$@ 表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表
--------------------------------------
OBJS = ifconfig.o tftp_util.o ping.oSRCS = $(OBJS:.o=.c)
PHONY += all
all : $(BUILT_IN_OBJ)
$(BUILT_IN_OBJ) : $(OBJS)
$(LD) $(L DFLAGS) -r $^ -o $@
$(OBJS) : $(SRCS)
$(CC) $(CFLAGS) -c $^
PHONY += clean
clean :
@rm -vf *.o
.PHONY : $(PHONY)
$^ 代表所有的依赖对象 上例第一个$^为$(OBJS),即 ifconfig.o tftp_util.o ping.o,上例第二个$^为$(SRCS),即$(OBJS:.o=.c) (Makefile解释后为: ifconfig.c tftp_util.c ping.c)
$< 代表第一个 依赖对象 前面例子修改如下:
$(BUILT_IN_OBJ) : $(OBJS)
$(LD) $(LDFLAGS) -r $< -o $@
则$<表示为ifconfig.o