docs: add makefile var (#207)
This commit is contained in:
		
							
								
								
									
										75
									
								
								docs/make.md
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								docs/make.md
									
									
									
									
									
								
							@@ -152,6 +152,23 @@ VARIABLE ?= value
 | 
				
			|||||||
VARIABLE += value
 | 
					VARIABLE += value
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					如果变量前不指定 `override`,那么命令行中指定的变量可以对 Makefile 中的变量重新定义。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```makefile
 | 
				
			||||||
 | 
					# 不会重新定义
 | 
				
			||||||
 | 
					override VARIABLE = value
 | 
				
			||||||
 | 
					override VARIABLE := value
 | 
				
			||||||
 | 
					override VARIABLE ?= value
 | 
				
			||||||
 | 
					override VARIABLE += value
 | 
				
			||||||
 | 
					override define
 | 
				
			||||||
 | 
					  #...
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!--rehype:className=auto-wrap-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 变量
 | 
					### 变量
 | 
				
			||||||
 | 
					
 | 
				
			||||||
需要使用 `$()` 或者 `${}` 对变量进行引用
 | 
					需要使用 `$()` 或者 `${}` 对变量进行引用
 | 
				
			||||||
@@ -284,7 +301,7 @@ $ make main
 | 
				
			|||||||
# 此时 cc  main.c -o main
 | 
					# 此时 cc  main.c -o main
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### `$&`
 | 
					#### `$%`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`$%`: 仅当目标是函数库文件中,表示规则中的目标成员名
 | 
					`$%`: 仅当目标是函数库文件中,表示规则中的目标成员名
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -293,6 +310,62 @@ $ make main
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<!--rehype:className=style-round-->
 | 
					<!--rehype:className=style-round-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 内置命名变量的参数
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					这些变量都是相关下面的命令的参数。如果没有指明其默认值,那么其默认值都是空。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:-       | :-
 | 
				
			||||||
 | 
					:-       | :-
 | 
				
			||||||
 | 
					`ARFLAGS`  | 函数库打包程序AR命令的参数。默认值是 `rv`
 | 
				
			||||||
 | 
					`ASFLAGS`  | 汇编语言编译器参数。(当明显地调用 `.s` 或 `.S` 文件时)
 | 
				
			||||||
 | 
					`CFLAGS`   | C 语言编译器参数。
 | 
				
			||||||
 | 
					`CXXFLAGS` | C++ 语言编译器参数。
 | 
				
			||||||
 | 
					`COFLAGS`  | RCS 命令参数。
 | 
				
			||||||
 | 
					`CPPFLAGS` | C 预处理器参数。( `C` 和 `Fortran` 编译器也会用到)。
 | 
				
			||||||
 | 
					`FFLAGS`   | Fortran 语言编译器参数。
 | 
				
			||||||
 | 
					`GFLAGS`   | SCCS `get` 程序参数。
 | 
				
			||||||
 | 
					`LDFLAGS`  | 链接器参数。(如:`ld` )
 | 
				
			||||||
 | 
					`PFLAGS`   | Pascal 语言编译器参数。
 | 
				
			||||||
 | 
					`LFLAGS`   | Lex 文法分析器参数。
 | 
				
			||||||
 | 
					`RFLAGS`   | Ratfor 程序的 Fortran 编译器参数。
 | 
				
			||||||
 | 
					`YFLAGS`   | Yacc 文法分析器参数。
 | 
				
			||||||
 | 
					<!--rehype:className=left-align-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 内置已命名的变量
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:-         | :-
 | 
				
			||||||
 | 
					:-         | :-
 | 
				
			||||||
 | 
					`AR`       | 函数库打包程序。默认命令是 `ar`
 | 
				
			||||||
 | 
					`AS`       | 汇编语言编译程序。默认命令是 `as`
 | 
				
			||||||
 | 
					`CC`       | C 语言编译程序。默认命令是 `cc`
 | 
				
			||||||
 | 
					`CXX`      | C++ 语言编译程序。默认命令是 `g++`
 | 
				
			||||||
 | 
					`CO`       | 从 RCS 文件中扩展文件程序。默认命令是 `co`
 | 
				
			||||||
 | 
					`CPP`      | C 程序的预处理器(输出是标准输出设备)。默认命令是 `$(CC) –E`
 | 
				
			||||||
 | 
					`FC`       | Fortran 和 Ratfor 的编译器和预处理程序。默认命令是 `f77`
 | 
				
			||||||
 | 
					`GET`      | 从 SCCS 文件中扩展文件的程序。默认命令是 `get`
 | 
				
			||||||
 | 
					`LEX`      | Lex 方法分析器程序(针对于 C 或 Ratfor)。默认命令是 `lex`
 | 
				
			||||||
 | 
					`PC`       | Pascal 语言编译程序。默认命令是 `pc`
 | 
				
			||||||
 | 
					`YACC`     | Yacc 文法分析器(针对于 C 程序)。默认命令是 `yacc`
 | 
				
			||||||
 | 
					`YACCR`    | Yacc 文法分析器(针对于 Ratfor 程序)。默认命令是 `yacc –r`
 | 
				
			||||||
 | 
					`MAKEINFO` | 转换 Texinfo 源文件(.texi)到 Info 文件程序。默认命令是 `makeinfo`
 | 
				
			||||||
 | 
					`TEX`      | 从 TeX 源文件创建TeX DVI文件的程序。默认命令是 `tex`
 | 
				
			||||||
 | 
					`TEXI2DVI` | 从 Texinfo 源文件创建 TeX DVI 文件的程序。默认命令是 `texi2dvi`
 | 
				
			||||||
 | 
					`WEAVE`    | 转换 Web 到 TeX 的程序。默认命令是 `weave`
 | 
				
			||||||
 | 
					`CWEAVE`   | 转换 C Web 到 TeX 的程序。默认命令是 `cweave`
 | 
				
			||||||
 | 
					`TANGLE`   | 转换 Web 到 Pascal 语言的程序。默认命令是 `tangle`
 | 
				
			||||||
 | 
					`CTANGLE`  | 转换 C Web 到 C。默认命令是 `ctangle`
 | 
				
			||||||
 | 
					`RM`       | 删除文件命令。默认命令是 `rm –f`
 | 
				
			||||||
 | 
					<!--rehype:className=left-align-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### 内置的变量
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```makefile
 | 
				
			||||||
 | 
					run:
 | 
				
			||||||
 | 
						${CC} -o main main.c
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
另见
 | 
					另见
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user