summaryrefslogtreecommitdiffstats
path: root/BUILDING.txt
diff options
context:
space:
mode:
authorDRC <dcommander@users.sourceforge.net>2011-06-24 04:58:01 +0000
committerDRC <dcommander@users.sourceforge.net>2011-06-24 04:58:01 +0000
commitce355e34d8e36eef78ae7d32e272df610312e47c (patch)
treeacf6a860f2862f9adad38fad9246652424bbf597 /BUILDING.txt
parent1953b5111a3e64273d1d3e9d541b2a55aad19b09 (diff)
downloadtigervnc-ce355e34d8e36eef78ae7d32e272df610312e47c.tar.gz
tigervnc-ce355e34d8e36eef78ae7d32e272df610312e47c.zip
Instructions for building with NLS and other tweaks
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4533 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'BUILDING.txt')
-rw-r--r--BUILDING.txt56
1 files changed, 45 insertions, 11 deletions
diff --git a/BUILDING.txt b/BUILDING.txt
index b2241b47..f696fdd7 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -10,15 +10,20 @@ Build Requirements (All Systems)
-- CMake (http://www.cmake.org) v2.8 or later
-- FLTK 1.3.0
- * Must be patched using fltk/extensions.patch to get full functionality
+ * Must be patched using fltk/extensions.patch (in the TigerVNC source
+ directory) to get full functionality
* See "Building FLTK" below.
-- If building TLS support:
* GnuTLS and its dependencies (libgcrypt, libtasn1, libgpg-error)
+-- If building native language support (NLS):
+ * Gnu gettext 0.14.4 or later
+ * See "Building Native Language Support" below.
+
-- libjpeg-turbo SDK
- * If your system does not include libjpeg-turbo, you can download the SDK
- from http://sourceforge.net/projects/libjpeg-turbo/files/
+ * If your system does not include libjpeg-turbo, then you can download the
+ SDK from http://sourceforge.net/projects/libjpeg-turbo/files/
=========================
@@ -242,13 +247,42 @@ To eliminate this dependency, add
to the CMake command line.
-====================
-Building TLS support
-====================
+======================================
+Building Native Language Support (NLS)
+======================================
+
+NLS requires gettext, which is supplied with most Linux distributions but not
+with most other operating systems. Building gettext from source is
+straightforward on Mac and other Unix variants, but on Windows it requires
+MinGW. Thus, it is not possible to enable NLS when building TigerVNC with
+Visual C++.
+
+You can override the ICONV_LIBRARIES and LIBINTL_LIBRARY CMake variables to
+specify the locations of libiconv and libintl, respectively. For instance,
+adding
+
+ -DLIBINTL_LIBRARY=/opt/gettext/lib/libintl.a
+
+to the CMake command line would link TigerVNC against a static version of
+libintl located under /opt/gettext. Adding
+
+ -DICONV_INCLUDE_DIR=/mingw/include \
+ -DICONV_LIBRARIES=/mingw/lib/libiconv.a \
+ -DGETTEXT_INCLUDE_DIR=/mingw/include \
+ -DLIBINTL_LIBRARY=/mingw/lib/libintl.a
+
+to the CMake command line would link TigerVNC against the static versions of
+libiconv and libintl included in the MinGW Developer Toolkit.
+
+
+===============================================
+Building Transport Layer Security (TLS) support
+===============================================
VeNCrypt (the TigerVNC security and authentication extensions) can be built
with TLS support, which provides built-in encryption for VNC sessions. This
-requires GnuTLS, which is not pre-installed on all platforms. This section
+requires GnuTLS, which is readily available in many Linux distributions but not
+as readily available in binary form on other types of systems. This section
describes the issues associated with building a version of TigerVNC with TLS
support and how to work around those issues.
@@ -263,7 +297,7 @@ automatically and link against it. However, this produces a version of
TigerVNC that depends on the GnuTLS dynamic libraries, and thus the TigerVNC
binaries are not portable.
-To build a fully portable, cross-compatible version of TigerVNC with VeNCrypt
+To build a fully portable, cross-compatible version of TigerVNC with TLS
support, it is necessary to link against the GnuTLS static library (as well
as the static libraries of its dependencies.) If you are lucky enough, then
your O/S distribution may include pre-packaged versions of these static
@@ -271,8 +305,8 @@ libraries. Otherwise, it will be necessary to build GnuTLS, libgcrypt,
libtasn1, and libgpg-error from source.
You can manipulate the GNUTLS_INCLUDE_DIR and GNUTLS_LIBRARY CMake variables to
-accommodate a custom build of GnuTLS that is installed in a non-system
-directory. For instance, adding
+build TigerVNC against a custom build of GnuTLS that is installed in a
+non-system directory. For instance, adding
-DGNUTLS_INCLUDE_DIR=/opt/gnutls/include \
-DGNUTLS_LIBRARY='/opt/gnutls/lib/libgnutls.a;/opt/gnutls/lib/libgcrypt.a;/opt/gnutls/lib/libgpg-error.a;/opt/gnutls/lib/libtasn1.a' \
@@ -280,7 +314,7 @@ directory. For instance, adding
to the CMake or 'build-xorg build' command line will cause TigerVNC to be
statically linked against a custom installation of GnuTLS that resides under
-/opt/gnutls. GnuTLS depends on zlib, so specifying --with-included-zlib will
+/opt/gnutls. GnuTLS depends on zlib, so specifying -DUSE_INCLUDED_ZLIB=1 will
satisfy that dependency using TigerVNC's in-tree version of zlib, which
prevents TigerVNC from depending on the libz dynamic library.