diff --git a/Doxyfile.in b/Doxyfile.in
index 547a7db190ae41ec061802c281cdc3e4bd24bb4d..75e50b96277c50895c5e5bccf540504420b4bd45 100644
--- a/Doxyfile.in
+++ b/Doxyfile.in
@@ -256,7 +256,7 @@ TAB_SIZE               = 8
 
 ALIASES                =
 
-ALIASES += refdir{1}="\ref @top_srcdir@/src/\1 \"\1\""
+ALIASES += refdir{1}="\ref @SRCDIR@/src/\1 \"\1\""
 
 # This tag can be used to specify a number of word-keyword mappings (TCL only).
 # A mapping has the form "name=value". For example adding "class=itcl::class"
@@ -818,7 +818,7 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @top_srcdir@/src/
+INPUT                  = @SRCDIR@/src/
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -860,9 +860,9 @@ RECURSIVE              = YES
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                = @top_srcdir@/src/ext \
-                         @top_srcdir@/src/trunnel \
-                         @top_srcdir@/src/test
+EXCLUDE                = @SRCDIR@/src/ext \
+                         @SRCDIR@/src/trunnel \
+                         @SRCDIR@/src/test
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/configure.ac b/configure.ac
index 487361773dd243ad28569c5e78e5e2ab29c049c4..fa975a28145bbaeaec968087e7c3dcf0feb7de93 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2129,6 +2129,7 @@ if test "x$SRCDIR" = "x"; then
   SRCDIR=$(cd "$srcdir"; pwd)
 fi
 AH_TEMPLATE([SRCDIR],[tor's sourcedir directory])
+AC_SUBST(SRCDIR)
 AC_DEFINE_UNQUOTED(SRCDIR,"$SRCDIR")
 
 if test "x$CONFDIR" = "x"; then