1{ stdenv, fetchgit, cmake, pkgconfig, boost, libunwind, libmemcached, pcre
2, libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php, re2c
3, expat, libcap, oniguruma, libdwarf, libmcrypt, tbb, gperftools, glog, libkrb5
4, bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam, libpng
5, libxslt, ocaml, freetype, gdb, git, perl, mariadb, gmp, libyaml, libedit
6, libvpx, imagemagick, fribidi
7}:
8
9stdenv.mkDerivation rec {
10 name = "hhvm-${version}";
11 version = "3.6.0";
12
13 # use git version since we need submodules
14 src = fetchgit {
15 url = "https://github.com/facebook/hhvm.git";
16 rev = "6ef13f20da20993dc8bab9eb103f73568618d3e8";
17 sha256 = "29a2d4b56cfd348b199d8f90b4e4b07de85dfb2ef1538479cd1e84f5bc1fbf96";
18 fetchSubmodules = true;
19 };
20
21 buildInputs =
22 [ cmake pkgconfig boost libunwind mariadb libmemcached pcre gdb git perl
23 libevent gd curl libxml2 icu flex bison openssl zlib php expat libcap
24 oniguruma libdwarf libmcrypt tbb gperftools bzip2 openldap readline
25 libelf uwimap binutils cyrus_sasl pam glog libpng libxslt ocaml libkrb5
26 gmp libyaml libedit libvpx imagemagick fribidi
27 ];
28
29 enableParallelBuilding = false;
30 dontUseCmakeBuildDir = true;
31 NIX_LDFLAGS = "-lpam -L${pam}/lib";
32 MYSQL_INCLUDE_DIR="${mariadb}/include/mysql";
33 MYSQL_DIR=mariadb;
34
35 # work around broken build system
36 NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
37
38 prePatch = ''
39 substituteInPlace hphp/util/generate-buildinfo.sh \
40 --replace /bin/bash ${stdenv.shell}
41 substituteInPlace ./configure \
42 --replace "/usr/bin/env bash" ${stdenv.shell}
43 '';
44
45 cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
46
47 meta = {
48 description = "High-performance JIT compiler for PHP/Hack";
49 homepage = "http://hhvm.com";
50 license = "PHP/Zend";
51 platforms = [ "x86_64-linux" ];
52 maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
53 };
54}