2009-09-13 18:02:46 -06:00
|
|
|
Here's how you build dfhack!
|
|
|
|
----------------------------
|
|
|
|
|
2010-01-18 09:44:24 -07:00
|
|
|
First, there is one dependency, regardless of the OS you use:
|
2009-09-13 18:02:46 -06:00
|
|
|
cmake - it's the build system
|
|
|
|
|
2009-10-30 03:01:14 -06:00
|
|
|
Building on Linux:
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
* To run in the output folder (without installing):
|
2009-09-13 18:02:46 -06:00
|
|
|
|
2009-10-30 03:01:14 -06:00
|
|
|
building the library is simple. Enter the build folder, run the tools. Like this:
|
|
|
|
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE:string=Release -DMEMXML_DATA_PATH:path=.
|
|
|
|
make
|
2009-09-13 18:02:46 -06:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2009-10-30 03:01:14 -06:00
|
|
|
* 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
|
|
|
|
|
2010-01-18 09:44:24 -07:00
|
|
|
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
|
|
|
|
|
2009-09-13 18:02:46 -06:00
|
|
|
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
|
|
|
|
|
2010-01-18 09:44:24 -07:00
|
|
|
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.
|
|
|
|
|
2009-10-21 20:14:16 -06:00
|
|
|
* 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!
|
|
|
|
|
2010-01-18 09:44:24 -07:00
|
|
|
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.
|
|
|
|
|
2009-09-13 18:02:46 -06:00
|
|
|
* 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.
|
|
|
|
|
2010-01-18 09:44:24 -07:00
|
|
|
Have fun.
|