パン屑の轍

ボドゲとかプログラミングとかゲームとか

Linux Kernel Document Build方法

概要

linux/Documentation/配下にLinux カーネルのドキュメントが存在する。

ドキュメントはrStで書かれており、sphinxでビルドできる。

ビルドされたものは、https://www.kernel.org/doc/html/v4.11/doc-guide/sphinx.htmlとかで公開されている。(これはv4.11当時のドキュメント)

ここでは、Macでドキュメントをビルドする方法を紹介する。

手順

  • sphinxをインストール

    pip3 install sphinx
    
  • automakeをインストール(Makefileの実行に必要)

    brew install automake
    
  • [Option] sphinx_rtd_theme, graphviz, ImageMagickをインストール(ドキュメントがかっこよくなるらしい)

    pip3 install sphinx_rtd_theme
    
    brew install graphviz ImageMagick
    
    # ubuntuの場合はImageMagickではなく、imagemagick
    
  • ビルド

    cd linux/  
    
    make htmldocs
    

    Documentation/outputにドキュメントが生成される。 WSLの場合はsudo apt install attrしてからsetfattr -n system.wsl_case_sensitive -v 1 <dir>linuxカーネルリポジトリ内の全フォルダで大文字小文字を区別するように設定する必要がある。

おまけ

  • html以外の形式でもビルドできる。
    • Latex: make latexdocs
    • PDF: make pdfdocs
    • EPUB: make epubdocs
    • XML: make xmldocs
  • cscope.outのビルド make cscope
  • Dashに取り込む。
    • Sphinxドキュメントからdocsetを作成するツールdoc2dashをインストール

      pip3 intall doc2dash
      
    • docsetを生成&Dashに追加

      cd linux/Documentation
      doc2dash -n linux -j -a output/
      

      linux.docsetが生成されてDashに追加される。 かなり快適にAPIとかを探せていい感じ。 Windowsの場合はZealを使うことになるので-aを抜いてドキュメントを生成してZealにインストールしてやればいい。 Zealへのインストール方法は割愛。

Linuxへの参加のきっかけとしてDocument書いてみるのもアリなのかも。 日本語翻訳記事もちらほらあるので需要はありそう。