两个makefile实现嵌套
时间: 2023-08-11 12:31:27 浏览: 53
可以通过在一个Makefile中引用另一个Makefile来实现Makefile的嵌套。以下是一个示例:
假设有两个Makefile文件,分别是`Makefile1`和`Makefile2`。其中,`Makefile1`定义了一个`build`规则,该规则依赖于`Makefile2`中的`compile`规则,`Makefile2`定义了一个`compile`规则,该规则依赖于一些源文件。这个结构可以描述为:
```
Makefile1
build: Makefile2/compile
Makefile2
compile: source1.c source2.c
```
要实现这个嵌套结构,可以在`Makefile1`中使用`include`命令来引用`Makefile2`,并定义`build`规则。`Makefile1`的内容如下:
```
include Makefile2
build: Makefile2/compile
@echo "Building..."
```
在`Makefile1`中,使用`include`命令来引用`Makefile2`。然后,在`build`规则中,依赖于`Makefile2/compile`,并添加了一个`echo`命令,用于输出"Building..."的信息。
接下来,是`Makefile2`的内容:
```
compile: source1.c source2.c
@echo "Compiling source files..."
```
在`Makefile2`中,定义了`compile`规则,并依赖于两个源文件。添加了一个`echo`命令,用于输出"Compiling source files..."的信息。
这样,当执行`make build`命令时,`Makefile1`会被解析,并引用`Makefile2`,然后执行`build`规则,该规则依赖于`Makefile2`中的`compile`规则,最终会输出"Building..."和"Compiling source files..."的信息。
注意,需要保证`Makefile1`和`Makefile2`在同一个目录下,或者在`Makefile1`中使用相对路径或绝对路径来引用`Makefile2`。