[Buildroot] [PATCH v6] espeak: new package

Thomas De Schampheleire patrickdepinguin at gmail.com
Mon Oct 14 19:30:05 UTC 2013


Hi Arnaud,

On Mon, Oct 14, 2013 at 8:05 PM, Arnaud Aujon <arnaud.aujon at gmail.com> wrote:
> Signed-off-by: Arnaud Aujon <arnaud.aujon at gmail.com>
> ---
> Changes v5 -> v6:
>         - fix indent
>         - rename patch
>         - fix licence to GPLv3+
> Changes v4 -> v5:
>         - remove useless comment line
> Changes v3 -> v4:
>         - remove extre new lines
>         - remove useless help
>         - remove -source from ESPEAK_VERSION
>         - update extract command to remove -source
> ---
>  package/Config.in                                  |  1 +
>  package/espeak/Config.in                           | 41 ++++++++++++++++++++
>  .../espeak-01-do-not-compil-when-install.patch     | 15 ++++++++
>  package/espeak/espeak.mk                           | 44 ++++++++++++++++++++++
>  4 files changed, 101 insertions(+)
>  create mode 100644 package/espeak/Config.in
>  create mode 100644 package/espeak/espeak-01-do-not-compil-when-install.patch
>  create mode 100644 package/espeak/espeak.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 41d828a..31f6274 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -6,6 +6,7 @@ menu "Audio and video applications"
>  source "package/alsa-utils/Config.in"
>  source "package/aumix/Config.in"
>  source "package/bellagio/Config.in"
> +source "package/espeak/Config.in"
>  source "package/faad2/Config.in"
>  source "package/ffmpeg/Config.in"
>  source "package/flac/Config.in"
> diff --git a/package/espeak/Config.in b/package/espeak/Config.in
> new file mode 100644
> index 0000000..09b4920
> --- /dev/null
> +++ b/package/espeak/Config.in
> @@ -0,0 +1,41 @@
> +comment "eSpeak requires a toolchain with C++ and WCHAR support"
> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)

I have a patchset waiting to be merged that unifies these comments.
This comment should be adapted according to the new format:

eSpeak needs a toolchain w/ C++, wchar

See: http://patchwork.ozlabs.org/patch/283094/

Also: is it really needed to capitalize the S ? Most packages are
written in all-lowercase in the menuconfig, so unless there is a very
specific reason I would continue doing this (not sure if this point
has been addressed in earlier reviews)

> +
> +config BR2_PACKAGE_ESPEAK
> +       bool "eSpeak"

Same comment about capitalization.

> +       depends on BR2_INSTALL_LIBSTDCPP
> +       depends on BR2_USE_WCHAR
> +       help
> +         eSpeak is a speech synthesizer software for English and other languages.
> +
> +         http://espeak.sourceforge.net/
> +
> +if BR2_PACKAGE_ESPEAK
> +choice
> +prompt "choose audio backend"
> +default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +
> +config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +       bool "No sound backend, only produce wav files"
> +
> +comment "ALSA backend requires a toolchain with threads support"
> +depends on !BR2_TOOLCHAIN_HAS_THREADS

This should become:

ALSA backend needs a toolchain w/ threads

Note that my preference about capitalization in this case is also to
use all-lowercase.
Currently you use ALSA, Portaudio, and pulseaudio. But you could
equally use PulseAudio as is the actual project spelling. Same for
PortAudio. My suggestion is alsa, portaudio, pulseaudio, but note that
this is very subjective. Other inputs are certainly welcome.


> +
> +config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
> +       bool "ALSA via Portaudio"
> +       select BR2_PACKAGE_PORTAUDIO
> +       select BR2_PACKAGE_PORTAUDIO_CXX
> +       depends on BR2_TOOLCHAIN_HAS_THREADS #portaudio
> +
> +comment "Pulseaudio backend requires a toolchain with WCHAR, LARGEFILE and threads support"
> +depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)

should become:
pulseaudio backend needs a toolchain w/ wchar, largefile, threads

> +
> +config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
> +       bool "pulseaudio"
> +       select BR2_PACKAGE_PULSEAUDIO
> +       depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
> +       depends on BR2_USE_WCHAR # pulseaudio
> +       depends on BR2_LARGEFILE # pulseaudio
> +
> +endchoice
> +endif # BR2_PACKAGE_ESPEAK
> diff --git a/package/espeak/espeak-01-do-not-compil-when-install.patch b/package/espeak/espeak-01-do-not-compil-when-install.patch
> new file mode 100644
> index 0000000..983cd1c
> --- /dev/null
> +++ b/package/espeak/espeak-01-do-not-compil-when-install.patch
> @@ -0,0 +1,15 @@
> +Makefile: do not execute the rule "all" when executing "install"
> +
> +signed-off-by: Arnaud Aujon <arnaud.aujon at gmail.com>
> +===================================================================
> +--- espeak-1.47.11-source.orig/src/Makefile
> ++++ espeak-1.47.11-source/src/Makefile
> +@@ -131,7 +131,7 @@
> +       rm -f $(BIN2_NAME)
> +       rm -f $(LIB_NAME)*
> +
> +-install: all
> ++install:
> +       # Create directories
> +       rm -rf $(DESTDIR)$(DATADIR)
> +       $(MKDIR) $(DESTDIR)$(BINDIR)
> diff --git a/package/espeak/espeak.mk b/package/espeak/espeak.mk
> new file mode 100644
> index 0000000..f3c963c
> --- /dev/null
> +++ b/package/espeak/espeak.mk
> @@ -0,0 +1,44 @@
> +###############################################################################
> +#
> +# espeak
> +#
> +###############################################################################
> +
> +ESPEAK_VERSION = 1.47.11
> +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
> +ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-1.47
> +ESPEAK_LICENSE = GPLv3+
> +ESPEAK_LICENSE_FILES = Licence.txt
> +
> +ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA),y)
> +ESPEAK_AUDIO_BACKEND = portaudio
> +ESPEAK_DEPENDENCIES = portaudio
> +endif
> +ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO),y)
> +ESPEAK_AUDIO_BACKEND = pulseaudio
> +ESPEAK_DEPENDENCIES = pulseaudio
> +endif
> +
> +define ESPEAK_EXTRACT_CMDS
> +       unzip -d $(@D) $(DL_DIR)/$(ESPEAK_SOURCE)
> +       mv $(@D)/espeak-$(ESPEAK_VERSION)-source/* $(@D)
> +       $(RM) -r $(@D)/espeak-$(ESPEAK_VERSION)-source
> +endef
> +
> +define ESPEAK_CONFIGURE_CMDS
> +       # Buildroot provides portaudio V19, see ReadMe file for more details.
> +       cp $(@D)/src/portaudio19.h $(@D)/src/portaudio.h
> +endef
> +
> +define ESPEAK_BUILD_CMDS
> +       $(MAKE) $(TARGET_CONFIGURE_OPTS) \
> +               AUDIO="$(ESPEAK_AUDIO_BACKEND)" \
> +               -C $(@D)/src all
> +#      $(MAKE) CXX="$(TARGET_CXX)" LD="$(TARGET_LD)" AUDIO="$(ESPEAK_AUDIO_BACKEND)" -C $(@D)/src all
> +endef
> +
> +define ESPEAK_INSTALL_TARGET_CMDS
> +       $(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
> +endef
> +
> +$(eval $(generic-package))
> --


Best regards,
Thomas



More information about the buildroot mailing list