目錄結(jié)構(gòu):
├────────────────/*build生成*/────── bin
├────────────────/*build生成*/────── build_dir
├────────────────/*build生成*/──────staging_dir
├── config //默認(rèn)的項(xiàng)目配置,如:defconfig_pxa1826p501
├────────────────/*build生成*/────── dl
├── docs //文檔路徑
├── external
├── management //marvell定制過的包管理
├── routing //marvell定制過的路由服務(wù)
└── subpack //marvell定制的package patch
├────────────────/*build生成*/────── feeds
├────────────────/*build生成*/────── host
├── include //openwrt的makefile編譯核心
├── marvell //marvell定義的外部代碼,uboot、kernel等使用這里的代碼
└── (fastpath fota linux lte-telephony obm services swd uboot webui)
├── package //openwrt的基礎(chǔ)軟件包
├── scripts //host端源碼包管理的各類工具腳本
├────────────────/*build生成*/────── staging_dir
├── target //平臺(tái)相關(guān)的文件、固件、kernel patch等
├── toolchain //編譯工具依賴的工具、頭文件等
└── tools //編譯工具依賴的工具、頭文件等
config目錄
保存的平臺(tái)相關(guān)的defconfig,make menuconfig 配置好后可以將.config保存起來,方面產(chǎn)品形態(tài)的定義。
$ ls
Config-build.in Config-kernel.in defconfig_pxa1826p307 defconfig_pxa1826p503
Config-devel.in defconfig_pxa1826 defconfig_pxa1826p501 defconfig_pxa1826p601
Config-images.in defconfig_pxa1826aquila defconfig_pxa1826p502
下次重編該產(chǎn)品只需要執(zhí)行:
$ make defconfig_pxa1826
$ make -jxx V=s
include目錄和Makefile
后面單章
package和feeds
package目錄是openwrt的基礎(chǔ)軟件包定義feeds是擴(kuò)展的軟件包,feeds的軟件包倉庫地址可以通過feeds.conf.default指定。-
package/feeds/packages/里面的軟件包是
feeds.conf倉庫中定義的,執(zhí)行./scripts/feed install -a后會(huì)將軟件包鏈接到這里$ ls -F package/feeds/packages/ acl@ ctorrent@ flashrom@ ktap@ liboil@ luabitop@ mwan3@ perl-compress-bzip2@ rtorrent@ ...... $ ls -l package/feeds/packages/mwan3 lrwxrwxrwx 1 tjd tjd 33 May 15 15:43 package/feeds/packages/mwan3 -> ../../../feeds/packages/net/mwan3 -
軟件包里包含該軟件包的配置文件、相關(guān)應(yīng)用腳本、和針對(duì)官方版本的patch:
$ tree -L 2 feeds/packages/net/rsync/ feeds/packages/net/rsync/ ├── Config.in ├── files │ ├── rsyncd.conf │ └── rsyncd.init ├── Makefile └── patches └── 000-CVE-2014-9512.patch $ cat feeds/packages/net/rsync/Makefile include $(TOPDIR)/rules.mk #下面三個(gè)拼接成要下載的文件名 PKG_NAME:=rsync PKG_VERSION:=3.1.1 PKG_RELEASE:=2 #要下載的文件名 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz #下載地址 PKG_SOURCE_URL:=http://rsync.samba.org/ftp/rsync/src #MD5校驗(yàn)碼 PKG_MD5SUM:=43bd6676f0b404326eee2d63be3cdcfe PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com> PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk ...... ......
dl目錄
從feeds.conf指定的倉庫下載的package和feed中Makefile中指定版本的各種源碼包。
build_dir和staging_dir
- 執(zhí)行make時(shí)自動(dòng)在
build_dir中解壓需要參與編譯的代碼包后才開始在build_dir開始代碼的編譯 -
staging_dir用于保存build_dir中編譯完成的軟件