diff options
author | Richard Levitte <levitte@openssl.org> | 2016-08-31 22:57:25 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-11-29 09:51:17 +0100 |
commit | b0940b33a60cbfab03153287181372d0066410a6 (patch) | |
tree | ec0e3ecff60e2b012533f877cace6b9559133d45 /Configurations/unix-Makefile.tmpl | |
parent | df8f116ecd6e25577eb1e47a213df17d64e87b4a (diff) |
Adapt *.tmpl to generate docs at build time
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6236)
Diffstat (limited to 'Configurations/unix-Makefile.tmpl')
-rw-r--r-- | Configurations/unix-Makefile.tmpl | 192 |
1 files changed, 176 insertions, 16 deletions
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 6113ab4a34..c3c83f95cd 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -162,6 +162,38 @@ MISC_SCRIPTS={- && $unified_info{attributes}->{scripts}->{$_}->{misc} } @{$unified_info{scripts}})) -} +HTMLDOCS1={- + join(" \\\n" . ' ' x 10, + fill_lines(" ", $COLUMNS - 10, map { platform->bin($_) } + @{$unified_info{htmldocs}->{man1}})) -} +HTMLDOCS3={- + join(" \\\n" . ' ' x 10, + fill_lines(" ", $COLUMNS - 10, map { platform->bin($_) } + @{$unified_info{htmldocs}->{man3}})) -} +HTMLDOCS5={- + join(" \\\n" . ' ' x 10, + fill_lines(" ", $COLUMNS - 10, map { platform->bin($_) } + @{$unified_info{htmldocs}->{man5}})) -} +HTMLDOCS7={- + join(" \\\n" . ' ' x 10, + fill_lines(" ", $COLUMNS - 10, map { platform->bin($_) } + @{$unified_info{htmldocs}->{man7}})) -} +MANDOCS1={- + join(" \\\n" . ' ' x 9, + fill_lines(" ", $COLUMNS - 9, map { platform->bin($_) } + @{$unified_info{mandocs}->{man1}})) -} +MANDOCS3={- + join(" \\\n" . ' ' x 9, + fill_lines(" ", $COLUMNS - 9, map { platform->bin($_) } + @{$unified_info{mandocs}->{man3}})) -} +MANDOCS5={- + join(" \\\n" . ' ' x 9, + fill_lines(" ", $COLUMNS - 9, map { platform->bin($_) } + @{$unified_info{mandocs}->{man5}})) -} +MANDOCS7={- + join(" \\\n" . ' ' x 9, + fill_lines(" ", $COLUMNS - 9, map { platform->bin($_) } + @{$unified_info{mandocs}->{man7}})) -} APPS_OPENSSL={- use File::Spec::Functions; catfile("apps","openssl") -} @@ -387,11 +419,15 @@ LANG=C # The main targets ################################################### -{- dependmagic('all'); -}: build_libs_nodep build_modules_nodep build_programs_nodep link-utils +{- dependmagic('build_sw'); -}: build_libs_nodep build_modules_nodep build_programs_nodep link-utils {- dependmagic('build_libs'); -}: build_libs_nodep {- dependmagic('build_modules'); -}: build_modules_nodep {- dependmagic('build_programs'); -}: build_programs_nodep +build_docs: build_man_docs build_html_docs +build_man_docs: $(MANDOCS1) $(MANDOCS3) $(MANDOCS5) $(MANDOCS7) +build_html_docs: $(HTMLDOCS1) $(HTMLDOCS3) $(HTMLDOCS5) $(HTMLDOCS7) + build_generated: $(GENERATED_MANDATORY) build_libs_nodep: libcrypto.pc libssl.pc openssl.pc build_modules_nodep: $(MODULES) @@ -402,13 +438,15 @@ build_apps build_tests: build_programs # Convenience target to prebuild all generated files, not just the mandatory # ones -build_all_generated: $(GENERATED_MANDATORY) $(GENERATED) +build_all_generated: $(GENERATED_MANDATORY) $(GENERATED) build_docs @ : {- output_off() if $disabled{makedepend}; "" -} @echo "Warning: consider configuring with no-makedepend, because if" @echo " target system doesn't have $(PERL)," @echo " then make will fail..." @ : {- output_on() if $disabled{makedepend}; "" -} +all: build_sw build_docs + test: tests {- dependmagic('tests'); -}: build_programs_nodep build_modules_nodep link-utils @ : {- output_off() if $disabled{tests}; "" -} @@ -458,6 +496,8 @@ libclean: $(RM) *{- platform->defext() -} clean: libclean + $(RM) $(HTMLDOCS1) $(HTMLDOCS3) $(HTMLDOCS5) $(HTMLDOCS7) + $(RM) $(MANDOCS1) $(MANDOCS3) $(MANDOCS5) $(MANDOCS7) $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(SCRIPTS) $(RM) $(GENERATED_MANDATORY) $(GENERATED) -$(RM) `find . -name '*{- platform->depext() -}' \! -name '.*' \! -type d -print` @@ -764,29 +804,131 @@ uninstall_runtime_libs: @ : {- output_on() unless windowsdll(); "" -} -install_man_docs: +install_man_docs: build_man_docs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man1 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man3 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man5 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man7 @$(ECHO) "*** Installing manpages" - $(PERL) $(SRCDIR)/util/process_docs.pl \ - --destdir=$(DESTDIR)$(MANDIR) --type=man --suffix=$(MANSUFFIX) + @set -e; for x in dummy $(MANDOCS1); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man1/$$fn"; \ + cp $$x $(DESTDIR)$(MANDIR)/man1/$$fn$(MANSUFFIX); \ + chmod 755 $(DESTDIR)$(MANDIR)/man1/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS3); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man3/$$fn"; \ + cp $$x $(DESTDIR)$(MANDIR)/man3/$$fn$(MANSUFFIX); \ + chmod 755 $(DESTDIR)$(MANDIR)/man3/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS5); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man5/$$fn"; \ + cp $$x $(DESTDIR)$(MANDIR)/man5/$$fn$(MANSUFFIX); \ + chmod 755 $(DESTDIR)$(MANDIR)/man5/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS7); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man7/$$fn"; \ + cp $$x $(DESTDIR)$(MANDIR)/man7/$$fn$(MANSUFFIX); \ + chmod 755 $(DESTDIR)$(MANDIR)/man7/$$fn$(MANSUFFIX); \ + done uninstall_man_docs: @$(ECHO) "*** Uninstalling manpages" - $(PERL) $(SRCDIR)/util/process_docs.pl \ - --destdir=$(DESTDIR)$(MANDIR) --type=man --suffix=$(MANSUFFIX) \ - --remove + @set -e; for x in dummy $(MANDOCS1); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man1/$$fn"; \ + $(RM) $(DESTDIR)$(MANDIR)/man1/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS3); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man3/$$fn"; \ + $(RM) $(DESTDIR)$(MANDIR)/man3/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS5); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man5/$$fn"; \ + $(RM) $(DESTDIR)$(MANDIR)/man5/$$fn$(MANSUFFIX); \ + done + @set -e; for x in dummy $(MANDOCS7); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man7/$$fn"; \ + $(RM) $(DESTDIR)$(MANDIR)/man7/$$fn$(MANSUFFIX); \ + done -install_html_docs: +install_html_docs: build_html_docs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man1 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man3 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man5 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man7 @$(ECHO) "*** Installing HTML manpages" - $(PERL) $(SRCDIR)/util/process_docs.pl \ - --destdir=$(DESTDIR)$(HTMLDIR) --type=html + @set -e; for x in dummy $(HTMLDOCS1); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ + cp $$x $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ + chmod 755 $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS3); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ + cp $$x $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ + chmod 755 $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS5); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ + cp $$x $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ + chmod 755 $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS7); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ + cp $$x $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ + chmod 755 $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ + done uninstall_html_docs: - @$(ECHO) "*** Uninstalling manpages" - $(PERL) $(SRCDIR)/util/process_docs.pl \ - --destdir=$(DESTDIR)$(HTMLDIR) --type=html --remove - + @$(ECHO) "*** Uninstalling HTML manpages" + @set -e; for x in dummy $(HTMLDOCS1); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ + $(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS3); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ + $(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS5); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ + $(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ + done + @set -e; for x in dummy $(HTMLDOCS7); do \ + if [ "$$x" = "dummy" ]; then continue; fi; \ + fn=`basename $$x`; \ + $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ + $(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ + done # Developer targets (note: these are only available on Unix) ######### @@ -1027,7 +1169,25 @@ reconfigure reconf: my $defs = join("", map { " -D".$_ } @{$args{defs}}); my $deps = join(" ", @{$args{generator_deps}}, @{$args{deps}}); - if (platform->isdef($args{src})) { + if ($args{src} =~ /\.html$/) { + my $title = basename($args{src}, ".html"); + return <<"EOF"; +$args{src}: $args{generator}->[0] + pod2html "--podroot=\$(SRCDIR)/doc" --htmldir=.. \\ + --podpath=man1:man3:man5:man7 "--infile=\$<" "--title=$title" \\ + | \$(PERL) -pe 's|href="http://man\\.he\\.net/(man\\d/[^"]+)(?:\\.html)?"|href="../\$1.html|g;' \\ + > \$\@ +EOF + } elsif ($args{src} =~ /\.(\d)$/) { + my $section = $1; + my $name = uc basename($args{src}, ".$section"); + return <<"EOF"; +$args{src}: $args{generator}->[0] + pod2man --name=$name --section=$section --center=OpenSSL \\ + --release=\$(VERSION) \$< \\ + > \$\@ +EOF + } elsif (platform->isdef($args{src})) { my $target = platform->def($args{src}); (my $mkdef_os = $target{shared_target}) =~ s|-shared$||; my $ord_ver = $args{intent} eq 'lib' ? ' --version $(VERSION)' : ''; |