Please, read INSTALL for general information about installing John on your system.

== Preamble

    Important: it's actually about a local to a user's home directory, not a
    system-wide installation. In fact, most likely you do not need to install
    John the Ripper system-wide.  Instead, after you compile the source code
    (see below), you may simply enter the "run" directory and invoke John from
    there, e.g., ./john --list=build-options.

    Commands not explicitly prefixed by sudo must be run as a regular user
    (the one that will use JtR) rather than as root.

== How to install on Ubuntu (also works on Ubuntu for Windows)

    The steps listed below might work unchanged on Debian and derivatives (untested).

=== Preconditions and Required stuff

    mkdir -p ~/src
    sudo apt-get install build-essential libssl-dev git

==== Recommended (extra formats and performance)

    sudo apt-get install yasm libgmp-dev libpcap-dev pkg-config libbz2-dev zlib1g-dev

==== If you have an NVIDIA GPU (OpenCL support)

    sudo apt-get install nvidia-opencl-dev

==== If you have an AMD GPU (or want to use CPU as OpenCL device)

    - Up to Ubuntu 15.10 (<= 15.10). This will work on Intel hardware but warnings will be seen.
    sudo apt-get install ocl-icd-opencl-dev opencl-headers fglrx-dev

    - Ubuntu Xenial 16.04 LTS and above (>= 16.04)
    The fglrx driver would not be supported in 16.04 (XServer 1.18 is not supported).
    Canonical and AMD decided to use the new hybrid driver stack for 16.04. JtR OpenCL
    users should stay on a supported release until the hybrid stack is available.

==== Optional MPI support

    sudo apt-get install libopenmpi-dev openmpi-bin

==== Optional REXGEN support (additional cracking modes)

    sudo apt-get install cmake bison flex libicu-dev
    cd ~/src
    git clone --recursive https://github.com/teeshop/rexgen.git
    cd rexgen
    ./install.sh

=== Clone latest bleeding-edge Jumbo and build

==== Clone GIT repo

    cd ~/src
    git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john

==== Build

    cd ~/src/john/src
    # For MPI, use './configure --enable-mpi' below
    ./configure && make -s clean && make -sj4

=== Test your build

    $ ../run/john --test=0

=== Benchmark your build

    $ ../run/john --test
