blob: 8f686cc390f7e70610376ef4efb6826285d7fc4f [file] [log] [blame]
DRC2c0ea902010-04-16 07:33:41 +00001*******************************************************************************
DRC667df922011-06-23 10:11:22 +00002** Building TigerVNC
DRC2c0ea902010-04-16 07:33:41 +00003*******************************************************************************
4
5
DRC667df922011-06-23 10:11:22 +00006================================
7Build Requirements (All Systems)
8================================
DRC2c0ea902010-04-16 07:33:41 +00009
DRC667df922011-06-23 10:11:22 +000010-- CMake (http://www.cmake.org) v2.8 or later
11
Peter Åstrande7370bd2013-01-22 08:11:05 +000012-- FLTK 1.3.2
Pierre Ossmanc656bac2012-08-17 08:10:27 +000013 * Must be a patched snapshot to get full functionality
Peter Åstrand956a6362012-08-09 07:33:08 +000014 * See "Building FLTK" below.
15
DRC69854b42011-05-13 09:31:24 +000016-- If building TLS support:
Pierre Ossmanec3dfe62014-10-17 10:36:58 +020017 * GnuTLS
DRC69854b42011-05-13 09:31:24 +000018
DRCce355e32011-06-24 04:58:01 +000019-- If building native language support (NLS):
20 * Gnu gettext 0.14.4 or later
21 * See "Building Native Language Support" below.
22
Pierre Ossman3e4281b2014-10-17 10:40:07 +020023-- libjpeg-turbo
24 * "Normal" libjpegv6 is also supported, although it is not
25 recommended as it is much slower.
DRC667df922011-06-23 10:11:22 +000026
27
28=========================
29Build Requirements (Unix)
30=========================
31
32-- Non-Mac platforms:
33 * X11 development kit
34
DRC2c0ea902010-04-16 07:33:41 +000035-- If building Xvnc:
DRC667df922011-06-23 10:11:22 +000036 * autoconf 2.57 or later
37 * automake 1.7 or later
38 * libtool 1.4 or later
39 * OpenSSL v0.9.7 or later
DRC2c0ea902010-04-16 07:33:41 +000040 * Python v2.3 or later
41 * zlib v1.2 or later
DRC2c0ea902010-04-16 07:33:41 +000042
DRC69854b42011-05-13 09:31:24 +000043 * pkgconfig 0.20 or later
44 If you are using an older RPM-based system which does not meet this
45 minimum requirement (such as Red Hat Enterprise Linux 4), then you can
46 build pkgconfig 0.20 from the Fedora 5 source RPM:
47 http://archive.fedoraproject.org/pub/archive/fedora/linux/core/5/source/SRPMS/pkgconfig-0.20-2.2.1.src.rpm
48
DRC69854b42011-05-13 09:31:24 +000049 * gettext 0.14.4 or later
50 If you are using an older RPM-based system which does not meet this
51 minimum requirement (such as Red Hat Enterprise Linux 4), then you can
52 build gettext 0.14.5 from the Fedora 5 source RPM:
53 http://archive.fedoraproject.org/pub/archive/fedora/linux/core/5/source/SRPMS/gettext-0.14.5-3.src.rpm
54 NOTE: gcj and libgcj are required when building the above source RPM.
DRC2b0b1942011-02-09 03:10:44 +000055
DRC2c0ea902010-04-16 07:33:41 +000056
DRC667df922011-06-23 10:11:22 +000057============================
58Build Requirements (Windows)
59============================
DRC180c0162010-10-27 07:20:27 +000060
DRCccc09692011-11-08 06:57:58 +000061-- MinGW or MinGW-w64
DRC180c0162010-10-27 07:20:27 +000062
DRC180c0162010-10-27 07:20:27 +000063-- Inno Setup (needed to build the TigerVNC installer)
64 Inno Setup can be downloaded from http://www.jrsoftware.org/isinfo.php.
65 You also need the Inno Setup Preprocessor, which is available in the
66 Inno Setup QuickStart Pack.
67
68 Add the directory containing iscc.exe (for instance,
69 C:\Program Files\Inno Setup 5) to the system or user PATH environment
70 variable prior to building TigerVNC.
71
DRC667df922011-06-23 10:11:22 +000072
DRC15b6e052011-10-06 01:20:52 +000073=========================
74Build Requirements (Java)
75=========================
76
77-- Sun/Oracle JDK v5 or later or OpenJDK
78
79-- See "Building Java Support" below.
80
81
Peter Åstrand956a6362012-08-09 07:33:08 +000082=============
83Building FLTK
84=============
85
Pierre Ossman1d36ed82014-08-22 14:41:03 +020086TigerVNC requires FLTK 1.3.2 (or later). Although it will build and work
87with plain 1.3.2, to get full functionality and the best behaviour you
Pierre Ossmanc656bac2012-08-17 08:10:27 +000088need to build a patched version:
Peter Åstrand956a6362012-08-09 07:33:08 +000089
Peter Åstrande7370bd2013-01-22 08:11:05 +0000901. Check out FLTK 1.3.2 using Subversion:
91$ svn co http://svn.easysw.com/public/fltk/fltk/tags/release-1.3.2 fltk-1.3.2
Peter Åstrand956a6362012-08-09 07:33:08 +000092
Pierre Ossman2f11bd92014-08-22 14:43:33 +0200932. For full functionality, apply patches. All patches can be found in
94 the contrib/fltk/ directory. There are also some general fixes to
95 FLTK that can be found in the contrib/fltk/fixes/ directory that
96 might be useful.
Brian Hinz1ff04d12013-11-28 16:26:08 +000097
Peter Åstrand956a6362012-08-09 07:33:08 +0000983. Use CMake to build FLTK using the same procedures described below for
99 building TigerVNC. The recipes in the "Build Recipes" section also apply.
Peter Åstrandfc3e86e2013-01-07 09:59:00 +0000100 If you want optimized code, make sure to build with
101 -DCMAKE_BUILD_TYPE=Release.
Peter Åstrand956a6362012-08-09 07:33:08 +0000102
1034. (optional) Use 'make install' to install FLTK into a directory of your
104 choosing.
105
1065. When building TigerVNC, set the FLTK_FLUID_EXECUTABLE CMake variable to the
107 location of the fluid executable that was built in Step 3 or installed in
108 Step 4. This gives CMake a hint as to where to find the FLTK library.
Pierre Ossmanbbb0c612012-08-17 08:05:59 +0000109
Peter Åstrand956a6362012-08-09 07:33:08 +00001106. If you did not install FLTK, then set the FLTK_INCLUDE_DIR CMake variable to
111 the location of the FLTK source directory.
112
113
DRC180c0162010-10-27 07:20:27 +0000114==================
115Out-of-Tree Builds
116==================
117
118Binary objects, libraries, and executables are generated in the same directory
119from which cmake was executed (the "binary directory"), and this directory need
120not necessarily be the same as the TigerVNC source directory. You can create
121multiple independent binary directories, in which different versions of
122TigerVNC can be built from the same source tree using different compilers or
123settings. In the sections below, {build_directory} refers to the binary
124directory, whereas {source_directory} refers to the TigerVNC source directory.
125For in-tree builds, these directories are the same.
126
127
128=================
129Building TigerVNC
130=================
131
132
DRC62f3a662011-08-24 00:03:31 +0000133Building the TigerVNC Viewer on Unix/Mac Systems
134------------------------------------------------
DRC667df922011-06-23 10:11:22 +0000135
136The following procedure will build the TigerVNC Viewer on Linux and Unix
137systems. On 64-bit systems, this will build a 64-bit version of TigerVNC. See
138"Build Recipes" for specific build instructions for building a 32-bit version
139of TigerVNC on 64-bit systems.
140
141 cd {build_directory}
DRC240a5ff2011-07-06 07:28:30 +0000142 cmake -G "Unix Makefiles" [additional CMake flags] {source_directory}
DRC667df922011-06-23 10:11:22 +0000143 make
144
DRC62f3a662011-08-24 00:03:31 +0000145
146Building the TigerVNC Server on Modern Unix/Linux Systems
147---------------------------------------------------------
148
DRC667df922011-06-23 10:11:22 +0000149Building the TigerVNC Server (Xvnc) is a bit trickier. On newer systems
150containing Xorg 7.4 or later (such as Fedora), Xvnc is typically built to use
151the X11 shared libraries provided with the system. The procedure for this is
DRC62f3a662011-08-24 00:03:31 +0000152system-specific, since it requires specifying such things as font directories,
153but the general outline is as follows (this procedure assumes that the viewer
154has already been built, per above.)
155
156 > cd {build_directory}
157
158 If performing an out-of-tree build:
159 > mkdir unix
160 > cp -R {source_directory}/unix/xserver unix/
161
162 > cp -R {xorg_source}/* unix/xserver/
163 (NOTE: {xorg_source} is the directory containing the Xorg source for the
164 machine on which you are building TigerVNC. The most recent versions of
165 Red Hat/CentOS/Fedora, for instance, provide an RPM called
166 "xorg-x11-server-source", which installs the Xorg source under
167 /usr/share/xorg-x11-server-source.)
168
169 > cd unix/xserver/
170 > patch -p1 < {source_directory}/unix/xserver{version}.patch
171 (where {version} matches the X server version you are building, such as
172 "17" for version 1.7.x.)
173 > autoreconf -fiv
174
Peter Åstrand01b24332011-10-31 08:14:40 +0000175 > ./configure --with-pic --without-dtrace --disable-static --disable-dri \
DRC62f3a662011-08-24 00:03:31 +0000176 --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \
177 --disable-dmx --disable-xwin --disable-xephyr --disable-kdrive \
178 --disable-config-dbus --disable-config-hal --disable-config-udev \
179 --disable-dri2 --enable-install-libxf86config --enable-glx \
180 --with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" \
181 --with-fontdir=/usr/share/X11/fonts \
182 --with-xkb-path=/usr/share/X11/xkb \
183 --with-xkb-output=/var/lib/xkb \
DRC0bb7e132011-08-24 00:26:54 +0000184 --with-xkb-bin-directory=/usr/bin \
DRC62f3a662011-08-24 00:03:31 +0000185 --with-serverconfig-path=/usr/lib[64]/xorg \
186 --with-dri-driver-path=/usr/lib[64]/dri \
187 {additional configure options}
188 (NOTE: This is merely an example that works with Red Hat Enterprise/CentOS
189 6 and recent Fedora releases. You should customize it for your particular
190 system. In particular, it will be necessary to customize the font, XKB,
191 and DRI directories.)
192
193 > make TIGERVNC_SRCDIR={source_directory}
194
195
196Building the TigerVNC Server on Legacy Unix/Linux Systems
197---------------------------------------------------------
DRC667df922011-06-23 10:11:22 +0000198
199Those using systems with older versions of Xorg must build a "legacy-friendly"
200version of the TigerVNC Server. This is accomplished by downloading and
201building the more recent Xorg modules in a local directory and then building
202Xvnc such that it links against the local build of these libraries, not the X11
203libraries installed on the system. The "build-xorg" script in the TigerVNC
204source distribution (located under unix/) automates this process.
205
206The following procedure will build both the TigerVNC Viewer and a
207"legacy-friendly" version of the TigerVNC Server:
208
209 cd {build_directory}
210 sh {source_directory}/unix/build-xorg init
211 sh {source_directory}/unix/build-xorg build [additional CMake flags]
212
213build-xorg generates a version of Xvnc that has no external dependencies on the
214X11 shared libraries or any other distribution-specific shared libraries. This
215version of Xvnc should be transportable across multiple O/S distributions.
216build-xorg should work on Red Hat Enterprise 4, its contemporaries, and later
217systems. It probably will not work on older systems. It has not been tested
218on non-Linux systems (yet).
219
220build-xorg can also be used to rebuild just the TigerVNC Server and Viewer,
221once the X11 modules and other dependencies have been built for the first time.
222This is convenient for testing changes that just apply to the TigerVNC source
223code. To accomplish this, run:
224
225 sh {source_directory}/unix/build-xorg rebuild [additional make flags]
226
227For instance,
228
229 sh {source_directory}/unix/build-xorg rebuild clean
230
231will clean both the Xvnc and vncviewer builds without destroying any of the
232build configuration or module dependencies.
233
234
DRCe4e604f2011-10-01 17:54:36 +0000235Building the Windows TigerVNC Viewer with MinGW
236-----------------------------------------------
DRC180c0162010-10-27 07:20:27 +0000237
DRCccc09692011-11-08 06:57:58 +0000238If building the Windows version of TigerVNC on a Windows build system, use
239the following procedure.
240
DRC180c0162010-10-27 07:20:27 +0000241 cd {build_directory}
DRC240a5ff2011-07-06 07:28:30 +0000242 cmake -G "MSYS Makefiles" [additional CMake flags] {source_directory}
DRC180c0162010-10-27 07:20:27 +0000243 make
244
DRCccc09692011-11-08 06:57:58 +0000245If cross-compiling on a Unix/Linux system, then see the "Build Recipes" section
246below.
DRC180c0162010-10-27 07:20:27 +0000247
248
249Debug Build
250-----------
251
DRCccc09692011-11-08 06:57:58 +0000252Add "-DCMAKE_BUILD_TYPE=Debug" to the CMake command line.
DRC180c0162010-10-27 07:20:27 +0000253
254
Pierre Ossmanf95272d2014-10-17 13:59:35 +0200255Portable (semi-static) Build
256----------------------------
DRC8290dd62011-02-10 22:54:36 +0000257
Pierre Ossmanf95272d2014-10-17 13:59:35 +0200258TigerVNC can under favourble circumstances be built in a way that allows
259the resulting binaries to run on any system without having to also install
260all the dynamic libraries it depends on. Enable this mode by adding:
DRC8290dd62011-02-10 22:54:36 +0000261
DRCe4e604f2011-10-01 17:54:36 +0000262 -DBUILD_STATIC=1
DRC8290dd62011-02-10 22:54:36 +0000263
Adam Tkacf586b842011-04-27 11:20:18 +0000264to the CMake command line.
DRC8290dd62011-02-10 22:54:36 +0000265
Pierre Ossmanf95272d2014-10-17 13:59:35 +0200266Note that the method used to achieve this is very fragile and it may be
267necessary to tweak cmake/StaticBuild.cmake to make things work on your
268specific system.
269
DRC8290dd62011-02-10 22:54:36 +0000270
DRC15b6e052011-10-06 01:20:52 +0000271=====================
272Building Java Support
273=====================
274
275TigerVNC includes a Java version of the TigerVNC Viewer, which can be used on
276any platform that has a Java Runtime Environment (JRE) installed. The Java
277viewer works similarly to the native viewer, but with lower performance.
278
279To build the Java TigerVNC Viewer, add
280
281 -DBUILD_JAVA=1
282
283to the CMake or build-xorg command line. The build system will attempt to find
284an installed Java Development Kit (JDK) and determine the appropriate paths for
285the Java compiler (javac) and the JAR creation utility (jar). You can override
286these paths by setting the Java_JAVAC_EXECUTABLE and Java_JAR_EXECUTABLE CMake
287variables. You can also override the default flags that are passed to javac
288by setting the JAVACFLAGS CMake variable. The build system will look for
289keytool and jarsigner in the same directory as Java_JAR_EXECUTABLE. These
290tools are needed to sign the JAR file, which is necessary to enable certain
291functionality (such as clipboard transfers) when the Java viewer is used as an
292applet.
293
294If the Java viewer is built along with the Windows TigerVNC Server (WinVNC),
295then the build system will embed the Java viewer into WinVNC4.exe so that it
296will automatically be served up using WinVNC's built-in HTTP server.
297Similarly, if the Java viewer is built along with the Unix TigerVNC Server
298(Xvnc), then the build system will include the Java viewer in the server
299tarball.
300
Brian Hinzf88b3ad2013-12-02 02:53:10 +0000301By default, a self-signed certificate will be generated and used to sign the
302jar file. By specifying the following command line arguments to the CMake
303command line, an alternate certificate may be used for signing.
304
305 -DJAVA_KEYSTORE=${keystore_location_or_url}
306 -DJAVA_KEYSTORE_TYPE=${keystore_type} (Default: "jks")
307 -DJAVA_KEY_ALIAS=${keytore_key_alias}
308 -DJAVA_STOREPASS=${keystore_password}
309 -DJAVA_KEYPASS=${keystore_entry_password}
310 -DJAVA_TSA_URL=${url_of_timestamping_authority}
311
312The values of the JAVA_STOREPASS and JAVA_KEYPASS arguments may optionally be
313read from file or environment variables by prefixing the value with ":env "
314or ":file " (see the jarsigner documentation for more info):
315
316 export StorePass=tigervnc
317 export KeyPass=tigervnc
318 cmake \
319 ...
320 -DJAVA_STOREPASS=":env StorePass"
321 -DJAVA_KEYPASS=":env KeyPass"
322
DRC15b6e052011-10-06 01:20:52 +0000323
DRC240a5ff2011-07-06 07:28:30 +0000324======================================
DRCce355e32011-06-24 04:58:01 +0000325Building Native Language Support (NLS)
326======================================
327
DRCccc09692011-11-08 06:57:58 +0000328NLS requires gettext, which is supplied with most Linux distributions and
329with MinGW for Windows and which can easily be built from source on OS X and
330other Unix variants.
DRCce355e32011-06-24 04:58:01 +0000331
332You can override the ICONV_LIBRARIES and LIBINTL_LIBRARY CMake variables to
333specify the locations of libiconv and libintl, respectively. For instance,
334adding
335
336 -DLIBINTL_LIBRARY=/opt/gettext/lib/libintl.a
337
338to the CMake command line would link TigerVNC against a static version of
339libintl located under /opt/gettext. Adding
340
341 -DICONV_INCLUDE_DIR=/mingw/include \
342 -DICONV_LIBRARIES=/mingw/lib/libiconv.a \
343 -DGETTEXT_INCLUDE_DIR=/mingw/include \
344 -DLIBINTL_LIBRARY=/mingw/lib/libintl.a
345
346to the CMake command line would link TigerVNC against the static versions of
347libiconv and libintl included in the MinGW Developer Toolkit.
348
349
DRC180c0162010-10-27 07:20:27 +0000350===================
351Installing TigerVNC
352===================
353
354You can use the build system to install TigerVNC into a directory of your
DRC667df922011-06-23 10:11:22 +0000355choosing. To do this, add:
DRC180c0162010-10-27 07:20:27 +0000356
357 -DCMAKE_INSTALL_PREFIX={install_directory}
358
DRCccc09692011-11-08 06:57:58 +0000359to the CMake command line. Then, you can run 'make install' to build and
360install it.
DRC180c0162010-10-27 07:20:27 +0000361
362If you don't specify CMAKE_INSTALL_PREFIX, then the default is
DRC667df922011-06-23 10:11:22 +0000363c:\Program Files\TigerVNC on Windows and /usr/local on Unix.
DRC180c0162010-10-27 07:20:27 +0000364
365
DRC667df922011-06-23 10:11:22 +0000366=========================
367Creating Release Packages
368=========================
369
370The following commands can be used to create various types of release packages:
371
372
373Unix
374----
375
DRC667df922011-06-23 10:11:22 +0000376make tarball
377
378 Create a binary tarball containing the TigerVNC Viewer
379
380make servertarball
381
382 Create a binary tarball containing both the TigerVNC Server and Viewer
383
384make dmg
385
DRCaab38302011-06-25 20:24:02 +0000386 Create Macintosh disk image file that contains an application bundle of the
387 TigerVNC Viewer
DRC667df922011-06-23 10:11:22 +0000388
DRCaab38302011-06-25 20:24:02 +0000389make udmg
DRC667df922011-06-23 10:11:22 +0000390
391 On 64-bit OS X systems, this creates a version of the Macintosh package and
392 disk image which contains universal i386/x86-64 binaries. You should first
393 configure a 32-bit out-of-tree build of TigerVNC, then configure a 64-bit
394 out-of-tree build, then run 'make udmg' from the 64-bit build directory. The
395 build system will look for the 32-bit build under {source_directory}/osxx86
DRCaab38302011-06-25 20:24:02 +0000396 by default, but you can override this by setting the OSX_X86_BUILD CMake
397 variable to the directory containing your configured 32-bit build. Either
398 the 64-bit or 32-bit build can be configured to be backward compatible by
399 using the instructions in the "Build Recipes" section.
DRC667df922011-06-23 10:11:22 +0000400
401
402Windows
403-------
404
DRCccc09692011-11-08 06:57:58 +0000405make installer
DRC667df922011-06-23 10:11:22 +0000406
DRCccc09692011-11-08 06:57:58 +0000407 Create a Windows installer using Inno Setup. The installer package
408 (TigerVNC[64].exe) will be located under {build_directory}.
DRC667df922011-06-23 10:11:22 +0000409
410
411=============
412Build Recipes
413=============
414
415
41632-bit Build on 64-bit Linux/Unix (including OS X)
417--------------------------------------------------
418
DRCdc4f3542011-08-24 00:30:49 +0000419Set the following environment variables before building TigerVNC.
DRC667df922011-06-23 10:11:22 +0000420
421 CFLAGS='-O3 -m32'
422 CXXFLAGS='-O3 -m32'
423 LDFLAGS=-m32
424
DRCdc4f3542011-08-24 00:30:49 +0000425If you are building the TigerVNC Server on a modern Unix/Linux system, then
426you will also need to pass the appropriate --host argument when configuring the
427X server source (for instance, --host=i686-pc-linux-gnu).
428
DRC667df922011-06-23 10:11:22 +0000429
43064-bit Backward-Compatible Build on 64-bit OS X
431-----------------------------------------------
432
433Add
434
435 -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.5.sdk \
436 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.5
437
438to the CMake command line. The OS X 10.5 SDK must be installed.
439
440
44132-bit Backward-Compatible Build on 64-bit OS X
442-----------------------------------------------
443
444Set the following environment variables:
445
446 CC=gcc-4.0
447 CXX=g++-4.0
448 CFLAGS='-O3 -m32'
449 CXXFLAGS='-O3 -m32'
450 LDFLAGS=-m32
451
452and add
453
454 -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.4u.sdk \
455 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.4
456
457to the CMake command line. The OS X 10.4 SDK must be installed.
DRC180c0162010-10-27 07:20:27 +0000458
459
46064-bit MinGW Build on Cygwin
461----------------------------
462
463 cd {build_directory}
464 CC=/usr/bin/x86_64-w64-mingw32-gcc CXX=/usr/bin/x86_64-w64-mingw32-g++ \
465 RC=/usr/bin/x86_64-w64-mingw32-windres \
466 cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \
467 -DCMAKE_AR=/usr/bin/x86_64-w64-mingw32-ar \
468 -DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib {source_directory}
469 make
470
471This produces a 64-bit build of TigerVNC that does not depend on cygwin1.dll or
472other Cygwin DLL's. The mingw64-x86_64-gcc-core and mingw64-x86_64-gcc-g++
473packages (and their dependencies) must be installed.
474
475
47632-bit MinGW Build on Cygwin
477----------------------------
478
479 cd {build_directory}
480 CC=/usr/bin/i686-w64-mingw32-gcc CXX=/usr/bin/i686-w64-mingw32-g++ \
481 RC=/usr/bin/i686-w64-mingw32-windres \
482 cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \
483 -DDCMAKE_AR=/usr/bin/i686-w64-mingw32-ar \
484 -DCMAKE_RANLIB=/usr/bin/i686-w64-mingw32-ranlib {source_directory}
485 make
486
487This produces a 32-bit build of TigerVNC that does not depend on cygwin1.dll or
488other Cygwin DLL's. The mingw64-i686-gcc-core and mingw64-i686-gcc-g++
489packages (and their dependencies) must be installed.
490
491
492MinGW-w64 Build on Windows
493--------------------------
494
495This produces a 64-bit build of TigerVNC using the "native" MinGW-w64 toolchain
496(which is faster than the Cygwin version):
497
498 cd {build_directory}
499 CC={mingw-w64_binary_path}/x86_64-w64-mingw32-gcc \
500 CXX={mingw-w64_binary_path}/x86_64-w64-mingw32-g++ \
501 RC={mingw-w64_binary_path}/x86_64-w64-mingw32-windres \
502 cmake -G "MSYS Makefiles" \
503 -DCMAKE_AR={mingw-w64_binary_path}/x86_64-w64-mingw32-ar \
504 -DCMAKE_RANLIB={mingw-w64_binary_path}/x86_64-w64-mingw32-ranlib \
505 {source_directory}
506 make
507
508
509MinGW Build on Linux
510--------------------
511
512 cd {build_directory}
513 CC={mingw_binary_path}/i386-mingw32-gcc \
514 CXX={mingw_binary_path}/i386-mingw32-g++ \
515 RC={mingw_binary_path}/i386-mingw32-windres \
516 cmake -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Windows \
517 -DCMAKE_AR={mingw_binary_path}/i386-mingw32-ar \
518 -DCMAKE_RANLIB={mingw_binary_path}/i386-mingw32-ranlib \
519 {source_directory}
520 make
Brian Hinz1ff04d12013-11-28 16:26:08 +0000521
522
523===============================
524Distribution-Specific Packaging
525===============================
526
527
528RPM Packages for RHEL / CentOS
529------------------------------
530
531The RPM spec files and patches used to create the nightly builds
532and releases can be found in the "contrib/rpm/el{5,6}" directories
533of the TigerVNC subversion trunk. All external source tarballs
534must be fetched manually and placed into the 'SOURCES' directory
535under the rpmbuild root. Additonally, the following macros need
536to be defined:
537
538 EL6:
539 %debug_package %{nil}
540
541 EL5:
542 %dist .el5
543 %_smp_mflags -j3
544 %debug_package %{nil}
545 %__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
546
547
548Debian packages for Ubuntu 12.04LTS
549-----------------------------------
550The debian folder used to create the nightly builds and releases
551can be found in the "contrib/deb/ubuntu-precise" directory of the
552TigerVNC subversion trunk.