makefile的规则
makefile的规则如下:
target ... : prerequisites ...
command
...
...
target可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个label。
prerequisites就是要生成那个target所需要的文件或者目标。
command就是make需要执行的命令。(任意的shell命令)
这三者的关系就是一个文件依赖关系,target这一个或者多个目标文件依赖与prerequisites中的文件,其生成规则定义在command中。这其中的主要意思就是,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是makefile中最核心的内容。
一个简单的示例
一个工程中有3个头文件,8个c文件,下面的makefile定义了这个工程编译的规则。
edit : main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
cc -o edit main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c dis