Reworking the Linux parts of the doc to be simpler and only give advice
authorDavid Beaumont <dbeaumont@google.com>
Fri, 28 Nov 2014 15:49:34 +0000 (15:49 +0000)
committerYoungjae Shin <yj99.shin@samsung.com>
Tue, 9 Jun 2015 11:43:22 +0000 (20:43 +0900)
that can be followed easily (the re2 stuff with Mercurial was removed
because it's a rat-hole and currently needs a manual patch to the sources
which is not something that this document should be trying to describe.

cpp/README

index f05f668..96ca037 100644 (file)
@@ -1,18 +1,50 @@
-C++ version of the libphonenumber project.
+                  C++ version of the libphonenumber project
+                  =========================================
 
-This is a port of the Java version.
+This library is a port of the Java version.
 
 This project uses some third-party code:
   - src/phonenumbers/utf/ sources come from lib9 which is also used in Go.
 
 
-Building the library on GNU/Linux
----------------------------------
+Installing the library on GNU/Linux
+-----------------------------------
+In recent Debian-based distributions you may be able to simply install the
+libphonenumber library directly.
+
+Installing the binary packages:
+  - Use this if you just need to use or link against the library:
+    $ sudo apt-get install libphonenumber6 libphonenumber6-dev
+
+Installing the source package:
+  - Use this if you wish to develop or debug the library:
+    $ sudo apt-get source libphonenumber
+
+The latest packages can be found on the Debian packages site:
+  https://packages.debian.org/search?searchon=names&keywords=libphonenumber
+
+
+Manually installing the library on GNU/Linux
+--------------------------------------------
+You should only need these instructions if the above instructions do not work.
+
+The example command lines below assume that you have a Debian-based GNU/Linux
+distribution. Other distributions and packaging systems will differ.
+
+Quickstart:
+  - In recent Debian-based distributions, it should be sufficent to run:
+    $ sudo apt-get install \
+      cmake cmake-curses-gui libprotobuf-dev libgtest-dev libre2-dev \
+      libicu-dev libboost-dev libboost-thread-dev libboost-system-dev
+
+If any of these packages fails to install correctly, follow the instructions
+in the appropriate section below.
+
 Requirements:
   - CMake build system
     http://www.cmake.org
 
-    You can install it very easily on a Debian-based GNU/Linux distribution:
+    Installation:
     $ sudo apt-get install cmake
 
     Additionally it is recommended you install the ccmake configuration tool:
@@ -20,9 +52,17 @@ Requirements:
 
   - Protocol Buffers
     http://code.google.com/p/protobuf/
-    Version 2.4 or more recent is required.
+    Version 2.4 or more recent is required (this is available by default for
+    recent Debian-based GNU/Linux distributions).
 
-    You can install it very easily on a Debian-based GNU/Linux distribution:
+    You can check which version is available:
+    $ apt-cache show libprotobuf-dev 
+    Package: libprotobuf-dev
+    Source: protobuf
+    Version: 2.5.0-9ubuntu1   <-- This must be >= 2.4.0
+    ...
+
+    Installation:
     $ sudo apt-get install libprotobuf-dev
 
     Note: if your GNU/Linux distribution doesn't provide the needed package,
@@ -34,51 +74,44 @@ Requirements:
   - Google Test
     http://code.google.com/p/googletest/
 
-    You can install it very easily on a Debian-based GNU/Linux distribution:
+    Installation:
     $ sudo apt-get install libgtest-dev
 
   - RE2
     http://code.google.com/p/re2/
 
-    You can install it very easily on Ubuntu Natty:
+    Installation:
     $ sudo apt-get install libre2-dev
 
-    Otherwise if you use a Debian-based distribution you can fetch the Ubuntu
-    package which should work:
-    http://packages.ubuntu.com/natty/libre2-dev
+    Note that some distributions (notably Ubuntu 10.4) may not include this,
+    so you might need to download and install it manually.
 
-    If you want to install it manually:
-    You need Mercurial to checkout its source code:
-    $ sudo apt-get install mercurial
+    Find and download the Debian packages for your system. For example:
+    http://packages.ubuntu.com/utopic/libre2-1
+    http://packages.ubuntu.com/utopic/libre2-dev
 
-    Then checkout, build and install it:
-    $ hg clone https://re2.googlecode.com/hg re2
-    $ cd re2
-    $ make test
-    $ make install
-    $ make testinstall
+    You need to download both the libre2-dev and libre2-1 packages.
+    Once downloaded, install them with:
+    $ sudo dpkg -i libre2*.deb
 
-  - ICU
-    Version 4.4 or more recent is required. It can be installed easily on Debian
-    systems or be built from the most recent sources (currently 49.1.2).
+    If you want to install it from source, it's available via Mercurial at:
+    https://re2.googlecode.com/hg
+    however precise instructions on building and installing are outside the
+    scope of this document.
 
-    If you have a Debian-based distribution you can check which version of the
-    ICU libraries is available by doing:
-    $ apt-cache show libicu-dev
-    And looking for the "Version:" string.
-
-    If this is above 4.4 then you can just do:
+  - ICU
+    Installation:
     $ sudo apt-get install libicu-dev
 
     Otherwise you need to download the source tarball for the latest version
     from:
       http://site.icu-project.org/download
     And then extract it via:
-    $ tar xzf icu4c-49_1_2-src.tgz
+    $ tar xzf icu4c-*-src.tgz
 
     Alternatively you can export the SVN repository to the current directory
     via:
-    $ svn export http://source.icu-project.org/repos/icu/icu/tags/release-49-1-2/
+    $ svn export http://source.icu-project.org/repos/icu/icu/tags/release-XX-y-z/
 
     Having acquired the latest sources, make and install it via:
     $ cd icu/source
@@ -91,19 +124,22 @@ Requirements:
     Troubleshooting section below for information about ccmake).
 
     You can install it very easily on a Debian-based GNU/Linux distribution:
-    $ sudo apt-get install libboost1.40-dev libboost-thread1.40-dev \
-      libboost-system1.40-dev
+    $ sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev
 
     Note: Boost Thread is the only library needed at link time.
 
-How to build libphonenumber C++:
+
+Building the library
+--------------------
   $ cd libphonenumber/cpp
   $ mkdir build
   $ cd build
   $ cmake ..
   $ make
 
-Troubleshooting CMake via ccmake:
+
+Troubleshooting CMake via ccmake
+--------------------------------
   Follow these instructions if the build steps above don't work for you.
 
   - Incorrect protocol buffer library issues