remove PortableSpinLock.h
[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
66 Other Linux distributions
67 -------------------------
68
69 - double-conversion (http://code.google.com/p/double-conversion/)
70
71     By default, the build tooling for double-conversion does not build
72     any libraries, which folly requires.  To build the necessary libraries
73     copy folly/SConstruct.double-conversion to your double-conversion
74     source directory before building:
75
76       [double-conversion/] scons -f SConstruct.double-conversion
77
78     Then set CPPFLAGS/LDFLAGS so that folly can find your double-conversion
79     build:
80
81       [folly/] LDFLAGS=-L<double-conversion>/ CPPFLAGS=-I<double-conversion>/src/
82         configure ...
83
84 - additional platform specific dependencies:
85
86   Fedora 17 64-bit
87     - gcc
88     - gcc-c++
89     - autoconf
90     - autoconf-archive
91     - automake
92     - boost-devel
93     - libtool
94     - lz4-devel
95     - lzma-devel
96     - snappy-devel
97     - zlib-devel
98     - glog-devel
99     - gflags-devel
100     - scons (for double-conversion)