Hello,

This patch adds the Protobuf library into feeds/packages.

Protobuf ( http://code.google.com/p/protobuf/ ) is a way of encoding structured 
data in an efficient yet extensible format.
Google uses Protocol Buffers for almost all of its internal RPC protocols and 
file formats.

It's vaguely similar to rpcgen, in a (wicked) way, but for C++/python or Java
(Here in OpenWRT only C++ is built)

I've tested it on Atheros and BCM63xx plateforms, on OpenWRT trunk.

Notes:
This is the second version of the patch, which takes care of compiling & 
installing the "protoc" application for the host, since this is required for 
compiling the target version.
Many thanks to Mirko and Jonas who showed me how to do it, and sorry for the 
delay !

When commited, this library will complete the requirements to build the Seeks 
package, previously proposed.
I will also answer to any questions, critics and wishes regarding the packaging 
of protobuf, tokyocabinet and Seeks.

Obinou
diff --git a/libs/protobuf/Makefile b/libs/protobuf/Makefile
new file mode 100644
index 0000000..e0a6c1e
--- /dev/null
+++ b/libs/protobuf/Makefile
@@ -0,0 +1,65 @@
+# 
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=protobuf
+PKG_VERSION:=2.4.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=http://protobuf.googlecode.com/files
+PKG_MD5SUM:=ed436802019c9e1f40cc750eaf78f318
+
+PKG_BUILD_DEPENDS:=protobuf/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/protobuf
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=A structured data encoding library
+  URL:=http://code.google.com/p/protobuf/
+  DEPENDS:=+zlib
+  MAINTAINER:=Obinou <obcons...@gmail.com>
+endef
+
+define Package/protobuf/description
+ Protocol Buffers are a way of encoding structured data in an efficient
+ yet extensible format. Google uses Protocol Buffers for almost all
+ of its internal RPC protocols and file formats. 
+endef
+
+CONFIGURE_ARGS += --prefix=/usr --with-protoc=$(STAGING_DIR_HOST)/bin/protoc
+
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR)
+	$(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
+endef
+
+define Build/InstallDev
+	$(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(1)" install
+endef
+
+define Package/protobuf/install
+	$(INSTALL_DIR)  $(1)/usr/lib
+	$(CP)  $(PKG_INSTALL_DIR)/usr/lib/libprotoc.so*  $(1)/usr/lib
+	$(CP)  $(PKG_INSTALL_DIR)/usr/lib/libprotobuf-lite.so*  $(1)/usr/lib
+	$(CP)  $(PKG_INSTALL_DIR)/usr/lib/libprotobuf.so*  $(1)/usr/lib
+endef
+
+define Host/Compile
+	$(MAKE) -C $(HOST_BUILD_DIR) CC="$(HOSTCC)"
+endef
+
+define Host/Install
+	$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/protoc $(STAGING_DIR_HOST)/bin/protoc
+endef
+
+$(eval $(call BuildPackage,protobuf))
+$(eval $(call HostBuild))
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to