ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif
#如果定义了O变量,且定义O变量的方式是以命令行方式定义的,
#如: make O=tmp/builder,就将这个O变量值赋给BUILD_DIR变量;
#如果O变量没有被定义,则上面语句不被执行。
ifneq ($(BUILD_DIR),) #如果BUILD_DIR不为空
saved-output := $(BUILD_DIR) #就将BUILD_DIR的变量值赋给saved-output
# Attempt to create a output directory.
$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})
#这里的shell是个函数,如果BUILD_DIR是一个目录名称,就把该目录创建出来
# Verify if it was successful.
BUILD_DIR := $(shell cd $(BUILD_DIR) && /bin/pwd)
$(if $(BUILD_DIR),,$(error output directory "$(saved-output)" does not exist))
endif # ifneq ($(BUILD_DIR),)
#shell命令的意思是先进入到BUILD_DIR目录,然后调用pwd命令显示当前路径名,并把当前路径名作为shell函数的返回值赋
#给BUILD_DIR变量,If语句判断BUILD_DIR是否存在,如果还为空就显示错误(命令里面两个逗号之间表示空)
#if在这里是if函数,含有三个参数,第一个参数是Condition&
s5pv10的uboot主Makefile分析之3------BUILD_DIR(Line 78-93)
最新推荐文章于 2020-05-08 17:43:38 发布
本文详细分析了s5pv10设备的UBoot主Makefile文件中78至93行的内容,探讨了这段代码在构建过程中的作用和意义。
摘要由CSDN通过智能技术生成