| Dependencies |
| ============ |
| |
| grpc has few external dependencies. If needed, they are present in the |
| third_party directory, if you have cloned the github repository recursively. |
| If you didn't clone recursively, you can still get them later by running the |
| following command: |
| |
| $ git submodule update --init |
| |
| Note that the Makefile makes it much easier for you to compile from sources |
| if you were to clone recursively our git repository. |
| |
| |
| grpc core currently depends on zlib and OpenSSL 1.0.2beta3, and also requires |
| libevent2 for the Linux port. |
| |
| grpc++'s tests depends on protobuf 3.0.0, gtests and gflags. |
| |
| OpenSSL |
| ------- |
| |
| Secure HTTP2 requires to have the TLS extension ALPN (see rfc 7301 and |
| http://http2.github.io/http2-spec/ section 3.3). Our HTTP2 implementation |
| relies on OpenSSL's implementation. OpenSSL 1.0.2beta3 is the first version |
| of OpenSSL that has ALPN support, and this explains our dependency on it. |
| |
| Note that the Makefile supports compiling only the unsecure elements of grpc, |
| and if you do not have OpenSSL and do not want it, you can still proceed |
| with installing only the elements you require. However, it is recommended |
| to encrypt your network traffic, therefore we urge you to not use the unsecure |
| version of grpc if possible. |
| |
| |
| Compiling |
| ========= |
| |
| If you have all the dependencies in the third_party subfolder, you should |
| simply be able to go ahead and run "make" to compile grpc. The other targets |
| that you might find interesting are "buildtests" and "test". |
| |
| If you didn't clone from git, and thus are unable to get the required |
| dependencies, you can manually download and unpack the necessary packages, |
| and let the Makefile build them itself. |
| |
| You may also install the dependencies yourself, from the sources, or from |
| your distribution's package manager. |
| |
| The development packages needed for grpc are libevent2 under Linux, and zlib. |
| The development packages needed for grpc++'s tests are gtests, and gflags. |
| |
| To the best of our knowledge, no distribution has an OpenSSL package that |
| supports ALPN yet, so you would still have to depend on installing from source |
| for that particular dependency. |
| |
| The recommended version of OpenSSL that provides ALPN support is available |
| at this URL: |
| |
| https://www.openssl.org/source/openssl-1.0.2-beta3.tar.gz |
| |
| If you want to let the Makefile build them automatically for you, please |
| extract them in the third_party folder. You will need to rename the extracted |
| folder the following way: |
| |
| openssl-1.0.2-beta3 --> openssl |
| |
| |
| Testing |
| ======= |
| |
| At the moment, C++ tests aren't fully available yet. If you want to run tests |
| on the C core of grpc, you can do the following: |
| |
| $ make buildtests_c |
| $ make test_c |
| |
| |
| Installing |
| ========== |
| |
| Once everything is compiled, you should be able to install grpc and grpc++ |
| libraries and headers: |
| |
| $ sudo make install |