Updated README and COMPILE, bugfix release

develop
Petr Mrázek 2010-04-28 17:56:37 +02:00
parent 87a2741a09
commit 3853a49d85
2 changed files with 50 additions and 157 deletions

@ -1,20 +1,10 @@
Here's how you build dfhack! Here's how you build dfhack!
---------------------------- ----------------------------
First, there is one dependency, regardless of the OS you use:
cmake - it's the build system
Dependencies Dependencies
============ ============
You'll need cmake and 'a' compiler for building the main lib and the various tools. You'll need cmake and 'a' compiler for building the main lib and the various tools.
To build the libdfconnect on Linux, you'll have to make a 32bit build.
To build the fake SDL.dll on Windows, you'll have to use MSVC 2008 Express and make
a Release or RelWithDebInfo build.
The python bindings require SWIG and the python devel libs for building.
(Linux only) Veinlook requires the wide-character ncurses library (libncursesw) (Linux only) Veinlook requires the wide-character ncurses library (libncursesw)
Building on Linux: Building on Linux:
@ -86,8 +76,33 @@ MSVC generates. For example from 'output/' to 'output/Release/'
I'm afraid you are on your own. dfhack wasn't tested with any 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. 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 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 an useful build types include 'Release', 'Debug' and 'RelWithDebInfo'.
There are others, but they aren't really that useful.
Have fun.
Building the shared memory hook library (SHM) --------------------------------------------------------------------------------
**Deprecated*Deprecated*Deprecated*Deprecated*Deprecated*Deprecated*Deprecated**
--------------------------------------------------------------------------------
Building the shared memory hook library (SHM)
--------------------------------------------- ---------------------------------------------
Unlike the rest of DFHack, The SHM needs special treatment when it comes to Unlike the rest of DFHack, The SHM needs special treatment when it comes to
@ -142,26 +157,3 @@ String writing is best tested with a fresh throw-away fort and dfrenamer.
Embark, give one dwarf a very long name using dfrenamer and save/exit. Embark, give one dwarf a very long name using dfrenamer and save/exit.
If DF crashes during the save sequence, your SHM is not compatible with DF and If DF crashes during the save sequence, your SHM is not compatible with DF and
the throw-away fort is most probably lost. the throw-away fort is most probably lost.
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 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 an useful build types include 'Release', 'Debug' and 'RelWithDebInfo'.
There are others, but they aren't really that useful.
Have fun.

147
README

