1. Extract the Boost sources
2. Change into the boost source directory
3. Run "bootstrap.bat" (or bootstrap.sh on Unix)
4. Build Boost's "bcp" project: "./b2 threading=multi address-model=64 tools/bcp"
5. Use bcp to create a subset of boost that uses the openipc namespace: "./dist/bin/bcp --namespace=boost_openipc --namespace-alias filesystem log system locale thread random predef build bootstrap.bat bootstrap.sh boostcpp.jam boost-build.jam <path/to/temp/dir>"
6. Change into the subset directory
7. Run "bootstrap.bat"
8. Run "./b2 --with-filesystem --with-log --with-system --with-locale --with-thread --with-random link=static variant=release threading=multi address-model=64" (or 32 if you want 32-bit binaries)
    - If you're on Linux, add cxxflags=-fPIC right after "./b2"
    - If you're on macOS, add cxxflags=-std=c++14 right after "./b2"
9. Collect your static libs from the stage/lib directory. Note that there are more libraries than we requested. This is because some of the libraries we want depend on a bunch of other libraries
10. Delete the subset directory

The following only needs to be done on one platform (of your choosing):
1. Boost is used by the OpenIPC as well as by the third party CppRestSdk package.
2. To get a list of Boost headers that OpenIPC relies on, just search for "<boost/" in the entire solution, then filter out the unique ones.
3. To get a list of Boost headers that CppRestSdk relies on, extract the latest CppRestSdk (in the CppRestSdk thirdparty folder) and again search for "<boost/" in the folder structure.
4. Combine these and get a unique list of references.
5. Go back into the original boost source directory
5. Use bcp to extract the required header files: "./dist/bin/bcp --namespace=boost_openipc --namespace-alias <unique reference list> filesystem log system locale thread random <path/to/include/dir>"
6. Delete everything except the "boost" folder in your newly populated include directory
