diff mbox

[v10] espeak: new package

Message ID 1398867713-3604-1-git-send-email-arnaud@intelibre.fr
State Accepted
Headers show

Commit Message

Arnaud Aujon Chevallier April 30, 2014, 2:21 p.m. UTC
Signed-off-by: Arnaud Aujon <arnaud@intelibre.fr>
---
Changes v9 -> v10:
	- update Signed-off mail address
Changes v8 -> v9:
	- use VERSION_MAJOR
Changes v7 -> v8:
        - convert package name to lowercase
        - fix comments following new policy
Changes v6 -> v7:
        - remove comment fromm v5 again
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

Comments

Marcelo GutiƩrrez(UTN/FRH) May 19, 2014, 9:13 p.m. UTC | #1
Hi all,

I've tested this patch on BeagleBone Black and works like a charm.

Good Job Arnaud!!!.

Regards,
Marcelo

2014-04-30 11:21 GMT-03:00 <arnaud@intelibre.fr>:
>
> Signed-off-by: Arnaud Aujon <arnaud@intelibre.fr>
Tested-by: Marcelo Gutierrez <kuyurix@gmail.com>
> ---
> Changes v9 -> v10:
>         - update Signed-off mail address
> Changes v8 -> v9:
>         - use VERSION_MAJOR
> Changes v7 -> v8:
>         - convert package name to lowercase
>         - fix comments following new policy
> Changes v6 -> v7:
>         - remove comment fromm v5 again
> 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 07fd166..9e13711 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..0284c5c
> --- /dev/null
> +++ b/package/espeak/Config.in
> @@ -0,0 +1,41 @@
> +comment "espeak needs a toolchain w/ C++, wchar"
> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
> +
> +config BR2_PACKAGE_ESPEAK
> +       bool "espeak"
> +       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 needs a toolchain w/ threads"
> +depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +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 needs a toolchain w/ wchar, largefile, threads"
> +depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)
> +
> +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@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..c2c346e
> --- /dev/null
> +++ b/package/espeak/espeak.mk
> @@ -0,0 +1,44 @@
> +###############################################################################
> +#
> +# espeak
> +#
> +###############################################################################
> +
> +ESPEAK_VERSION_MAJOR = 1.47
> +ESPEAK_VERSION = $(ESPEAK_VERSION_MAJOR).11
> +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
> +ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-$(ESPEAK_VERSION_MAJOR)
> +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
> +endef
> +
> +define ESPEAK_INSTALL_TARGET_CMDS
> +       $(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
> +endef
> +
> +$(eval $(generic-package))
> --
> 1.9.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Arnaud Aujon Chevallier May 20, 2014, 7:37 a.m. UTC | #2
Hi Marcelo,

Thanks for testing the package !
I think it's ready to be included now.

It would be great to include Mbrola voice pack, but I don't have much 
time to do it and they use a specific licence that we need to carefull with.

Regards,

Arnaud

On 19/05/2014 23:13, Marcelo Gutierrez wrote:
> Hi all,
>
> I've tested this patch on BeagleBone Black and works like a charm.
>
> Good Job Arnaud!!!.
>
> Regards,
> Marcelo
>
> 2014-04-30 11:21 GMT-03:00 <arnaud@intelibre.fr>:
>> Signed-off-by: Arnaud Aujon <arnaud@intelibre.fr>
> Tested-by: Marcelo Gutierrez <kuyurix@gmail.com>
>> ---
>> Changes v9 -> v10:
>>          - update Signed-off mail address
>> Changes v8 -> v9:
>>          - use VERSION_MAJOR
>> Changes v7 -> v8:
>>          - convert package name to lowercase
>>          - fix comments following new policy
>> Changes v6 -> v7:
>>          - remove comment fromm v5 again
>> 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 07fd166..9e13711 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..0284c5c
>> --- /dev/null
>> +++ b/package/espeak/Config.in
>> @@ -0,0 +1,41 @@
>> +comment "espeak needs a toolchain w/ C++, wchar"
>> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
>> +
>> +config BR2_PACKAGE_ESPEAK
>> +       bool "espeak"
>> +       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 needs a toolchain w/ threads"
>> +depends on !BR2_TOOLCHAIN_HAS_THREADS
>> +
>> +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 needs a toolchain w/ wchar, largefile, threads"
>> +depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)
>> +
>> +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@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..c2c346e
>> --- /dev/null
>> +++ b/package/espeak/espeak.mk
>> @@ -0,0 +1,44 @@
>> +###############################################################################
>> +#
>> +# espeak
>> +#
>> +###############################################################################
>> +
>> +ESPEAK_VERSION_MAJOR = 1.47
>> +ESPEAK_VERSION = $(ESPEAK_VERSION_MAJOR).11
>> +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
>> +ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-$(ESPEAK_VERSION_MAJOR)
>> +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
>> +endef
>> +
>> +define ESPEAK_INSTALL_TARGET_CMDS
>> +       $(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
>> +endef
>> +
>> +$(eval $(generic-package))
>> --
>> 1.9.0
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni Aug. 4, 2014, 8:42 p.m. UTC | #3
Hello Arnaud,

On Wed, 30 Apr 2014 16:21:53 +0200, arnaud@intelibre.fr wrote:

>  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

Thanks a lot, I've applied your patch! I've done some really minor
formatting tweaks in Config.in and espeak.mk, but other than that, just
applied as is.

Could you send a followup patch bumping espeak to the newer upstream
version, if that makes sense?

Thanks!

Thomas
Arnaud Aujon Chevallier Aug. 5, 2014, 7:41 a.m. UTC | #4
Hi Thomas,

Thanks for applying !

I will have a look at the new upstream version shortly and send a patch 
if needed.

Regards,

Arnaud

On 08/04/2014 10:42 PM, Thomas Petazzoni wrote:
> Hello Arnaud,
>
> On Wed, 30 Apr 2014 16:21:53 +0200, arnaud@intelibre.fr wrote:
>
>>   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
> Thanks a lot, I've applied your patch! I've done some really minor
> formatting tweaks in Config.in and espeak.mk, but other than that, just
> applied as is.
>
> Could you send a followup patch bumping espeak to the newer upstream
> version, if that makes sense?
>
> Thanks!
>
> Thomas
Thomas Petazzoni Aug. 5, 2014, 7:44 a.m. UTC | #5
Dear Arnaud Aujon,

On Tue, 05 Aug 2014 09:41:48 +0200, Arnaud Aujon wrote:

> Thanks for applying !
> 
> I will have a look at the new upstream version shortly and send a patch 
> if needed.

You could also send a patch to fix
http://autobuild.buildroot.org/results/f39/f3903d2b4a16226df2d460dcd2e26c7fb87613ab/build-end.log.
Basically, espeak depends on thread support, so you'll have to change
the Config.in file to reflect that.

Thanks!

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 07fd166..9e13711 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..0284c5c
--- /dev/null
+++ b/package/espeak/Config.in
@@ -0,0 +1,41 @@ 
+comment "espeak needs a toolchain w/ C++, wchar"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
+
+config BR2_PACKAGE_ESPEAK
+	bool "espeak"
+	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 needs a toolchain w/ threads"
+depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+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 needs a toolchain w/ wchar, largefile, threads"
+depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)
+
+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@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..c2c346e
--- /dev/null
+++ b/package/espeak/espeak.mk
@@ -0,0 +1,44 @@ 
+###############################################################################
+#
+# espeak
+#
+###############################################################################
+
+ESPEAK_VERSION_MAJOR = 1.47
+ESPEAK_VERSION = $(ESPEAK_VERSION_MAJOR).11
+ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
+ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-$(ESPEAK_VERSION_MAJOR)
+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
+endef
+
+define ESPEAK_INSTALL_TARGET_CMDS
+	$(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
+endef
+
+$(eval $(generic-package))