--- /dev/null
+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 \
-_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
}
+++ /dev/null
-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)
--- /dev/null
+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...
+++ /dev/null
-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))
+++ /dev/null
-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
-