aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorTom Rini <trini@kernel.crashing.org>2004-10-17 03:51:27 +0200
committerSam Ravnborg <sam@mars.ravnborg.org>2004-10-17 03:51:27 +0200
commit111cf588d3fdb9b9bb596bfd38705ccc690499d7 (patch)
treee4f966528e97f798ef2166d0e9fea3c9b65d521a /scripts
parent98d80463f8fcdcb66670da698a880b4b45be2c4c (diff)
downloadhistory-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.c19
-rwxr-xr-xscripts/kernel-doc2
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;