The makefiles are used when building the DOM for Linux, Mac, or PS3. The
makefiles can also be used to build on Windows via the MinGW compiler.

Typical usage would simply be to call "make" from the DOM directory, which would
build a release version of the DOM for the native architecture of your
machine. The build output goes to a folder named 'build'.


Build params
------------

os: Specifies the OS you're building for, which isn't necessarily the same as
the OS you're building on. Usually you would just accept the default value
generated by make (via the uname command), but if you're building for PS3 you
need to set os=ps3. Acceptable values are linux, mac, windows, and ps3.

arch: The processor architecture you're building for. Some OS's (Mac in
particular) support building for multiple architectures. By default this is set
to your machine's processor architecture, so if you're on an Intel Mac it'll be
set to x86, and if you're on a PowerPC Mac it'll be set to ppc. To build a Mac
universal binary supporting both Intel and PowerPC 32-bit Macs, you would set
arch='x86 ppc'. Acceptable values are x86 and ppc. i386 is supported as a
synonym for x86.

project: Valid values are dom, domTest, and all. You can specify to build only a
particular project by setting this value. By default, project=all, which will
build all projects.

conf: Valid values are release, debug, and all. Default is release.

colladaVersion: The only valid value is currently 1.4, but other versions will
be supported in the future.

parser: Valid values are libxml, tinyxml, or all. Default is libxml on Linux,
Mac, or Windows, and tinyxml on PS3.


Build targets
-------------

all: The default target, used for building libs/exes.

clean: Removes build files. You could also 'rm -r build' to clean manually.

test: Run the automated test suite. If any of the tests fail, make will fail.

install: Install the DOM on the host machine. Set prefix=/my/path to specify an
install prefix other than the default. On Linux, the default is /usr/local (libs
go to /usr/local/lib, headers go to /usr/local/include), and on Mac the default
install location is /Library/Frameworks.

uninstall: Self explanatory.


Usage scenarios
---------------

Standard release build:
	make
Build both debug and release versions of the DOM:
	make conf=all
Build _only_ the DOM (don't build domTest):
	make project=dom
Build a Mac universal binary:
	make arch='x86 ppc'
Build _only_ dae.cpp:
	make file=dae.cpp
Build with output messages (perhaps for debugging the makefiles): 
	make verbose=yes
Install to the default location:
	make install
Clean all configs
	make clean conf=all


Overriding the defaults
-----------------------

The defaults can easily be overriden by setting param=value when calling
make. If a particular param has a default that you always want to override, it
might be easier to put the overrides in make/customSettings.mk, which gets
included by the DOM makefile. For example, I tend to always build Mac universal
binaries, but the default is to build for the native architecture only. Instead
of always passing arch='x86 ppc' on the command line, I create a file
make/customSettings.mk that has 'arch := x86 ppc'. Also, the file
~/.collada-dom/customSettings.mk serves the same purpose as
make/customSettings.mk, except that it's more useful when you're working with
multiple branches of the DOM and you want your customized settings to apply to
all branches.


Mac Notes
---------

The only officially supported Mac version is OS X Leopard, but it's been
reported that the DOM works fine on other versions of OS X, as long as you're
using make 3.81.


Linux Notes
-----------

The Linux build has been tested with Ubuntu Gutsy. You need to have libxml,
PCRE, and boost filesystem development files installed on your machine to build
the DOM. The Ubuntu packages are named libxml2-dev, libpcre3-dev, and
libboost-filesystem-dev.

It should be easy to get the DOM building on other versions of Linux, but you'll
need to figure out what packages to install for libxml, PCRE, and boost filesystem.


Windows Notes
-------------

Building on Windows via the makefiles only works when using MinGW as the
compiler. Visual Studio project files are provided for building with Visual
Studio.

You'll need to have MinGW set up on your machine as well as a Unix environment
with GNU make 3.81. MinGW provides MSYS which can be used as the Unix
environment for building the DOM. You could also use the MinGW compiler with
Cygwin instead of MSYS.
