summaryrefslogtreecommitdiffstats
path: root/Configurations/unix-Makefile.tmpl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-08-31 22:57:25 +0200
committerRichard Levitte <levitte@openssl.org>2019-11-29 09:51:17 +0100
commitb0940b33a60cbfab03153287181372d0066410a6 (patch)
treeec0e3ecff60e2b012533f877cace6b9559133d45 /Configurations/unix-Makefile.tmpl
parentdf8f116ecd6e25577eb1e47a213df17d64e87b4a (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.tmpl192
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)' : '';