I managed to make stonesense compile under Linux (Ubuntu 10.04). Unfortunately, the program crashes just after start, complaining about several missing memory definitions ("current_menu_state" is the first).
Some addresses are not defined for any Linux 31.x version (in Memory.xml), some are there for 31.04. The missing addresses seem to be necessary for stonesense - providing fake ones/the ones for 31.04 results in crash. DFHack utilities use just the defined subset of adresses and work as expected.
I used DF_linux 31.08, Allegro libraries from ubuntu allegro packages.
Anyway, to compile on Linux, it is currently (svn-ro r832) necessary:
- create local variables of type ALLEGRO_COLOR for colors created by al_map_rgb(...) in Block.cpp and GUI.cpp
- replace itoa() with sprintf() (itoa is not in C++ standard and gcc does not have it)
- fix some include filenames (linux is case-sensitive)
- add SpriteObjects.cpp and SpriteColors.cpp to source list in CMakeList.txt
- remove al_set_system_mouse_cursor() command from main.cpp (crashes when run, I have no idea why)
DFHack has to be compiled separately (no problems there) It makes sense to replace the 'dfhack' directory by a link to dfhack.git/library/ but might not be necessary. You can point cmake to the dfhack library with " -D LINK_DIRECTORIES=..../dfhack/output". If you do not compile debug version of dfhack, modify library list in stonesense CMakeList.txt to use just "dfhack".
Running ./stonesense then opens Allegro window, writes "Connecting to DF ..." and exits complaining about missing memory definition in Memory.xml
Pity that using wine+stonesense and linux DF can't help me ;-)