espeak: Switch to espeak-ng
authorFredrik Fornwall <fredrik@fornwall.net>
Wed, 1 Feb 2017 21:45:30 +0000 (22:45 +0100)
committerFredrik Fornwall <fredrik@fornwall.net>
Wed, 1 Feb 2017 21:45:30 +0000 (22:45 +0100)
packages/espeak/Makefile.patch [new file with mode: 0644]
packages/espeak/build.sh
packages/espeak/char_unsigned_narrowing.patch [deleted file]
packages/espeak/compat-stdint.h.patch [new file with mode: 0644]
packages/espeak/makefile.patch [deleted file]
packages/espeak/no_asynch.patch [deleted file]

diff --git a/packages/espeak/Makefile.patch b/packages/espeak/Makefile.patch
new file mode 100644 (file)
index 0000000..58a2bd6
--- /dev/null
@@ -0,0 +1,24 @@
+diff -u -r ../espeak-ng-1.49.1/Makefile.am ./Makefile.am
+--- ../espeak-ng-1.49.1/Makefile.am    2017-01-21 21:57:13.000000000 +0100
++++ ./Makefile.am      2017-02-01 00:30:07.810286033 +0100
+@@ -121,7 +121,7 @@
+ lib_LTLIBRARIES += src/libespeak-ng.la
+-src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lpthread -lm \
++src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lm \
+       ${PCAUDIOLIB_LIBS}
+ src_libespeak_ng_la_CFLAGS = -Isrc/include -Isrc/include/compat \
+diff -u -r ../espeak-ng-1.49.1/Makefile.in ./Makefile.in
+--- ../espeak-ng-1.49.1/Makefile.in    2017-01-21 21:57:17.000000000 +0100
++++ ./Makefile.in      2017-02-01 00:30:24.202085646 +0100
+@@ -472,7 +472,7 @@
+       src/include/espeak-ng/espeak_ng.h \
+       src/include/espeak-ng/speak_lib.h
+-src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lpthread -lm \
++src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lm \
+       ${PCAUDIOLIB_LIBS}
+ src_libespeak_ng_la_CFLAGS = -Isrc/include -Isrc/include/compat -fPIC \
index 620cd11..29a947f 100644 (file)
@@ -1,11 +1,39 @@
-_MAJOR_VERSION=1.48
-TERMUX_PKG_VERSION=${_MAJOR_VERSION}.04
-TERMUX_PKG_SRCURL=http://downloads.sourceforge.net/project/espeak/espeak/espeak-${_MAJOR_VERSION}/espeak-${TERMUX_PKG_VERSION}-source.zip
-TERMUX_PKG_FOLDERNAME=espeak-${TERMUX_PKG_VERSION}-source
-TERMUX_PKG_HOMEPAGE=http://espeak.sourceforge.net/
+TERMUX_PKG_HOMEPAGE=https://github.com/espeak-ng/espeak-ng
 TERMUX_PKG_DESCRIPTION="Compact software speech synthesizer"
+# Use eSpeak NG as the original eSpeak project is dead.
+# See https://github.com/espeak-ng/espeak-ng/issues/180
+# about cross compilation of espeak-ng.
+TERMUX_PKG_VERSION=1.49.1
+TERMUX_PKG_SRCURL=https://github.com/espeak-ng/espeak-ng/releases/download/${TERMUX_PKG_VERSION}/espeak-ng-${TERMUX_PKG_VERSION}.tar.gz
+TERMUX_PKG_SHA256=4502c6e352d587fda326e8a55763e7d7c28b40e82c9c4683258ecc0a339ed0d4
+TERMUX_PKG_FOLDERNAME=espeak-ng-${TERMUX_PKG_VERSION}
 TERMUX_PKG_BUILD_IN_SRC=yes
+TERMUX_PKG_HOSTBUILD=yes
+# --without-async due to that using pthread_cancel().
+TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-async"
 
