diff options
| -rw-r--r-- | Documentation/DocBook/Makefile | 7 | ||||
| -rw-r--r-- | scripts/basic/docproc.c | 19 | ||||
| -rwxr-xr-x | scripts/kernel-doc | 2 |
3 files changed, 21 insertions, 7 deletions
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 9a23eab001d4..fbd506e4ea2c 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile @@ -58,14 +58,14 @@ MAKEMAN = $(PERL) $(srctree)/scripts/makeman # 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 $< diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index d28f883cb37a..cb02baa63256 100644 --- a/scripts/basic/docproc.c +++ b/scripts/basic/docproc.c @@ -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 * filename) struct 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; diff --git a/scripts/kernel-doc b/scripts/kernel-doc index aa7ffee63b45..767cb2365a82 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -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; |
