Revert "(wangle) express current Core functionality with a state machine"
[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
47 Ubuntu 14.04 LTS
48 ----------------
49
50 The packages listed above for Ubuntu 13.10 are required, as well as:
51
52 sudo apt-get install \
53     libiberty-dev
54
55 The above packages are sufficient for Ubuntu 13.10 and Ubuntu 14.04.
56
57 In the folly directory, run
58   autoreconf -ivf
59   ./configure
60   make
61   make check
62   sudo make install
63
64
65 Other Linux distributions
66 -------------------------
67
68 - double-conversion (http://code.google.com/p/double-conversion/)
69
70     By default, the build tooling for double-conversion does not build
71     any libraries, which folly requires.  To build the necessary libraries
72     copy folly/SConstruct.double-conversion to your double-conversion
73     source directory before building:
74
75       [double-conversion/] scons -f SConstruct.double-conversion
76
77     Then set CPPFLAGS/LDFLAGS so that folly can find your double-conversion
78     build:
79
80       [folly/] LDFLAGS=-L<double-conversion>/ CPPFLAGS=-I<double-conversion>/src/
81         configure ...
82
83 - additional platform specific dependencies:
84
85   Fedora 17 64-bit
86     - gcc
87     - gcc-c++
88     - autoconf
89     - autoconf-archive
90     - automake
91     - boost-devel
92     - libtool
93     - lz4-devel
94     - lzma-devel
95     - snappy-devel
96     - zlib-devel
97     - glog-devel
98     - gflags-devel
99     - scons (for double-conversion)