diff --git a/.gitignore b/.gitignore index bef18d31..0ab902e4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ # intermediate build output: *.o +*.lo # autotools @@ -13,24 +14,30 @@ INSTALL NEWS README +.deps/ +.libs/ + Makefile Makefile.in aclocal.m4 autom4te.cache/ config.* configure +depcomp install-sh libtool ltmain.sh m4/ missing stamp-h1 +.dirstamp # libraries docs/speak_lib.h libespeak.a +libespeak.la libespeak.so* # programs diff --git a/Makefile.am b/Makefile.am index 5da6a50e..863bbe90 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,5 @@ +AUTOMAKE_OPTIONS = subdir-objects + PREFIX=@prefix@ BINDIR=@bindir@ INCDIR=@includedir@/espeak @@ -7,13 +9,19 @@ DATADIR=$(PREFIX)/share/espeak-data RELEASE=1.47 LIB_VERSION=1 LIBTAG=$(LIB_VERSION).$(RELEASE) +SHARED_VERSION=2:47:1 # = *.so.1.1.47 INSTALL=install LN_SF=/bin/ln -sf MKDIR=mkdir -p +AM_CXXFLAGS = -Wall + EXTRA_DIST= +bin_PROGRAMS = +lib_LTLIBRARIES = + ##### ChangeLog: ChangeLog: @@ -28,11 +36,6 @@ EXTRA_DIST += ChangeLog ##### standard build actions: all-local: \ - src/speak \ - src/libespeak.so \ - src/libespeak.a \ - src/espeak \ - src/espeakedit \ espeak-data/phontab \ docs/speak_lib.h \ dictionaries @@ -42,24 +45,10 @@ install-data-hook: $(MKDIR) $(DESTDIR)$(DATADIR) cp -prf espeak-data/* $(DESTDIR)$(DATADIR) -install-exec-hook: - $(MKDIR) $(DESTDIR)$(BINDIR) - $(MKDIR) $(DESTDIR)$(LIBDIR) - $(INSTALL) -m 755 src/espeak $(DESTDIR)$(BINDIR) - $(INSTALL) -m 755 src/espeakedit $(DESTDIR)$(BINDIR) - $(INSTALL) -m 755 src/libespeak.so.$(LIBTAG) $(DESTDIR)$(LIBDIR) - $(INSTALL) -m 755 src/libespeak.a $(DESTDIR)$(LIBDIR) - $(LN_SF) libespeak.so.$(LIBTAG) $(DESTDIR)$(LIBDIR)/libespeak.so.$(LIB_VERSION) - $(LN_SF) libespeak.so.$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/libespeak.so - clean-local: cd src && rm -f *.o *~ && cd .. distclean-local: - rm -f src/speak - rm -f src/espeak - rm -f src/espeakedit - rm -f src/libespeak.* rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest rm -f espeak-data/*_dict @@ -93,9 +82,6 @@ libespeak_SOURCE = \ src/espeak_command.cpp \ src/event.cpp \ src/fifo.cpp \ - src/wave.cpp \ - src/wave_pulse.cpp \ - src/wave_sada.cpp \ src/debug.cpp espeakedit_SOURCE = \ @@ -113,23 +99,59 @@ espeakedit_SOURCE = \ src/voicedlg.cpp \ src/vowelchart.cpp +if AUDIO_RUNTIME +wave_SOURCE = src/wave.cpp src/wave_pulse.cpp +wave_LIBS = -lpulse -lpulse-simple -lportaudio +wave_FLAGS = -DUSE_PULSEAUDIO -DUSE_PORTAUDIO +else +if AUDIO_PULSEAUDIO +wave_SOURCE = src/wave_pulse.cpp +wave_LIBS = -lpulse +wave_FLAGS = -DUSE_PULSEAUDIO +else +if AUDIO_PORTAUDIO +wave_SOURCE = src/wave.cpp +wave_LIBS = -lportaudio +wave_FLAGS = -DUSE_PORTAUDIO +else +if AUDIO_SADA +wave_SOURCE = wave_sada.cpp +wave_FLAGS = -DUSE_SADA +else +wave_SOURCE = src/wave.cpp +endif +endif +endif +endif + docs/speak_lib.h: src/speak_lib.h cp $< $@ -src/libespeak.a: $(common_SOURCE) $(libespeak_SOURCE) - cd src && make libespeak.a && cd .. +lib_LTLIBRARIES += src/libespeak.la -src/libespeak.so: $(common_SOURCE) $(libespeak_SOURCE) - cd src && make libespeak.so && cd .. +src_libespeak_la_LDFLAGS = -version-info $(SHARED_VERSION) $(wave_LIBS) -lpthread +src_libespeak_la_CXXFLAGS = $(wave_FLAGS) \ + -fpic -fvisibility=hidden -D LIBRARY \ + -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" +src_libespeak_la_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(wave_SOURCE) -src/speak: $(common_SOURCE) src/speak.cpp - cd src && make speak && cd .. +bin_PROGRAMS += src/speak -src/espeak: src/libespeak.so src/espeak.cpp - cd src && make espeak && cd .. +src_speak_LDFLAGS = $(wave_LIBS) -lpthread +src_speak_CXXFLAGS = $(wave_FLAGS) +src_speak_SOURCES = src/speak.cpp $(common_SOURCE) $(wave_SOURCE) -src/espeakedit: $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) - cd src && make espeakedit && cd .. +bin_PROGRAMS += src/espeak + +src_espeak_LDADD = src/libespeak.la +src_espeak_SOURCES = src/espeak.cpp + +bin_PROGRAMS += src/espeakedit + +src_espeakedit_LDFLAGS = $(wave_LIBS) ${WX_LIBS} +src_espeakedit_CXXFLAGS = ${WX_CXXFLAGS} $(wave_FLAGS) \ + -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT +src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE) espeak-data/phontab: src/espeakedit ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile diff --git a/configure.ac b/configure.ac index 381cfef7..b849f689 100644 --- a/configure.ac +++ b/configure.ac @@ -110,8 +110,6 @@ AC_SUBST(AUDIO) AM_CONDITIONAL(AUDIO_RUNTIME, [test x"$AUDIO" = xruntime]) AM_CONDITIONAL(AUDIO_PULSEAUDIO, [test x"$AUDIO" = xpulseaudio]) AM_CONDITIONAL(AUDIO_PORTAUDIO, [test x"$AUDIO" = xportaudio]) -AM_CONDITIONAL(AUDIO_PORTAUDIO0, [test x"$AUDIO" = xportaudio0]) -AM_CONDITIONAL(AUDIO_PORTAUDIO2, [test x"$AUDIO" = xportaudio2]) AM_CONDITIONAL(AUDIO_SADA, [test x"$AUDIO" = xsada]) dnl ================================================================ @@ -134,7 +132,7 @@ dnl ================================================================ dnl Generate output. dnl ================================================================ -AC_CONFIG_FILES([Makefile src/Makefile]) +AC_CONFIG_FILES([Makefile]) AC_OUTPUT AC_MSG_NOTICE([ diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index f2e85a14..00000000 --- a/src/Makefile.am +++ /dev/null @@ -1,125 +0,0 @@ -PREFIX=@prefix@ -BINDIR=@bindir@ -INCDIR=@includedir@/espeak -LIBDIR=@libdir@ -DATADIR=${PREFIX}/share/espeak-data - -# remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM) - -RELEASE = 1.47 -SPEAK = speak -ESPEAK = espeak -ESPEAKEDIT = espeakedit -LIBESPEAK = libespeak.so -STATIC_LIBESPEAK = libespeak.a -LIB_VERSION = 1 -LIBTAG = $(LIB_VERSION).$(RELEASE) - -# Use SONAME_OPT=-Wl,h, on Solaris -SONAME_OPT=-Wl,-soname, - -# Use EXTRA_LIBS=-lm on Solaris -EXTRA_LIBS = - -INSTALL = install -LN_SF = /bin/ln -sf -MKDIR = mkdir -p - -# AUDIO='runtime' uses pulseaudio if it is running, else uses portaudio - -if AUDIO_RUNTIME -WAVE=wave.cpp wave_pulse.cpp -LIB_AUDIO=-lpulse -lpulse-simple -lportaudio -USE_AUDIO=-DUSE_PULSEAUDIO -DUSE_PORTAUDIO -else -if AUDIO_PULSEAUDIO -WAVE=wave_pulse.cpp -LIB_AUDIO=-lpulse -USE_AUDIO=-DUSE_PULSEAUDIO -else -if AUDIO_PORTAUDIO -WAVE=wave.cpp -LIB_AUDIO=-lportaudio -USE_AUDIO=-DUSE_PORTAUDIO -else -if AUDIO_PORTAUDIO0 -WAVE=wave.cpp -LIB_AUDIO=/usr/lib/libportaudio.so.0 -USE_AUDIO=-DUSE_PORTAUDIO -else -if AUDIO_PORTAUDIO2 -WAVE=wave.cpp -LIB_AUDIO=/usr/lib/libportaudio.so.2 -USE_AUDIO=-DUSE_PORTAUDIO -else -if AUDIO_SADA -WAVE=wave_sada.cpp -USE_AUDIO=-DUSE_SADA -else -WAVE=wave.cpp -endif -endif -endif -endif -endif -endif - -CXXFLAGS ?= -O2 -Wall -CPPFLAGS = -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" - -.cpp.o: - $(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -I. $(CPPFLAGS) $< - -e_%.o: %.cpp - $(CXX) -c $(CXXFLAGS) $(espeakedit_CXXFLAGS) $(USE_AUDIO) $(CPPFLAGS) -I. $< -o e_$*.o - -x_%.o: %.cpp - $(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -fpic -fvisibility=hidden \ - -I. -D LIBRARY $(CPPFLAGS) $< -o x_$*.o - -all: $(SPEAK) $(LIBESPEAK) $(STATIC_LIBESPEAK) $(ESPEAK) $(ESPEAKEDIT) - -common_SOURCE = compiledict.cpp dictionary.cpp intonation.cpp \ - klatt.cpp mbrowrap.cpp numbers.cpp readclause.cpp \ - phonemelist.cpp setlengths.cpp sonic.cpp \ - synthdata.cpp synthesize.cpp synth_mbrola.cpp \ - translate.cpp tr_languages.cpp voices.cpp wavegen.cpp - -speak_SOURCE = speak.cpp $(common_SOURCE) -speak_OBJS = ${speak_SOURCE:%.cpp=%.o} -speak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS) -$(SPEAK): $(speak_OBJS) - $(CXX) $(LDFLAGS) -o $@ $(speak_OBJS) $(speak_LIBS) - -espeak_SOURCE = espeak.cpp -espeak_OBJS = ${espeak_SOURCE:%.cpp=%.o} -espeak_LIBS = -lstdc++ -L . -lespeak -$(ESPEAK): $(espeak_OBJS) $(LIB_NAME) - $(CXX) $(LDFLAGS) -o $@ $(espeak_OBJS) $(espeak_LIBS) - -libespeak_SOURCE = speak_lib.cpp $(common_SOURCE) \ - espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp -libespeak_OBJS = ${libespeak_SOURCE:%.cpp=x_%.o} -libespeak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread -$(LIBESPEAK): $(libespeak_OBJS) - $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIBESPEAK).$(LIB_VERSION) -o $@ \ - $(libespeak_OBJS) $(libespeak_LIBS) - mv $(LIBESPEAK) $(LIBESPEAK).$(LIBTAG) - $(LN_SF) $(LIBESPEAK).$(LIBTAG) $(LIBESPEAK).$(LIB_VERSION) - $(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(LIBESPEAK) - -$(STATIC_LIBESPEAK): $(libespeak_OBJS) - $(AR) cqs $(STATIC_LIBESPEAK) $(libespeak_OBJS) - - -espeakedit_SOURCE = $(common_SOURCE) compiledata.cpp debug.cpp espeakedit.cpp \ - event.cpp extras.cpp fifo.cpp formantdlg.cpp \ - menus.cpp options.cpp prosodydisplay.cpp \ - espeak_command.cpp speak_lib.cpp spect.cpp \ - spectdisplay.cpp spectseq.cpp \ - transldlg.cpp voicedlg.cpp vowelchart.cpp $(WAVE) -espeakedit_OBJS=${espeakedit_SOURCE:%.cpp=e_%.o} -espeakedit_LIBS=-lstdc++ $(LIB_AUDIO) -espeakedit_CXXFLAGS = ${WX_CXXFLAGS} -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT -$(ESPEAKEDIT): $(espeakedit_OBJS) - $(CXX) $(LDFLAGS) -o $@ $(espeakedit_OBJS) $(espeakedit_LIBS) ${WX_LIBS}