uboot系列文章
第一章 简化makefile
前言
当拿到一个原厂uboot的时候,里面会包含src 源码,但是编译的时候需提前配置一些参数,比如CROSS_COMPILE,或者需先拷贝一个配置文件,然后再执行make才可生效
一、简化makefile
简化的意思,就是自己新写一个makefile,然后把配置CROSS_COMPILE,拷贝config,make执行和拷贝生成的文件,简化成一个makefile,后期只需执行一条简单的命令,即可完成编译
二、建立新的目录
1.建立一个bulild目录,里面放入自己的makefile文件
代码如下(示例):
TARGET = $(plat)
BASE_DIR = $(PWD)/..
default: $(TARGET)
all:
make plat=mtk7621
clean:
make -C ../src clean
mtk7621:
rm -rf $(BASE_DIR)/bin/$(plat)/*
make -C ../src distclean
cd ../src; \
make CROSS_COMPILE=/opt/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/mipsel-openwrt-linux- mt7621_rfb_defconfig; \
make CROSS_COMPILE=/opt/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/mipsel-openwrt-linux- -j8; \
cd ../
mkdir -p ../bin/$(plat)
cp ../src/u-boot-mt7621.bin ../bin/$(plat)/u-boot.bin
menuconfig:
make -C ../src CROSS_COMPILE=/opt/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin/mipsel-openwrt-linux- menuconfig
有多个平台可自行扩展
mt7981:
mt7628:
2.编译命令 make plat=mtk7621
编译完就会在对应的目录生成产物,目录干净清爽
[UbootMTK7621]ls
bin build README src
[UbootMTK7621]ls bin/mtk7621/u-boot.bin
bin/mtk7621/u-boot.bin
总结
通过简化makfile整合编译过程,使得编译效率更高