Commit 86a415df authored by Thomas De Schampheleire's avatar Thomas De Schampheleire Committed by Peter Korsgaard
Browse files

manual: use one-line titles instead of two-line titles (trivial)



Asciidoc supports two syntaxes for section titles: two-line titles (title
plus underline consisting of a particular symbol), and one-line titles
(title prefixed with a specific number of = signs).

The two-line title underlines are:
Level 0 (top level):     ======================
Level 1:                 ----------------------
Level 2:                 ~~~~~~~~~~~~~~~~~~~~~~
Level 3:                 ^^^^^^^^^^^^^^^^^^^^^^
Level 4 (bottom level):  ++++++++++++++++++++++

and the one-line title prefixes:
= Document Title (level 0) =
== Section title (level 1) ==

=== Section title (level 2) ===
==== Section title (level 3) ====
===== Section title (level 4) =====

The buildroot manual is currenly using the two-line titles, but this has
multiple disadvantages:

- asciidoc also uses some of the underline symbols for other purposes (like
  preformatted code, example blocks, ...), which makes it difficult to do
  mass replacements, such as a planned follow-up patch that needs to move
  all sections one level down.

- it is difficult to remember which level a given underline symbol (=-~^+)
  corresponds to, while counting = signs is easy.

This patch changes all two-level titles to one-level titles in the manual.
The bulk of the change was done with the following Python script, except for
the level 1 titles (-----) as these underlines are also used for literal
code blocks.
This patch only changes the titles, no other changes. In
adding-packages-directory.txt, I did add missing newlines between some
titles and their content.

----------------------------------------------------------------------------
#!/usr/bin/env python

import sys
import mmap
import re

for input in sys.argv[1:]:

    f = open(input, 'r+')
    f.flush()
    s = mmap.mmap(f.fileno(), 0)

    # Level 0 (top level):     ======================   =
    # Level 1:                 ----------------------   ==
    # Level 2:                 ~~~~~~~~~~~~~~~~~~~~~~   ===
    # Level 3:                 ^^^^^^^^^^^^^^^^^^^^^^   ====
    # Level 4 (bottom level):  ++++++++++++++++++++++   =====

    def replace_title(s, symbol, replacement):
        pattern = re.compile(r'(.+\n)\%s{2,}\n' % symbol, re.MULTILINE)
        return pattern.sub(r'%s \1' % replacement, s)

    new = s
    new = replace_title(new, '=', '=')
    new = replace_title(new, '+', '=====')
    new = replace_title(new, '^', '====')
    new = replace_title(new, '~', '===')
    #new = replace_title(new, '-', '==')

    s.seek(0)
    s.write(new)
    s.resize(s.tell())
    s.close()
    f.close()

----------------------------------------------------------------------------

Signed-off-by: default avatarThomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 4e551538
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

Infrastructure for autotools-based packages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=== Infrastructure for autotools-based packages

[[autotools-package-tutorial]]

+autotools-package+ tutorial
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== +autotools-package+ tutorial

First, let's see how to write a +.mk+ file for an autotools-based
package, with an example :
@@ -67,8 +65,7 @@ package to be built.

[[autotools-package-reference]]

+autotools-package+ reference
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== +autotools-package+ reference

The main macro of the autotools package infrastructure is
+autotools-package+. It is similar to the +generic-package+ macro. The ability to
+3 −6
Original line number Diff line number Diff line
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

Infrastructure for CMake-based packages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=== Infrastructure for CMake-based packages

[[cmake-package-tutorial]]

+cmake-package+ tutorial
^^^^^^^^^^^^^^^^^^^^^^^^
==== +cmake-package+ tutorial

First, let's see how to write a +.mk+ file for a CMake-based package,
with an example :
@@ -66,8 +64,7 @@ package to be built.

[[cmake-package-reference]]

+cmake-package+ reference
^^^^^^^^^^^^^^^^^^^^^^^^^
==== +cmake-package+ reference

The main macro of the CMake package infrastructure is
+cmake-package+. It is similar to the +generic-package+ macro. The ability to
+1 −2
Original line number Diff line number Diff line
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

Conclusion
~~~~~~~~~~
=== Conclusion

As you can see, adding a software package to Buildroot is simply a
matter of writing a Makefile using an existing example and modifying it
+11 −14
Original line number Diff line number Diff line
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

Package directory
~~~~~~~~~~~~~~~~~
=== Package directory

First of all, create a directory under the +package+ directory for
your software, for example +libfoo+.
@@ -13,8 +12,7 @@ one of these categories, then create your package directory in these.
New subdirectories are discouraged, however.


+Config.in+ file
~~~~~~~~~~~~~~~~
=== +Config.in+ file

Then, create a file named +Config.in+. This file will contain the
option descriptions related to our +libfoo+ software that will be used
@@ -52,8 +50,7 @@ source "package/libfoo/Config.in"
--------------------------

[[depends-on-vs-select]]
Choosing +depends on+ or +select+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== Choosing +depends on+ or +select+

The +Config.in+ file of your package must also ensure that
dependencies are enabled. Typically, Buildroot uses the following
@@ -164,8 +161,8 @@ Further formatting details: see xref:writing-rules-config-in[the
coding style].

[[dependencies-target-toolchain-options]]
Dependencies on target and toolchain options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== Dependencies on target and toolchain options

Many packages depend on certain options of the toolchain: the choice of
C library, C++ support, largefile support, thread support, RPC support,
IPv6 support, wchar support, or dynamic library support. Some packages
@@ -268,8 +265,8 @@ use in the comment.
** Dependency symbol: +!BR2_PREFER_STATIC_LIB+
** Comment string: +dynamic library+

Dependencies on a Linux kernel built by buildroot
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== Dependencies on a Linux kernel built by buildroot

Some packages need a Linux kernel to be built by buildroot. These are
typically kernel modules or firmware. A comment should be added in the
Config.in file to express this dependency, similar to dependencies on
@@ -285,8 +282,8 @@ kernel, use this format:
foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built
--------------------------

Dependencies on udev /dev management
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== Dependencies on udev /dev management

If a package needs udev /dev management, it should depend on symbol
+BR2_PACKAGE_HAS_UDEV+, and the following comment should be added:

@@ -301,8 +298,8 @@ management, use this format:
foo needs udev /dev management and a toolchain w/ featA, featB, featC
--------------------------

The +.mk+ file
~~~~~~~~~~~~~~
=== The +.mk+ file

[[adding-packages-mk]]

Finally, here's the hardest part. Create a file named +libfoo.mk+. It
+3 −6
Original line number Diff line number Diff line
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

Infrastructure for packages with specific build systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=== Infrastructure for packages with specific build systems

By 'packages with specific build systems' we mean all the packages
whose build system is not one of the standard ones, such as
@@ -11,8 +10,7 @@ system is based on hand-written Makefiles or shell scripts.

[[generic-package-tutorial]]

+generic-package+ tutorial
^^^^^^^^^^^^^^^^^^^^^^^^^^
==== +generic-package+ tutorial

------------------------------
01: ################################################################################
@@ -159,8 +157,7 @@ Makefile code necessary to make your package working.

[[generic-package-reference]]

+generic-package+ reference
^^^^^^^^^^^^^^^^^^^^^^^^^^^
==== +generic-package+ reference

There are two variants of the generic target. The +generic-package+ macro is
used for packages to be cross-compiled for the target.  The
Loading