merces/pev — pull request #66 by jweyrich (2014-03-31 08:59:17+00:00)
Title: Attempt to automatically load plugins and initialize subsystems.

IMPORTANT: Needs testing on Linux and Cygwin, both with GCC and Clang. Anyone? ;-)

Attempt to automatically load plugins and initialize subsystems.
It also takes care of unloading and deinitialization.

This mechanism relies on `__attribute__((constructor (priority)))`
which is a GCC extension and is also supported by Clang.

If you're not using GCC nor Clang, it falls back to the following
two macros that must be invoked manually under any circumstances:

PEV_INITIALIZE();	// Must be invoked before anything else.
PEV_FINALIZE();	// Must be invoked right before exiting.

These will do absolutely nothing if the automatic mechanism is
supported.

Note for Clang users:

It does not respect priorities - at least on Darwin - but it does
respect the linking order, so that became an important thing now.