智能家居项目(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文件,并使工程能够顺利的编译通过。

[objc] view plain copy
  1. .PHONY:help all uboot kernel app ramdisk system clean drivers  
  2. SRC_PATH=$(shell pwd)  
  3. export SRC_PATH  
  4.   
  5. help:  
  6.     @echo "Usage:"  
  7.     @echo "\tmake uboot # Compile UBoot"  
  8.     @echo "\tmake kernel    # Compile Linux Kernel"  
  9.     @echo "\tmake ramdisk   # Generate ramdisk.img"  
  10.     @echo "\tmake system    # Generate system.img"  
  11.     @echo "\tmake app   # Build Project applicatins"  
  12.     @echo "\tmake drivers   # Build drivers"  
  13.     @echo "\tmake all   # make uboot kernel ramdisk system app drivers"  
  14.   
  15. #$@是Makefile的通配符,代指你前面指定的文件名,     
  16. uboot kernel ramdisk system app drivers:  
  17.     @script/build.sh $@  
  18.       
  19. all:  
  20.     @script/build.sh uboot  
  21.     @script/build.sh kernel  
  22.     @script/build.sh drivers  
  23.     @script/build.sh app  
  24.     @script/build.sh ramdisk  
  25.     @script/build.sh system  
  26.   
  27. # -C 大写,切换到指定目录再执行 make 过程,makefile 在这个指定目录里面  
  28. clean:    
  29.     rm -fr images/*  
  30.     rm -fr system/modules/*.ko  
  31.     rm -fr system/app/*  
  32.     make -C board/src/Main  
  33.     make -C u-boot distclean  
  34.     make -C drivers clean  
  35.     make -C kernel clean  
  36.       

接下来的文章,将详细熟悉board目录中的文件。

你可能感兴趣的:(智能家居)