Hi, I find the bjam documentation and configuration files very frustrating... it seems to almost do what you want, but it doesn't finish the job and tell you how to actually do it correctly. I have been trying to cross-compile boost 1.35.0 for windows, on a linux host. The gcc.jam file mentions cross-compiling, but does not mention how to get it done. I almost got it to work with a user-config.jam: using gcc : mingw : /home/paul/mingw/bin/mingw32-g++ : <flavor>mingw32 <root>"/home/paul/mingwj/" ; and then hacking away at the gcc.jam file, which checks the os.system variable to decide how to link object files and use the -fPIC flag... around line 703: if [ os.on-windows ] change to... if [ modules.peek : UNIX ] to force it to use -mthreads instead of -pthreads if [ os.name ] != CYGWIN && [ os.name ] != NT change to if [ os.name ] = CYGWIN && [ os.name ] != NT to correct -fPIC it almost did the right thing, except for the extensions... i assume if i hack these lines, I'll get what i want... type.set-generated-target-suffix STATIC_LIB : <toolset>gcc <target-os>cygwin : a ; type.set-generated-target-suffix IMPORT_LIB : <toolset>gcc <target-os>cygwin : dll.a ; type.set-generated-target-prefix IMPORT_LIB : <toolset>gcc <target-os>cygwin : lib ; BUT then I'll have to fight to use the mingw32-ar and mingw32-windres and other programs. Isn't there an easier way? *please* I'm giving up on 1.35 as I've just read about the serialization vector bug, so I'll attempt to use 1.34.1 thanks, Paul