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