Installing Wt on MinGW » History » Version 3
Wim Dumon, 10/27/2011 02:11 PM
1 | 1 | Wim Dumon | h1. Installing Wt on MinGW |
---|---|---|---|
2 | |||
3 | h2. MinGW requirements |
||
4 | |||
5 | This guide used the TDM-gcc (4.5.1-tdm-4). |
||
6 | The shell commands were executed in the 'MinGW Command Propmpt' of the TDM-gcc installation. |
||
7 | |||
8 | h2. Build Boost |
||
9 | |||
10 | First, bootstrap boost |
||
11 | <pre> |
||
12 | cd boost_1_43_0 |
||
13 | bootstrap.bat |
||
14 | </pre> |
||
15 | |||
16 | 2 | Wim Dumon | Before building boost, consider to apply the two patches provided below. These are bugs that may be fixed in future versions of boost and cygwin, but compilation of Wt failed whith boost 1.44 and TDM-gcc 4.5.1-tdm-4. |
17 | |||
18 | Build the required libraries |
||
19 | 1 | Wim Dumon | <pre> |
20 | 3 | Wim Dumon | bjam --prefix=i:/mingw-libraries/boost link=static threading=multi --layout=versioned --toolset=gcc --with-date_time --with-filesystem --with-program_options --wit-random --with-regex --with-signals --with-system --with-thread install |
21 | 1 | Wim Dumon | </pre> |
22 | |||
23 | 3 | Wim Dumon | This only builds the required libraries. It will take a while before boost is installed. If the boost.random library does not exist for your boost version, then simply omit it from the bjam command line. |
24 | 1 | Wim Dumon | |
25 | |||
26 | Note: If you get link errors with boost.thread, Tomasz Kalicki points out that you may want to fix the boost header files. This is not necessarily required for Wt versions newer than 3.1.5 as those will define BOOST_THREAD_USE_LIB when not linking to a dynamic boost (-DBOOST_DYNAMIC=OFF), but you may want to use it anyway if you use boost.thread in your own application. |
||
27 | <pre> |
||
28 | --- oldconfig.hpp 2010-07-09 20:13:09.000000000 +0200 |
||
29 | +++ config.hpp 2010-09-16 11:11:48.000000000 +0200 |
||
30 | @@ -37,7 +37,7 @@ |
||
31 | #elif defined(BOOST_THREAD_USE_LIB) //Use lib |
||
32 | #else //Use default |
||
33 | # if defined(BOOST_THREAD_PLATFORM_WIN32) |
||
34 | -# if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) |
||
35 | +# if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) || defined(__MINGW32__) |
||
36 | //For compilers supporting auto-tss cleanup |
||
37 | //with Boost.Threads lib, use Boost.Threads lib |
||
38 | # define BOOST_THREAD_USE_LIB |
||
39 | </pre> |
||
40 | See https://svn.boost.org/trac/boost/ticket/4614 |
||
41 | |||
42 | <pre> |
||
43 | --- libs/thread/src/win32/tss_pe.cpp.orig 2010-09-16 15:46:01.375000000 +0200 |
||
44 | +++ libs/thread/src/win32/tss_pe.cpp 2010-09-16 15:46:53.906250000 +0200 |
||
45 | @@ -54,6 +54,7 @@ |
||
46 | PIMAGE_TLS_CALLBACK __crt_xl_end__ __attribute__ ((section(".CRT$XLZ"))) = 0; |
||
47 | } |
||
48 | |||
49 | +#if 0 |
||
50 | extern "C" const IMAGE_TLS_DIRECTORY32 _tls_used __attribute__ ((section(".rdata$T"))) = |
||
51 | { |
||
52 | (DWORD) &__tls_start__, |
||
53 | @@ -63,6 +64,7 @@ |
||
54 | (DWORD) 0, |
||
55 | (DWORD) 0 |
||
56 | }; |
||
57 | +#endif |
||
58 | |||
59 | |||
60 | #elif defined(_MSC_VER) && !defined(UNDER_CE) |
||
61 | |||
62 | </pre> |
||
63 | |||
64 | See https://svn.boost.org/trac/boost/ticket/4258 |
||
65 | |||
66 | h3. Build Wt |
||
67 | |||
68 | <pre> |
||
69 | cmake c:/cygwin/home/Wim/projects/wt-git/wt -DBOOST_DIR=i:/mingw-libraries/boost -DBOOST_COMPILER=mgw45 -DBOOST_VERSION=1_44 -G "MinGW Makefiles" |
||
70 | </pre> |
||
71 | |||
72 | 2 | Wim Dumon | Then build Wt and the examples |
73 | 1 | Wim Dumon | <pre> |
74 | mingw32-make |
||
75 | </pre> |
||
76 | |||
77 | The Isapi connector is not built under MinGW because the httpext.h file provided with MinGW misses several declarations. I suspect that with a complete httpext.h header, it is possible to build the isapi connector without problems. |