Project

General

Profile

Installing Wt on MinGW » History » Version 1

Wim Dumon, 09/16/2010 06:28 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
Next, build the required libraries
17
<pre>
18
bjam --prefix=i:/mingw-libraries/boost link=static threading=multi --layout=versioned --toolset=gcc --with-date_time --with-filesystem --with-program_options --with-regex --with-signals --with-system --with-thread install
19
</pre>
20
21
This only builds the required libraries. It will take a while before boost is installed.
22
23
24
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.
25
<pre>
26
--- oldconfig.hpp       2010-07-09 20:13:09.000000000 +0200
27
+++ config.hpp  2010-09-16 11:11:48.000000000 +0200
28
@@ -37,7 +37,7 @@
29
 #elif defined(BOOST_THREAD_USE_LIB)   //Use lib
30
 #else //Use default
31
 #   if defined(BOOST_THREAD_PLATFORM_WIN32)
32
-#       if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN)
33
+#       if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) || defined(__MINGW32__)
34
            //For compilers supporting auto-tss cleanup
35
            //with Boost.Threads lib, use Boost.Threads lib
36
 #           define BOOST_THREAD_USE_LIB
37
</pre>
38
See https://svn.boost.org/trac/boost/ticket/4614
39
40
<pre>
41
--- libs/thread/src/win32/tss_pe.cpp.orig       2010-09-16 15:46:01.375000000 +0200
42
+++ libs/thread/src/win32/tss_pe.cpp    2010-09-16 15:46:53.906250000 +0200
43
@@ -54,6 +54,7 @@
44
     PIMAGE_TLS_CALLBACK __crt_xl_end__ __attribute__ ((section(".CRT$XLZ"))) = 0;
45
 }
46
47
+#if 0
48
 extern "C" const IMAGE_TLS_DIRECTORY32 _tls_used __attribute__ ((section(".rdata$T"))) =
49
 {
50
         (DWORD) &__tls_start__,
51
@@ -63,6 +64,7 @@
52
         (DWORD) 0,
53
         (DWORD) 0
54
 };
55
+#endif
56
57
58
 #elif  defined(_MSC_VER) && !defined(UNDER_CE)
59
60
</pre>
61
62
See https://svn.boost.org/trac/boost/ticket/4258
63
64
h3. Build Wt
65
66
<pre>
67
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"
68
</pre>
69
70
Then build Wt
71
<pre>
72
mingw32-make
73
cd examples
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.