Alright, so one problem down. I had to install libc6:i386 to get a 32-bit libpthreads.so.0. It seems to be okay with finding pthreads now.
nice
However, I still have the message that it can't find a working hash map. The full output from cmake follows:
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
CMake Error at depends/protobuf/CMakeLists.txt:60 (MESSAGE):
Could not find a working hash map implementation. Please install GCC >=
4.4, and all necessary 32-bit C++ development libraries.
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Configuring incomplete, errors occurred!
And actually, looking at the complete output from cmake (which ccmake doesn't print, oddly enough), it might be suggesting that it can't find a 32-bit version of zlib. Except I have a 32-bit version of zlib installed (/lib/i386-linux-gnu/libz.so.1 from the zlib1g:i386 package).
Thoughts?
Actually, your current problem seems to related to another missing library or header. There is a file
dfhack/depends/protobuf/testHashMap.cpp
I guess cmake aborts due to compilation error of this file. Compilation of this file doesn't need any libraries but some standard gnu library therefore you should install all necessary C++ libraries. You can try to compile the file with your 64-bit compiler. This shouldn't cause any problems. Then use
$ldd a.out
to find the missing library. or you may search for libstdc++, glibc, gcc, g++, gcc-libs.
For zlib. You can specify the path with ccmake
$ cd dfhack/build
$ ccmake ..
[t] to toggle advanced mode
ZLIB_INCLUDE_DIR /usr/include
ZLIB_LIBRARY /usr//i386-linux-gnu/libz.so
obviously you have to replace both paths with those that matches for your system.