Add JSON Schema Validator
[folly.git] / README
diff --git a/README b/README
index b8fb0aba4d712769952e99b8a81a77f4e8ea5657..5fc44e1773d3ad4cf6b216d2d763d531ea7c928c 100644 (file)
--- a/README
+++ b/README
@@ -9,43 +9,86 @@ Folly is published on Github at https://github.com/facebook/folly; for
 discussions, there is a Google group at
 https://groups.google.com/d/forum/facebook-folly.
 
+
 Dependencies
 ------------
 
-- double-conversion (http://code.google.com/p/double-conversion/)
+folly requires gcc 4.8+ and a version of boost compiled with C++11 support.
 
-    By default, the build tooling for double-conversion does not build
-    any libraries, which folly requires.  To build the necessary libraries
-    copy folly/SConstruct.double-conversion to your double-conversion
-    source directory before building:
+Please download googletest from
+https://googletest.googlecode.com/files/gtest-1.6.0.zip and unzip it in the
+folly/test subdirectory.
 
-      [double-conversion/] scons -f SConstruct.double-conversion
+Ubuntu 13.10
+------------
 
-    Then set CPPFLAGS/LDFLAGS so that folly can find your double-conversion
-    build:
+The following packages are required (feel free to cut and paste the apt-get
+command below):
 
-      [folly/] LDFLAGS=-L<double-conversion>/ CPPFLAGS=-I<double-conversion>/src/
-        configure ...
+sudo apt-get install \
+    g++ \
+    automake \
+    autoconf \
+    autoconf-archive \
+    libtool \
+    libboost-all-dev \
+    libevent-dev \
+    libdouble-conversion-dev \
+    libgoogle-glog-dev \
+    libgflags-dev \
+    liblz4-dev \
+    liblzma-dev \
+    libsnappy-dev \
+    make \
+    zlib1g-dev \
+    binutils-dev \
+    libjemalloc-dev \
+    libssl-dev
 
-- googletest (Google C++ Testing Framework)
+Ubuntu 14.04 LTS
+----------------
 
-  Grab gtest 1.6.0 from:
-  http://googletest.googlecode.com/files/gtest-1.6.0.zip
+The packages listed above for Ubuntu 13.10 are required, as well as:
 
-  Unzip it inside of the test/ subdirectory.
+sudo apt-get install \
+    libiberty-dev
 
-- additional platform specific dependencies:
+The above packages are sufficient for Ubuntu 13.10 and Ubuntu 14.04.
 
-  Ubuntu 12.10 64-bit
-    - g++
-    - automake
-    - autoconf
-    - autoconf-archive
-    - libtool
-    - libboost1.46-all-dev
-    - libgoogle-glog-dev
-    - libgflags-dev
-    - scons (for double-conversion)
+In the folly directory, run
+  autoreconf -ivf
+  ./configure
+  make
+  make check
+  sudo make install
+
+OS X
+----
+There is a bootstrap script if you use Homebrew (http://brew.sh/). At the time
+of writing (OS X Yosemite 10.10.1) the default compiler (clang) has some
+issues building, but gcc 4.9.2 from Homebrew works fine. (This is taken care
+of by the bootstrap script.)
+
+  cd folly
+  ./bootstrap-osx-homebrew.sh
+  make
+  make check
+
+Other Linux distributions
+-------------------------
+
+- double-conversion (https://github.com/floitsch/double-conversion/)
+
+  Download and build double-conversion.
+  You may need to tell configure where to find it.
+
+  [double-conversion/] ln -s src double-conversion
+  [folly/] ./configure LDFLAGS=-L$DOUBLE_CONVERISON_HOME/ CPPFLAGS=-I$DOUBLE_CONVERISON_HOME/
+  [folly/] LD_LIBRARY_PATH=$DOUBLE_CONVERISON_HOME/ make
+
+- additional platform specific dependencies:
 
   Fedora 17 64-bit
     - gcc
@@ -55,6 +98,10 @@ Dependencies
     - automake
     - boost-devel
     - libtool
+    - lz4-devel
+    - lzma-devel
+    - snappy-devel
+    - zlib-devel
     - glog-devel
     - gflags-devel
     - scons (for double-conversion)