]> source.dussan.org Git - tigervnc.git/commitdiff
Instructions for building with NLS and other tweaks
authorDRC <dcommander@users.sourceforge.net>
Fri, 24 Jun 2011 04:58:01 +0000 (04:58 +0000)
committerDRC <dcommander@users.sourceforge.net>
Fri, 24 Jun 2011 04:58:01 +0000 (04:58 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4533 3789f03b-4d11-0410-bbf8-ca57d06f2519

BUILDING.txt

index b2241b47ccda593b0395d4ed2f8c33c2282a3e76..f696fdd711e0e6c97f2667647ad65dd703eb25bc 100644 (file)
@@ -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.