summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2020-01-15 08:28:46 +0100
committerRichard Levitte <levitte@openssl.org>2020-01-17 08:51:24 +0100
commit98706c5a8cb2b0a1649add98125289db7da04861 (patch)
tree08f482fe4c428171e0645ad8a2ccbae86718b46c
parent43becc3fe5c25d0b1f524dac825d942a59753718 (diff)
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 <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10849)
-rw-r--r--Configurations/descrip.mms.tmpl5
-rw-r--r--Configurations/unix-Makefile.tmpl10
-rw-r--r--Configurations/windows-makefile.tmpl5
3 files changed, 12 insertions, 8 deletions
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