Skip to content

Commit 85315ad

Browse files
Merge pull request MicrosoftDocs#5052 from HarryGwinnell/main
Fix unclosed links
2 parents b5e50aa + 28f053e commit 85315ad

17 files changed

+47
-47
lines changed

docs/build/reference/commands-in-a-makefile.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ A command preceded by a semicolon (**`;`**) can appear on a dependency line or i
1818
project.obj : project.c project.h ; cl /c project.c
1919
```
2020

21-
## <a name="command-modifiers"> Command modifiers
21+
## <a name="command-modifiers" /> Command modifiers
2222

2323
You can specify one or more command modifiers preceding a command, optionally separated by spaces or tabs. As with commands, modifiers must be indented.
2424

@@ -28,7 +28,7 @@ You can specify one or more command modifiers preceding a command, optionally se
2828
| **`-`**\[*number*] *command* | Turns off error checking for *command*. By default, NMAKE halts when a command returns a nonzero exit code. If *-number* is used, NMAKE stops if the exit code exceeds *number*. Spaces or tabs can't appear between the dash and *number.* At least one space or tab must appear between *number* and *command*. Use **`/I`** to turn off error checking for the entire makefile; use **`.IGNORE`** to turn off error checking for part of the makefile. |
2929
| **`!`** *command* | Executes *command* for each dependent file if *command* uses **`$**`** (all dependent files in the dependency) or **`$?`** (all dependent files in the dependency with a later timestamp than the target). |
3030

31-
## <a name="filename-parts-syntax"> Filename-parts syntax
31+
## <a name="filename-parts-syntax" /> Filename-parts syntax
3232

3333
Filename-parts syntax in commands represents components of the first dependent filename (which may be an implied dependent). Filename components are the file's drive, path, base name, and extension as specified, not as it exists on disk. Use **`%s`** to represent the complete filename. Use **`%|`**\[*parts*]**`F`** (a vertical bar character follows the percent symbol) to represent parts of the filename, where *parts* can be zero or more of the following letters, in any order.
3434

docs/build/reference/contents-of-a-makefile.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ For a sample, see [Sample makefile](sample-makefile.md).
2424

2525
NMAKE supports other features, such as wildcards, long filenames, comments, and escapes for special characters.
2626

27-
## <a name="wildcards-and-nmake"> Wildcards and NMAKE
27+
## <a name="wildcards-and-nmake" /> Wildcards and NMAKE
2828

2929
NMAKE expands filename wildcards (**`*`** and **`?`**) in dependency lines. A wildcard specified in a command is passed to the command; NMAKE doesn't expand it.
3030

31-
## <a name="long-filenames-in-a-makefile"> Long filenames in a makefile
31+
## <a name="long-filenames-in-a-makefile" /> Long filenames in a makefile
3232

3333
Enclose long filenames in double quotation marks, as follows:
3434

3535
```makefile
3636
all : "VeryLongFileName.exe"
3737
```
3838

39-
## <a name="comments-in-a-makefile"> Comments in a makefile
39+
## <a name="comments-in-a-makefile" /> Comments in a makefile
4040

4141
Precede a comment with a number sign (**`#`**). NMAKE ignores text from the number sign to the next newline character.
4242

@@ -66,7 +66,7 @@ To specify a literal number sign, precede it with a caret (**`^`**), as follows:
6666
DEF = ^#define #Macro for a C preprocessing directive
6767
```
6868
69-
## <a name="special-characters-in-a-makefile"> Special characters in a makefile
69+
## <a name="special-characters-in-a-makefile" /> Special characters in a makefile
7070
7171
To use an NMAKE special character as a literal character, place a caret (**`^`**) in front of it as an escape. NMAKE ignores carets that precede other characters. The special characters are:
7272

docs/build/reference/creating-a-makefile-project.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ If you have an existing makefile project, you have these choices if you want to
1616
- **Visual Studio 2017 and later**: Use the **Open Folder** feature to edit and build a makefile project as-is without any involvement of the MSBuild system. For more information, see [Open Folder projects for C++](../open-folder-projects-cpp.md).
1717
- **Visual Studio 2019 and later**: Create a UNIX makefile project for Linux.
1818

19-
## <a name="create_a_makefile_project"> To create a makefile project with the makefile project template
19+
## <a name="create_a_makefile_project" /> To create a makefile project with the makefile project template
2020

2121
In Visual Studio 2017 and later, the Makefile project template is available when the C++ Desktop Development workload is installed.
2222

docs/build/reference/defining-an-nmake-macro.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The *macro_name* is a case-sensitive combination of letters, digits, and undersc
1616

1717
The *string* can be any sequence of zero or more characters. A *null* string contains zero characters or only spaces or tabs. The *string* can contain a macro invocation.
1818

19-
## <a name="special-characters-in-macros"> Special characters in macros
19+
## <a name="special-characters-in-macros" /> Special characters in macros
2020

2121
A number sign (**`#`**) after a definition specifies a comment. To specify a literal number sign in a macro, use a caret (**`^`**) to escape it, as in **`^#`**.
2222

