From: Gustavo Zacarias Date: Mon, 2 Dec 2013 13:00:14 +0000 (-0300) Subject: thirft: new package X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39620852a21d1116a026933324563451e2d3452b;p=buildroot.git thirft: new package Signed-off-by: Gustavo Zacarias Signed-off-by: Peter Korsgaard --- diff --git a/package/Config.in b/package/Config.in index a7ab4ea9d5..4e37528215 100644 --- a/package/Config.in +++ b/package/Config.in @@ -657,6 +657,7 @@ source "package/openpgm/Config.in" source "package/ortp/Config.in" source "package/slirp/Config.in" source "package/snmppp/Config.in" +source "package/thrift/Config.in" source "package/usbredir/Config.in" source "package/wvstreams/Config.in" source "package/zeromq/Config.in" diff --git a/package/thrift/Config.in b/package/thrift/Config.in new file mode 100644 index 0000000000..a7f3479982 --- /dev/null +++ b/package/thrift/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_THRIFT + bool "thrift" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_USE_WCHAR + depends on BR2_LARGEFILE + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_LIBEVENT + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_ZLIB + help + The Apache Thrift software framework, for scalable cross-language + services development, combines a software stack with a + code generation engine to build services that work + efficiently and seamlessly between C++, Java, Python, PHP, Ruby, + Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, + OCaml and Delphi and other languages. + + http://thrift.apache.org/ + +comment "thrift needs a toolchain w/ C++, largefile, wchar, threads" + depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \ + !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/package/thrift/thrift-01-libevent-cross.patch b/package/thrift/thrift-01-libevent-cross.patch new file mode 100644 index 0000000000..f07caa762a --- /dev/null +++ b/package/thrift/thrift-01-libevent-cross.patch @@ -0,0 +1,16 @@ +Make it cross-compile happy the hard way, there's no clean way. + +Signed-off-by: Gustavo Zacarias + +diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_event.m4 thrift-0.9.1/aclocal/ax_lib_event.m4 +--- thrift-0.9.1.orig/aclocal/ax_lib_event.m4 2013-08-15 11:04:29.000000000 -0300 ++++ thrift-0.9.1/aclocal/ax_lib_event.m4 2013-10-07 20:40:44.076435613 -0300 +@@ -75,7 +75,7 @@ + AC_LANG_PUSH([C]) + dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling, + dnl but then the version cannot be checked. +- AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + ]], [[ diff --git a/package/thrift/thrift-02-autoreconf.patch b/package/thrift/thrift-02-autoreconf.patch new file mode 100644 index 0000000000..d56212aaf4 --- /dev/null +++ b/package/thrift/thrift-02-autoreconf.patch @@ -0,0 +1,22 @@ +Fillers to make autoreconf (automake) happy. + +Signed-off-by: Gustavo Zacarias + +diff -Nura thrift-0.9.1.orig/AUTHORS thrift-0.9.1/AUTHORS +--- thrift-0.9.1.orig/AUTHORS 1969-12-31 21:00:00.000000000 -0300 ++++ thrift-0.9.1/AUTHORS 2013-10-07 20:45:15.745315148 -0300 +@@ -0,0 +1,2 @@ ++ ++ +diff -Nura thrift-0.9.1.orig/ChangeLog thrift-0.9.1/ChangeLog +--- thrift-0.9.1.orig/ChangeLog 1969-12-31 21:00:00.000000000 -0300 ++++ thrift-0.9.1/ChangeLog 2013-10-07 20:45:23.078554836 -0300 +@@ -0,0 +1,2 @@ ++ ++ +diff -Nura thrift-0.9.1.orig/NEWS thrift-0.9.1/NEWS +--- thrift-0.9.1.orig/NEWS 1969-12-31 21:00:00.000000000 -0300 ++++ thrift-0.9.1/NEWS 2013-10-07 20:45:20.351465699 -0300 +@@ -0,0 +1,2 @@ ++ ++ diff --git a/package/thrift/thrift-03-zlib-cross.patch b/package/thrift/thrift-03-zlib-cross.patch new file mode 100644 index 0000000000..3af39c4691 --- /dev/null +++ b/package/thrift/thrift-03-zlib-cross.patch @@ -0,0 +1,16 @@ +Make zlib version detection cross-compile happy. + +Signed-off-by: Gustavo Zacarias + +diff -Nura thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4 thrift-0.9.1/aclocal/ax_lib_zlib.m4 +--- thrift-0.9.1.orig/aclocal/ax_lib_zlib.m4 2013-08-15 11:04:29.000000000 -0300 ++++ thrift-0.9.1/aclocal/ax_lib_zlib.m4 2013-10-07 20:47:44.523177973 -0300 +@@ -73,7 +73,7 @@ + # (defined in the library). + AC_LANG_PUSH([C]) + dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling. +- AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + #if ZLIB_VERNUM >= 0x$WANT_ZLIB_VERSION + #else diff --git a/package/thrift/thrift.mk b/package/thrift/thrift.mk new file mode 100644 index 0000000000..7ee90ac2d4 --- /dev/null +++ b/package/thrift/thrift.mk @@ -0,0 +1,64 @@ +################################################################################ +# +# thrift +# +################################################################################ + +THRIFT_VERSION = 0.9.1 +THRIFT_SITE = http://www.us.apache.org/dist/thrift/$(THRIFT_VERSION) +THRIFT_DEPENDENCIES = host-pkgconf host-thrift boost libevent openssl zlib +THRIFT_INSTALL_STAGING = YES +HOST_THRIFT_DEPENDENCIES = host-boost host-libevent host-openssl host-pkgconf \ + host-zlib +THRIFT_CONF_OPT = --with-sysroot=$(STAGING_DIR) --with-tests=no \ + --with-boost=$(STAGING_DIR) +HOST_THRIFT_CONF_OPT = --with-sysroot=$(HOST_DIR) --with-tests=no +THRIFT_AUTORECONF = YES +THRIFT_LICENSE = Apache 2.0 +THRIFT_LICENSE_FILES = LICENSE + +ifeq ($(BR2_PREFER_STATIC_LIB),y) +# openssl uses zlib, so we need to explicitly link with it when static +THRIFT_CONF_ENV += LIBS=-lz +endif + +# Language selection +# The generator (host tool) works with all of them regardless +# This is just for the libraries / bindings +THRIFT_LANG_CONF_OPT += --without-csharp --without-java --without-erlang \ + --without-python --without-perl --without-php --without-php_extension \ + --without-ruby --without-haskell --without-go --without-d +HOST_THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT) --without-c_glib +THRIFT_CONF_OPT += $(THRIFT_LANG_CONF_OPT) + +# C bindings +ifeq ($(BR2_PACKAGE_LIBGLIB2),y) +THRIFT_DEPENDENCIES += libglib2 +else +THRIFT_CONF_OPT += --without-c_glib +endif + +# De-hardcode THRIFT for cross compiling +define THRIFT_TOOL_NO_HARDCODE + for f in `find $(@D) -name Makefile.am -type f`; do \ + $(SED) "/^THRIFT =/d" $$f; \ + done + $(SED) "s:top_builddir)/compiler/cpp/thrift:THRIFT):" $(@D)/tutorial/Makefile.am +endef + +THRIFT_POST_PATCH_HOOKS += THRIFT_TOOL_NO_HARDCODE + +define THRIFT_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) THRIFT=$(HOST_DIR)/usr/bin/thrift -C $(@D) +endef + +# Install runtime only +define THRIFT_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/lib DESTDIR=$(TARGET_DIR) install +endef + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) + +# to be used by other packages +THRIFT = $(HOST_DIR)/usr/bin/thrift