-termux_step_configure () {
-        export TERMUX_PKG_BUILDDIR=$TERMUX_PKG_BUILDDIR/src
+termux_step_host_build() {
+       cp -Rf $TERMUX_PKG_SRCDIR/* .
+       unset MAKEFLAGS
+       ./configure --prefix=$TERMUX_PREFIX
+       make -j$TERMUX_MAKE_PROCESSES src/{e,}speak-ng
+
+       # Man pages require the ronn ruby program.
+       #make src/espeak-ng.1
+       #cp src/espeak-ng.1 $TERMUX_PREFIX/share/man/man1
+       #(cd $TERMUX_PREFIX/share/man/man1 && ln -s -f espeak-ng.1 espeak.1)
+
+       make install
+}
+
+termux_step_make() {
+       # Prevent caching of host build:
+       rm -Rf $TERMUX_PKG_HOSTBUILD_DIR
+       make -j$TERMUX_MAKE_PROCESSES src/{e,}speak-ng
+}
+
+termux_step_make_install() {
+       rm $TERMUX_PREFIX/bin/{e,}speak{,-ng}
+       cp src/.libs/espeak-ng $TERMUX_PREFIX/bin/espeak
+       cp src/.libs/libespeak-ng.so $TERMUX_PREFIX/lib/libespeak-ng.so.1.1.49
 }
diff --git a/packages/espeak/char_unsigned_narrowing.patch b/packages/espeak/char_unsigned_narrowing.patch
deleted file mode 100644 (file)
index 77b623d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -u -r ../espeak-1.48.01-source/src/tr_languages.cpp ./src/tr_languages.cpp
---- ../espeak-1.48.01-source/src/tr_languages.cpp      2014-02-02 11:52:30.000000000 +0100
-+++ ./src/tr_languages.cpp     2014-02-11 22:02:07.000000000 +0100
-@@ -198,7 +198,7 @@
-       0x200d,  1, // zero width joiner
-       0, 0 };
--const char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal character, UTF-8
-+const unsigned char string_ordinal[] = {0xc2,0xba,0};  // masculine ordinal character, UTF-8
- static Translator* NewTranslator(void)
-@@ -758,7 +758,7 @@
-                               tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
-                               tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
-                               tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
--                              tr->langopts.roman_suffix = string_ordinal;
-+                              tr->langopts.roman_suffix = (char*) string_ordinal;
-                       }
-                       else
-                       if(name2 == L_pap)
diff --git a/packages/espeak/compat-stdint.h.patch b/packages/espeak/compat-stdint.h.patch
new file mode 100644 (file)
index 0000000..6d59fc0
--- /dev/null
@@ -0,0 +1,12 @@
+diff -u -r ../espeak-ng-1.49.1/src/include/compat/stdint.h ./src/include/compat/stdint.h
+--- ../espeak-ng-1.49.1/src/include/compat/stdint.h    2017-01-21 21:57:13.000000000 +0100
++++ ./src/include/compat/stdint.h      2017-02-01 00:28:46.687277703 +0100
+@@ -19,6 +19,8 @@
+ #ifndef STDINT_H_COMPAT_SHIM
+ #define STDINT_H_COMPAT_SHIM
++#include "config.h"
++
+ #ifdef _MSC_VER
+ #if _MSC_VER >= 1600 // Visual C++ 10 (Visual Studio 2010) and above...
diff --git a/packages/espeak/makefile.patch b/packages/espeak/makefile.patch
deleted file mode 100644 (file)
index d9f6b7e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -u -r ../espeak-1.48.01-source/src/Makefile ./src/Makefile
---- ../espeak-1.48.01-source/src/Makefile      2014-02-02 11:58:11.000000000 +0100
-+++ ./src/Makefile     2014-02-11 22:18:52.000000000 +0100
-@@ -1,8 +1,8 @@
- # remove -fno-exceptions  if it causes problems with stdio library on some platforms (ARM)
--DATADIR=/usr/share/espeak-data
--PREFIX=/usr
-+PREFIX=@TERMUX_PREFIX@
-+DATADIR=$(PREFIX)/share/espeak
- BINDIR=$(PREFIX)/bin
- INCDIR=$(PREFIX)/include/espeak
- LIBDIR=$(PREFIX)/lib
-@@ -27,7 +27,7 @@
- # 'runtime' uses pulseaudio if it is running, else uses portaudio
- #AUDIO = runtime
--AUDIO = portaudio
-+#AUDIO = portaudio
- #AUDIO = portaudio0
- #AUDIO = portaudio2
- #AUDIO = pulseaudio
-@@ -83,11 +83,11 @@
- SRCS1=$(speak_SOURCES)
- OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
--LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
-+LIBS1=-lstdc++ $(LIB_AUDIO) $(EXTRA_LIBS)
- SRCS2=$(libespeak_SOURCES)
- OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
--LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
-+LIBS2=-lstdc++ $(LIB_AUDIO)
- SRCS3 = espeak.cpp
- OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
diff --git a/packages/espeak/no_asynch.patch b/packages/espeak/no_asynch.patch
deleted file mode 100644 (file)
index 4c770bb..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -u -r ../espeak-1.48.01-source/src/speech.h ./src/speech.h
---- ../espeak-1.48.01-source/src/speech.h      2014-02-02 11:52:30.000000000 +0100
-+++ ./src/speech.h     2014-02-11 22:16:17.000000000 +0100
-@@ -47,12 +47,12 @@
- //#define ESPEAK_API  extern "C"
- #ifdef LIBRARY
--#define USE_ASYNC
-+//#define USE_ASYNC
- #endif
- #ifdef _ESPEAKEDIT
- #define USE_PORTAUDIO
--#define USE_ASYNC
-+//#define USE_ASYNC
- #define LOG_FRAMES      // write keyframe info to log-espeakedit
- #endif