lkml.org 
[lkml]   [2004]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2.6.9-rc3] 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.

    Signed-off-by: Tom Rini <trini@kernel.crashing.org>

    --- linux-2.6.9-rc3.orig/Documentation/DocBook/Makefile
    +++ linux-2.6.9-rc3/Documentation/DocBook/Makefile
    @@ -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 $<

    --- linux-2.6.9-rc3.orig/scripts/kernel-doc
    +++ linux-2.6.9-rc3/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;
    --- linux-2.6.9-rc3.orig/scripts/basic/docproc.c
    +++ linux-2.6.9-rc3/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;
    --
    Tom Rini
    http://gate.crashing.org/~trini/
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:06    [W:0.048 / U:120.480 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site