@@ -31,19 +31,19 @@ CMDS = cls^
3131
dir
3232
```
3333

34-
## <a name="null-and-undefined-macros"> Null and undefined macros
34+
## <a name="null-and-undefined-macros" /> Null and undefined macros
3535

3636
Both null and undefined macros expand to null strings, but a macro defined as a null string is considered defined in preprocessing expressions. To define a macro as a null string, specify no characters except spaces or tabs after the equal sign (**`=`**) in a command line or command file, and enclose the null string or definition in double quotation marks (**`" "`**). To undefine a macro, use **`!UNDEF`**. For more information, see [Makefile preprocessing directives](makefile-preprocessing.md#makefile-preprocessing-directives).
3737

38-
## <a name="where-to-define-macros"> Where to define macros
38+
## <a name="where-to-define-macros" /> Where to define macros
3939

4040
Define macros in a command line, command file, makefile, or the *`Tools.ini`* file.
4141

4242
In a makefile or the *`Tools.ini`* file, each macro definition must appear on a separate line and can't start with a space or tab. Spaces or tabs around the equal sign are ignored. All *string* characters are literal, including surrounding quotation marks and embedded spaces.
4343

4444
In a command line or command file, spaces and tabs delimit arguments and can't surround the equal sign. If *string* has embedded spaces or tabs, enclose either the string itself or the entire macro in double quotation marks (**`" "`**).
4545

46-
## <a name="precedence-in-macro-definitions"> Precedence in macro definitions
46+
## <a name="precedence-in-macro-definitions" /> Precedence in macro definitions
4747

4848
If a macro has multiple definitions, NMAKE uses the highest-precedence definition. The following list shows the order of precedence, from highest to lowest:
4949

docs/build/reference/inference-rules.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Inference rules in NMAKE supply commands to update targets and to infer dependen
1010

1111
If an out-of-date dependency has no commands, and if [`.SUFFIXES`](dot-directives.md) contains the dependent's extension, NMAKE uses a rule whose extensions match the target and an existing file in the current or specified directory. If more than one rule matches existing files, the **`.SUFFIXES`** list determines which to use; list priority descends from left to right. If a dependent file doesn't exist and isn't listed as a target in another description block, an inference rule can create the missing dependent from another file that has the same base name. If a description block's target has no dependents or commands, an inference rule can update the target. Inference rules can build a command-line target even if no description block exists. NMAKE may invoke a rule for an inferred dependent even if an explicit dependent is specified.
1212

13-
## <a name="defining-a-rule"> Defining a rule
13+
## <a name="defining-a-rule" /> Defining a rule
1414

1515
The *from_ext* represents the extension of a dependent file, and *to_ext* represents the extension of a target file.
1616

@@ -21,7 +21,7 @@ The *from_ext* represents the extension of a dependent file, and *to_ext* repres
2121

2222
Extensions aren't case-sensitive. Macros can be invoked to represent *from_ext* and *to_ext*; the macros are expanded during preprocessing. The period (**`.`**) that precedes *from_ext* must appear at the beginning of the line. The colon (**`:`**) is preceded by zero or more spaces or tabs. It can be followed only by spaces or tabs, a semicolon (**`;`**) to specify a command, a number sign (**`#`**) to specify a comment, or a newline character. No other spaces are allowed. Commands are specified as in description blocks.
2323

24-
## <a name="search-paths-in-rules"> Search paths in rules
24+
## <a name="search-paths-in-rules" /> Search paths in rules
2525

2626
```makefile
2727
{from_path}.from_ext{to_path}.to_ext:
@@ -61,7 +61,7 @@ An inference rule applies to a dependency only if paths specified in the depende
6161
$(CC) $(CFLAGS) $<
6262
```
6363

64-
## <a name="batch-mode-rules"> Batch-mode rules
64+
## <a name="batch-mode-rules" /> Batch-mode rules
6565

6666
```makefile
6767
{from_path}.from_ext{to_path}.to_ext::
@@ -135,7 +135,7 @@ foo4.cpp
135135
Generating Code...
136136
```
137137

138-
## <a name="predefined-rules"> Predefined rules
138+
## <a name="predefined-rules" /> Predefined rules
139139

140140
Predefined inference rules use NMAKE-supplied command and options macros.
141141

