barectf(1)
==========


NAME
----
barectf - Generate C99 code that can write native CTF packets


SYNOPSIS
--------
[verse]
*barectf* [option:--prefix='PREFIX'] [option:--dump-config]
        [option:--code-dir='PATH'] [option:--headers-dir='PATH'] [option:--metadata-dir='PATH']
        [option:-I 'PATH']... [option:--ignore-include-not-found] 'CONFIG'


DESCRIPTION
-----------
The `barectf` command generates C99 code, that itself can write
http://diamon.org/ctf[Common Trace Format] packets natively, out of a
YAML configuration input file 'CONFIG'. The full documentation of
barectf is available on the http://barectf.org[project's website].

A prefix is used to scope the generated file names, as well as the
generated function names, macro names, structure names, and so on.
By default, this prefix is `barectf_`. It can be overridden by the
configuration file, and ultimately by the option:--prefix option.

By default, all generated C and CTF metadata files are written to the
current working directory. The option:--code-dir, option:--headers-dir,
and option:--metadata-dir options are used to control where the
generated files should go.

You can add directories to be searched into for inclusion files, before
the default search directories, by using the option:-I option one or
more times.

By default, if an inclusion file is not found while processing the
configuration file 'CONFIG', an error is emitted. You can instruct
`barectf` to continue silently instead by providing the
option:--ignore-include-not-found option.

To view the effective YAML configuration file used for generating the
C and CTF metadata files, after having processed all inclusion files,
use the option:--dump-config option.


OPTIONS
-------
option:-c 'PATH', option:--code-dir='PATH'::
    Write C source files to directory 'PATH' instead of the current
    working directory.

option:--dump-config::
    Dump the effective YAML configuration file, after all inclusions are
    processed, to the standard output.

option:-H 'PATH', option:--headers-dir='PATH'::
    Write C header files to directory 'PATH' instead of the current
    working directory.

option:--ignore-include-not-found::
    Do not consider as an error inclusion files that are not found:
    continue silently.

option:-I 'PATH', option:--include-dir='PATH'::
    Prepend 'PATH' to the list of directories to search into for include
    files. The default list of directories is the current working
    directory, followed by the directory containing the provided,
    "standard" inclusion files.

option:-m 'PATH', option:--metadata-dir='PATH'::
    Write CTF metadata file to directory 'PATH' instead of the current
    working directory.

option:-p 'PREFIX', option:--prefix='PREFIX'::
    Override the configuration file's prefix with 'PREFIX'. This prefix
    is used in file names, function names, macro names, structure names,
    and the rest. When not specified in the configuration file, the
    default prefix is `barectf_`.

option:-h, option:--help::
    Show command help.

option:--version::
    Show the command's version.


EXIT STATUS
-----------
*0*::
    Success

*Not 0*::
    Error


BUGS
----
Please report any bug or usability issue as a
https://github.com/efficios/barectf/issues[GitHub issue].


RESOURCES
---------
* http://barectf.org[Project's website]
* http://ci.lttng.org/job/barectf[Continuous integration]
* http://lists.lttng.org[Mailing list] for support and
  development: `lttng-dev@lists.lttng.org` (prefix the subject message
  with `[barectf]`)
* irc://irc.oftc.net/lttng[IRC channel]: `#lttng` on `irc.oftc.net`
  (`eepp` is barectf's author and maintainer)


COPYRIGHT
---------
Copyright (c) 2014-2016 mailto:pproulx@efficios.com[Philippe Proulx].

barectf is distributed under the
https://github.com/efficios/barectf/blob/master/LICENSE[MIT License].


AUTHORS
-------
barectf was originally written by and is maintained by, as of this
version, mailto:pproulx@efficios.com[Philippe Proulx]. Other, nice
people have since contributed to the project.

barectf is supported by http://www.efficios.com/[EfficiOS].
