以 caffe中的Makefile为例,学习一下makefile的使用流程
导入Makefile.config文件
ifeq ($(wildcard $(CONFIG_FILE)),)
$(error $(CONFIG_FILE) not found. See $(CONFIG_FILE).example.)
endif
include $(CONFIG_FILE)
$(info info $(CONFIG_FILE))
这部分是将Makefile.config的内容导入进来
wildcard是扩展通配符,用于把内容展开,如:
当前目录下 建立a.c和b.c两个文件,在sub目录下,建立sa.c和sb.c两个个文件
src=$(wildcard *.c ./sub
那么输出的内容为: a.c b.c ./sub/sa.c ./sub/sb.c wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。
ifeq 表示判断两个遍历是否相同,如果相同返回true 那么,上面就表示判断CONFIG_FILE是否为空,如果为空,那么就使用 error打印出现信息,error打印信息到控制台后会终止编译。 使用info打印信息不会终止编译。
include $(CONFIG_FILE)
就是把Makefile.config中的配置信息信息加载进来,如果有下面代码,则会输出1(假设是cpu编译)
$(info info $(CPU_ONLY))
|