5.2 Makefile使用示例
5.2.1 简单的Makefile
本节的Makefile是一个简单的示例,它只用于显示信息,并不生成具体的目标。文件如下所示:
all: @echo "+++++++ make all +++++++" rule0: @echo "Input = $(INPUT)" @echo 'This Target is $@' .PHONY : clean clean: @echo "------- clean ------" |
在该文件中,每一条语句的@echo 'This Target is $@'的前面需要使用Tab键作为开头,这是Makefile书写的要求。
在命令行键入"make":
$ make +++++++ make all +++++++
|
执行的结果是Makefile文件中的all规则。注意,在文件命令行中使用@,表示不在命令行显示该程序的运行输出状态,对于没有使用@标注的命令,在执行make的时候,命令行的内容将显示在屏幕上。
使用clean:
$ make clean ------- clean ------
|
此时,make工具根据Makefile中的clean目标执行相关的内容。
以上执行make和make clean是使用make工具的时候最常见的方式,make默认执行all目标,make clean表示清除目标。
对于Makefile中的其他目标,可以通过在命令行指定让其得到执行,如下所示:
$ make rule0 Input = This Target is rule0
|
此时,明确指定执行rule0目标。由于使用的变量$(INPUT)没有初始值,因此打印出的内容为空。
在Makefile中,可以使用"变量=值"的方式,在命令行指定执行过程中变量的值。如下所示:
$ make rule0 INPUT=abcde Input = abcde This Target is rule0 |
此时由于命令行指定了INPUT=abcde,因此在执行的过程中$(INPUT)变量的值为abcde,在执行echo时输出了这个值。由此,对于同一个Makefile文件,其执行的结果,可以根据命令行的参数进行选择,由此实现其可配置的特性。