Fix 'htmldocs' and friends with O=
Subsystems (2)
PATCH 1/1 Fix 'htmldocs' and friends with O=
Hello. The following patch fixes up 'htmldocs' and related to work when trees are being built with O=. I fixed it all up by passing the srctree as an env-var to docproc (and thus what it calls) and then pull that out when needed.
Documentation/DocBook/Makefile +5 -2
@@ -58,14 +58,14 @@ MAKEMAN = $(PERL) $(srctree)/scripts/m # The following rules are used to generate the .sgml documentation # required to generate the final targets. (ps, pdf, html). quiet_cmd_docproc = DOCPROC $@ - cmd_docproc = $(DOCPROC) doc $< >$@ + cmd_docproc = SRCTREE=$(srctree)/ $(DOCPROC) doc $< >$@ define rule_docproc set -e; \ $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ $(cmd_$(1)); \ ( \ echo 'cmd_$@ := $(cmd_$(1))'; \ - echo $@: `$(DOCPROC) depend $<`; \ + echo $@: `SRCTREE=$(srctree) $(DOCPROC) depend $<`; \ ) > $(dir $@).$(notdir $@).cmd endef
@@ -129,6 +129,9 @@ quiet_cmd_db2html = DB2HTML $@ # Rule to generate man files - output is placed in the man subdirectory %.9: %.sgml +ifneq ($(KBUILD_SRC),) + $(Q)mkdir -p $(objtree)/Documentation/DocBook/man +endif $(SPLITMAN) $< $(objtree)/Documentation/DocBook/man "$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)" $(MAKEMAN) convert $(objtree)/Documentation/DocBook/man $<
scripts/kernel-doc +1 -1
@@ -1531,7 +1531,7 @@ sub process_state3_type($$) { } sub process_file($) { - my ($file) = @_; + my ($file) = "$ENV{'SRCTREE'}@_"; my $identifier; my $func; my $initial_section_counter = $section_counter;
scripts/basic/docproc.c +15 -4
@@ -79,6 +79,7 @@ void exec_kernel_doc(char **svec) {pid_t pid;int ret; +char real_filename[PATH_MAX +1 ];/* Make sure output generated so far are flushed */ fflush (stdout);switch (pid=fork ()) {
@@ -86,8 +87,13 @@ void exec_kernel_doc(char **svec)perror ("fork" );exit (1 );case 0 : - execvp(KERNELDOCPATH KERNELDOC, svec); -perror ("exec " KERNELDOCPATH KERNELDOC ); +memset (real_filename,0 ,sizeof (real_filename)); +strncat (real_filename,getenv ("SRCTREE" ),PATH_MAX ); + strncat(real_filename, KERNELDOCPATH KERNELDOC, +PATH_MAX -strlen (real_filename)); +execvp (real_filename, svec); +fprintf (stderr,"exec " ); +perror (real_filename);exit (1 );default :waitpid (pid, &ret ,0 );
@@ -160,12 +166,17 @@ void find_export_symbols(char * filenamestruct symfile *sym;char line[MAXLINESZ ];if (filename_exist (filename) ==NULL ) { +char real_filename[PATH_MAX +1 ]; +memset (real_filename,0 ,sizeof (real_filename)); +strncat (real_filename,getenv ("SRCTREE" ),PATH_MAX ); +strncat (real_filename, filename, +PATH_MAX -strlen (real_filename)); sym =add_new_file (filename); - fp =fopen (filename,"r" ); + fp =fopen (real_filename,"r" );if (fp ==NULL ) {fprintf (stderr,"docproc: " ); -perror (filename); +perror (real_filename); }while (fgets (line,MAXLINESZ , fp)) {char *p;
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/
Salut,
scripts/kernel-doc sub process_state3_type($$) { · line 1537
Quoted 11 lines · Tom Rini
scripts/kernel-doc +1
-1@@ -1531,7 +1531,7 @@ sub process_state3_type($$) { } sub process_file($) { - my ($file) = @_; + my ($file) = "$ENV{'SRCTREE'}@_"; my $identifier; my $func; my $initial_section_counter = $section_counter;
From performance/memory footprint standpoint it might be better to use the dot operator here for concatenation.
Tonnerre
Quoted 8 lines · Tonnerre
Salut,
Quoted 5 lines · Tom Rini
scripts/kernel-doc +0
-0@@ -1531,7 +1531,7 @@ sub process_state3_type($$) { }
Quoted 9 lines
scripts/kernel-doc sub process_state3_type($$) { · line 1537
Quoted 6 lines
scripts/kernel-doc +1
-1sub process_file($) { - my ($file) = @_; + my ($file) = "$ENV{'SRCTREE'}@_"; my $identifier; my $func; my $initial_section_counter = $section_counter;From performance/memory footprint standpoint it might be better to use the dot operator here for concatenation.
I'm not a perl person, so if this makes sense to you Sam (or Andrew, if you've taken this...) please update. Thanks.
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/
Quoted 8 lines · Tonnerre
Salut,
Quoted 5 lines · Tom Rini
scripts/kernel-doc +0
-0@@ -1531,7 +1531,7 @@ sub process_state3_type($$) { }
Quoted 9 lines
scripts/kernel-doc sub process_state3_type($$) { · line 1537
Quoted 6 lines
scripts/kernel-doc +1
-1sub process_file($) { - my ($file) = @_; + my ($file) = "$ENV{'SRCTREE'}@_"; my $identifier; my $func; my $initial_section_counter = $section_counter;From performance/memory footprint standpoint it might be better to use the dot operator here for concatenation.
For this usage I prefer readability for us who are not familiar with perl. For me a '.' is used as thousand separator and end of line. No usage for concatenation seems intuitive.
So I let it be as-is.
Sam