I don't think there is official documentation on cross-compiling tor, but it should be possible for most platforms (not sure about iOS). I don't know specifically what steps to take, but you might get ideas if you ask on #tor on the OFTC IRC channel if you don't get an answer here.
Tor by default dynamically links to other libraries such as OpenSSL and Libevent. These can be statically linked instead using the
--enable-static-libevent options for the configure script. There will be other libraries dynamically linked as well, and you can see these by running
ldd tor on the tor binary. Typically if you statically link Libevent and OpenSSL, the tor binary should run on any similar Linux systems with the same architecture, but it's not guaranteed to run on all of them.
As an example, if you download the Tor Browser for Linux, the
tor-browser/Browser/TorBrowser/Tor directory contains the
tor binary as well as the three libraries
ldd tor shows that it is dynamically linked to a few other standard libraries as well.
$ ldd tor
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd2a7bfc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd2a785e000)
libevent-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6 (0x00007fd2a760d000)
libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fd2a7380000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fd2a6eb5000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd2a6cad000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd2a6aa9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd2a66b8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd2a6499000)
I'm not very familiar with other platforms as I only build tor for Linux. I'm not sure why the TBB team doesn't statically link libssl, libcrypto, and libevent on Linux, but that would be a good question to ask them on either #tor-dev IRC or the tor-dev mailing list. The geoip and geoip6 files are databases for linking relay IP addresses to approximate locations, and obfs4proxy is a binary that allows Tor users to connect to the network through bridges that support obfs4. This is a separate optional program.
OnionBrowser recently changed to use tor from the iCepa project. I think iOS is tricky because you cannot fork and run a separate process, so you need to bundle tor as a library rather than running it directly. Tor itself isn't designed this way, so iCepa's Tor.framework has done some extra stuff to make this work. As for Android, I think Briar gets their tor binary from the guardian project's Android build which originally came from Orbot. You might also want to look into how the official Tor Browser for Android bundles tor into their app (I think it's this).