| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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
|