要了解一个build.bat文件做了哪些事情,需要知道两方面的内容作为基础,一个是bat的语法,一个是Make file的语法。这两方面的内容,分别从网上找到了,并放到我的资源中,以供查阅。
1. Build.bat, 做了三件事:
a) 设置环境变量为编译器所在目录,否则提示找不到make命令。set PATH=C:/make;C:/RVDS3_0/Utilities/FLEXlm/10.8.0/12/win_32-pentium;C:/RVDS3_0/RVCT/Programs/3.0/586/win_32-pentium
b) 确定make所需各项参数。
c) 执行make命令。make cbp71_reva1 USE_RUIM=TRUE R2B_3TXGAINS=FALSE NO_MOIP=TRUE XCO_TYPE=TCXO USE_WATCHDOG=TRUE CHARGER_GB=TRUE USE_ONLY_AT=FALSE CONFIG_BOARD=abele HW_VERSION=P0 FLASH_SIZE=FLASH_16M_4M RF_TYPE=GCT_6407_RF FAKE_BAND5_TO_BAND1=FALSE HWD_AC_SEL=FALSE USE_USB_MSC=TRUE CONFIG_UI=FWP USE_ENHANCEDAT=TRUE SUPPORT_FAULT_FILE_INFO=TRUE USE_SIDB=TRUE USE_BURST_FLASH=FALSE REMOVE_PWRDET=FALSE USE_1X_ONLY=FALSE USE_DIVERSITY_RF=TRUE USE_MMC=TRUE PACKAGE_DSP_IMG=TRUE USE_SER_MUX=FALSE USE_ATCMD_CH=TRUE DRIVER_AUTO_INSTALL=TRUE USE_NOR_FLASH_CD=TRUE SPLIT_LDM=TRUE USE_EDAI=TRUE SUPPORT_BREW=FALSE
2. 所有模块中的makefile文件,在头部包含了include makefile_hdr, include makefile_feature,include makefile_feature_def三个文件,尾部包含了makefile_end。Makefile文件的主体则至少但不仅于定义了以下变量(以bm模块为例):
a) CC_INCS += -I$(BASE_PATH)/cust/bm, 定义所有源文件所在路径
b) OBJS_LOCAL = bmbatt.o bmbattapi.o,定义所有需要的object文件名
c) UNIT_NAME = bm,定义链接后的模块/库名,此处在编译、链接完成后生成库文件bm.alf