/native/external/espeak/src/Makefile

http://eyes-free.googlecode.com/ · Makefile · 127 lines · 89 code · 27 blank · 11 comment · 0 complexity · 2c07e863f77ebd66f4e705e25f36fbad MD5 · raw file

  1. # remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM)
  2. PREFIX=/usr
  3. BINDIR=$(PREFIX)/bin
  4. INCDIR=$(PREFIX)/include/espeak
  5. LIBDIR=$(PREFIX)/lib
  6. DATADIR=$(PREFIX)/share/espeak-data
  7. RELEASE = 1.39
  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. AUDIO = portaudio
  22. #AUDIO = pulseaudio
  23. #AUDIO = sada
  24. ifeq ($(AUDIO),pulseaudio)
  25. WAVE=wave_pulse.cpp
  26. LIB_AUDIO=-lpulse
  27. USE_AUDIO=-DUSE_PULSEAUDIO
  28. else
  29. ifeq ($(AUDIO),portaudio)
  30. WAVE=wave.cpp
  31. LIB_AUDIO=-lportaudio
  32. USE_AUDIO=-DUSE_PORTAUDIO
  33. else
  34. ifeq ($(AUDIO),sada)
  35. WAVE=wave_sada.cpp
  36. USE_AUDIO=-DUSE_SADA
  37. else
  38. WAVE=wave.cpp
  39. endif
  40. endif
  41. endif
  42. speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \
  43. readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
  44. synthdata.cpp synthesize.cpp translate.cpp tr_english.cpp \
  45. tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp
  46. libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \
  47. readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
  48. synthdata.cpp synthesize.cpp translate.cpp tr_english.cpp \
  49. tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \
  50. espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp
  51. SRCS1=$(speak_SOURCES)
  52. OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
  53. LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
  54. SRCS2=$(libespeak_SOURCES)
  55. OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
  56. LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
  57. SRCS3 = espeak.cpp
  58. OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
  59. LIBS3=-lstdc++ -L . -lespeak
  60. CXXFLAGS=-O2
  61. all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
  62. mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)
  63. .cpp.o:
  64. $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $<
  65. $(BIN_NAME): $(OBJS1)
  66. $(CXX) -o $@ $(OBJS1) $(LIBS1)
  67. $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
  68. $(CXX) -o $@ $(OBJS3) $(LIBS3)
  69. x_%.o: %.cpp
  70. $(CXX) $(CXXFLAGS) $(USE_AUDIO) -Wall -fpic -pedantic \
  71. -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
  72. $(LIB_NAME): $(OBJS2)
  73. $(CXX) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ $(OBJS2) $(LIBS2)
  74. $(STATIC_LIB_NAME): $(OBJS2)
  75. $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2)
  76. clean:
  77. rm -f *.o *.a *~
  78. distclean: clean
  79. rm -f $(BIN_NAME)
  80. rm -f $(BIN2_NAME)
  81. rm -f $(LIB_NAME)*
  82. install: all
  83. # Create directories
  84. rm -rf $(DESTDIR)$(DATADIR)
  85. $(MKDIR) $(DESTDIR)$(BINDIR)
  86. $(MKDIR) $(DESTDIR)$(LIBDIR)
  87. $(MKDIR) $(DESTDIR)$(INCDIR)
  88. $(MKDIR) $(DESTDIR)$(DATADIR)
  89. # Install espeak executable
  90. $(INSTALL) -m 755 $(BIN2_NAME) $(DESTDIR)$(BINDIR)
  91. # Install shared library
  92. $(INSTALL) -m 755 $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR)
  93. # Install static library
  94. $(INSTALL) -m 755 $(STATIC_LIB_NAME) $(DESTDIR)$(LIBDIR)
  95. $(LN_SF) $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR)/$(LIB_NAME).$(LIB_VERSION)
  96. $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/$(LIB_NAME)
  97. # Install development headers
  98. $(INSTALL) -pm 644 speak_lib.h $(DESTDIR)$(INCDIR)
  99. # Install data files
  100. cp -prf ../espeak-data/* $(DESTDIR)$(DATADIR)