通用工程的Makefile编写
项目通用的Makefile主要分为3个部分:
- 顶层目录的Makefile
- 顶层目录的Makefile.build
- 各级子目录的Makefile
该Makefile主要是仿照Linux内核的make方式,我们从简单到复杂一类一类的分析,在最后会放上通用Makefile的3个文件供大家使用。
各级子目录的Makefile
先分析最简单的各级子目录的Makefile。
假设我们的子目录下有a.c和b.c两个项目文件需要被编译以及一个更深的子目录sub2dir,这时候我们这个子目录下的Makefile应该这么编写。
obj-y += a.o
obj-y += b.o
obj-y += sub2dir/
其实格式就是obj-y +=
后面跟上当前文件夹下的文件,如果是文件夹,就文件夹名称后面加上/
。而更深的子目录sub2dir也是一样,新建一个Makefile文件,然后把sub2dir目录下的文件或者文件夹用obj-y +=
包含进来。
顶层目录的Makefile
CROSS_COMPILE = arm