Skip to content

Building and installing HHVM on Ubuntu 13.10

Brandon Wamboldt edited this page Dec 20, 2013 · 44 revisions

Packages installation

Using sudo or as root user: (you may have to run sudo apt-get update first)

sudo apt-get install git cmake g++ libboost-dev libmysqlclient-dev libxml2-dev \
  libmcrypt-dev libicu-dev build-essential binutils-dev libcap-dev libgd2-xpm-dev \
  zlib1g-dev libtbb-dev libonig-dev libpcre3-dev autoconf libtool libcurl4-openssl-dev \
  libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libboost-thread-dev \
  libreadline-dev libncurses-dev libmemcached-dev libbz2-dev libc-client2007e-dev \
  libgoogle-perftools-dev libelf-dev libdwarf-dev libboost-regex-dev libgoogle-glog-dev \
  libjemalloc-dev libtool automake cmake libboost libboost-regex-dev libboost-filesystem-dev \
  libboost-system-dev libboost-program-options-dev libmysqlclient-dev libmemcached-dev \
  libpcre3-dev libcurl4-openssl-dev libxml2-dev libexpat-dev libtbb-dev libmcrypt-dev \
  libbz2-dev libonig-dev libreadline-dev libelf-dev libdwarf-dev libc-client-dev

Getting HHVM source-code

mkdir dev
cd dev
export CMAKE_PREFIX_PATH=`pwd`
git clone git://github.com/facebook/hhvm.git
cd hhvm
git submodule init
cd ../

Building third-party libraries

libevent

git clone git://github.com/libevent/libevent.git
cd libevent
git checkout release-1.4.14b-stable
cat ../hhvm/hphp/third_party/libevent-1.4.14.fb-changes.diff | patch -p1
./autogen.sh
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

Building HipHop

Make sure your machine has more than 1GB RAM

cd hhvm
git submodule update
export HPHP_HOME=`pwd`
cmake .
make

Running programs

The hhvm binary can be found in hphp/hhvm/hhvm.

Errors

If any errors occur, it may be required to remove the CMakeCache.txt file in the checkout.

If your failure was on the make command, try to correct the error and run make again, it should restart from the point it stops. If the error persists, try to remove as explained above.

Clone this wiki locally