eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. # remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM)
  2. DATADIR=/usr/share/espeak-data
  3. PREFIX=/usr
  4. BINDIR=$(PREFIX)/bin
  5. INCDIR=$(PREFIX)/include/espeak
  6. LIBDIR=$(PREFIX)/lib
  7. RELEASE = 1.47
  8. BIN_NAME = speak
  9. BIN2_NAME = espeak
  10. LIB_NAME = libespeak.so
  11. STATIC_LIB_NAME = libespeak.a
  12. LIB_VERSION = 1
  13. LIBTAG = $(LIB_VERSION).$(RELEASE)
  14. # Use SONAME_OPT=-Wl,h, on Solaris
  15. SONAME_OPT=-Wl,-soname,
  16. # Use EXTRA_LIBS=-lm on Solaris
  17. EXTRA_LIBS =
  18. INSTALL = install
  19. LN_SF = /bin/ln -sf
  20. MKDIR = mkdir -p
  21. # 'runtime' uses pulseaudio if it is running, else uses portaudio
  22. #AUDIO = runtime
  23. AUDIO = portaudio
  24. #AUDIO = portaudio0
  25. #AUDIO = portaudio2
  26. #AUDIO = pulseaudio
  27. #AUDIO = sada
  28. ifeq ($(AUDIO),runtime)
  29. WAVE=wave.cpp wave_pulse.cpp
  30. LIB_AUDIO=-lpulse -lpulse-simple -lportaudio
  31. USE_AUDIO=-DUSE_PULSEAUDIO -DUSE_PORTAUDIO
  32. else
  33. ifeq ($(AUDIO),pulseaudio)
  34. WAVE=wave_pulse.cpp
  35. LIB_AUDIO=-lpulse
  36. USE_AUDIO=-DUSE_PULSEAUDIO
  37. else
  38. ifeq ($(AUDIO),portaudio)
  39. WAVE=wave.cpp
  40. LIB_AUDIO=-lportaudio
  41. USE_AUDIO=-DUSE_PORTAUDIO
  42. else
  43. ifeq ($(AUDIO),portaudio0)
  44. WAVE=wave.cpp
  45. LIB_AUDIO=/usr/lib/libportaudio.so.0
  46. USE_AUDIO=-DUSE_PORTAUDIO
  47. else
  48. ifeq ($(AUDIO),portaudio2)
  49. WAVE=wave.cpp
  50. LIB_AUDIO=/usr/lib/libportaudio.so.2
  51. USE_AUDIO=-DUSE_PORTAUDIO
  52. else
  53. ifeq ($(AUDIO),sada)
  54. WAVE=wave_sada.cpp
  55. USE_AUDIO=-DUSE_SADA
  56. else
  57. WAVE=wave.cpp
  58. endif
  59. endif
  60. endif
  61. endif
  62. endif
  63. endif
  64. speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \
  65. readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
  66. synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
  67. tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp
  68. libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \
  69. readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
  70. synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
  71. tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \
  72. espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp
  73. SRCS1=$(speak_SOURCES)
  74. OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
  75. LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
  76. SRCS2=$(libespeak_SOURCES)
  77. OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
  78. LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
  79. SRCS3 = espeak.cpp
  80. OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
  81. LIBS3=-lstdc++ -L . -lespeak
  82. CXXFLAGS=-O2
  83. all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
  84. .cpp.o:
  85. $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $<
  86. $(BIN_NAME): $(OBJS1)
  87. $(CXX) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS1)
  88. $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
  89. $(CXX) $(LDFLAGS) -o $@ $(OBJS3) $(LIBS3)
  90. x_%.o: %.cpp
  91. $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
  92. -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
  93. $(LIB_NAME): $(OBJS2)
  94. $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \
  95. $(OBJS2) $(LIBS2)
  96. mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)
  97. $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION)
  98. $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME)
  99. $(STATIC_LIB_NAME): $(OBJS2)
  100. $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2)
  101. clean:
  102. rm -f *.o *.a *~
  103. distclean: clean
  104. rm -f $(BIN_NAME)
  105. rm -f $(BIN2_NAME)
  106. rm -f $(LIB_NAME)*
  107. install: all
  108. # Create directories
  109. rm -rf $(DESTDIR)$(DATADIR)
  110. $(MKDIR) $(DESTDIR)$(BINDIR)
  111. $(MKDIR) $(DESTDIR)$(LIBDIR)
  112. $(MKDIR) $(DESTDIR)$(INCDIR)
  113. $(MKDIR) $(DESTDIR)$(DATADIR)
  114. # Install espeak executable
  115. $(INSTALL) -m 755 $(BIN2_NAME) $(DESTDIR)$(BINDIR)
  116. # Install shared library
  117. $(INSTALL) -m 755 $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR)
  118. # Install static library
  119. $(INSTALL) -m 755 $(STATIC_LIB_NAME) $(DESTDIR)$(LIBDIR)
  120. $(LN_SF) $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR)/$(LIB_NAME).$(LIB_VERSION)
  121. $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/$(LIB_NAME)
  122. # Install development headers
  123. $(INSTALL) -pm 644 speak_lib.h $(DESTDIR)$(INCDIR)
  124. # Install data files
  125. cp -prf ../espeak-data/* $(DESTDIR)$(DATADIR)