diff options
author | Tom Rini <trini@kernel.crashing.org> | 2004-10-17 03:51:27 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2004-10-17 03:51:27 +0200 |
commit | 111cf588d3fdb9b9bb596bfd38705ccc690499d7 (patch) | |
tree | e4f966528e97f798ef2166d0e9fea3c9b65d521a /scripts | |
parent | 98d80463f8fcdcb66670da698a880b4b45be2c4c (diff) | |
download | history-111cf588d3fdb9b9bb596bfd38705ccc690499d7.tar.gz |
kbuild: fix 'htmldocs' and friends with O=
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.
Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/basic/docproc.c | 19 | ||||
-rwxr-xr-x | scripts/kernel-doc | 2 |
2 files changed, 16 insertions, 5 deletions
diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index d28f883cb37ac7..cb02baa63256ba 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 aa7ffee63b4507..767cb2365a8236 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; |