From eeb753e87115a7b19cc7de83c061fa5e599acb81 Mon Sep 17 00:00:00 2001
From: cypherpunks <cypherpunks@torproject.org>
Date: Wed, 11 Mar 2015 10:47:13 +0100
Subject: [PATCH] Make `check-docs` work from out-of-tree builds.

---
 Makefile.am                                               | 4 ++--
 configure.ac                                              | 3 +++
 .../maint/{checkOptionDocs.pl => checkOptionDocs.pl.in}   | 8 +++-----
 3 files changed, 8 insertions(+), 7 deletions(-)
 rename scripts/maint/{checkOptionDocs.pl => checkOptionDocs.pl.in} (88%)
 mode change 100755 => 100644

diff --git a/Makefile.am b/Makefile.am
index 56a1a01c44..4527dd1244 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -109,8 +109,8 @@ check-spaces:
 		$(top_srcdir)/src/tools/*.[ch] \
 		$(top_srcdir)/src/tools/tor-fw-helper/*.[ch]
 
-check-docs:
-	$(top_srcdir)/scripts/maint/checkOptionDocs.pl
+check-docs: all
+	$(PERL) $(top_builddir)/scripts/maint/checkOptionDocs.pl
 
 check-logs:
 	$(top_srcdir)/scripts/maint/checkLogs.pl \
diff --git a/configure.ac b/configure.ac
index 1109a4be50..3ba686802a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -215,6 +215,8 @@ AC_PROG_CPP
 AC_PROG_MAKE_SET
 AC_PROG_RANLIB
 
+AC_PATH_PROG([PERL], [perl])
+
 dnl autoconf 2.59 appears not to support AC_PROG_SED
 AC_CHECK_PROG([SED],[sed],[sed],[/bin/false])
 
@@ -1661,6 +1663,7 @@ AC_CONFIG_FILES([
         contrib/dist/tor.service
         src/config/torrc.sample
         src/config/torrc.minimal
+        scripts/maint/checkOptionDocs.pl
 ])
 
 if test x$asciidoc = xtrue && test "$ASCIIDOC" = "none" ; then
diff --git a/scripts/maint/checkOptionDocs.pl b/scripts/maint/checkOptionDocs.pl.in
old mode 100755
new mode 100644
similarity index 88%
rename from scripts/maint/checkOptionDocs.pl
rename to scripts/maint/checkOptionDocs.pl.in
index 94307c6cef..1f53adf099
--- a/scripts/maint/checkOptionDocs.pl
+++ b/scripts/maint/checkOptionDocs.pl.in
@@ -7,7 +7,7 @@ my %torrcSampleOptions = ();
 my %manPageOptions = ();
 
 # Load the canonical list as actually accepted by Tor.
-open(F, "./src/or/tor --list-torrc-options |") or die;
+open(F, "@abs_top_builddir@/src/or/tor --list-torrc-options |") or die;
 while (<F>) {
     next if m!\[notice\] Tor v0\.!;
     if (m!^([A-Za-z0-9_]+)!) {
@@ -34,12 +34,12 @@ sub loadTorrc {
     0;
 }
 
-loadTorrc("./src/config/torrc.sample.in", \%torrcSampleOptions);
+loadTorrc("@abs_top_srcdir@/src/config/torrc.sample.in", \%torrcSampleOptions);
 
 # Try to figure out what's in the man page.
 
 my $considerNextLine = 0;
-open(F, "./doc/tor.1.txt") or die;
+open(F, "@abs_top_srcdir@/doc/tor.1.txt") or die;
 while (<F>) {
     if (m!^(?:\[\[([A-za-z0-9_]+)\]\] *)?\*\*([A-Za-z0-9_]+)\*\*!) {
         $manPageOptions{$2} = 1;
@@ -67,5 +67,3 @@ subtractHashes("Orphaned in torrc.sample.in", \%torrcSampleOptions, \%options);
 
 subtractHashes("Not in man page", \%options, \%manPageOptions);
 subtractHashes("Orphaned in man page", \%manPageOptions, \%options);
-
-
-- 
GitLab