Skip to content

Commit

Permalink
Translation errors fix / Typo fix (#57)
Browse files Browse the repository at this point in the history
Co-authored-by: queue <phyque.zz@gmail.com>
  • Loading branch information
WarningRoo and WarningRoo authored May 1, 2024
1 parent 84a7bcc commit 84cc2da
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions source/implicit_rules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -481,26 +481,26 @@ make的参数 ``-r`` 或 ``-no-builtin-rules`` 也会使用得默认的后缀列
隐含规则搜索算法
----------------

比如我们有一个目标叫 T。下面是搜索目标T的规则的算法。请注意,在下面,我们没有提到后缀规则,
比如我们有一个目标叫 T。下面是搜索目标T的隐含规则的算法。请注意,在下面,我们没有提到后缀规则,
原因是,所有的后缀规则在Makefile被载入内存时,会被转换成模式规则。如果目标是 ``archive(member)``
的函数库文件模式,那么这个算法会被运行两次,第一次是找目标T,如果没有找到的话,那么进入第二次,
第二次会把 ``member`` 当作T来搜索。

#. 把T的目录部分分离出来。叫D,而剩余部分叫N。(如:如果T是 ``src/foo.o`` ,那么,D就是
``src/`` ,N就是 ``foo.o`` )
#. 创建所有匹配于T或是N的模式规则列表。
#. 创建所有匹配于T或是N的模式规则列表。如果目标模式包含斜杠,则用该模式匹配T;否则匹配N。
#. 如果在模式规则列表中有匹配所有文件的模式,如 ``%`` ,那么从列表中移除其它的模式。
#. 移除列表中没有命令的规则。
#. 对于第一个在列表中的模式规则
#. 对于列表中的每一个模式规则

#. 推导其“茎”S,S应该是T或是N匹配于模式中 ``%`` 非空的部分。
#. 计算依赖文件。把依赖文件中的 ``%`` 都替换成“茎”S。如果目标模式中没有包含斜框字符
而把D加在第一个依赖文件的开头
#. 计算依赖文件。把依赖文件中的 ``%`` 都替换成“茎”S。如果目标模式中没有包含斜杠字符
而把D加在每一个依赖文件的开头
#. 测试是否所有的依赖文件都存在或是理当存在。(如果有一个文件被定义成另外一个规则的目标文件,
或者是一个显式规则的依赖文件,那么这个文件就叫“理当存在”)
#. 如果所有的依赖文件存在或是理当存在,或是就没有依赖文件。那么这条规则将被采用,退出该算法。

#. 如果经过第5步,没有模式规则被找到,那么就做更进一步的搜索。对于存在于列表中的第一个模式规则
#. 如果经过第5步,没有模式规则被找到,那么就做更进一步的搜索。对于列表中的每一个模式规则

#. 如果规则是终止规则,那就忽略它,继续下一条模式规则。
#. 计算依赖文件。(同第5步)
Expand Down

0 comments on commit 84cc2da

Please sign in to comment.