[Buildroot] [PATCH 2/2] new package: grpc

mrugiero at gmail.com mrugiero at gmail.com
Mon Apr 17 17:22:25 UTC 2017


From: "Mario J. Rugiero" <mrugiero at gmail.com>

gRPC is Google's take on RPC. It attempts to be simple and language
agnostic by using protocol buffers to define the payloads.
It depends on protobuf.

Signed-off-by: Mario J. Rugiero <mrugiero at gmail.com>
---
 package/Config.in      |  1 +
 package/grpc/Config.in | 17 ++++++++++++
 package/grpc/grpc.hash |  2 ++
 package/grpc/grpc.mk   | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 92 insertions(+)
 create mode 100644 package/grpc/Config.in
 create mode 100644 package/grpc/grpc.hash
 create mode 100644 package/grpc/grpc.mk

diff --git a/package/Config.in b/package/Config.in
index 4eaa95b1d..54133ee0d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1353,6 +1353,7 @@ menu "Other"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
 	source "package/gmp/Config.in"
+	source "package/grpc/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
 	source "package/jemalloc/Config.in"
diff --git a/package/grpc/Config.in b/package/grpc/Config.in
new file mode 100644
index 000000000..a26b2c44a
--- /dev/null
+++ b/package/grpc/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_GRPC
+	bool "grpc"
+	depends on BR2_PACKAGE_GFLAGS
+	depends on BR2_PACKAGE_OPENSSL
+	depends on BR2_PACKAGE_PROTOBUF
+	depends on BR2_PACKAGE_ZLIB
+	help
+	  gRPC is Google's protocol buffers\' based implementation of a
+	  remote procedure call protocol.
+
+	  http://www.grpc.io
+
+comment "grpc needs protocol buffers, google flags, openssl and zlib"
+	depends on !BR2_PACKAGE_GFLAGS || !BR2_PACKAGE_OPENSSL || \
+		!BR2_PACKAGE_PROTOBUF || !BR2_PACKAGE_ZLIB
+		
+
diff --git a/package/grpc/grpc.hash b/package/grpc/grpc.hash
new file mode 100644
index 000000000..e45e49bca
--- /dev/null
+++ b/package/grpc/grpc.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 b4f41c0f223ade0b5a4b95de018c28e781e06a76c35629a42279a02b26efb8c8 grpc-v1.2.4.tar.gz
diff --git a/package/grpc/grpc.mk b/package/grpc/grpc.mk
new file mode 100644
index 000000000..0326080b3
--- /dev/null
+++ b/package/grpc/grpc.mk
@@ -0,0 +1,72 @@
+################################################################################
+#
+# grpc
+#
+################################################################################
+
+GRPC_VERSION = v1.2.4
+GRPC_SITE = $(call github,grpc,grpc,$(GRPC_VERSION))
+GRPC_LICENSE = BSD-3-Clause
+GRPC_LICENSE_FILES = LICENSE
+
+# N.B. Need to use host protoc during cross compilation.
+GRPC_DEPENDENCIES = gflags openssl host-grpc host-protobuf protobuf zlib
+
+GRPC_INSTALL_STAGING = YES
+
+GRPC_CROSS_MAKE_OPTS_BASE = \
+	CC="$(TARGET_CC)" \
+	CXX="$(TARGET_CXX)" \
+	LD="$(TARGET_CC)" \
+	LDXX="$(TARGET_CXX)" \
+	CFLAGS="$(TARGET_CFLAGS)" \
+	LDFLAGS="$(TARGET_LDFLAGS)" \
+	STRIP="$(TARGET_STRIP)"
+
+GRPC_MAKE_OPTS = \
+	$(GRPC_CROSS_MAKE_OPTS_BASE) \
+	LD_LIBRARY_PATH="$(STAGING_DIR)/usr/lib" \
+	PROTOC="$(HOST_DIR)/usr/bin/protoc" \
+	PROTOC_PLUGINS_DIR="$(HOST_DIR)/usr/bin/" \
+	prefix="$(TARGET_DIR)/usr"
+
+GRPC_INSTALL_TARGET_OPTS = \
+	$(GRPC_CROSS_MAKE_OPTS_BASE) \
+	prefix="$(TARGET_DIR)/usr"
+
+GRPC_INSTALL_STAGING_OPTS = \
+	$(GRPC_CROSS_MAKE_OPTS_BASE) \
+	prefix="$(STAGING_DIR)/usr"
+
+HOST_GRPC_MAKE_OPTS = \
+	CFLAGS="$(HOST_CFLAGS)" \
+	LDFLAGS="$(HOST_LDFLAGS)" \
+	LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib" \
+	PROTOC="$(HOST_DIR)/usr/bin/protoc" \
+	PROTOC_PLUGINS_DIR="$(HOST_DIR)/usr/bin/" \
+	prefix="$(HOST_DIR)/usr"
+
+define GRPC_BUILD_CMDS
+	$(MAKE) $(GRPC_MAKE_OPTS) -C $(@D) static shared
+endef
+
+define GRPC_INSTALL_TARGET_CMDS
+  # Could be install-static and install-shared, but grpc is currently missing
+  # the install-shared target.
+	$(MAKE) $(GRPC_MAKE_OPTS) -C $(@D) install-static install-shared_c install-shared_cxx
+endef
+
+define GRPC_INSTALL_STAGING_CMDS
+	$(MAKE) $(GRPC_INSTALL_STAGING_OPTS) -C $(@D) install_c install_cxx
+endef
+
+define HOST_GRPC_BUILD_CMDS
+	$(MAKE) $(HOST_GRPC_MAKE_OPTS) -C $(@D) plugins
+endef
+
+define HOST_GRPC_INSTALL_CMDS
+	$(MAKE) $(HOST_GRPC_MAKE_OPTS) -C $(@D) install-plugins
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
-- 
2.12.2




More information about the buildroot mailing list