閱讀884 返回首頁    go 阿裏雲 go 技術社區[雲棲]


智能家居項目(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

  上一篇:go cgroup子係統3_freezer子係統
  下一篇:go 【小程序】找出文件夾中特定後綴名的文件,並輸出到txt