libvirt/python
Eric Blake ec81852f46 build: enforce makefile conditional style
Automake has builtin support to prevent botched conditional nesting,
but only if you use:
if FOO
else !FOO
endif !FOO

An example error message when using the wrong name:

daemon/Makefile.am:378: error: else reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE
daemon/Makefile.am:381: error: endif reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE

As our makefiles tend to have quite a bit of nested conditionals,
it's better to take advantage of the benefits of the build system
double-checking that our conditionals are well-nested, but that
requires a syntax check to enforce our usage style.

Alas, unlike C preprocessor and spec files, we can't use indentation
to make it easier to see how deeply nesting goes.

* cfg.mk (sc_makefile_conditionals): New rule.
* daemon/Makefile.am: Enforce the style.
* gnulib/tests/Makefile.am: Likewise.
* python/Makefile.am: Likewise.
* src/Makefile.am: Likewise.
* tests/Makefile.am: Likewise.
* tools/Makefile.am: Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-04 09:40:20 -06:00
..
generator.py python: simplify complicated conditional assignment 2013-08-23 10:54:58 +02:00
libvirt-lxc-override-api.xml Introduce an LXC specific public API & library 2013-01-14 13:58:34 +00:00
libvirt-lxc-override.c Fix leaks in python bindings 2013-09-03 13:19:17 +02:00
libvirt-override-api.xml python: Add bindings for extensible migration APIs 2013-06-25 01:28:39 +02:00
libvirt-override-virConnect.py Test for object identity when checking for None in Python 2013-08-23 08:12:26 +02:00
libvirt-override-virDomain.py Introduce new domain create APIs to pass pre-opened FDs to LXC 2013-07-18 11:01:14 +01:00
libvirt-override-virDomainSnapshot.py python: treat flags as default argument with value 0 2013-03-22 11:50:09 +08:00
libvirt-override-virStoragePool.py python: treat flags as default argument with value 0 2013-03-22 11:50:09 +08:00
libvirt-override-virStream.py Test for object identity when checking for None in Python 2013-08-23 08:12:26 +02:00
libvirt-override.c Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED event 2013-07-18 15:28:45 +02:00
libvirt-override.py python: treat flags as default argument with value 0 2013-03-22 11:50:09 +08:00
libvirt-qemu-override-api.xml agent: add python module support 2012-08-23 19:07:53 +08:00
libvirt-qemu-override.c Fix leaks in python bindings 2013-09-03 13:19:17 +02:00
Makefile.am build: enforce makefile conditional style 2013-09-04 09:40:20 -06:00
README Re-arrange python generator to make it clear what's auto-generated 2009-09-21 14:41:46 +01:00
sanitytest.py Check if classes are derived from object 2013-02-11 18:00:10 +01:00
typewrappers.c Rename memory.{c,h} to viralloc.{c,h} 2012-12-21 11:17:14 +00:00
typewrappers.h syntax-check: Only allows to include public headers in external tools 2013-04-18 11:31:19 +08:00

    libvirt Python Bindings README
    ==============================

Most of the libvirt python binding code is automatically generated
using the script  generator.py, and the API description from
docs/libvirt-api.xml


Manually written files:

 - libvirt-override.c: methods where the C binding needs to be hand crafted
 - libvirt-override.py: global methods where the C and python bindings have different args
 - libvirt-override-api.xml: methods where the auto-extracted API docs are not
   suitable for python auto-generator. Overriding this if the method is going
   into libvirt-override.c, but we still want auto-generated libvirt-override.py
 - libvirt-override-virConnect.py: virConnect class methods
 - typewrappers.h,.c: Python object wrappers for each libvirt C object


Auto-generated files:

  - libvirt.py: The main python binding. Comprises auto-generated code, along
    with contents from libvirt-override.py and libvirt-override-virConnect.py
  - libvirt.c, libvirt.h: The C glue layer for the python binding. Comprises
    auto-generated code, along with libvirt-override.c
  - libvirt-export.c: List of auto-generated C methods, included into
    the libvirt-override.c method table