Building ZeroTier One From Source
======

(See RUNNING.md for what to do next.)

Developers note: there is currently no management of dependencies on *nix
platforms, so you should make clean ; make if you change a header. Will
do this eventually.

### Linux and FreeBSD

Just type 'make'. You'll need gcc and g++ installed, but ZeroTier One requires
no other third party libraries beyond the standard libc, libstdc++, and libm.

*Note:* On FreeBSD you must use 'gmake', not 'make'!

### MacOS

make

If you are building ext/tap-mac you will need a different version of the
OSX gcc compiler chain than what currently ships (clang). We've got a copy
available here:

http://download.zerotier.com/dev/llvm-g++-Xcode4.6.2.tar.bz2

Un-tar this into ext/ (it's excluded in .gitignore) and then 'make' in
ext/tap-mac/tuntap/src/tap.

Most users should not need to build tap-mac, since a binary is included
in ext/bin.

To build the UI you will need Qt version 5.0 or later. The Qt home must
be symbolically linked into "Qt" in the parent directory of the ZeroTier
One source tree. Then you can type "make mac-ui" and the UI should build.
You can also load the UI in Qt Creator and build/test it that way.

### Windows

There's a Visual Studio 2012 solution file in windows/ that can be used.
I've never tried it with MinGW, but theoretically this should be possible.
