ObjFW  Check-in [5a15080143]

Overview
Comment:Add README-WINDOWS.md.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5a150801430b0e4d0e0cd1748a6d6da96c864ffd55afcd640957a5228bc62ae1
User & Date: js on 2012-09-06 19:13:51
Other Links: manifest | tags
Context
2012-09-09
12:31
Loop forever after applicationDidFinishLaunching. check-in: 24622e8913 user: js tags: trunk
2012-09-06
19:13
Add README-WINDOWS.md. check-in: 5a15080143 user: js tags: trunk
19:13
Fix a forgotten rename. check-in: 5216366469 user: js tags: trunk
Changes

Added README-WINDOWS.md version [f7aef6c38c].





















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
ObjFW on Windows
================

This file contains instructions on how to get a working build environment to
compile and use ObjFW on Windows.


Prerequisites
=============

The first thing you need to install is MinGW. If you already have MinGW
installed, please *remove* it! ObjFW needs a GCC that emits DWARF-2 exception
handling code. SjLj is *not* supported, and this is what most MinGW builds use.


Installation
============

TDM-GCC
-------

Instead of using the official MinGW builds, we're going to use the TDM-GCC
builds, as these contain a version emitting DWARF-2 exception handling code.
Even when using TDM-GCC, most builds will output SjLj exceptions. This is why
we are going to use this
[installer](http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-webdl.exe/download).

After downloading and starting the installer, we choose to create a new
installation. In the next step, the installer asks whether we want a
`MinGW/TDM` installation or a `MinGW-w64/TDM64 Experimental` installation. It
is very important to choose the `MinGW/TDM` installation, as `MinGW-w64/TDM64`
does *not* include GCC versions that output DWARF-2 exceptions! When asked for
an installation path, it is recommended to keep the default of `C:\MinGW32`;
the selected mirror does not really matter. After that, the components to be
installed have to be selected. Select `TDM-GCC Recommended, C/C++` as
installation type, then expand `Components` → `gcc` → `Version` and select the
TDM-GCC version ending in -dw2 and enable the `objc` checkbox. Click next and
the installer will start downloading and installing the selected components.


MSys
----

Next, we're going to install MSys. To do so, we're going to use the official
MinGW installer, but we are *not* going to install MinGW with it, so follow
these steps carefully. First, go to the [SourceForge download page for the
MinGW installer](http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/)
and select the latest version. Get the .exe file there.  When you launch it,
select the same installation path you selected for TDM-GCC before. After
selecting the installation directory, *deselect* all compilers and select
*only* `MSYS Basic System` and `MinGW Developer ToolKit`. Make sure `MinGW
Compiler Suite` is white and not grey! The installation progress bar will be
completely filled after a short while and it will appear to hang - this is
*not* the case.  When it reaches that step, it starts downloading the required
files and installs them. Just give it some time.


Building ObjFW
==============

Building ObjFW for Windows works pretty much the same way it works on any other
operating system. The only thing you need to pay attention to is that the
TDM-GCC binary is called gcc-dw2. So all you need to do is `export OBJC=gcc-dw2`
before executing the usual `./autogen.sh && ./configure && make install`.


Troubleshooting
===============

If you are getting errors about no threads being available when typing `make`,
you've hit a bug present in some versions of Git for Windows. If you delete
your checkout and get a
[tarball](https://webkeks.org/git/?p=objfw.git;a=snapshot;h=HEAD;sf=tgz), it
should work.