anchor.diff:  
   Package build phases
   --------------------
  -
   Building a package consist of the following phases:
   
  -`fetch`::
  +*fetch*::
       This phase downloads required sources for a `source package`, as defined by
       the `distfiles` variable or `do_fetch()` function.
   
  -`extract`::
  +*extract*::
       This phase extracts the `distfiles` files into `$wrksrc` or executes the `do_extract()`
       function, which is the directory to be used to compile the `source package`.
   
  -`configure`::
  +*configure*::
       This phase executes the `configuration` of a `source package`, i.e `GNU configure scripts`.
   
  -`build`::
  +*build*::
       This phase compiles/prepares the `source files` via `make` or any other compatible method.
   
  -`install-destdir`::
  +*install-destdir*::
       This phase installs the `package files` into a `fake destdir`, via `make install` or
       any other compatible method.
   
  -`build-pkg`::
  +*build-pkg*::
       This phase builds the `binary packages` with files stored in the `package destdir`.
   
   `xbps-src` supports running just the specified phase, and if it ran
  
positive.code: recipes to download, compile and build binary packages for `Void`.
  Those `source` package files are called `templates`.
  
  The `template files` are `GNU Bash` scripts that must define some required/optional
  `variables` and `functions` that are processed by `xbps-src` (the package builder)
  to generate the resulting binary packages.
  
  A simple `template` example is as follows:
  
    # Template file for 'foo'
    # source section
    pkgname="foo"
    version="1.0"
    revision="1"
    build_style="gnu-configure"
    short_desc="A short description max 72 chars"
    maintainer="name <email>"
    license="GPL-3"
    homepage="http://www.foo.org"
    distfiles="http://www.foo.org/foo-${version}.tar.gz"
    checksum="fea0a94d4b605894f3e2d5572e3f96e4413bcad3a085aae7367c2cf07908b2ff"
    # end of source section
    # package section
    foo_package() {
      pkg_install() {
        vmove all
      }
    }
    # end of package section
  
  
  There are two main `sections` in a template: the `source section` and the
  
negative.code: 
  The current list of available `build_style` scripts is the following:
  
  *cmake*::
      For packages that use the CMake build system, configuration arguments
      can be passed in via `configure_args`.
  
  *configure*::
      For packages that use non-GNU configure scripts, at least `--prefix=/usr`
      should be passed in via `configure_args`.
  
  *gnu-configure*::
      For packages that use GNU configure scripts, additional configuration
      arguments can be passed in via `configure_args`.
  
  *gnu-makefile*::
      For packages that use GNU make, build arguments can be passed in via
      `make_build_args` and install arguments via `make_install_args`. The build
      target can be overriden via `make_build_target` and the install target
  
  *meta*::
      For `meta-packages`, i.e packages that only install local files or simply
      depend on additional packages.
  
  *perl-ModuleBuild*::
      For packages that use the Perl
      http://search.cpan.org/~leont/Module-Build-0.4202/lib/Module/Build.pm[Module::Build] method.
  
  *perl*::
      For packages that use the Perl
      http://perldoc.perl.org/ExtUtils/MakeMaker.html[ExtUtils::MakeMaker] build method.
  
  *python-module*::
      For packages that use the Python module build method (setup.py).
  
  *waf3*::
     For packages that use the Python3 `waf` build method with python3.
  
  *waf*::
     For packages that use the Python `waf` method with python2.
  
  Functions
  ~~~~~~~~~
  The following functions can be defined to change the behavior of how the
  package is downloaded, compiled and installed.
  
  *do_fetch()*::
      if defined and `distfiles` is not set, use it to fetch the required sources.
  
  *do_extract()*::
      if defined and `distfiles` is not set, use it to extract the required sources.
  
  *post_extract()*::
      Actions to execute after `do_extract()`.
  
  *pre_configure()*::
      Actions to execute after `post_extract()`.
  
  *do_configure()*::
      Actions to execute to configure the package; `${configure_args}` should
      still be passed in if it's a GNU configure script.
  
  *post_configure()*::
      Actions to execute after `do_configure()`.
  
  *pre_build()*::
      Actions to execute after `post_configure()`.
  
  *do_build()*::
      Actions to execute to build the package.
  
  *post_build()*::
      Actions to execute after `do_build()`.
  
  *pre_install()*::
      Actions to execute after `post_build()`.
  
  *do_install()*::
      Actions to execute to install the packages files into the `fake destdir`.
  
  *post_install()*::
      Actions to execute after `do_install()`.
  
  NOTE: A function defined in a template has preference over the same function
  defined by a `build_style` script.
  