openwrt系统编译框架

本文详细介绍了OpenWRT系统的目录结构,如SDK、package、staging_dir和build_dir等,并解析了OpenWRT的编译规则和流程。通过示例解释了如何基于OpenWRT编译iproute2软件包,包括Makefile的内容和编译过程,以及不同软件包的安装步骤。
摘要由CSDN通过智能技术生成

openwrt目录结构图


目录结构说明

SDK:开源openwrt源代码根目录

SDK/package:软件包顶层目录

SDK/staging_dir:工具链存放路径

SDK/build_dir:实际编译路径

SDK/package/xxx_package:特定的软件包

SDK/package /xxx_package/patches:存放针对指定软件包patch的文件夹

SDK/package /xxx_package/src:存放.c .h已经符合openwrt规范的基础makefile文件

SDK/package /xxx_package/Makefile:用于构建编译src路径下源文件环境


Openwrt系统编译规则

Openwrt系统编译架构由一套编译规则实现,正是由于这套规则,开发者可以方便编写跨平台的软件包以及易于支持跨平台的开源软件包。


主要规则说

SDK/rules.mk:主要定义编译工具链相关宏、公共路径宏、常用编译选项

SDK/include/autotools.mk:主要实现autoconf相关的一些逻辑

SDK/include/package.mk:主要实现编译过程中用到的各种宏

SDK/include/package-defaults.mk:定义部分编译默认宏,当软件包没指定时,使用此规则里面的宏


基于openwrt系统编译iproute2

Makefile文件及分析如下

include $(TOPDIR)/rules.mk  #引用rules.mk,通用规则用户态软件包均需引用

 

PKG_NAME:=iproute2      #包名,用户自定义

PKG_VERSION:=4.0.0

PKG_RELEASE:=1

 

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz

PKG_SOURCE_URL:=http://kernel.org/pub/linux/utils/net/iproute2/#iproute2源码下载地址

PKG_MD5SUM:=3adc263ade4ee76c35032e8f50b54108

PKG_BUILD_PARALLEL:=1

PKG_LICENSE:=GPL-2.0

 

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)

 

include $(INCLUDE_DIR)/package.mk  #引用package.mk,用户态软件包均需引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值