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