Download and install Cygwin(including MinGW) and libunicows.a: http://www.cygwin.org/ and http://libunicows.sf.net/ Download chmlib, wxWidgets 2.5 and xchm: http://66.93.236.84/~jedwin/projects/chmlib/ http://wxwidgets.org/ http://xchm.sf.net/ For adding the xchm icons to the exe: png2ico - http://www.winterdrache.de/freeware/png2ico/ And something to convert xpm to png. I used imagemagick from my cygwin install. You can use anything for this, inc IrfanView or even Win32 Gimp. For compressing the resulting exe, you will need upx. I used the one from my cygwin install. Create a /usr/local and /usr/local/include that any user can write to. This makes it simpler to build xchm, otherwise you will have to run cgywin as admin to make install Problems: I can't figure out how to get wxWidgets to compile its builtin libpng/libjpeg/libtiff into itself so there are no errors when linking xchm. If people know how to get it working, please say so. Run these from a shell: cd unzip wxMSW-*.zip cd wxWidgets*/ CFLAGS="-mno-cygwin -mwindows -I/usr/local/include" CXXFLAGS="-mno-cygwin -mwindows -I/usr/local/include" LDFLAGS="-mno-cygwin -mwindows -L/usr/local/lib" ./configure --enable-unicode --enable-static --disable-shared --disable-debug_flag --disable-debug_info --with-msw --enable-optimise --without-libpng --without-libjpeg --without-libtiff sed -i -e 's!#define HAVE_FNMATCH_H 1!/* #undef HAVE_FNMATCH */!g' ./lib/wx/include/msw-unicode-release-static-2.5/wx/setup.h make make install cd .. tar jxf chmlib-*.tbz cd chmlib-*/ CFLAGS="-DWIN32 -mno-cygwin -mwindows -I/usr/local/include" CXXFLAGS="-DWIN32 -mno-cygwin -mwindows -I/usr/local/include" LDFLAGS="-DWIN32 -mno-cygwin -mwindows -L/usr/local/lib" ./configure --enable-static --disable-shared sed -i -e 's/#elif defined(WIN32)/#endif\ #if defined(WIN32)/gi' src/chm_lib.c make make install cd .. tar zxf xchm-*.tar.gz cd xchm-*/ for n in 16 32 48 128 ; do convert art/xchm-$n.xpm xchm-$n.png || echo 'ImageMagick not installed, maybe try irfanview or the gimp instead :)' done png2ico xchm.ico xchm-16.png xchm-32.png xchm-48.png xchm-128.png || echo 'png2ico may not work from MYS, try in cygwin or a dos/cmd.exe prompt' mv -f xchm.ico /tmp pushd . cd ../wxWidgets*/include/ mv -f /tmp/xchm.ico . sed -i -e 's!// Default Icons!101 ICON DISCARDABLE "xchm.ico"!gi' wx/msw/wx.rc sed -i -e 's!^wxICON_!//wxICON_!gi' wx/msw/wx.rc windres wx/msw/wx.rc /tmp/wxrc.o popd mv -f /tmp/wxrc.o . cp -f wxrc.o src/ CFLAGS="-DWIN32 -mno-cygwin -mwindows -I/usr/local/include" CXXFLAGS="-DWIN32 -mno-cygwin -mwindows -I/usr/local/include" LDFLAGS="-DWIN32 -mno-cygwin -mwindows -L/usr/local/lib wxrc.o" ./configure --enable-static --disable-shared sed -i -e 's!virtual off_t OnSysTell!virtual wxFileOffset OnSysTell!gi' ./src/chminputstream.h make cd src strip xchm.exe upx xchm.exe zip -9 xchm--win32.zip xchm.exe echo goddam I miss debian. BILL GATES WILL BURN IN HELL