odt2txt is known to compile on Linux, Windows (Cygwin and native), Solaris, FreeBSD, OpenBSD and NetBSD. To build odt2txt you need GNU make on all platforms. On platforms other than Linux and Cygwin, it is usually called "gmake". Linux: A modern Linux system has everything you need in the libc. Just run "make" in the source directory. Solaris: Everything you need comes with the system. I have test-compiled odt2txt on Solaris 9 (sparc) and Solaris 10 (x86), both with gcc and the Sun C Compiler. FreeBSD/OpenBSD: You need to install libiconv from the ports. The regex library that comes with FreeBSD is extremely slow on my FreeBSD system (5.3, i386). NetBSD: NetBSD > 2.0 comes with an iconv implementation, it has everything you need. HP-UX: If zlib is not already installed on the system, build it. Then build odt2txt with "gmake ZLIB_DIR=/path/to/zlib" Windows (Cygwin): You need to install libiconv. Windows (mingw32): This is a little harder, but will produce a binary that has no further dependencies. I don't have a Windows system here but I have a Debian Sarge system with a cross-compile environment. The resulting binary has been reported to work without problems. I guess the same process should work with a native mingw environment in a similar way. Install mingw32, mingw32-binutils and mingw32-runtime. Download and untar GNU libiconv, configure and build and install it: $ ./configure --host=i586-mingw32msvc --prefix=/usr/i586-mingw32msvc/ $ make $ su -c "make install" Download GNU regex-0.12, untar it (for example to /tmp/regex-0.12) and compile the source file: $ i586-mingw32msvc-gcc -DSTDC_HEADERS=1 -c regex.c Then go into the odt2txt source directory and build it: $ make CC=i586-mingw32msvc-gcc MINGW32=1 REGEX_DIR=/tmp/regex-0.12 The result should be a file named odt2txt.exe. The only dependency is the file libiconv-2.dll which was built from your iconv source directory. You can also link statically against libiconv if you add STATIC=1 ICONV_DIR= to the make command line.