openwrt 包makefile】的更多相关文章

$() 表示要执行的一条语句 $(if 条件, 成立执行, 失败执行)        if条件分支 $(foreach 变量, 成员列表, 执行体)   成员遍历语句 可以看出,语句是可以嵌套使用的. $(N)  表示第N个参数…
# # # include $(TOPDIR)/rules.mk //一般在 Makefile 的开头 include $(INCLUDE_DIR)/kernel.mk // 文件对于 软件包为内核时是不可缺少 PKG_NAME:=mydrv // 表示软件包名称,将在 menuconfig 和 ipkg 可以看到 PKG_RELEASE:= //表示软件包版本号 include $(INCLUDE_DIR)/package.mk //一般在软件包的基本信息完 成后再引入 define Kern…
本周成胖子每周一博到了第四周^_^ 前言 主Makefile结构 顶层 第二层 尾记 前言 前一篇,我们大概描述了整个镜像文件的生成过程.本周我们来解析主Makefile,看看主要编译过程是怎么产生的. 主Makefile结构 我们以chaos calmer的代码为例,整个编译的入口是在源码根目录下的Makefile.编译的各种命令都应该在源码根目录下键入. 整个主Makefile的结构如下: world: ifneq ($(OPENWRT_BUILD),1) 顶层 else 第二层 endif…
说明: 1.OpenWrt本身系统没什么问题,关键点是一些路由器尝试的限制,比如一些厂商设置成内存分区为只读,那么这个安装软件就变得没什么意义了. 2.opkg的操作有点反人类,正常步骤是查询,安装:而opkg在一些厂商的限制下需要update,然后download,最后install:且有时会安装在tmp区,重启会没有. 常用安装步骤: 如果想要安装一个软件,但是不知道什么具体的名字,可以用命令获取到软件包的名字(opkg list | grep 软件名),然后安装,比如想要安装tftp #…
openwrt: Makefile 框架分析 原文链接:blog.chinaunix.net/uid-26675482-id-4704952.html 本篇的主要目的是想通过分析Makefile,了解openwrt编译过程.着重关注以下几点: openwrt目录结构 主Makefile的解析过程,各子目录的目标生成. kernel编译过程 firmware的生成过程 软件包的编译过程 openwrt目录结构 官方源下载速度太度,我从github上clone了openwrt的代码仓库. git c…
OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重要意义. OpenWrt的主Makefile文件只有100行,可以简单分为三部分,1~17行为前导部分,19~31为首次执行部分,33~101为再次执行部分. 前导部分 CURDIR为make默认变量,默认值为当前目录. 前导部分主要把变量TOPDIR赋值为当前目录,把变量LC_ALL.LANG赋值为C,并使用变量延伸指示符export,把上述三个变量延伸到下…
openwrt目录结构 上图是openwrt目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录.各目录的作用是: tools - 编译时需要一些工具, tools里包含了获取和编译这些工具的命令.里面是一些Makefile,有的可能还有patch.每个Makefile里都有一句 $(eval $(call HostBuild)),表示编译这个工具是为了在主机上使用的. toolchain - 包含一些命令去获取kernel headers, C library, bin-utils,…
[题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit-client)就非常好用.虽然程序写的好用,但是配置起来还是稍微麻烦一些的,大家通常的方法是在/etc/init.d下写启动脚本,把用户名.密码什么的都直接填进去,但毕竟配置起来不方便,同时日后修改起来也不便.好在用Lua为LuCI写配置模块很简单,索性就自己做了一个,现在把开发的流程写一下,方便…
Openwrt报告库找不到Package * is missing dependencies for the following libraries: libc.so.6 或其他先检查系统里面有没有这个库存在,如果没有,安装 (在/lib /lib64 等目录找)之后添加库openwrt的编译环境修改 libc.provides 平台不同,可能目录不同,find ./stagging_dir -name libc.provides 下一般在 stagging_dir/target-mipsel_…
前言 这段时间总是在和openwrt打交道,之前也零零散散地写过一点,还是希望能有点体系.还记得我刚看到源代码的时候,觉得无从下手.我想从Makefile的整个执行过程入手,搞清楚编译源代码的几个小时中,到底发生了哪些故事. 本文是这个系列的第一篇.主要讲一下我对openwrt整个目录结构的理解.我们将源代码从官方下载而来的目录称之为原始目录,将编译后生成的目录称之为生成目录,分两部分介绍各个目录. 原始目录 下载源码后,源文件如下图所示,下面我们来一一解释; 1. scripts 存放了一些脚…