Add JSON Schema Validator
[folly.git] / README
1 Folly: Facebook Open-source LibrarY
2 -----------------------------------
3
4 Folly is an open-source C++ library developed and used at Facebook.
5
6 For details, see folly/docs/Overview.md.
7
8 Folly is published on Github at https://github.com/facebook/folly; for
9 discussions, there is a Google group at
10 https://groups.google.com/d/forum/facebook-folly.
11
12
13 Dependencies
14 ------------
15
16 folly requires gcc 4.8+ and a version of boost compiled with C++11 support.
17
18 Please download googletest from
19 https://googletest.googlecode.com/files/gtest-1.6.0.zip and unzip it in the
20 folly/test subdirectory.
21
22 Ubuntu 13.10
23 ------------
24
25 The following packages are required (feel free to cut and paste the apt-get
26 command below):
27
28 sudo apt-get install \
29     g++ \
30     automake \
31     autoconf \
32     autoconf-archive \
33     libtool \
34     libboost-all-dev \
35     libevent-dev \
36     libdouble-conversion-dev \
37     libgoogle-glog-dev \
38     libgflags-dev \
39     liblz4-dev \
40     liblzma-dev \
41     libsnappy-dev \
42     make \
43     zlib1g-dev \
44     binutils-dev \
45     libjemalloc-dev \
46     libssl-dev
47
48 Ubuntu 14.04 LTS
49 ----------------
50
51 The packages listed above for Ubuntu 13.10 are required, as well as:
52
53 sudo apt-get install \
54     libiberty-dev
55
56 The above packages are sufficient for Ubuntu 13.10 and Ubuntu 14.04.
57
58 In the folly directory, run
59   autoreconf -ivf
60   ./configure
61   make
62   make check
63   sudo make install
64
65 OS X
66 ----
67 There is a bootstrap script if you use Homebrew (http://brew.sh/). At the time
68 of writing (OS X Yosemite 10.10.1) the default compiler (clang) has some
69 issues building, but gcc 4.9.2 from Homebrew works fine. (This is taken care
70 of by the bootstrap script.)
71
72   cd folly
73   ./bootstrap-osx-homebrew.sh
74   make
75   make check
76
77 Other Linux distributions
78 -------------------------
79
80 - double-conversion (https://github.com/floitsch/double-conversion/)
81
82   Download and build double-conversion.
83   You may need to tell configure where to find it.
84
85   [double-conversion/] ln -s src double-conversion
86  
87   [folly/] ./configure LDFLAGS=-L$DOUBLE_CONVERISON_HOME/ CPPFLAGS=-I$DOUBLE_CONVERISON_HOME/
88  
89   [folly/] LD_LIBRARY_PATH=$DOUBLE_CONVERISON_HOME/ make
90
91 - additional platform specific dependencies:
92
93   Fedora 17 64-bit
94     - gcc
95     - gcc-c++
96     - autoconf
97     - autoconf-archive
98     - automake
99     - boost-devel
100     - libtool
101     - lz4-devel
102     - lzma-devel
103     - snappy-devel
104     - zlib-devel
105     - glog-devel
106     - gflags-devel
107     - scons (for double-conversion)