Here's how you build dfhack! ---------------------------- First, there is one dependency, regardless of the OS you use: cmake - it's the build system Building on Linux: -------------------- * To run in the output folder (without installing): building the library is simple. Enter the build folder, run the tools. Like this: cd build cmake .. -DCMAKE_BUILD_TYPE:string=Release make This will build the library and its tools and place them in /output. You can also use a cmake-friendly IDE like KDevelop 4 or the cmake GUI program. * To be installed into the system or packaged cd build cmake -DCMAKE_BUILD_TYPE:string=Release -DCMAKE_INSTALL_PREFIX=/usr -DMEMXML_DATA_PATH:path=/usr/share/dfhack .. make make install With this dfhack installs: library to $CMAKE_INSTALL_PREFIX/lib executables to $CMAKE_INSTALL_PREFIX/bin The Memory.xml file to /usr/share/dfhack A special library for adding a shared memory interface to DF is also compiled (libdfconnect.so) It can be put into DF/libs and preloaded using LD_PRELOAD Building on Windows: -------------------- You need cmake. Get the win32 installer version from the official site: http://www.cmake.org/cmake/resources/software.html It has the usual installer wizard thing. * Using mingw: You also need a compiler. I build dfhack using mingw. You can get it from the mingw site: Get the automated installer, it will download newest version of mingw and set things up nicely. You'll have to add C:\MinGW\ to your PATH variable. - Building: open up cmd and navigate to the dfhack\build folder, run cmake and the mingw version of make: cd build cmake .. -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE:string=Release mingw32-make A special library for adding a shared memory interface to DF is also compiled (SDL.dll) You can use it with DF by renaming the original SDL.dll to SDLreal.dll and dropping in the newly compiled library. * Using MSVC open up cmd and navigate to the dfhack\build folder, run cmake: cd build cmake .. This will generate MSVC solution and project files. Note that: you are working in the /build folder. Files added to projects will end up there! (and that's wrong). Any changes to the build system should be done by changing cmake configs and running cmake on them! A special library for adding a shared memory interface to DF is also compiled (SDL.dll) You can use it with DF by renaming the original SDL.dll to SDLreal.dll and dropping in the newly compiled library. * Using some other compiler: I'm afraid you are on your own. dfhack wasn't tested with any other compiler. Try using a different cmake generator that's intended for your tools. Build targets ------------- dfhack has a few build targets. If you're only after the library run 'make dfhack'. 'make' will build everything. 'make expbench' will build the expbench throughput testing program and the library. Build types ----------- cmake allows you to pick a build type by changing this variable: CMAKE_BUILD_TYPE cmake .. -DCMAKE_BUILD_TYPE:string=BUILD_TYPE Without specifying a build type or 'None', cmake uses the CMAKE_CXX_FLAGS variable for building. Valid build types include 'Release' and 'Debug'. There are others, but they aren't really that useful. Have fun.