@@ -155,7 +155,7 @@ Predefined inference rules use NMAKE-supplied command and options macros.
155155
| `.cxx.obj` | `$(CXX) $(CXXFLAGS) /c $<` | `cl /c $<` | yes | all |
156156
| `.rc.res` | `$(RC) $(RFLAGS) /r $<` | `rc /r $<` | no | all |
157157

158-
## <a name="inferred-dependents-and-rules"> Inferred dependents and rules
158+
## <a name="inferred-dependents-and-rules" /> Inferred dependents and rules
159159

160160
NMAKE assumes an inferred dependent for a target if an applicable inference rule exists. A rule applies if:
161161

@@ -169,7 +169,7 @@ NMAKE assumes an inferred dependent for a target if an applicable inference rule
169169

170170
Inferred dependents can cause unexpected side effects. If the target's description block contains commands, NMAKE executes those commands instead of the commands in the rule.
171171

172-
## <a name="precedence-in-inference-rules"> Precedence in inference rules
172+
## <a name="precedence-in-inference-rules" /> Precedence in inference rules
173173

174174
If an inference rule is defined more than once, NMAKE uses the highest-precedence definition. The following list shows the order of precedence from highest to lowest:
175175

docs/build/reference/inline-files-in-a-makefile.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ helpviewer_keywords: ["inline files [C++], in makefiles", "inline files [C++]",
88

99
An inline file contains text you specify in the makefile. Its name can be used in commands as input (for example, a LINK command file), or it can pass commands to the operating system. The file is created on disk when a command that creates the file is run.
1010

11-
## <a name="specifying-an-inline-file"> Specify an inline file
11+
## <a name="specifying-an-inline-file" /> Specify an inline file
1212

1313
Specify two angle brackets (**`<<`**) in the command where *filename* is to appear. The angle brackets can't be a macro expansion. The *filename* is optional:
1414

@@ -18,7 +18,7 @@ Specify two angle brackets (**`<<`**) in the command where *filename* is to appe
1818

1919
When the command is run, the angle brackets are replaced by *filename*, if specified, or by a unique NMAKE-generated name. If specified, *filename* must follow angle brackets without a space or tab. A path is permitted. No extension is required or assumed. If *filename* is specified, the file is created in the current or specified directory, overwriting any existing file by that name. Otherwise, it's created in the `TMP` directory (or the current directory, if the `TMP` environment variable isn't defined). If a previous *filename* is reused, NMAKE replaces the previous file.
2020

21-
## <a name="creating-inline-file-text"> Create inline file text
21+
## <a name="creating-inline-file-text" /> Create inline file text
2222

2323
Inline files are temporary or permanent.
2424

@@ -34,11 +34,11 @@ Specify your *inline_text* on the first line after the command. Mark the end wit
3434

3535
A temporary file exists for the duration of the session and can be reused by other commands. Specify **`KEEP`** after the closing angle brackets to retain the file after the NMAKE session; an unnamed file is preserved on disk with the generated filename. Specify **`NOKEEP`** or nothing for a temporary file. **`KEEP`** and **`NOKEEP`** are not case sensitive.
3636

37-
## <a name="reusing-inline-files"> Reuse inline files
37+
## <a name="reusing-inline-files" /> Reuse inline files
3838

3939
To reuse an inline file, specify `<<filename` where the file is defined and first used, then reuse *filename* without `<<` later in the same or another command. The command to create the inline file must run before all commands that use the file.
4040

41-
## <a name="multiple-inline-files"> Multiple inline files
41+
## <a name="multiple-inline-files" /> Multiple inline files
4242

4343
A command can create more than one inline file:
4444

