From: Richard Levitte Date: Wed, 15 Jan 2020 07:28:46 +0000 (+0100) Subject: Build file templates: Use explicit files instead of $< or $? for pods X-Git-Tag: openssl-3.0.0-alpha1~662 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=98706c5a8cb2b0a1649add98125289db7da04861;p=oweals%2Fopenssl.git Build file templates: Use explicit files instead of $< or $? for pods When generating html or manpages from POD files, we used $< or $? to get the file name to process. It turns out, though, that some make implementations only define $< with implicit rules, so its expansion remains empty in explicit rules. $? is a fine replacement, but only as long as we have one dependency, so it may cause problems in the future. The final solution seems to be to use explicit POD file names instead. That leaves no doubts. Fixes #10817 Reviewed-by: Ben Kaduk (Merged from https://github.com/openssl/openssl/pull/10849) --- diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index f9f3aea4f4..d379a8230b 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -781,10 +781,11 @@ reconfigure reconf : if ($args{src} =~ /\.html$/) { my $title = basename($args{src}, ".html"); + my $pod = $args{generator}->[0]; return <<"EOF"; -$args{src}: $args{generator}->[0] +$args{src}: $pod pipe pod2html "--podroot=\$(SRCDIR)/doc" --htmldir=.. - - --podpath=man1:man3:man5:man7 "--infile=\$<" - + --podpath=man1:man3:man5:man7 "--infile=$pod" - "--title=$title" - | \$(PERL) -pe "s|href=""http://man\\.he\\.net/(man\d/[^""]+)(?:\\.html)?""|href=""../\$1.html|g;" - > \$\@ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 0edde3f599..f01040d39d 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -1184,20 +1184,22 @@ reconfigure reconf: if ($args{src} =~ /\.html$/) { my $title = basename($args{src}, ".html"); + my $pod = $args{generator}->[0]; return <<"EOF"; -$args{src}: $args{generator}->[0] +$args{src}: $pod pod2html "--podroot=\$(SRCDIR)/doc" --htmldir=.. \\ - --podpath=man1:man3:man5:man7 "--infile=\$<" "--title=$title" \\ + --podpath=man1:man3:man5:man7 --infile=$pod "--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"); + my $pod = $args{generator}->[0]; return <<"EOF"; -$args{src}: $args{generator}->[0] +$args{src}: $pod pod2man --name=$name --section=$section --center=OpenSSL \\ - --release=\$(VERSION) \$< \\ + --release=\$(VERSION) $pod \\ > \$\@ EOF } elsif (platform->isdef($args{src})) { diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 83df9f27a9..275c93ebc1 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -586,10 +586,11 @@ reconfigure reconf: if ($args{src} =~ /\.html$/) { my $title = basename($args{src}, ".html"); + my $pod = $args{generator}->[0]; return <<"EOF"; -$args{src}: $args{generator}->[0] +$args{src}: "$pod" pod2html "--podroot=\$(SRCDIR)/doc" --htmldir=.. \\ - --podpath=man1:man3:man5:man7 "--infile=\$?" "--title=$title" \\ + --podpath=man1:man3:man5:man7 "--infile=$pod" "--title=$title" \\ | \$(PERL) -pe ^"s^|href=\\^"http://man\\.he\\.net/^(man\\d/[^^\\^"]+^)^(?:\.html^)?^"^|href=\\^"../\$\$1.html^|g;^" \\ > \$\@ EOF