@ -20,20 +20,6 @@ and the arch-games repository.
The package name is dfhack-git :) The package name is dfhack-git :)
Clarification
-------------
'fake SDL.dll', 'SHM', 'libdfconnect' and 'shim library' are basically the same
thing. A library that sits between DFHack and DF, provides some extra features,
synchronisation and access control. You should use it for everything that writes
data back to DF.
You'll need the SHM to attach more than one tool to DF on Linux.
The DFHack version of Dwarf Therapist requires it for writing creature names
and professions.
See 'Using DFHack Tools' for instructions on installing it.
Compatibility Compatibility
------------- -------------
@ -46,17 +32,10 @@ OSX is also not supported due to lack of developers with a Mac.
Currently supported Dwarf Fortress versions: Currently supported Dwarf Fortress versions:
* Windows * Windows
38a - 40d19_2 0.31.01 - 0.31.03
* Linux * Linux
40d2 - 40d19 wine together with the Windows versions
Currently supported DF versions *by the SHM*:
* Windows
40d15 - 40d19
* Linux
40d9 - 40d19 (40d2 - 40d8 might work, but are untested)
Using the library as a developer Using the library as a developer
-------------------------------- --------------------------------
@ -72,112 +51,34 @@ At the time of writing there's no API reference or documentation. The code does
have a lot of comments though (and getting better all the time). have a lot of comments though (and getting better all the time).
Using DFHack Tools
------------------
The project comes with a special extra library you should add to your DF
installation. It's used to boost the transfer speed between DF and DFHack, and
provide data consistency and synchronization. DFHack will work without the
library, but at suboptimal speeds and the consistency of data written back
to DF is questionable.
!!! on Windows this currently only works with DF 40d15 - 40d19_2 !!!
On Linux, it works with DF 40d9 - 40d19
!!! use the pre-compiled library intended for your OS and version of DF !!!
You can find them in the 'precompiled' folder.
** Installing on Windows
- Open your DF folder, locate SDL.dll and rename it to SDLreal.dll (making
a backup of it is a good idea)
- Copy the right DFHack SDL.dll into your DF folder.
- Restart DF if it is running
** Unistalling on Windows
- Open your DF folder, locate SDL.dll and delete it
- Rename SDLreal.dll to SDL.dll
- Restart DF if it is running
** Installing on Linux
- Open your DF folder and the libs folder within it
- copy DFHack libdfconnect.so to the libs folder
- copy the df-hacked script to your DF folder
- Use this new startup script to start DF
** Replacing libdfconnect.so
- Make sure you close DF before you replace this file! DF crashes whn you don't
close it first!
** Uninstalling on Linux
- Open your DF and DF/libs folders
- Delete libdfconnect.so and the dfhacked startup script
- Go back to using the df startup script
Tools Tools
----- -----
All the DFHack tools are terminal programs. This might seem strange to Windows All the DFHack tools are terminal programs. This might seem strange to Windows
users, but these are meant mostly as examples for developers. Still, they can users, but these are meant mostly as examples for developers. Still, they can
be useful and are cross-platform just like the library itself. be useful and are cross-platform just like the library itself.
If the tool writes back to DF's memory, make sure you are using the shared - dfcleanmap : Cleans all the splatter that get scattered all over the map.
memory interface mentioned in the previous section! Only exception is mud. It leaves mud alone.
- dfexpbench : Just a simple benchmark of the data export speed.
* catsplosion- Makes all cats pregnant and due in 100 game steps. Use with care. - dfliquids : A command prompt for liquid creation and manipulation
(the Moses effect included!)
* magma_create - creates 7/7 magma at the DF's cursor Also allows painting obsidian walls directly.
Note:
* reveal - plain old reveal tool. It reveals all the map blocks already Spawning and deleting liquids can F up pathing data and
initialized by DF. temperatures (creating heat traps). You've been warned.
- dfposition : Prints the current DF window properties and cursor position.
* veinlook - a silly map viewer. It can mass-dig veins in a map square. - dfprospector: Lists all available minerals on the map and how much
(Linux only) of them there is.
- dfreveal : Reveals the whole map, waits for input and hides it again.
* prospector - scans the map for minerals. by default it only scans only visible If you close the tool while it waits, the map remains revealed.
veins. You can make it show hidden things with '-a' and base rock - dfsuspend : Test of the process suspend/resume mechanism.
and soil layers with '-b'. These can be combined ('-ab') - dfunstuck : Use if you prematurely close any of the tools and DF
appears to be stuck.
* cleanmap - cleans mud, vomit, snow and all kinds of mess from the map. - dfvdig : Designates a whole vein for digging. Point the cursor at a vein
It will clean your irrigated farms too, so consider yourself and run this thing :)
warned.
- Your tool here: Write one ;)
* incrementalsearch - incremental search utility (Linux only).
* bauxite - converts all mechanisms into bauxite mechanisms.
* itemdesignator - Allows mass-designating items by type and material - dump,
forbid, melt and set on fire ;)
* digger - allows designating tiles for digging/cutting/ramp removal
A list of accepted tile classes:
1 = WALL
2 = PILLAR
3 = FORTIFICATION
4 = STAIR_UP
5 = STAIR_DOWN
6 = STAIR_UPDOWN
7 = RAMP
8 = RAMP_TOP
9 = FLOOR
10 = TREE_DEAD
11 = TREE_OK
12 = SAPLING_DEAD
13 = SAPLING_OK
14 = SHRUB_DEAD
15 = SHRUB_OK
16 = BOULDER
17 = PEBBLES
Example : dfdigger -o 100,100,15 -t 9,10 -m 10
This will start looking for trees at coords 100,100,15 and designate ten of them for cutting.
Memory offset definitions Memory offset definitions
------------------------- -------------------------