littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于Makefile的Linux应用与内核编译管理工具

项目简介

本项目于2021年10月完成结构调整与更新,借鉴Android/build - root编译框架,构建了用于管理Linux应用层APP与内核部分的编译工具。该工具提供多样化编译方式,可根据各子项目的Makefile单独编译子项目,也能利用local.Mk在顶层目录 box/box 对所有项目一次性编译,还支持单独编译特定小项目。

项目的主要特性和功能

  • 灵活编译:支持子项目单独编译、顶层目录一次性编译所有项目或单独编译特定小项目。
  • 分类编译:可使用 "make app" 编译所有应用程序,"make bsp" 编译板级文件。
  • 自定义编译链:允许用户指定编译工具链位置,以适配不同嵌入式工程需求。
  • 源码添加支持:便于用户添加cpp、c语言、kernel、rootfs、uboot等源码文件,并通过修改对应Mk文件实现编译。

安装使用步骤

编译

  1. 进入目录:cd box/box
  2. 编译所有应用程序:使用命令 make app(此部分编译无编译链限制)
  3. 编译板级文件:使用命令 make bsp(构建嵌入式工程时需指定编译链位置)
  4. 编译生成物位置:
    • 应用程序:./out/app_out/apps_target/app
    • 内核、设备树以及文件系统:out/bsp_out/bsp_target/

指定编译工具链

编辑Makefile,找到 BUILD_TOOL_CHAINS := <填上你自己的编译链路径>,并填入实际的编译链路径,例如: Makefile BUILD_TOOL_CHAINS :=$(TOP_DIR)/build_tools/build_chains/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu

添加自己的源码文件

  1. cpp文件:仿照 "box/box/apps/cpp_test" 中的进行添加。
  2. c语言文件:仿照 "box/box/apps/c_useful_demo" 中的demo进行添加。
  3. kernel、rootfs、uboot文件:仿照 box/box/bsp 下的进行添加。
  4. 添加后配置
    • 对于 box/box/apps 下新添加的文件,将新增的模块加进 app.Mk,添加后可在 box/box 中使用 make "your app module name" 进行编译。
    • 对于 box/box/bsp 下新添加的文件,将新增的模块加进 bsp.Mk,添加后可在 box/box 中使用 make kernelmake ubootmake rootfs 分别进行编译。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】