libplatform Notes
*****************

libplatform is a private library used by this project for portability
across platforms. Simple file access, getting system time, parsing
command-line arguments, endian byte-swap macros, are examples of
things that belong in this convenience library.

The implementation means to support the following platforms:

    - posix (the default)
    - win32 (Windows 2000 or newer)


All symbols in libplatform reside in private namespace mp4v2::platform
and must never be made visible through public interfaces. In general,
implementation .h and .cpp files are free to include this library.

Both libmp4v2 and various executables created by this project rely on
libplatform and this creates a bit of a dilemma in that libmp4v2 must
ship as a stand-alone library. Thus, when creating libmp4v2 we must always
embed the needed bits from libplatform. In turn, the executables then
link against both libmp4v2 and the remaining bits of libplatform.

This approach requires advanced linking which is available using
several different methods, varying by platforms. And to complicate
matters further, libtool (even version 2.2.6) makes this impossible.
So the simple solution is to add libplatform symbols to libmp4v2.
The only problem with this is libmp4v2 becomes a little fatter than
it needs to be, but since all the symbols are in a private namespace
and we use set default symbol visibility to hidden, we protect our
clients from inadvertantly becoming dependents.

If libplatform ever becomes bulky we can revisit this issue, but at
this time using advanced linking would only save ~10KB of binary size.
