Em Thu, 20 Jun 2019 15:43:57 +0300 Mike Rapoport <rppt@xxxxxxxxxxxxx> escreveu: > Build of htmldocs fails for out-of-tree builds: > > $ make V=1 O=~/build/kernel/ htmldocs > make -C /home/rppt/build/kernel -f /home/rppt/git/linux-docs/Makefile htmldocs > make[1]: Entering directory '/home/rppt/build/kernel' > make -f /home/rppt/git/linux-docs/scripts/Makefile.build obj=scripts/basic > rm -f .tmp_quiet_recordmcount > make -f /home/rppt/git/linux-docs/scripts/Makefile.build obj=Documentation htmldocs > Can't open Documentation/conf.py at /home/rppt/git/linux-docs/scripts/sphinx-pre-install line 230. > /home/rppt/git/linux-docs/Documentation/Makefile:80: recipe for target 'htmldocs' failed > make[2]: *** [htmldocs] Error 2 > > The scripts/sphinx-pre-install is trying to open files in the current > directory which is $KBUILD_OUTPUT rather than in $srctree. > > Fix it. > > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> > --- > scripts/sphinx-pre-install | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install > index 0b44d51..f710bbd 100755 > --- a/scripts/sphinx-pre-install > +++ b/scripts/sphinx-pre-install > @@ -5,8 +5,9 @@ use strict; > # Copyright (c) 2017-2019 Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > # > > -my $conf = "Documentation/conf.py"; > -my $requirement_file = "Documentation/sphinx/requirements.txt"; > +my $prefix = "$ENV{'srctree'}/"; looks OK when called from Makefile, but if someone runs the script directly, it will fail. Better to code it as: my $prefix = "."; $prefix = "$ENV{'srctree'}/" if ($ENV{'srctree'}); > +my $conf = $prefix . "Documentation/conf.py"; > +my $requirement_file = $prefix . "Documentation/sphinx/requirements.txt"; > my $virtenv_prefix = "sphinx_"; > > # Thanks, Mauro