[Buildroot] Buildroot patch for adding Tokyo Cabinet
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Mon Oct 15 17:39:17 UTC 2012
Hello Jon,
Thanks a lot for your patch. First a few general comments:
* Your patch is word-wrapped, quite certainly due to your e-mail
client. I'd recommend to use git send-email to send your patch.
* The title of your patch (i.e the first line of the commit log)
should be something like "tokyocabinet: new package" or something
like that.
Other comments below.
On Mon, 15 Oct 2012 09:59:33 -0400, Diekema, Jon (GE Aviation, US)
wrote:
> Signed-off-by: Jon Diekema <jon.diekema at ge.com>
>
> diff --git a/package/Config.in b/package/Config.in index
> e129522..8f519b5 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -331,6 +331,7 @@ source "package/berkeleydb/Config.in"
> source "package/mysql_client/Config.in"
> source "package/sqlcipher/Config.in"
> source "package/sqlite/Config.in"
> +source "package/tokyocabinet/Config.in"
> endmenu
>
> menu "Filesystem"
> diff --git a/package/tokyocabinet/Config.in
> b/package/tokyocabinet/Config.in new file mode 100644 index
> 0000000..66ff02e
> --- /dev/null
> +++ b/package/tokyocabinet/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_TOKYOCABINET
> + bool "Tokyo Cabinet"
> + help
> + A modern reimplementation of QDBM, also released under the
> LGPL
> + by Mikio Hirabayashi in 2007.
> +
> +
> http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/
The indentation of the help text should be one tab + two spaces.
> diff --git a/package/tokyocabinet/tokyocabinet-1.4.47-include.patch
> b/package/tokyocabinet/tokyocabinet-1.4.47-include.patch
> new file mode 100644
> index 0000000..340008c
> --- /dev/null
> +++ b/package/tokyocabinet/tokyocabinet-1.4.47-include.patch
> @@ -0,0 +1,19 @@
> +Signed-off-by: Jon Diekema <jon.diekema at ge.com>
> +
> +Removing /usr/include, ~/include, and /usr/local/include from the
> +include search path. Other than the current directory, use the
> +defaults from the toolchain.
The patch description should come before the Signed-off-by line.
> +diff --git a/configure.in b/configure.in index 8db195e..60cad20 100644
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -32,7 +32,7 @@ MYPCFILES="tokyocabinet.pc"
> +
> + # Building flags
> + MYCFLAGS="-std=c99 -Wall -fPIC -fsigned-char -O2"
> +-MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I$HOME/include -I/usr/local/include"
> ++MYCPPFLAGS="-I."
> + MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1 -D_REENTRANT
> -D__EXTENSIONS__"
> + MYLDFLAGS="-L. -L\$(LIBDIR) -L$HOME/lib -L/usr/local/lib"
> + MYCMDLDFLAGS=""
> diff --git a/package/tokyocabinet/tokyocabinet.mk
> b/package/tokyocabinet/tokyocabinet.mk
> new file mode 100644
> index 0000000..df3762c
> --- /dev/null
> +++ b/package/tokyocabinet/tokyocabinet.mk
> @@ -0,0 +1,40 @@
> +#############################################################
> +#
> +# Tokyo Cabinet
> +#
> +#############################################################
> +
> +#
> +# Generic Infrastructure
> +#
Unneeded comment.
> +TOKYOCABINET_VERSION = 1.4.47
> +TOKYOCABINET_SOURCE = tokyocabinet-$(TOKYOCABINET_VERSION).tar.gz
> +TOKYOCABINET_SITE = http://httpsqs.googlecode.com/files
> +# TOKYOCABINET_PATCH =
> +# TOKYOCABINET_SUBDIR =
Please remove those two useless lines.
> +TOKYOCABINET_DEPENDENCIES =
Useless line.
> +TOKYOCABINET_INSTALL_STAGING = YES
> +TOKYOCABINET_INSTALL_TARGET = YES
This last line is useless.
> +TOKYOCABINET_LICENSE = LGPLv2.1
> +TOKYOCABINET_LICENSE_FILES = COPYING
> +
> +#
> +# Autotools Infrastructure
> +#
Comment not needed.
> +TOKYOCABINET_CONF_ENV =
Not needed.
> +TOKYOCABINET_CONF_OPT = --disable-zlib --disable-bzip --enable-pthread
Hum, this should probably be something like:
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
TOKYOCABINET_CONF_OPT += --enable-pthread
else
TOKYOCABINET_CONF_OPT += --disable-pthread
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
TOKYOCABINET_DEPENDENCIES += zlib
TOKYOCABINET_CONF_OPT += --enable-zlib
else
TOKYOCABINET_CONF_OPT += --disable-zlib
endif
ifeq ($(BR2_PACKAGE_BZIP2),y)
TOKYOCABINET_DEPENDENCIES += bzip2
TOKYOCABINET_CONF_OPT += --enable-bzip
else
TOKYOCABINET_CONF_OPT += --disable-bzip
endif
> +TOKYOCABINET_MAKE = $(MAKE)
> TOKYOCABINET_MAKE_ENV =
> +TOKYOCABINET_MAKE_OPT =
None of those lines are needed.
> TOKYOCABINET_AUTORECONF = YES
Ok.
> +TOKYOCABINET_AUTORECONF_OPT =
> TOKYOCABINET_LIBTOOL_PATCH = YES
> +TOKYOCABINET_CLEAN_OPT = clean
Those three lines are not needed.
> +define TOKYOCABINET_REMOVE_TARGET_FILES
> + rm -rf $(TARGET_DIR)/usr/share/tokyocabinet
> +endef
> +
> +TOKYOCABINET_POST_INSTALL_TARGET_HOOKS +=
> TOKYOCABINET_REMOVE_TARGET_FILES
> +
> +$(eval $(autotools-package))
I would also recommend you to test your package with the most minimal
Buildroot toolchain (i.e, no locales, no wide-char support, no IPv6, no
RPC, no threads), just to make sure your package really does not need
any of those toolchain features.
Thanks a lot!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
More information about the buildroot
mailing list