espeak: enable portaudio backend

This commit is contained in:
Gerasim Troeglazov
2022-12-21 14:27:03 +10:00
parent 753983e2ed
commit e92a26723f
3 changed files with 122 additions and 66 deletions

View File

@@ -10,11 +10,11 @@ which are based on human speech recordings."
HOMEPAGE="http://espeak.sourceforge.net/"
COPYRIGHT="2005-2014 Jonathan Duddington"
LICENSE="GNU GPL v3"
REVISION="4"
SOURCE_URI="http://sourceforge.net/projects/espeak/files/espeak/espeak-1.48/espeak-1.48.04-source.zip"
REVISION="5"
SOURCE_URI="http://sourceforge.net/projects/espeak/files/espeak/espeak-1.48/espeak-${portVersion}-source.zip"
CHECKSUM_SHA256="bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
SOURCE_DIR="espeak-${portVersion}-source"
PATCHES="espeak-1.48.04.patch"
PATCHES="espeak-${portVersion}.patchset"
ARCHITECTURES="all"
@@ -26,10 +26,12 @@ PROVIDES="
"
REQUIRES="
haiku
lib:libportaudio
"
BUILD_REQUIRES="
haiku_devel
devel:libportaudio
"
BUILD_PREREQUIRES="
cmd:gcc
@@ -45,8 +47,10 @@ BUILD()
STDCPPLIBS=-lstdc++.r4
fi
cp -f portaudio19.h portaudio.h
make LIB_STDCPP=$STDCPPLIBS \
AUDIO=wave LIB_PTHREAD= \
AUDIO=portaudio LIB_PTHREAD= \
VISIBILITY_FLAG= \
PREFIX=$prefix \
DATADIR=$dataDir/espeak-data \
@@ -57,7 +61,7 @@ INSTALL()
{
cd src
make LIB_STDCPP=$STDCPPLIBS \
AUDIO=wave LIB_PTHREAD= \
AUDIO=portaudio LIB_PTHREAD= \
VISIBILITY_FLAG= \
PREFIX=$prefix \
DATADIR=$dataDir/espeak-data \

View File

@@ -1,61 +0,0 @@
From 45ab885e00990acc5da891489537f7994a9dc25d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Thu, 3 Jul 2014 22:01:40 +0200
Subject: [PATCH] Remove some hardcoding of libraries and flags
---
src/Makefile | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index 95fe549..085fdea 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -21,6 +21,12 @@ SONAME_OPT=-Wl,-soname,
# Use EXTRA_LIBS=-lm on Solaris
EXTRA_LIBS =
+# Default libstdc++
+LIB_STDCPP = -lstdc++
+
+# Default pthread library
+LIB_PTHREAD = -lpthread
+
INSTALL = install
LN_SF = /bin/ln -sf
MKDIR = mkdir -p
@@ -83,18 +89,19 @@ libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp
SRCS1=$(speak_SOURCES)
OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
-LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
+LIBS1=$(LIB_STDCPP) $(LIB_AUDIO) $(LIB_PTHREAD) $(EXTRA_LIBS)
SRCS2=$(libespeak_SOURCES)
OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
-LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
+LIBS2=$(LIB_STDCPP) $(LIB_AUDIO) $(LIB_PTHREAD)
SRCS3 = espeak.cpp
OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
-LIBS3=-lstdc++ -L . -lespeak
+LIBS3=$(LIB_STDCPP) -L . -lespeak
CXXFLAGS=-O2
+VISIBILITY_FLAG=-fvisibility=hidden
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
@@ -110,7 +117,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
x_%.o: %.cpp
- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
+ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic $(VISIBILITY_FLAG) -pedantic \
-I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
$(LIB_NAME): $(OBJS2)
--
1.8.3.4

View File

@@ -0,0 +1,113 @@
From 03e70397412588bf561c7463f5b2c8f2e8427c12 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 21 Dec 2022 13:29:35 +1000
Subject: applying patch espeak-1.48.04.patch
diff --git a/src/Makefile b/src/Makefile
index 95fe549..085fdea 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -21,6 +21,12 @@ SONAME_OPT=-Wl,-soname,
# Use EXTRA_LIBS=-lm on Solaris
EXTRA_LIBS =
+# Default libstdc++
+LIB_STDCPP = -lstdc++
+
+# Default pthread library
+LIB_PTHREAD = -lpthread
+
INSTALL = install
LN_SF = /bin/ln -sf
MKDIR = mkdir -p
@@ -83,18 +89,19 @@ libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp
SRCS1=$(speak_SOURCES)
OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
-LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
+LIBS1=$(LIB_STDCPP) $(LIB_AUDIO) $(LIB_PTHREAD) $(EXTRA_LIBS)
SRCS2=$(libespeak_SOURCES)
OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
-LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
+LIBS2=$(LIB_STDCPP) $(LIB_AUDIO) $(LIB_PTHREAD)
SRCS3 = espeak.cpp
OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
-LIBS3=-lstdc++ -L . -lespeak
+LIBS3=$(LIB_STDCPP) -L . -lespeak
CXXFLAGS=-O2
+VISIBILITY_FLAG=-fvisibility=hidden
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
@@ -110,7 +117,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
x_%.o: %.cpp
- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
+ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic $(VISIBILITY_FLAG) -pedantic \
-I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
$(LIB_NAME): $(OBJS2)
--
2.37.3
From 475eee0e45ca29ab701f7a5913d2fbe67713cefb Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 21 Dec 2022 14:20:01 +1000
Subject: Fix build
diff --git a/src/Makefile b/src/Makefile
index 085fdea..bc8d034 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -106,7 +106,7 @@ VISIBILITY_FLAG=-fvisibility=hidden
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
.cpp.o:
- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $<
+ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions -Wno-narrowing $<
$(BIN_NAME): $(OBJS1)
$(CXX) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS1)
@@ -118,7 +118,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
x_%.o: %.cpp
$(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic $(VISIBILITY_FLAG) -pedantic \
- -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
+ -I. -D LIBRARY -c -fno-exceptions -Wno-narrowing $< -o x_$*.o
$(LIB_NAME): $(OBJS2)
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \
--
2.37.3
From adfe8dc77b438f77fee17848ddb12b8123ba5748 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 21 Dec 2022 14:20:32 +1000
Subject: Terminate audiobackend on exit
diff --git a/src/espeak.cpp b/src/espeak.cpp
index dbd83f2..aefb2cd 100644
--- a/src/espeak.cpp
+++ b/src/espeak.cpp
@@ -804,5 +804,8 @@ int main (int argc, char **argv)
if(f_phonemes_out != stdout)
fclose(f_phonemes_out); // needed for WinCE
+
+ espeak_Terminate();
+
return(0);
}
--
2.37.3