智能家居項目(2):項目工程框架的搭建
項目管理器:Linux中的項目管理器“make”有些類似於windows中的Visual C++裏的“工程”,它是一種控製編譯或者重複編譯軟件的工具,另外,它還能自動管理軟件編譯的內容、方式和時機,使程序員能夠把精力集中在代碼的編寫上而不是在源代碼的組織上。
|-- Makefile
|-- Readme.txt(記錄文件)
|-- board(嵌入式應用程序)
| |-- include
| | |-- common.h
| | |-- device.h
| | |-- log.h
| | |-- msg.h
| | `-- socket.h
| `-- src
| `-- Main
| |-- Makefile
| |-- init.c
| |-- log.c
| |-- main.c
| |-- serial.c
| |-- socket.c
| |-- socket_dev.c
| |-- systeminfo.c
| `-- thread.c
|-- drivers(驅動程序)
|-- kernel(內核源碼)
|-- script(腳本文件)
| `-- build.sh
|-- tools(使用到的工具)
| `-- images_tools
| `-- mkyaffs2image
|-- u-boot(bootloader源碼)
初步規劃好項目的代碼結構,編寫makefile文件,並使工程能夠順利的編譯通過。
.PHONY:help all uboot kernel app ramdisk system clean drivers SRC_PATH=$(shell pwd) export SRC_PATH help: @echo "Usage:" @echo "\tmake uboot # Compile UBoot" @echo "\tmake kernel # Compile Linux Kernel" @echo "\tmake ramdisk # Generate ramdisk.img" @echo "\tmake system # Generate system.img" @echo "\tmake app # Build Project applicatins" @echo "\tmake drivers # Build drivers" @echo "\tmake all # make uboot kernel ramdisk system app drivers" #$@是Makefile的通配符,代指你前麵指定的文件名, uboot kernel ramdisk system app drivers: @script/build.sh $@ all: @script/build.sh uboot @script/build.sh kernel @script/build.sh drivers @script/build.sh app @script/build.sh ramdisk @script/build.sh system # -C 大寫,切換到指定目錄再執行 make 過程,makefile 在這個指定目錄裏麵 clean: rm -fr images/* rm -fr system/modules/*.ko rm -fr system/app/* make -C board/src/Main make -C u-boot distclean make -C drivers clean make -C kernel clean
接下來的文章,將詳細熟悉board目錄中的文件。
最後更新:2017-04-03 05:39:52