当前位置: 技术问答>linux和unix
makefile伪目标没有规则问题
来源: 互联网 发布时间:2016-05-14
本文导语: makefile一段代码如下: .SUFFIXES: .SUFFIXES: .o .exe .bin .c .c.o:${ALL_INCL} cc $(CFLAGS_PACK) $*.c #mv $*.o $(OBJECT_DIR)/ cp $*.o $(OBJECT_DIR)/ .c.bin: cc -o $(EXECU...
makefile一段代码如下:
.SUFFIXES:
.SUFFIXES: .o .exe .bin .c
.c.o:${ALL_INCL}
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
.c.bin:
cc -o $(EXECUTE_DIR)/$* $(OBJECT_DIR)/$*.o $(LIBRARY_ALL)
.c.exe:
make $*.o
make $*.bin
rm $(OBJECT_DIR)/$*.o
########## Following is all tfeb system program list ##########
all: lib_obj feb_lib fun_obj exe
fun_obj:
febbatch.o
febchk.o
febctl.o
febdisk.o
febdrive.o
febf2.o
在makefile中伪目标fun_obj没有规则,但是在执行make的时候我发现它执行的是
.SUFFIXES:
.SUFFIXES: .o .exe .bin .c
.c.o:${ALL_INCL}
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
这部分的代码。请问这是怎么回事?
而且为什么在执行的时候
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
这些代码都会显示出来?
.SUFFIXES:
.SUFFIXES: .o .exe .bin .c
.c.o:${ALL_INCL}
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
.c.bin:
cc -o $(EXECUTE_DIR)/$* $(OBJECT_DIR)/$*.o $(LIBRARY_ALL)
.c.exe:
make $*.o
make $*.bin
rm $(OBJECT_DIR)/$*.o
########## Following is all tfeb system program list ##########
all: lib_obj feb_lib fun_obj exe
fun_obj:
febbatch.o
febchk.o
febctl.o
febdisk.o
febdrive.o
febf2.o
在makefile中伪目标fun_obj没有规则,但是在执行make的时候我发现它执行的是
.SUFFIXES:
.SUFFIXES: .o .exe .bin .c
.c.o:${ALL_INCL}
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
这部分的代码。请问这是怎么回事?
而且为什么在执行的时候
cc $(CFLAGS_PACK) $*.c
#mv $*.o $(OBJECT_DIR)/
cp $*.o $(OBJECT_DIR)/
这些代码都会显示出来?
|
没有显式指定编译规则的话,那就会调用隐式的编译规则
lz 的 makefile 指定了 Suffix Rules
make 的时候根据 Suffix Rules 执行
lz 的 makefile 指定了 Suffix Rules
make 的时候根据 Suffix Rules 执行