@$(PERL) $(TOP)/util/mkdir-p.pl \ $(INSTALL_PREFIX)$(MANDIR)/man1 \ $(INSTALL_PREFIX)$(MANDIR)/man3 \ $(INSTALL_PREFIX)$(MANDIR)/man5 \ $(INSTALL_PREFIX)$(MANDIR)/man7 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ here="`pwd`"; \ filecase=; \ if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \ filecase=-i; \ fi; \ set -e; for i in doc/apps/*.pod; do \ fn=`basename $$i .pod`; \ sec=`$(PERL) util/extract-section.pl 1 < $$i`; \ echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ (cd `$(PERL) util/dirname.pl $$i`; \ sh -c "$$pod2man \ --section=$$sec --center=OpenSSL \ --release=$(VERSION) `basename $$i`") \ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ $(PERL) util/extract-names.pl < $$i | \ (grep -v $$filecase "^$$fn\$$"; true) | \ (grep -v "[ ]"; true) | \ (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ while read n; do \ $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ done); \ done; \ set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \ fn=`basename $$i .pod`; \ sec=`$(PERL) util/extract-section.pl 3 < $$i`; \ echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ (cd `$(PERL) util/dirname.pl $$i`; \ sh -c "$$pod2man \ --section=$$sec --center=OpenSSL \ --release=$(VERSION) `basename $$i`") \ > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ $(PERL) util/extract-names.pl < $$i | \ (grep -v $$filecase "^$$fn\$$"; true) | \ (grep -v "[ ]"; true) | \ (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \ while read n; do \ $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \ 检查这段代码,并修改成功 done); \ done \
时间: 2023-09-03 14:08:44 浏览: 140
util-linux-2.23.2-65.el7_9.1.x86_64.rpm
5星 · 资源好评率100%
这段代码是一个 Makefile 的一个规则,用于安装 OpenSSL 的 man 页面。它会将 doc/apps 和 doc/crypto、doc/ssl 目录下的所有 .pod 文件转换为对应的 man 页面,并将其安装到指定的目录。其中,pod2man 是一个将 Pod 格式的文档转换为 man 页面的工具,util/extract-section.pl 和 util/extract-names.pl 是辅助工具,用于从 Pod 文件中提取 section 和 name 信息。具体来说,这段代码会执行以下操作:
1. 创建安装目录 $(INSTALL_PREFIX)$(MANDIR)/man1、man3、man5 和 man7。
2. 对于 doc/apps 和 doc/crypto、doc/ssl 目录下的每个 .pod 文件:
a. 提取文件名和 section 信息。
b. 使用 pod2man 将 .pod 文件转换为 .man 文件,并输出到对应的 man 目录下。
c. 使用 extract-names.pl 提取 .pod 文件中定义的 name 信息,并使用 point.sh 将这些信息与对应的 man 页面关联起来。
需要注意的是,这段代码中的变量 $(PERL)、$(TOP)、$(PLATFORM)、$(VERSION) 等都是 Makefile 中定义的变量,需要根据具体情况进行替换。
阅读全文