如何针对特定板卡精简U-Boot源码并获取所需源码列表?
打印构建特定板卡U-Boot镜像所需的全部源码文件
要获取构建特定板卡U-Boot镜像依赖的所有源码文件,make -n无法满足需求——它仅输出构建命令,不会展开完整的依赖链。以下是几种可行的方法:
方法一:通过make依赖分析参数直接提取
- 先完成目标板卡的配置(例如
make qemu_arm64_defconfig,替换为你的板卡defconfig名称)。 - 执行以下命令,直接从构建系统中提取所有关联的
.c和.S源码文件:
make -Bnd u-boot.bin | grep -E '\.c$|\.S$' | sort -u
-B:强制触发依赖重新生成,确保依赖信息完整-n:干跑模式,不实际执行构建命令-d:输出详细的依赖关系- 后续的
grep和sort用来过滤并去重源码文件
方法二:利用构建过程生成的.dep文件
U-Boot编译时会为每个目标文件生成.dep文件,记录对应的依赖源码和头文件。步骤如下:
- 先执行一次
make(无需完整编译,只要生成.dep文件即可,可按Ctrl+C中断)。 - 执行以下命令收集所有源码文件:
find . -name '*.dep' | xargs grep -E '\.c$|\.S$' | cut -d: -f2 | tr ' ' '\n' | grep -E '\.c$|\.S$' | sort -u
find定位所有.dep文件grep过滤出源码文件条目cut和tr处理格式,拆分出单个文件路径sort -u去重并排序
补充说明
如果需要包含头文件,只需将grep的正则表达式改为'\.[cSh]$'即可。另外,确保你的U-Boot源码已经完成配置,否则依赖分析会不完整。
内容的提问来源于stack exchange,提问作者Vitaly
相关产品推荐
相关产品推荐

