zoukankan      html  css  js  c++  java
  • uboot主Makefile之3——BUILD_DIR(Line 78-93)

    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,第二参数是then-part,第三个参数是else-part.

    <condition>参数是 if 的表达式,如果其返回的为非空字符串,那么这个表达式
    就相当于返回真,于是,<then-part>会被计算,否则<else-part>会被计算。

  • 相关阅读:
    java生成UUID通用唯一识别码 (Universally Unique Identifier)
    使用ToolRunner运行Hadoop程序基本原理分析
    Hadoop入门经典:WordCount
    Hadoop配置文件
    【Nutch2.2.1基础教程之3】Nutch2.2.1配置文件
    8大排序算法图文讲解
    动态字典树_前缀相互查找(HDU_1671)
    DP_基本DP+排序(HDU_1421)
    斯特灵公式
    七种 qsort 排序方法
  • 原文地址:https://www.cnblogs.com/AndyChen1/p/8341136.html
Copyright © 2011-2022 走看看