docs/build/reference/makefile-preprocessing.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ helpviewer_keywords: ["preprocessing makefiles", "makefiles, preprocessing", "!C
99

1010
You can control the NMAKE session by using preprocessing directives and expressions. Preprocessing instructions can be placed in the makefile or in *`Tools.ini`*. Using directives, you can conditionally process your makefile, display error messages, include other makefiles, undefine a macro, and turn certain options on or off.
1111

12-
## <a name="makefile-preprocessing-directives"> Makefile Preprocessing Directives
12+
## <a name="makefile-preprocessing-directives" /> Makefile Preprocessing Directives
1313

1414
Preprocessing directives aren't case-sensitive. The initial exclamation point (**`!`**) must appear at the beginning of the line. Zero or more spaces or tabs can appear after the exclamation point, for indentation.
1515

@@ -67,13 +67,13 @@ Preprocessing directives aren't case-sensitive. The initial exclamation point (*
6767

6868
Undefines *macro_name*.
6969

70-
## <a name="expressions-in-makefile-preprocessing"> Expressions in makefile preprocessing
70+
## <a name="expressions-in-makefile-preprocessing" /> Expressions in makefile preprocessing
7171

7272
The **`!IF`** or **`!ELSE IF`** *constant_expression* consists of integer constants (in decimal or C-language notation), string constants, or commands. Use parentheses to group expressions. Expressions use C-style signed long integer arithmetic; numbers are in 32-bit two's-complement form in the range -2147483648 to 2147483647.
7373

7474
Expressions can use operators that act on constant values, exit codes from commands, strings, macros, and file-system paths.
7575

76-
## <a name="makefile-preprocessing-operators"> Makefile preprocessing operators
76+
## <a name="makefile-preprocessing-operators" /> Makefile preprocessing operators
7777

7878
Makefile preprocessing expressions can use operators that act on constant values, exit codes from commands, strings, macros, and file-system paths. To evaluate the expression, the preprocessor first expands macros, and then executes commands, and then does the operations. It evaluates operations in order of explicit grouping in parentheses, and then in order of operator precedence. The result is a constant value.
7979

@@ -125,7 +125,7 @@ Expressions can use the following operators. The operators of equal precedence a
125125
> [!NOTE]
126126
> The bitwise XOR operator (**`^`**) is the same as the escape character, and must be escaped (as **`^^`**) when it's used in an expression.
127127
128-
## <a name="executing-a-program-in-preprocessing"> Executing a program in preprocessing
128+
## <a name="executing-a-program-in-preprocessing" /> Executing a program in preprocessing
129129

130130
To use a command's exit code during preprocessing, specify the command, with any arguments, within brackets (**`[ ]`**). Any macros are expanded before the command is executed. NMAKE replaces the command specification with the command's exit code, which can be used in an expression to control preprocessing.
131131

docs/build/reference/special-nmake-macros.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ no-loc: [AS, AFLAGS, CC, CFLAGS, CPP, CPPFLAGS, CXX, CXXFLAGS, RC, RFLAGS, ias,
99

1010
NMAKE provides several special macros to represent various filenames and commands. One use for some of these macros is in the predefined inference rules. Like all macros, the macros provided by NMAKE are case sensitive.
1111

12-
## <a name="filename-macros"> Filename Macros
12+
## <a name="filename-macros" /> Filename Macros
1313

1414
Filename macros are predefined as filenames specified in the dependency (not full filename specifications on disk). These macros don't need to be enclosed in parentheses when invoked; specify only a **`$`** as shown.
1515

@@ -31,7 +31,7 @@ To specify part of a predefined filename macro, append a macro modifier and encl
3131
| **`F`** | Base name plus extension |
3232
| **`R`** | Drive plus directory plus base name |
3333

34-
## <a name="recursion-macros"> Recursion macros
34+
## <a name="recursion-macros" /> Recursion macros
3535

3636
Use recursion macros to call NMAKE recursively. Recursive sessions inherit command-line and environment-variable macros and *`Tools.ini`* information. They don't inherit makefile-defined inference rules or `.SUFFIXES` and `.PRECIOUS` specifications. There are three ways to pass macros to a recursive NMAKE session:
3737

@@ -45,7 +45,7 @@ Use recursion macros to call NMAKE recursively. Recursive sessions inherit comma
4545
| **`MAKEDIR`** | Current directory when NMAKE was invoked. |
4646
| **`MAKEFLAGS`** | Options currently in effect. Use as `/$(MAKEFLAGS)`. The **`/F`** option isn't included. |
4747

48-
## <a name="command-macros-and-options-macros"> Command macros and options macros
48+
## <a name="command-macros-and-options-macros" /> Command macros and options macros
4949

5050
Command macros are predefined for Microsoft products. Options macros represent options to these products and are undefined by default. Both are used in predefined inference rules and can be used in description blocks or user-defined inference rules. Command macros can be redefined to represent part or all of a command line, including options. Options macros generate a null string if left undefined.
5151

@@ -57,7 +57,7 @@ Command macros are predefined for Microsoft products. Options macros represent o
5757
| C++ Compiler | **`CXX`** | `cl` | **`CXXFLAGS`** |
5858
| Resource Compiler | **`RC`** | `rc` | **`RFLAGS`** |
5959

60-
## <a name="environment-variable-macros"> Environment-variable macros
60+
## <a name="environment-variable-macros" /> Environment-variable macros
6161

6262
NMAKE inherits macro definitions for environment variables that exist before the start of the session. If a variable was set in the operating-system environment, it is available as an NMAKE macro. The inherited names are converted to uppercase. Inheritance occurs before preprocessing. Use the /E option to cause macros inherited from environment variables to override any macros with the same name in the makefile.
6363

0 commit comments

Comments
 (0)