最近在学习迷你2440开发板,用到了Makefile,对此做个小总结。
Makefile语法规则:用于说明如何生成目标文件
格式:
target目标:prerequisite依赖
command命令(注意,需要使用TAB键来空格)
范例:
all:led.o
arm-linux-ld -Tled.lds -o led.elf led.o 产生.elf文件
arm-linux-objcopy -O binary led.elf led.bin 产生bin文件
led.o:led.S
arm-linux-gcc -g -O -led.o -C led.S 产生.o文件
.PHONY:clean
clean:
rm *.c led.elf led.bin 清除.elf .bin文件(注:clean是伪目标)
目标是要产生的文件,依赖是目标文件的原料。命令是产生文件的方法。
但是rm指令不会产生文件,因此clean被叫做伪目标,所以.PHONY作用就是无视clean文件是否存在,都会执行下面该规则的rm命令。
通用规则:
$@代表目标,$^代表所有依赖文件,%代表任何文件名等
led.o:led.S
arm-linux-gcc -g -O -led.o -C led.S
等于
led.o:led.S
arm-linux-gcc -g -O $@ -C led.S