规则
目标:依赖
命令
led.bin:led.o
arm-linux-ld -Tled.lds -o led.elf led.o
.PHONY:clean
clean:
rm *-o led.elf led.bin(只有命令,没有依赖,.PHONY:说明它是伪目标)
makefile里面的第一条规则的目标就是最终目标
使用变量前:
app1: app1.o func1.o func2.o
gcc app1.o func1.o func2.o -o app1
app2: app2.o func1.o func2.o
gcc app2.o func1.o func2.o -o app2
使用变量后:
obj=func1.o func2.o
app1: app1.o (obj)gccapp1.o(obj) -o app1
app2: app2.o (obj)gccapp2.o(obj) -o app2
在makefile中,用户除了可以自己定义变量外,还可以使用
存在系统已经定义好的默认变量。
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件
使用前:
led.o : led.S
arm-linux-gcc -g –o led.o -c led.S
使用后:
led.o : led.S
arm-linux-gcc -g –o @−c^
%
%.o : %.S
arm-none-linux-gnueabi-gcc -o @< -c -nostdlib
取代相同形式的所有文件
去回显@
%.o : %.S
@arm-none-linux-gnueabi-gcc -o @< -c -nostdlib
这样即可执行不回显
其他名字makefile
默认只需找Makefile,其他的make -f [filename]