1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*- 2 # 2 # 3 # The Linux Kernel documentation build configu 3 # The Linux Kernel documentation build configuration file, created by 4 # sphinx-quickstart on Fri Feb 12 13:51:46 201 4 # sphinx-quickstart on Fri Feb 12 13:51:46 2016. 5 # 5 # 6 # This file is execfile()d with the current di 6 # This file is execfile()d with the current directory set to its 7 # containing dir. 7 # containing dir. 8 # 8 # 9 # Note that not all possible configuration val 9 # Note that not all possible configuration values are present in this 10 # autogenerated file. 10 # autogenerated file. 11 # 11 # 12 # All configuration values have a default; val 12 # All configuration values have a default; values that are commented out 13 # serve to show the default. 13 # serve to show the default. 14 14 15 import sys 15 import sys 16 import os 16 import os 17 import sphinx 17 import sphinx 18 import shutil 18 import shutil 19 19 20 # helper 20 # helper 21 # ------ 21 # ------ 22 22 23 def have_command(cmd): 23 def have_command(cmd): 24 """Search ``cmd`` in the ``PATH`` environm 24 """Search ``cmd`` in the ``PATH`` environment. 25 25 26 If found, return True. 26 If found, return True. 27 If not found, return False. 27 If not found, return False. 28 """ 28 """ 29 return shutil.which(cmd) is not None 29 return shutil.which(cmd) is not None 30 30 31 # Get Sphinx version 31 # Get Sphinx version 32 major, minor, patch = sphinx.version_info[:3] 32 major, minor, patch = sphinx.version_info[:3] 33 33 34 # 34 # 35 # Warn about older versions that we don't want 35 # Warn about older versions that we don't want to support for much 36 # longer. 36 # longer. 37 # 37 # 38 if (major < 2) or (major == 2 and minor < 4): 38 if (major < 2) or (major == 2 and minor < 4): 39 print('WARNING: support for Sphinx < 2.4 w 39 print('WARNING: support for Sphinx < 2.4 will be removed soon.') 40 40 41 # If extensions (or modules to document with a 41 # If extensions (or modules to document with autodoc) are in another directory, 42 # add these directories to sys.path here. If t 42 # add these directories to sys.path here. If the directory is relative to the 43 # documentation root, use os.path.abspath to m 43 # documentation root, use os.path.abspath to make it absolute, like shown here. 44 sys.path.insert(0, os.path.abspath('sphinx')) 44 sys.path.insert(0, os.path.abspath('sphinx')) 45 from load_config import loadConfig 45 from load_config import loadConfig 46 46 47 # -- General configuration ------------------- 47 # -- General configuration ------------------------------------------------ 48 48 49 # If your documentation needs a minimal Sphinx 49 # If your documentation needs a minimal Sphinx version, state it here. 50 needs_sphinx = '2.4.4' !! 50 needs_sphinx = '1.7' 51 51 52 # Add any Sphinx extension module names here, 52 # Add any Sphinx extension module names here, as strings. They can be 53 # extensions coming with Sphinx (named 'sphinx 53 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 54 # ones. 54 # ones. 55 extensions = ['kerneldoc', 'rstFlatTable', 'ke 55 extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 56 'kfigure', 'sphinx.ext.ifconfig' 56 'kfigure', 'sphinx.ext.ifconfig', 'automarkup', 57 'maintainers_include', 'sphinx.e 57 'maintainers_include', 'sphinx.ext.autosectionlabel', 58 'kernel_abi', 'kernel_feat', 'tr !! 58 'kernel_abi', 'kernel_feat'] 59 59 60 if major >= 3: 60 if major >= 3: 61 if (major > 3) or (minor > 0 or patch >= 2 61 if (major > 3) or (minor > 0 or patch >= 2): 62 # Sphinx c function parser is more ped 62 # Sphinx c function parser is more pedantic with regards to type 63 # checking. Due to that, having macros 63 # checking. Due to that, having macros at c:function cause problems. 64 # Those needed to be scaped by using c 64 # Those needed to be scaped by using c_id_attributes[] array 65 c_id_attributes = [ 65 c_id_attributes = [ 66 # GCC Compiler types not parsed by 66 # GCC Compiler types not parsed by Sphinx: 67 "__restrict__", 67 "__restrict__", 68 68 69 # include/linux/compiler_types.h: 69 # include/linux/compiler_types.h: 70 "__iomem", 70 "__iomem", 71 "__kernel", 71 "__kernel", 72 "noinstr", 72 "noinstr", 73 "notrace", 73 "notrace", 74 "__percpu", 74 "__percpu", 75 "__rcu", 75 "__rcu", 76 "__user", 76 "__user", 77 "__force", << 78 "__counted_by_le", << 79 "__counted_by_be", << 80 77 81 # include/linux/compiler_attribute 78 # include/linux/compiler_attributes.h: 82 "__alias", 79 "__alias", 83 "__aligned", 80 "__aligned", 84 "__aligned_largest", 81 "__aligned_largest", 85 "__always_inline", 82 "__always_inline", 86 "__assume_aligned", 83 "__assume_aligned", 87 "__cold", 84 "__cold", 88 "__attribute_const__", 85 "__attribute_const__", 89 "__copy", 86 "__copy", 90 "__pure", 87 "__pure", 91 "__designated_init", 88 "__designated_init", 92 "__visible", 89 "__visible", 93 "__printf", 90 "__printf", 94 "__scanf", 91 "__scanf", 95 "__gnu_inline", 92 "__gnu_inline", 96 "__malloc", 93 "__malloc", 97 "__mode", 94 "__mode", 98 "__no_caller_saved_registers", 95 "__no_caller_saved_registers", 99 "__noclone", 96 "__noclone", 100 "__nonstring", 97 "__nonstring", 101 "__noreturn", 98 "__noreturn", 102 "__packed", 99 "__packed", 103 "__pure", 100 "__pure", 104 "__section", 101 "__section", 105 "__always_unused", 102 "__always_unused", 106 "__maybe_unused", 103 "__maybe_unused", 107 "__used", 104 "__used", 108 "__weak", 105 "__weak", 109 "noinline", 106 "noinline", 110 "__fix_address", 107 "__fix_address", 111 "__counted_by", << 112 108 113 # include/linux/memblock.h: 109 # include/linux/memblock.h: 114 "__init_memblock", 110 "__init_memblock", 115 "__meminit", 111 "__meminit", 116 112 117 # include/linux/init.h: 113 # include/linux/init.h: 118 "__init", 114 "__init", 119 "__ref", 115 "__ref", 120 116 121 # include/linux/linkage.h: 117 # include/linux/linkage.h: 122 "asmlinkage", 118 "asmlinkage", 123 119 124 # include/linux/btf.h 120 # include/linux/btf.h 125 "__bpf_kfunc", 121 "__bpf_kfunc", 126 ] 122 ] 127 123 128 else: 124 else: 129 extensions.append('cdomain') 125 extensions.append('cdomain') 130 126 131 # Ensure that autosectionlabel will produce un 127 # Ensure that autosectionlabel will produce unique names 132 autosectionlabel_prefix_document = True 128 autosectionlabel_prefix_document = True 133 autosectionlabel_maxdepth = 2 129 autosectionlabel_maxdepth = 2 134 130 135 # Load math renderer: 131 # Load math renderer: 136 # For html builder, load imgmath only when its 132 # For html builder, load imgmath only when its dependencies are met. 137 # mathjax is the default math renderer since S 133 # mathjax is the default math renderer since Sphinx 1.8. 138 have_latex = have_command('latex') 134 have_latex = have_command('latex') 139 have_dvipng = have_command('dvipng') 135 have_dvipng = have_command('dvipng') 140 load_imgmath = have_latex and have_dvipng 136 load_imgmath = have_latex and have_dvipng 141 137 142 # Respect SPHINX_IMGMATH (for html docs only) 138 # Respect SPHINX_IMGMATH (for html docs only) 143 if 'SPHINX_IMGMATH' in os.environ: 139 if 'SPHINX_IMGMATH' in os.environ: 144 env_sphinx_imgmath = os.environ['SPHINX_IM 140 env_sphinx_imgmath = os.environ['SPHINX_IMGMATH'] 145 if 'yes' in env_sphinx_imgmath: 141 if 'yes' in env_sphinx_imgmath: 146 load_imgmath = True 142 load_imgmath = True 147 elif 'no' in env_sphinx_imgmath: 143 elif 'no' in env_sphinx_imgmath: 148 load_imgmath = False 144 load_imgmath = False 149 else: 145 else: 150 sys.stderr.write("Unknown env SPHINX_I 146 sys.stderr.write("Unknown env SPHINX_IMGMATH=%s ignored.\n" % env_sphinx_imgmath) 151 147 152 # Always load imgmath for Sphinx <1.8 or for e 148 # Always load imgmath for Sphinx <1.8 or for epub docs 153 load_imgmath = (load_imgmath or (major == 1 an 149 load_imgmath = (load_imgmath or (major == 1 and minor < 8) 154 or 'epub' in sys.argv) 150 or 'epub' in sys.argv) 155 151 156 if load_imgmath: 152 if load_imgmath: 157 extensions.append("sphinx.ext.imgmath") 153 extensions.append("sphinx.ext.imgmath") 158 math_renderer = 'imgmath' 154 math_renderer = 'imgmath' 159 else: 155 else: 160 math_renderer = 'mathjax' 156 math_renderer = 'mathjax' 161 157 162 # Add any paths that contain templates here, r 158 # Add any paths that contain templates here, relative to this directory. 163 templates_path = ['sphinx/templates'] 159 templates_path = ['sphinx/templates'] 164 160 165 # The suffix(es) of source filenames. 161 # The suffix(es) of source filenames. 166 # You can specify multiple suffix as a list of 162 # You can specify multiple suffix as a list of string: 167 # source_suffix = ['.rst', '.md'] 163 # source_suffix = ['.rst', '.md'] 168 source_suffix = '.rst' 164 source_suffix = '.rst' 169 165 170 # The encoding of source files. 166 # The encoding of source files. 171 #source_encoding = 'utf-8-sig' 167 #source_encoding = 'utf-8-sig' 172 168 173 # The master toctree document. 169 # The master toctree document. 174 master_doc = 'index' 170 master_doc = 'index' 175 171 176 # General information about the project. 172 # General information about the project. 177 project = 'The Linux Kernel' 173 project = 'The Linux Kernel' 178 copyright = 'The kernel development community' 174 copyright = 'The kernel development community' 179 author = 'The kernel development community' 175 author = 'The kernel development community' 180 176 181 # The version info for the project you're docu 177 # The version info for the project you're documenting, acts as replacement for 182 # |version| and |release|, also used in variou 178 # |version| and |release|, also used in various other places throughout the 183 # built documents. 179 # built documents. 184 # 180 # 185 # In a normal build, version and release are a 181 # In a normal build, version and release are are set to KERNELVERSION and 186 # KERNELRELEASE, respectively, from the Makefi 182 # KERNELRELEASE, respectively, from the Makefile via Sphinx command line 187 # arguments. 183 # arguments. 188 # 184 # 189 # The following code tries to extract the info 185 # The following code tries to extract the information by reading the Makefile, 190 # when Sphinx is run directly (e.g. by Read th 186 # when Sphinx is run directly (e.g. by Read the Docs). 191 try: 187 try: 192 makefile_version = None 188 makefile_version = None 193 makefile_patchlevel = None 189 makefile_patchlevel = None 194 for line in open('../Makefile'): 190 for line in open('../Makefile'): 195 key, val = [x.strip() for x in line.sp 191 key, val = [x.strip() for x in line.split('=', 2)] 196 if key == 'VERSION': 192 if key == 'VERSION': 197 makefile_version = val 193 makefile_version = val 198 elif key == 'PATCHLEVEL': 194 elif key == 'PATCHLEVEL': 199 makefile_patchlevel = val 195 makefile_patchlevel = val 200 if makefile_version and makefile_patch 196 if makefile_version and makefile_patchlevel: 201 break 197 break 202 except: 198 except: 203 pass 199 pass 204 finally: 200 finally: 205 if makefile_version and makefile_patchleve 201 if makefile_version and makefile_patchlevel: 206 version = release = makefile_version + 202 version = release = makefile_version + '.' + makefile_patchlevel 207 else: 203 else: 208 version = release = "unknown version" 204 version = release = "unknown version" 209 205 210 # 206 # 211 # HACK: there seems to be no easy way for us t 207 # HACK: there seems to be no easy way for us to get at the version and 212 # release information passed in from the makef 208 # release information passed in from the makefile...so go pawing through the 213 # command-line options and find it for ourselv 209 # command-line options and find it for ourselves. 214 # 210 # 215 def get_cline_version(): 211 def get_cline_version(): 216 c_version = c_release = '' 212 c_version = c_release = '' 217 for arg in sys.argv: 213 for arg in sys.argv: 218 if arg.startswith('version='): 214 if arg.startswith('version='): 219 c_version = arg[8:] 215 c_version = arg[8:] 220 elif arg.startswith('release='): 216 elif arg.startswith('release='): 221 c_release = arg[8:] 217 c_release = arg[8:] 222 if c_version: 218 if c_version: 223 if c_release: 219 if c_release: 224 return c_version + '-' + c_release 220 return c_version + '-' + c_release 225 return c_version 221 return c_version 226 return version # Whatever we came up with 222 return version # Whatever we came up with before 227 223 228 # The language for content autogenerated by Sp 224 # The language for content autogenerated by Sphinx. Refer to documentation 229 # for a list of supported languages. 225 # for a list of supported languages. 230 # 226 # 231 # This is also used if you do content translat 227 # This is also used if you do content translation via gettext catalogs. 232 # Usually you set "language" from the command 228 # Usually you set "language" from the command line for these cases. 233 language = 'en' 229 language = 'en' 234 230 235 # There are two options for replacing |today|: 231 # There are two options for replacing |today|: either, you set today to some 236 # non-false value, then it is used: 232 # non-false value, then it is used: 237 #today = '' 233 #today = '' 238 # Else, today_fmt is used as the format for a 234 # Else, today_fmt is used as the format for a strftime call. 239 #today_fmt = '%B %d, %Y' 235 #today_fmt = '%B %d, %Y' 240 236 241 # List of patterns, relative to source directo 237 # List of patterns, relative to source directory, that match files and 242 # directories to ignore when looking for sourc 238 # directories to ignore when looking for source files. 243 exclude_patterns = ['output'] 239 exclude_patterns = ['output'] 244 240 245 # The reST default role (used for this markup: 241 # The reST default role (used for this markup: `text`) to use for all 246 # documents. 242 # documents. 247 #default_role = None 243 #default_role = None 248 244 249 # If true, '()' will be appended to :func: etc 245 # If true, '()' will be appended to :func: etc. cross-reference text. 250 #add_function_parentheses = True 246 #add_function_parentheses = True 251 247 252 # If true, the current module name will be pre 248 # If true, the current module name will be prepended to all description 253 # unit titles (such as .. function::). 249 # unit titles (such as .. function::). 254 #add_module_names = True 250 #add_module_names = True 255 251 256 # If true, sectionauthor and moduleauthor dire 252 # If true, sectionauthor and moduleauthor directives will be shown in the 257 # output. They are ignored by default. 253 # output. They are ignored by default. 258 #show_authors = False 254 #show_authors = False 259 255 260 # The name of the Pygments (syntax highlightin 256 # The name of the Pygments (syntax highlighting) style to use. 261 pygments_style = 'sphinx' 257 pygments_style = 'sphinx' 262 258 263 # A list of ignored prefixes for module index 259 # A list of ignored prefixes for module index sorting. 264 #modindex_common_prefix = [] 260 #modindex_common_prefix = [] 265 261 266 # If true, keep warnings as "system message" p 262 # If true, keep warnings as "system message" paragraphs in the built documents. 267 #keep_warnings = False 263 #keep_warnings = False 268 264 269 # If true, `todo` and `todoList` produce outpu 265 # If true, `todo` and `todoList` produce output, else they produce nothing. 270 todo_include_todos = False 266 todo_include_todos = False 271 267 272 primary_domain = 'c' 268 primary_domain = 'c' 273 highlight_language = 'none' 269 highlight_language = 'none' 274 270 275 # -- Options for HTML output ----------------- 271 # -- Options for HTML output ---------------------------------------------- 276 272 277 # The theme to use for HTML and HTML Help page 273 # The theme to use for HTML and HTML Help pages. See the documentation for 278 # a list of builtin themes. 274 # a list of builtin themes. 279 275 280 # Default theme 276 # Default theme 281 html_theme = 'alabaster' 277 html_theme = 'alabaster' 282 html_css_files = [] 278 html_css_files = [] 283 279 284 if "DOCS_THEME" in os.environ: 280 if "DOCS_THEME" in os.environ: 285 html_theme = os.environ["DOCS_THEME"] 281 html_theme = os.environ["DOCS_THEME"] 286 282 287 if html_theme == 'sphinx_rtd_theme' or html_th 283 if html_theme == 'sphinx_rtd_theme' or html_theme == 'sphinx_rtd_dark_mode': 288 # Read the Docs theme 284 # Read the Docs theme 289 try: 285 try: 290 import sphinx_rtd_theme 286 import sphinx_rtd_theme 291 html_theme_path = [sphinx_rtd_theme.ge 287 html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] 292 288 293 # Add any paths that contain custom st 289 # Add any paths that contain custom static files (such as style sheets) here, 294 # relative to this directory. They are 290 # relative to this directory. They are copied after the builtin static files, 295 # so a file named "default.css" will o 291 # so a file named "default.css" will overwrite the builtin "default.css". 296 html_css_files = [ 292 html_css_files = [ 297 'theme_overrides.css', 293 'theme_overrides.css', 298 ] 294 ] 299 295 300 # Read the Docs dark mode override the 296 # Read the Docs dark mode override theme 301 if html_theme == 'sphinx_rtd_dark_mode 297 if html_theme == 'sphinx_rtd_dark_mode': 302 try: 298 try: 303 import sphinx_rtd_dark_mode 299 import sphinx_rtd_dark_mode 304 extensions.append('sphinx_rtd_ 300 extensions.append('sphinx_rtd_dark_mode') 305 except ImportError: 301 except ImportError: 306 html_theme == 'sphinx_rtd_them 302 html_theme == 'sphinx_rtd_theme' 307 303 308 if html_theme == 'sphinx_rtd_theme': 304 if html_theme == 'sphinx_rtd_theme': 309 # Add color-specific RTD norma 305 # Add color-specific RTD normal mode 310 html_css_files.append('theme_r 306 html_css_files.append('theme_rtd_colors.css') 311 307 312 html_theme_options = { 308 html_theme_options = { 313 'navigation_depth': -1, 309 'navigation_depth': -1, 314 } 310 } 315 311 316 except ImportError: 312 except ImportError: 317 html_theme = 'alabaster' 313 html_theme = 'alabaster' 318 314 319 if "DOCS_CSS" in os.environ: 315 if "DOCS_CSS" in os.environ: 320 css = os.environ["DOCS_CSS"].split(" ") 316 css = os.environ["DOCS_CSS"].split(" ") 321 317 322 for l in css: 318 for l in css: 323 html_css_files.append(l) 319 html_css_files.append(l) 324 320 325 if major <= 1 and minor < 8: 321 if major <= 1 and minor < 8: 326 html_context = { 322 html_context = { 327 'css_files': [], 323 'css_files': [], 328 } 324 } 329 325 330 for l in html_css_files: 326 for l in html_css_files: 331 html_context['css_files'].append('_sta 327 html_context['css_files'].append('_static/' + l) 332 328 333 if html_theme == 'alabaster': 329 if html_theme == 'alabaster': 334 html_theme_options = { 330 html_theme_options = { 335 'description': get_cline_version(), 331 'description': get_cline_version(), 336 'page_width': '65em', 332 'page_width': '65em', 337 'sidebar_width': '15em', 333 'sidebar_width': '15em', 338 'fixed_sidebar': 'true', 334 'fixed_sidebar': 'true', 339 'font_size': 'inherit', 335 'font_size': 'inherit', 340 'font_family': 'serif', 336 'font_family': 'serif', 341 } 337 } 342 338 343 sys.stderr.write("Using %s theme\n" % html_the 339 sys.stderr.write("Using %s theme\n" % html_theme) 344 340 345 # Add any paths that contain custom static fil 341 # Add any paths that contain custom static files (such as style sheets) here, 346 # relative to this directory. They are copied 342 # relative to this directory. They are copied after the builtin static files, 347 # so a file named "default.css" will overwrite 343 # so a file named "default.css" will overwrite the builtin "default.css". 348 html_static_path = ['sphinx-static'] 344 html_static_path = ['sphinx-static'] 349 345 350 # If true, Docutils "smart quotes" will be use 346 # If true, Docutils "smart quotes" will be used to convert quotes and dashes 351 # to typographically correct entities. Howeve !! 347 # to typographically correct entities. This will convert "--" to "—", 352 # is not always what we want, so enable only q !! 348 # which is not always what we want, so disable it. 353 smartquotes_action = 'q' !! 349 smartquotes = False 354 350 355 # Custom sidebar templates, maps document name 351 # Custom sidebar templates, maps document names to template names. 356 # Note that the RTD theme ignores this 352 # Note that the RTD theme ignores this 357 html_sidebars = { '**': ['searchbox.html', 'ke 353 html_sidebars = { '**': ['searchbox.html', 'kernel-toc.html', 'sourcelink.html']} 358 354 359 # about.html is available for alabaster theme. 355 # about.html is available for alabaster theme. Add it at the front. 360 if html_theme == 'alabaster': 356 if html_theme == 'alabaster': 361 html_sidebars['**'].insert(0, 'about.html' 357 html_sidebars['**'].insert(0, 'about.html') 362 358 363 # The name of an image file (relative to this << 364 # of the sidebar. << 365 html_logo = 'images/logo.svg' << 366 << 367 # Output file base name for HTML help builder. 359 # Output file base name for HTML help builder. 368 htmlhelp_basename = 'TheLinuxKerneldoc' 360 htmlhelp_basename = 'TheLinuxKerneldoc' 369 361 370 # -- Options for LaTeX output ---------------- 362 # -- Options for LaTeX output --------------------------------------------- 371 363 372 latex_elements = { 364 latex_elements = { 373 # The paper size ('letterpaper' or 'a4pape 365 # The paper size ('letterpaper' or 'a4paper'). 374 'papersize': 'a4paper', 366 'papersize': 'a4paper', 375 367 376 # The font size ('10pt', '11pt' or '12pt') 368 # The font size ('10pt', '11pt' or '12pt'). 377 'pointsize': '11pt', 369 'pointsize': '11pt', 378 370 379 # Latex figure (float) alignment 371 # Latex figure (float) alignment 380 #'figure_align': 'htbp', 372 #'figure_align': 'htbp', 381 373 382 # Don't mangle with UTF-8 chars 374 # Don't mangle with UTF-8 chars 383 'inputenc': '', 375 'inputenc': '', 384 'utf8extra': '', 376 'utf8extra': '', 385 377 386 # Set document margins 378 # Set document margins 387 'sphinxsetup': ''' 379 'sphinxsetup': ''' 388 hmargin=0.5in, vmargin=1in, 380 hmargin=0.5in, vmargin=1in, 389 parsedliteralwraps=true, 381 parsedliteralwraps=true, 390 verbatimhintsturnover=false, 382 verbatimhintsturnover=false, 391 ''', 383 ''', 392 << 393 # << 394 # Some of our authors are fond of deep nes << 395 # cope. << 396 # << 397 'maxlistdepth': '10', << 398 384 399 # For CJK One-half spacing, need to be in 385 # For CJK One-half spacing, need to be in front of hyperref 400 'extrapackages': r'\usepackage{setspace}', 386 'extrapackages': r'\usepackage{setspace}', 401 387 402 # Additional stuff for the LaTeX preamble. 388 # Additional stuff for the LaTeX preamble. 403 'preamble': ''' 389 'preamble': ''' 404 % Use some font with UTF-8 support wit 390 % Use some font with UTF-8 support with XeLaTeX 405 \\usepackage{fontspec} 391 \\usepackage{fontspec} 406 \\setsansfont{DejaVu Sans} 392 \\setsansfont{DejaVu Sans} 407 \\setromanfont{DejaVu Serif} 393 \\setromanfont{DejaVu Serif} 408 \\setmonofont{DejaVu Sans Mono} 394 \\setmonofont{DejaVu Sans Mono} 409 ''', 395 ''', 410 } 396 } 411 397 412 # Fix reference escape troubles with Sphinx 1. 398 # Fix reference escape troubles with Sphinx 1.4.x 413 if major == 1: 399 if major == 1: 414 latex_elements['preamble'] += '\\renewcom 400 latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n' 415 401 416 402 417 # Load kerneldoc specific LaTeX settings 403 # Load kerneldoc specific LaTeX settings 418 latex_elements['preamble'] += ''' 404 latex_elements['preamble'] += ''' 419 % Load kerneldoc specific LaTeX settin 405 % Load kerneldoc specific LaTeX settings 420 \\input{kerneldoc-preamble.sty} 406 \\input{kerneldoc-preamble.sty} 421 ''' 407 ''' 422 408 423 # With Sphinx 1.6, it is possible to change th 409 # With Sphinx 1.6, it is possible to change the Bg color directly 424 # by using: 410 # by using: 425 # \definecolor{sphinxnoteBgColor}{RGB}{2 411 # \definecolor{sphinxnoteBgColor}{RGB}{204,255,255} 426 # \definecolor{sphinxwarningBgColor}{RGB 412 # \definecolor{sphinxwarningBgColor}{RGB}{255,204,204} 427 # \definecolor{sphinxattentionBgColor}{R 413 # \definecolor{sphinxattentionBgColor}{RGB}{255,255,204} 428 # \definecolor{sphinximportantBgColor}{R 414 # \definecolor{sphinximportantBgColor}{RGB}{192,255,204} 429 # 415 # 430 # However, it require to use sphinx heavy box 416 # However, it require to use sphinx heavy box with: 431 # 417 # 432 # \renewenvironment{sphinxlightbox} {% 418 # \renewenvironment{sphinxlightbox} {% 433 # \\begin{sphinxheavybox} 419 # \\begin{sphinxheavybox} 434 # } 420 # } 435 # \\end{sphinxheavybox} 421 # \\end{sphinxheavybox} 436 # } 422 # } 437 # 423 # 438 # Unfortunately, the implementation is buggy: 424 # Unfortunately, the implementation is buggy: if a note is inside a 439 # table, it isn't displayed well. So, for now, 425 # table, it isn't displayed well. So, for now, let's use boring 440 # black and white notes. 426 # black and white notes. 441 427 442 # Grouping the document tree into LaTeX files. 428 # Grouping the document tree into LaTeX files. List of tuples 443 # (source start file, target name, title, 429 # (source start file, target name, title, 444 # author, documentclass [howto, manual, or ow 430 # author, documentclass [howto, manual, or own class]). 445 # Sorted in alphabetical order 431 # Sorted in alphabetical order 446 latex_documents = [ 432 latex_documents = [ 447 ] 433 ] 448 434 449 # Add all other index files from Documentation 435 # Add all other index files from Documentation/ subdirectories 450 for fn in os.listdir('.'): 436 for fn in os.listdir('.'): 451 doc = os.path.join(fn, "index") 437 doc = os.path.join(fn, "index") 452 if os.path.exists(doc + ".rst"): 438 if os.path.exists(doc + ".rst"): 453 has = False 439 has = False 454 for l in latex_documents: 440 for l in latex_documents: 455 if l[0] == doc: 441 if l[0] == doc: 456 has = True 442 has = True 457 break 443 break 458 if not has: 444 if not has: 459 latex_documents.append((doc, fn + 445 latex_documents.append((doc, fn + '.tex', 460 'Linux %s 446 'Linux %s Documentation' % fn.capitalize(), 461 'The kerne 447 'The kernel development community', 462 'manual')) 448 'manual')) 463 449 464 # The name of an image file (relative to this 450 # The name of an image file (relative to this directory) to place at the top of 465 # the title page. 451 # the title page. 466 #latex_logo = None 452 #latex_logo = None 467 453 468 # For "manual" documents, if this is true, the 454 # For "manual" documents, if this is true, then toplevel headings are parts, 469 # not chapters. 455 # not chapters. 470 #latex_use_parts = False 456 #latex_use_parts = False 471 457 472 # If true, show page references after internal 458 # If true, show page references after internal links. 473 #latex_show_pagerefs = False 459 #latex_show_pagerefs = False 474 460 475 # If true, show URL addresses after external l 461 # If true, show URL addresses after external links. 476 #latex_show_urls = False 462 #latex_show_urls = False 477 463 478 # Documents to append as an appendix to all ma 464 # Documents to append as an appendix to all manuals. 479 #latex_appendices = [] 465 #latex_appendices = [] 480 466 481 # If false, no module index is generated. 467 # If false, no module index is generated. 482 #latex_domain_indices = True 468 #latex_domain_indices = True 483 469 484 # Additional LaTeX stuff to be copied to build 470 # Additional LaTeX stuff to be copied to build directory 485 latex_additional_files = [ 471 latex_additional_files = [ 486 'sphinx/kerneldoc-preamble.sty', 472 'sphinx/kerneldoc-preamble.sty', 487 ] 473 ] 488 474 489 475 490 # -- Options for manual page output ---------- 476 # -- Options for manual page output --------------------------------------- 491 477 492 # One entry per manual page. List of tuples 478 # One entry per manual page. List of tuples 493 # (source start file, name, description, autho 479 # (source start file, name, description, authors, manual section). 494 man_pages = [ 480 man_pages = [ 495 (master_doc, 'thelinuxkernel', 'The Linux 481 (master_doc, 'thelinuxkernel', 'The Linux Kernel Documentation', 496 [author], 1) 482 [author], 1) 497 ] 483 ] 498 484 499 # If true, show URL addresses after external l 485 # If true, show URL addresses after external links. 500 #man_show_urls = False 486 #man_show_urls = False 501 487 502 488 503 # -- Options for Texinfo output -------------- 489 # -- Options for Texinfo output ------------------------------------------- 504 490 505 # Grouping the document tree into Texinfo file 491 # Grouping the document tree into Texinfo files. List of tuples 506 # (source start file, target name, title, auth 492 # (source start file, target name, title, author, 507 # dir menu entry, description, category) 493 # dir menu entry, description, category) 508 texinfo_documents = [ 494 texinfo_documents = [ 509 (master_doc, 'TheLinuxKernel', 'The Linux 495 (master_doc, 'TheLinuxKernel', 'The Linux Kernel Documentation', 510 author, 'TheLinuxKernel', 'One line descr 496 author, 'TheLinuxKernel', 'One line description of project.', 511 'Miscellaneous'), 497 'Miscellaneous'), 512 ] 498 ] 513 499 514 # -- Options for Epub output ----------------- 500 # -- Options for Epub output ---------------------------------------------- 515 501 516 # Bibliographic Dublin Core info. 502 # Bibliographic Dublin Core info. 517 epub_title = project 503 epub_title = project 518 epub_author = author 504 epub_author = author 519 epub_publisher = author 505 epub_publisher = author 520 epub_copyright = copyright 506 epub_copyright = copyright 521 507 522 # A list of files that should not be packed in 508 # A list of files that should not be packed into the epub file. 523 epub_exclude_files = ['search.html'] 509 epub_exclude_files = ['search.html'] 524 510 525 #======= 511 #======= 526 # rst2pdf 512 # rst2pdf 527 # 513 # 528 # Grouping the document tree into PDF files. L 514 # Grouping the document tree into PDF files. List of tuples 529 # (source start file, target name, title, auth 515 # (source start file, target name, title, author, options). 530 # 516 # 531 # See the Sphinx chapter of https://ralsina.me 517 # See the Sphinx chapter of https://ralsina.me/static/manual.pdf 532 # 518 # 533 # FIXME: Do not add the index file here; the r 519 # FIXME: Do not add the index file here; the result will be too big. Adding 534 # multiple PDF files here actually tries to ge 520 # multiple PDF files here actually tries to get the cross-referencing right 535 # *between* PDF files. 521 # *between* PDF files. 536 pdf_documents = [ 522 pdf_documents = [ 537 ('kernel-documentation', u'Kernel', u'Kern 523 ('kernel-documentation', u'Kernel', u'Kernel', u'J. Random Bozo'), 538 ] 524 ] 539 525 540 # kernel-doc extension configuration for runni 526 # kernel-doc extension configuration for running Sphinx directly (e.g. by Read 541 # the Docs). In a normal build, these are supp 527 # the Docs). In a normal build, these are supplied from the Makefile via command 542 # line arguments. 528 # line arguments. 543 kerneldoc_bin = '../scripts/kernel-doc' 529 kerneldoc_bin = '../scripts/kernel-doc' 544 kerneldoc_srctree = '..' 530 kerneldoc_srctree = '..' 545 531 546 # -------------------------------------------- 532 # ------------------------------------------------------------------------------ 547 # Since loadConfig overwrites settings from th 533 # Since loadConfig overwrites settings from the global namespace, it has to be 548 # the last statement in the conf.py file 534 # the last statement in the conf.py file 549 # -------------------------------------------- 535 # ------------------------------------------------------------------------------ 550 loadConfig(globals()) 536 loadConfig(globals())
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.