rewrite some of the install instructions

Reviewed By: cristianoc

Differential Revision: D2522741

fb-gh-sync-id: 733ee48
master
Jules Villard 9 years ago committed by facebook-github-bot-7
parent f2d80d1a40
commit 77ab0565c4

@ -1,80 +1,162 @@
# How to compile and install Infer
We provide a source release of Infer packaged with pre-build binaries for clang and facebook-clang-plugins for Linux and MacOS. We encourage you to use this release. ## Pre-compiled versions
Install the dependencies for your operating system and then follow the instructions
in [Infer's getting-started page](http://fbinfer.com/docs/getting-started.html).
We provide a source release of Infer packaged with pre-build binaries
for clang and facebook-clang-plugins for Linux and MacOS. We encourage
you to use this release as compiling clang is time-consuming. Install
the dependencies as explained in the next section, then follow the
instructions in [Infer's getting-started
page](http://fbinfer.com/docs/getting-started.html) to compile and
install Infer.
# Install the dependencies Alternatively, we also provide a docker image in the docker/
directory. Simply go to that directory and run `./run.sh` to get
started with a working installation of Infer.
## MacOS X ## Infer dependencies for MacOSX
Here are the prerequisites to be able to compile Infer. Make sure you have Here are the prerequisites to be able to compile Infer on MacOSX. This
the dependencies installed and opam configured properly. After that either is required to be able to [use the
[use the release](http://fbinfer.com/docs/getting-started.html) (faster), or [compile everything from source](#compile-clang-and-infer-from-source). release](http://fbinfer.com/docs/getting-started.html) (faster), or to
compile everything from source (see the end of this document).
### Requirements
- Python 2.7
- opam (instructions [here](https://opam.ocaml.org/doc/Install.html#OSX)) - opam (instructions [here](https://opam.ocaml.org/doc/Install.html#OSX))
- Java <= 1.7 (only needed for the Java analysis) - Python 2.7
- Java 1.7 (only needed for the Java analysis)
- clang in Xcode command line tools. You can install them with the command
`xcode-select --install` (only needed for the C/Objective-C analysis)
- Xcode <= 7.0, >= 6.1 (only needed for the C/Objective-C analysis) - Xcode <= 7.0, >= 6.1 (only needed for the C/Objective-C analysis)
- clang in Xcode command line tools. You can install them with the command `xcode-select --install` (only needed for the C/Objective-C analysis)
### Setup Opam You can install some of these dependencies using
[Homebrew](http://brew.sh/):
```bash ```sh
brew install opam
```
Once you have all the dependencies above installed, configure opam as
follows:
```sh
opam init -y --comp=4.01.0 opam init -y --comp=4.01.0
eval `opam config env` eval $(opam config env)
opam install -y extlib.1.5.4 atdgen.1.6.0 javalib.2.3.1 sawja.1.5.1 opam update
opam install -y \
atdgen.1.6.0 \
extlib.1.5.4 \
javalib.2.3.1 \
sawja.1.5.1
``` ```
## Linux ## Infer dependencies for Linux
Here are the prerequisites to be able to compile Infer. Make sure you have
the dependencies installed and opam configured properly. After that either
[use the release](http://fbinfer.com/docs/getting-started.html) (faster), or [compile everything from source](#compile-clang-and-infer-from-source).
### Requirements Here are the prerequisites to be able to compile Infer on Linux. This
is required to be able to [use the
release](http://fbinfer.com/docs/getting-started.html) (faster), or to
compile everything from source (see the end of this document).
- Python 2.7
- opam
- Java <= 1.7 (only needed for the Java analysis)
- gcc >= 4.7.2 - gcc >= 4.7.2
- opam
- Python 2.7
- Java 1.7 (only needed for the Java analysis)
### How to install the requirements on Ubuntu 12.04.4 LTS ### How to install the dependencies on Ubuntu 12.04.4 LTS
```bash ```sh
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update sudo apt-get update
sudo apt-get upgrade sudo apt-get upgrade
sudo apt-get install git openjdk-7-jdk m4 zlib1g-dev python-software-properties build-essential libgmp-dev libmpfr-dev libmpc-dev unzip sudo apt-get install -y \
sudo apt-get install gcc-4.8 g++-4.8 build-essential \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 g++-4.8 \
gcc-4.8 \
git \
libgmp-dev \
libmpc-dev \
libmpfr-dev \
m4 \
openjdk-7-jdk \
python-software-properties \
unzip \
zlib1g-dev
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 \
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8
``` ```
### How to install the requirements on Debian 7 / Ubuntu 14.04 ### How to install the dependencies on Debian 7 / Ubuntu 14.04
```bash ```sh
sudo apt-get update sudo apt-get update
sudo apt-get upgrade sudo apt-get upgrade
sudo apt-get install git openjdk-7-jdk m4 zlib1g-dev python-software-properties build-essential libgmp-dev libmpfr-dev libmpc-dev unzip sudo apt-get install -y \
build-essential \
git \
libgmp-dev \
libmpc-dev \
libmpfr-dev \
m4 \
openjdk-7-jdk \
python-software-properties \
unzip \
zlib1g-dev
``` ```
### Setup Opam ### Setting up Opam
```bash Unfortunately, the version of opam that ships with some Linux
wget https://github.com/ocaml/opam/releases/download/1.2.2/opam-1.2.2-x86_64-Linux -O opam distributions is broken, so you'll have to get it from the web:
```sh
wget -O opam https://github.com/ocaml/opam/releases/download/1.2.2/opam-1.2.2-x86_64-Linux
chmod +x opam chmod +x opam
```
Alternatively, follow the instructions [from the opam
webpage](https://opam.ocaml.org/doc/Install.html).
Once opam is installed, run the following commands:
```sh
./opam init -y --comp=4.01.0 ./opam init -y --comp=4.01.0
eval `./opam config env` eval $(./opam config env)
./opam install -y extlib.1.5.4 atdgen.1.6.0 javalib.2.3.1 sawja.1.5.1 ./opam update
./opam install -y \
atdgen.1.6.0 \
extlib.1.5.4 \
javalib.2.3.1 \
sawja.1.5.1
``` ```
# Compile clang and Infer from source
Infer uses a special version of clang along with a clang plugin. Follow these instructions to compile them from source. Alternatively, you can skip these instructions and use the [release](http://fbinfer.com/docs/getting-started.html). ## Compile Infer from source for the Java analysis
If you use Infer to analyze Java programs only, you can simple use
these steps to get Infer up and running:
```sh
# Checkout Infer
git clone https://github.com/facebook/infer.git
cd infer
# Compile Infer
make -C infer java
# Install Infer into your PATH
export PATH=`pwd`/infer/bin:$PATH
```
## Compile Infer from source with clang enabled
You do not need to follow the instructions below if you are using a
[release of Infer](http://fbinfer.com/docs/getting-started.html) or if
you only need to run Infer on Java programs.
Infer uses a special version of clang along with a clang
plugin. Follow these steps to compile them from source and install
Infer.
```bash ```sh
# Checkout Infer # Checkout Infer
git clone https://github.com/facebook/infer.git git clone https://github.com/facebook/infer.git
cd infer cd infer
@ -85,5 +167,6 @@ facebook-clang-plugins/clang/setup.sh # go have a coffee :)
./compile-fcp.sh ./compile-fcp.sh
# Compile Infer # Compile Infer
make -C infer make -C infer
# Install Infer into your PATH
export PATH=`pwd`/infer/bin:$PATH export PATH=`pwd`/infer/bin:$PATH
``` ```

Loading…
Cancel
Save