kernel-doc nano-HOWTO
=====================

ĥ꡼ˤϡ֥åȷǴؿвǽʸ
󤢤ޤΥƥΥݡͥȤϼΤȤǤ

- scripts/kernel-doc

  ֥åȤõľ DocBook, man, text, HTML إޡ
  åפǤ Perl ץȤǤ (texinfo ϤǤޤ)

- Documentation/DocBook/*.tmpl

  SGML ƥץ졼ȥեǤ̤ SGML եǡФ줿
  ʸ񤬤ɤ֤٤ؼ̤ʾݻƤޤ

- scripts/docproc.c

  SGML ƥץ졼ȥե SGML եѴ뤿Υץ
  Ǥե뤬Ȥȡؿȳؿ̤Ǥ褦
  뤿ᡢΥݡȤƤ륷ܥ (EXPORT_SYMBOL) 
  ޤʸ񲽤ؿΰͿ kernel-doc ưޤ
  äơΥץϡȤƤƤΥեΰ֤
  뤿 SGML ƥץ졼ȥե򥹥󤹤ΤˤȤޤ
  ϡmake ǻȤ褦ʰ¸뤿˻Ѥޤ

- Makefile

  Documentation/DocBook  DocBook ե롢PostScript ե롢
  PDF ե롢HTML ե뤿ˡåȤƤ줾
  'sgmldocs', 'psdocs', 'pdfdocs', 'htmldocs' Ѥޤ

- Documentation/DocBook/Makefile

  ɤ C ե뤬 SGML ƥץ졼Ȥȴط뤫Ƥޤ


ʸˡ
--------------

͡ʥ֥ƥ (Documentation/DocBook/*.tmpl 򻲾ȤƤ)
δܤñɤߤʤ顢ñ 'make psdocs', 'make pdfdocs',
'make htmldocs' Τ줫򤢤ʤιߤˤϤƤ
ʳΰۤʤեޥåȤɤߤʤ顢'make sgmldocs' Ϥ塢
DocBook ġѤ Documentation/DocBook/*.sgml ˾ե
ޥåȤѴǤޤ (㤨 'make htmldocs' ꤷʤäʤ顢
'db2html ...')

man ڡ˻ȤСΤ褦ˤޤ

  $ cd linux
  $ scripts/kernel-doc -man $(find -name '*.c') | split-man.pl /tmp/man
  $ scripts/kernel-doc -man $(find -name '*.h') | split-man.pl /tmp/man

split-man.pl ʲ˼ޤ

  #!/usr/bin/perl

  if ($#ARGV < 0) {
      die "where do I put the results?\n";
  }

  mkdir $ARGV[0],0777;
  $state = 0;
  while (<STDIN>) {
      if (/^\.TH \"[^\"]*\" 4 \"([^\"]*)\"/) {
          if ($state == 1) { close OUT }
          $state = 1;
          $fn = "$ARGV[0]/$1.4";
          print STDERR "Creating $fn\n";
          open OUT, ">$fn" or die "can't open $fn: $!\n";
          print OUT $_;
      } elsif ($state != 0) {
          print OUT $_;
      }
  }
    
  close OUT;

եΤؿʸ򸫤СΤ褦ˤޤ

  $ scripts/kernel-doc -man -function fn file | nroff -man | less

뤤ϼΤ褦ˤޤ

  $ scripts/kernel-doc -text -function fn file


եؤвǽʸɲˡ
------------------------------------------

֥åȤν񼰤ϰʲΤ褦ʤΤǤ

  /**
   * function_name(:)? (- short description)?
  (* @parameterx: (description of parameter x)?)*
  (* a blank line)?
   * (Description:)? (Description of function)?
   * (section header: (section description)? )*
  (*)?*/

ñʴؿ (short description) ʣԤˤǤޤ󤬡¾
(description) ʣԤˤǤޤ (ޤԤޤळȤǤޤ)ؿ
̾θ˸ζԤ֤ʤǤʤ֤
Ƥޤޤ

ʸΤ˽졢̤ʥѥξ硢Ŭڤ˶Ĵܤ
ޤ

  'funcname()'    - ؿ
  '$ENVVAR'       - Ķѿ
  '&struct_name'  - ¤̾ ('struct' ޤĤޤǤñ)
  '@parameter'    - ̾
  '%CONST'        - ̾

ϥĥ꡼ʤƤ


 SGML ƥץ졼ȥեκˡ
------------------------------------------

SGML ƥץ졼ȥե (*.tmpl) ϡФ줿ʸ٤
򼨤ץ󥹤ޤळȤǤ뤳Ȱʳϡ̤ SGML
եƱͤǤ

!E<ե̾> ϡ<ե̾>  EXPORT_SYMBOL Ѥƥݡ
Ƥؿʸ֤ޤ - ؿΰ Documentation/
DocBook/Makefile ˵ܤ줿ե뷲齸ޤ

!I<ե̾> ϡEXPORT_SYMBOL ѤƥݡȤƤʤؿ
ʸ֤ޤ

!D<ե̾> ϡEXPORT_SYMBOL ѤƥݡȤƤؿ
ɲåե뷲ꤹΤ˻Ѥޤ

!F<ե̾> <ؿ [ؿ...]> ϡ<ե̾> ΥꥹȤƤ
ؿʸ֤ޤ


Tim.
*/ <twaugh@redhat.com>

------------------------------------------------------------
Ρ JF ץ < http://www.linux.or.jp/JF/ >
ǽ 2004/05/04
ԡ     <hng(a)ps.ksky.ne.jp>
      ɧ <takahiko(a)hakubi.co.jp>
