File: README.windows

package info (click to toggle)
kildclient 3.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,584 kB
  • sloc: ansic: 24,834; xml: 7,516; sh: 5,022; perl: 2,876; makefile: 156; sed: 39
file content (93 lines) | stat: -rw-r--r-- 2,850 bytes parent folder | download
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Cross-Compiling KildClient for Windows
======================================

Basic packages
--------------

The easiest way is to use Fedora, because it already includes most of
the dependencies, with new enough versions, cross-compiled as rpm
packages.

Packages necessary for cross-compilation:
mingw32-gcc
mingw32-gnutls
mingw32-gtk3
mingw32-gtkspell3
mingw32-libgnurx
perl-XML-LibXML

If building from git, you'll also need autoconf, automake and
glib2-devel. (Just as for normal compilation.)

You'll also need perl-JSON when building the installer.


Perl
----

Unfortunately, perl is not packaged for mingw32. Strawberry Perl can
be used. Extract it in a directory, then pass that directory to the
configure script, as shown below.


Dockerfile for building
-----------------------

The directory mingw32-kildclient-docker contains a Dockerfile to build
an image with a fedora system and all packages necessary for
compilation.

The image also starts and ssh server. That way it is possible to mount
via sshfs the directories in the fedora system so that the installer
can copy the required files.


Building
--------

To run the configure script, use mingw32-configure which sets proper
environment variables for cross compilation, passing the path for Perl
manually:

mingw32-configure KILDCLIENT_PERL_CFLAGS="-I/opt/strawberryperl/perl/lib/CORE" KILDCLIENT_PERL_LIBS="-L/opt/strawberryperl/perl/lib/CORE -lperl532"

Then just run make.


Creating a installer
--------------------

Several files are necessary for KildClient to run, besides the
generated .exe file. Therefore, the easiest way now is to create an
installer. The kildclient.iss file in this directory is an Inno Setup
(http://www.jrsoftware.org/isinfo.php) script to create the installer.
When downloading, check "Install Inno Setup Preprocessor" as the
script uses this feature. You will need to adjust the paths defined in
the beginning of the file.

Thanks to a docker image (https://github.com/amake/innosetup-docker),
it is possible to build the installer under Linux.

This image requires two directories to be mounted:
- /work: base directory of KildClient
- /mingw32: root directory of the Fedora container used for building

(Inside the Wine environment in which Inno Setup runs, these appear
as Z:\work and Z:\mingw32)

The installer can be built by running something like

docker run --rm -i -v$PWD:/work -v $MINGW32:/mingw32 amake/innosetup win32/kildclient.iss

The /mingw32 directory can be mounted with sshfs to access the files
inside the container. The "-o allow_other" option will likely be
necessary.


64-bit support
==============

I haven't tried building KildClient for 64-bit versions of Windows,
but it should work, since Fedora includes all the necessary packages
built for the 64-bit target, and Strawberry Perl also has a 64-bit
version of Perl.