在大学中没有怎么接触过makefile的东西,再看了书籍之后开始看了第一个makefile,就是海思芯片IPC_HI3518的makefile。十分的长,在开始入手的时候对于我来说真的是太难了。然后我就拼命的看,因为师兄也才刚毕业,所以比较贴近我们的水平,在他的演示下。我对于makefile也终于有了一些理解。
# 发布目录
ifndef RELEASE_DIR
RELEASE_DIR=/home/share/$(LOGNAME)/Dist#
endif
BUILD_LEFT1=$(RELEASE_DIR)
BUILD_LEFT2=$(BUILD_LEFT1)/$(shell date +%Y%m%d)#
BUILD_LEFT3=$(BUILD_LEFT2)/$(GUI_VENDOR)_$(OEM_VENDOR_DIR)
BUILD_ROOT=$(BUILD_LEFT3)/$(PLATFORM_DIR)_$(RELEASE_DEVICE)# 发布程序的目录
首先是这个发布路径:
我们一定要善于使用ctrl+f来寻找:
经过几天的摸索,对于这些路径也终于清楚了:
这个路径的绝对地址是:
/home/share/fenglinfeng/Trunk/Dist/20150818/General_HZXM/IPC_HI3516C_53H20L
接下来是这几个路径:
SOFIA_INTERMEDIATEDIR=$(WORK_DIR)/$(shell
basename $(shell pwd))_$(GUI_VENDOR)_$(OEM_VENDOR_DIR)_tmp#
# 中间文件目录,存放.o文件的位置
SOFIA_TARGETDIR=$(SOFIA_DIST) # 存放生成的Sofia可执行文件的目录
BUILD_DIR:=$(shell basename $(shell pwd)) #开发环境使用这个
分别是:/home/share/fenglinfeng/Trunk/ProductBuilder/IPC_HI3518_General_HZXM_tmp
可执行文件目录:/home/share/fenglinfeng/Trunk/ProductBuilder/bin/Sofia
开发环境:IPC_HI3518
观察IPC_HI3518的makefile,可以明确,最后可执行文件sofia是存放在 /home/share/fenglinfeng/Trunk/ProductBuilder/bin下的,然后又将其复制到share/General下。我们调试的话只需要运行General下的sofia文件就可以了。
路径弄明白之后我们来明确一下HI3518在修改函数之后如何将其写到设备的过程:
- 首先是在home/fenglinfeng/libhicap文件夹下修改好代码。并且保存。
- 修改好代码之后telnet 10.2.10.100,输入账号密码之后进入libhicap进行make,make之后会生成两个.a文件
- 当然,稍微聪明一点的人就可以轻易的知道,这个.a文件绝对不是存放在这个文件夹下面的,我们要把它弄到该去的地方。
- 使用
cp libhicap.a libhicap-d.a /home/fenglinfeng/myfile/Application/Build/Platform/HI3518/special
命令。将其复制到平台代码下面。
注意,我们需要把这两个文件移到和makefile同一个根目录下的文件夹,因为这是makefile指定的根目录
- 最后进入IPC_HI3518进行make pack ,然后使用设备将得到的东西,在share\fenglinfeng\Trunk\Dist\20150818\General_HZXM\IPC_HI3516C_53H20L下将得到的东西升级,即可将设备进行一些改变。、
- 当然,调试的话是进行make ,并telnet设备的ip地址,然后进行挂载,最后运行生成的sofia文件。
注意:
- 后面申请的源代码,编译后生成的库文件要放到服务器的application中,源代码编译后生成的是库文件,库文件在进行汇编,会生成可执行文件sofia。
- 在读取makefile的时候注意要观察,make执行的是第一个规则,此规则是第一个目标称之为最终目的和终级目标