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.am 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993
  1. AUTOMAKE_OPTIONS = subdir-objects
  2. ACLOCAL_AMFLAGS = -I m4
  3. PREFIX=@prefix@
  4. BINDIR=@bindir@
  5. INCDIR=@includedir@/espeak
  6. LIBDIR=@libdir@
  7. DATADIR=$(PREFIX)/share/espeak-ng-data
  8. VIMDIR=$(PREFIX)/share/vim
  9. pkgconfigdir = $(libdir)/pkgconfig
  10. pkgconfig_DATA = espeak-ng.pc
  11. SHARED_VERSION=2:51:1 # = *.so.1.1.51
  12. MKDIR=mkdir -p
  13. AM_CFLAGS = \
  14. -I$(srcdir)/src/include -Isrc/include/compat -I$(srcdir)/src/speechPlayer/include -I$(srcdir)/src/ucd-tools/src/include \
  15. -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L
  16. AM_CXXFLAGS =
  17. if USE_COVERAGE
  18. AM_CFLAGS += -fprofile-instr-generate -fcoverage-mapping
  19. AM_CXXFLAGS += -fprofile-instr-generate -fcoverage-mapping
  20. endif
  21. EXTRA_DIST=
  22. CLEANFILES = dictsource/ru_listx dictsource/cmn_listx dictsource/yue_listx
  23. bin_PROGRAMS =
  24. lib_LTLIBRARIES =
  25. man1_MANS =
  26. check_PROGRAMS =
  27. check_LTLIBRARIES =
  28. ##### ChangeLog:
  29. ChangeLog:
  30. git log > ChangeLog
  31. dist-hook: ChangeLog
  32. .PHONY: ChangeLog
  33. EXTRA_DIST += ChangeLog
  34. ##### standard build actions:
  35. all-local: \
  36. espeak-ng-data/phontab \
  37. dictionaries
  38. uninstall-hook:
  39. rm -rf $(DESTDIR)$(DATADIR)
  40. install-data-hook: uninstall-hook
  41. $(MKDIR) $(DESTDIR)$(DATADIR)
  42. cp -prf espeak-ng-data/* $(DESTDIR)$(DATADIR)
  43. install-exec-hook:
  44. cd $(DESTDIR)$(BINDIR) && rm -f espeak && $(LN_S) espeak-ng espeak
  45. cd $(DESTDIR)$(BINDIR) && rm -f speak && $(LN_S) speak-ng speak
  46. cd $(DESTDIR)$(LIBDIR) && rm -f libespeak.la && $(LN_S) libespeak-ng.la libespeak.la
  47. clean-local:
  48. cd src && rm -f *.o *~ && cd ..
  49. cd src/libespeak-ng/ && rm -f *.o *.lo && cd ../..
  50. cd tests && rm -f *.o *.lo && cd ..
  51. if HAVE_GRADLE
  52. cd android && $(GRADLE) clean
  53. endif
  54. distclean-local:
  55. rm -f espeak-ng-data/*_dict
  56. rm -f espeak-ng-data/intonations
  57. rm -f espeak-ng-data/phondata
  58. rm -f espeak-ng-data/phondata-manifest
  59. rm -f espeak-ng-data/phonindex
  60. rm -f espeak-ng-data/phontab
  61. ##### custom rules:
  62. SUFFIXES=.html .md .ronn .check .test
  63. .md.html: _layouts/webpage.html
  64. @echo " MD $@"
  65. @cat $< | sed -e 's/\.md)/.html)/g' -e 's/\.ronn/.html/g' | \
  66. $(KRAMDOWN) --template _layouts/webpage.html > $@
  67. .ronn.html:
  68. $(RONN) --html $<
  69. ##### vim:
  70. vim_registrydir = $(VIMDIR)/registry
  71. vim_registry_DATA = $(srcdir)/vim/registry/*.yaml
  72. EXTRA_DIST += $(vim_registry_DATA)
  73. vim_addons_ftdetectdir = $(VIMDIR)/addons/ftdetect
  74. vim_addons_ftdetect_DATA = $(srcdir)/vim/ftdetect/*.vim
  75. EXTRA_DIST += $(vim_addons_ftdetect_DATA)
  76. vim_addons_syntaxdir = $(VIMDIR)/addons/syntax
  77. vim_addons_syntax_DATA = $(srcdir)/vim/syntax/*.vim
  78. EXTRA_DIST += $(vim_addons_syntax_DATA)
  79. ##### documentation:
  80. src/espeak-ng.1: src/espeak-ng.1.ronn
  81. $(RONN) --roff -o $(shell dirname $@) $<
  82. src/speak-ng.1: src/speak-ng.1.ronn
  83. $(RONN) --roff -o $(shell dirname $@) $<
  84. docs_MARKDOWN = $(wildcard docs/*.md) $(wildcard docs/*/*.md) $(wildcard docs/*/*/*.md)
  85. docs_HTML = ${docs_MARKDOWN:.md=.html}
  86. docs: $(docs_HTML) \
  87. src/espeak-ng.1.html \
  88. src/speak-ng.1.html \
  89. ChangeLog.html \
  90. README.html
  91. EXTRA_DIST += src/espeak-ng.1.ronn src/speak-ng.1.ronn $(docs_MARKDOWN)
  92. ##### build targets:
  93. espeak_includedir = $(includedir)/espeak
  94. espeak_include_HEADERS = \
  95. src/include/espeak/speak_lib.h
  96. espeak_ng_includedir = $(includedir)/espeak-ng
  97. espeak_ng_include_HEADERS = \
  98. src/include/espeak-ng/encoding.h \
  99. src/include/espeak-ng/espeak_ng.h \
  100. src/include/espeak-ng/speak_lib.h
  101. lib_LTLIBRARIES += src/libespeak-ng.la
  102. src_libespeak_ng_la_LDFLAGS = -version-info $(SHARED_VERSION) -lpthread -lm \
  103. ${PCAUDIOLIB_LIBS} ${JSONC_LIBS}
  104. src_libespeak_ng_la_CFLAGS = \
  105. -fPIC -fvisibility=hidden \
  106. -pedantic -fno-exceptions -DPATH_ESPEAK_DATA=\"$(DATADIR)\" -DLIBESPEAK_NG_EXPORT \
  107. ${PCAUDIOLIB_CFLAGS} ${SONIC_CFLAGS} ${JSONC_CFLAGS} ${AM_CFLAGS}
  108. src_libespeak_ng_la_SOURCES = \
  109. src/ucd-tools/src/case.c \
  110. src/ucd-tools/src/categories.c \
  111. src/ucd-tools/src/ctype.c \
  112. src/ucd-tools/src/proplist.c \
  113. src/ucd-tools/src/scripts.c \
  114. src/ucd-tools/src/tostring.c \
  115. src/libespeak-ng/common.c \
  116. src/libespeak-ng/compiledata.c \
  117. src/libespeak-ng/compiledict.c \
  118. src/libespeak-ng/dictionary.c \
  119. src/libespeak-ng/encoding.c \
  120. src/libespeak-ng/error.c \
  121. src/libespeak-ng/espeak_api.c \
  122. src/libespeak-ng/ieee80.c \
  123. src/libespeak-ng/intonation.c \
  124. src/libespeak-ng/langopts.c \
  125. src/libespeak-ng/mnemonics.c \
  126. src/libespeak-ng/numbers.c \
  127. src/libespeak-ng/readclause.c \
  128. src/libespeak-ng/phoneme.c \
  129. src/libespeak-ng/phonemelist.c \
  130. src/libespeak-ng/setlengths.c \
  131. src/libespeak-ng/soundicon.c \
  132. src/libespeak-ng/spect.c \
  133. src/libespeak-ng/speech.c \
  134. src/libespeak-ng/ssml.c \
  135. src/libespeak-ng/synthdata.c \
  136. src/libespeak-ng/synthesize.c \
  137. src/libespeak-ng/translate.c \
  138. src/libespeak-ng/translateword.c \
  139. src/libespeak-ng/tr_languages.c \
  140. src/libespeak-ng/voices.c \
  141. src/libespeak-ng/wavegen.c
  142. noinst_HEADERS = \
  143. src/libespeak-ng/common.h \
  144. src/libespeak-ng/compiledict.h \
  145. src/libespeak-ng/dictionary.h \
  146. src/libespeak-ng/error.h \
  147. src/libespeak-ng/espeak_command.h \
  148. src/libespeak-ng/event.h \
  149. src/libespeak-ng/fifo.h \
  150. src/libespeak-ng/ieee80.h \
  151. src/libespeak-ng/intonation.h \
  152. src/libespeak-ng/klatt.h \
  153. src/libespeak-ng/langopts.h \
  154. src/libespeak-ng/mbrola.h \
  155. src/libespeak-ng/mbrowrap.h \
  156. src/libespeak-ng/mnemonics.h \
  157. src/libespeak-ng/numbers.h \
  158. src/libespeak-ng/phoneme.h \
  159. src/libespeak-ng/phonemelist.h \
  160. src/libespeak-ng/readclause.h \
  161. src/libespeak-ng/setlengths.h \
  162. src/libespeak-ng/sintab.h \
  163. src/libespeak-ng/soundicon.h \
  164. src/libespeak-ng/spect.h \
  165. src/libespeak-ng/speech.h \
  166. src/libespeak-ng/sPlayer.h \
  167. src/libespeak-ng/ssml.h \
  168. src/libespeak-ng/synthdata.h \
  169. src/libespeak-ng/synthesize.h \
  170. src/libespeak-ng/translate.h \
  171. src/libespeak-ng/translateword.h \
  172. src/libespeak-ng/voice.h \
  173. src/libespeak-ng/wavegen.h \
  174. src/speechPlayer/include/speechPlayer.h \
  175. src/speechPlayer/src/frame.h \
  176. src/speechPlayer/src/sample.h \
  177. src/speechPlayer/src/speechPlayer.h \
  178. src/speechPlayer/src/speechWaveGenerator.h \
  179. src/speechPlayer/src/utils.h \
  180. src/speechPlayer/src/waveGenerator.h \
  181. src/ucd-tools/src/include/ucd/ucd.h
  182. if OPT_KLATT
  183. AM_CFLAGS += -DUSE_KLATT=1
  184. src_libespeak_ng_la_SOURCES += src/libespeak-ng/klatt.c
  185. endif
  186. if OPT_SPEECHPLAYER
  187. AM_CFLAGS += -DUSE_SPEECHPLAYER=1
  188. src_libespeak_ng_la_SOURCES += src/libespeak-ng/sPlayer.c
  189. src_libespeak_ng_la_SOURCES += src/speechPlayer/src/frame.cpp
  190. src_libespeak_ng_la_SOURCES += src/speechPlayer/src/speechPlayer.cpp
  191. src_libespeak_ng_la_SOURCES += src/speechPlayer/src/speechWaveGenerator.cpp
  192. src_speak_ng_SOURCES = src/speak-ng.cpp
  193. else
  194. src_speak_ng_SOURCES = src/speak-ng.c
  195. endif
  196. if OPT_MBROLA
  197. AM_CFLAGS += -DUSE_MBROLA=1
  198. src_libespeak_ng_la_SOURCES += \
  199. src/libespeak-ng/mbrowrap.c \
  200. src/libespeak-ng/synth_mbrola.c \
  201. src/libespeak-ng/compilembrola.c
  202. endif
  203. if OPT_ASYNC
  204. AM_CFLAGS += -DUSE_ASYNC=1
  205. src_libespeak_ng_la_SOURCES += \
  206. src/libespeak-ng/espeak_command.c \
  207. src/libespeak-ng/event.c \
  208. src/libespeak-ng/fifo.c
  209. endif
  210. bin_PROGRAMS += src/speak-ng
  211. if HAVE_RONN
  212. man1_MANS += src/speak-ng.1
  213. endif
  214. src_speak_ng_LDADD = src/libespeak-ng.la
  215. src_speak_ng_LDFLAGS = -static -lm ${PCAUDIOLIB_LIBS} ${LIBFUZZER_NO_MAIN}
  216. src_speak_ng_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
  217. bin_PROGRAMS += src/espeak-ng
  218. if HAVE_RONN
  219. man1_MANS += src/espeak-ng.1
  220. endif
  221. src_espeak_ng_LDADD = src/libespeak-ng.la ${PCAUDIOLIB_LIBS} ${LIBFUZZER_NO_MAIN}
  222. src_espeak_ng_SOURCES = src/espeak-ng.c
  223. if HAVE_LIBFUZZER
  224. nodist_EXTRA_src_espeak_ng_SOURCES = force-cxx-linking.cxx
  225. endif
  226. ##### tests:
  227. # Test version of libespeak-ng.so with access to the internal APIs, so they can
  228. # be accessed in the test code. This version should not be installed, as the
  229. # internal APIs are not guaranteed to be stable between releases.
  230. check_LTLIBRARIES += src/libespeak-ng-test.la
  231. src_libespeak_ng_test_la_LDFLAGS = $(src_libespeak_ng_la_LDFLAGS)
  232. src_libespeak_ng_test_la_CFLAGS = \
  233. -fPIC -pedantic -fno-exceptions -DPATH_ESPEAK_DATA=\"$(DATADIR)\" -DLIBESPEAK_NG_EXPORT \
  234. ${PCAUDIOLIB_CFLAGS} ${AM_CFLAGS}
  235. src_libespeak_ng_test_la_SOURCES = $(src_libespeak_ng_la_SOURCES)
  236. check_PROGRAMS += tests/encoding.test
  237. tests_encoding_test_LDADD = src/libespeak-ng.la
  238. tests_encoding_test_SOURCES = tests/encoding.c
  239. tests/encoding.check: LOG_COMPILER=$(VALGRIND)
  240. check_PROGRAMS += tests/readclause.test
  241. tests_readclause_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
  242. tests_readclause_test_LDADD = src/libespeak-ng-test.la
  243. tests_readclause_test_SOURCES = tests/readclause.c
  244. tests/readclause.check: LOG_COMPILER=$(VALGRIND)
  245. check_PROGRAMS += tests/api.test
  246. tests_api_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
  247. tests_api_test_LDADD = src/libespeak-ng-test.la
  248. tests_api_test_SOURCES = tests/api.c
  249. tests/api.check: LOG_COMPILER=$(VALGRIND)
  250. check_PROGRAMS += tests/ieee80.test
  251. tests_ieee80_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
  252. tests_ieee80_test_LDADD = src/libespeak-ng-test.la
  253. tests_ieee80_test_SOURCES = tests/ieee80.c
  254. tests/ieee80.check: LOG_COMPILER=$(VALGRIND)
  255. .test.check:
  256. @echo " TEST $<"
  257. @ESPEAK_DATA_PATH=$(CURDIR) $(LOG_COMPILER) $< && echo " PASSED $<"
  258. TEST = $(filter-out tests/windows-data.test,$(wildcard tests/*.test)) \
  259. $(check_PROGRAMS)
  260. check: $(TEST:.test=.check)
  261. EXTRA_DIST += $(TEST) tests/common src/windows/installer/Product.wxs
  262. ##### fuzzer:
  263. if !HAVE_LIBFUZZER
  264. # libfuzzrunner is a stub implementation of libFuzzer that calls the
  265. # LLVMFuzzerTestOneInput with the files passed to the fuzzer program.
  266. check_LTLIBRARIES += tests/libfuzzrunner.la
  267. tests_libfuzzrunner_la_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
  268. tests_libfuzzrunner_la_SOURCES = tests/fuzzrunner.c
  269. endif
  270. check_PROGRAMS += tests/ssml-fuzzer.test
  271. tests_ssml_fuzzer_test_CFLAGS = ${AM_CFLAGS}
  272. tests_ssml_fuzzer_test_SOURCES = tests/ssml-fuzzer.c
  273. tests_ssml_fuzzer_test_LDADD = src/libespeak-ng.la
  274. if OPT_SPEECHPLAYER
  275. tests_api_test_SOURCES += tests/dummy.cpp
  276. tests_encoding_test_SOURCES += tests/dummy.cpp
  277. tests_readclause_test_SOURCES += tests/dummy.cpp
  278. tests_ssml_fuzzer_test_SOURCES += tests/dummy.cpp
  279. endif
  280. if HAVE_LIBFUZZER
  281. noinst_PROGRAMS = tests/fuzzing/synth_fuzzer.test
  282. tests_fuzzing_synth_fuzzer_test_SOURCES = tests/fuzzing/synth_fuzzer.c
  283. tests_fuzzing_synth_fuzzer_test_LDADD = src/libespeak-ng.la
  284. tests_fuzzing_synth_fuzzer_test_CFLAGS= ${AM_CFLAGS} -DPATH_ESPEAK_DATA=\"$(abs_top_srcdir)/espeak-ng-data\" -Isrc/libespeak-ng
  285. tests_fuzzing_synth_fuzzer_test_LDFLAGS= ${AM_LDFLAGS} -static -lm -Wl,-z,relro ${PCAUDIOLIB_LIBS} ${LIBFUZZER}
  286. tests_ssml_fuzzer_test_LDFLAGS = ${AM_LDFLAGS} ${LIBFUZZER}
  287. else
  288. tests_ssml_fuzzer_test_LDADD += tests/libfuzzrunner.la
  289. endif
  290. FUZZ_SSML = $(wildcard tests/ssml/*.ssml tests/ssml-fuzzer/*.ssml)
  291. tests/ssml-fuzzer.check: tests/ssml-fuzzer.test
  292. @echo " TEST $<"
  293. @ESPEAK_DATA_PATH=$(CURDIR) $< $(FUZZ_SSML) && echo " PASSED $<"
  294. EXTRA_DIST += $(FUZZ_SSML) $(wildcard tests/ssml/*.expected)
  295. ##### phoneme data:
  296. espeak-ng-data/phondata: phsource/phonemes.stamp
  297. espeak-ng-data/phondata-manifest: phsource/phonemes.stamp
  298. espeak-ng-data/phonindex: phsource/phonemes.stamp
  299. espeak-ng-data/phontab: phsource/phonemes.stamp
  300. espeak-ng-data/intonations: phsource/phonemes.stamp
  301. PHSOURCE = \
  302. $(wildcard phsource/*) \
  303. $(wildcard phsource/*/*) \
  304. $(wildcard phsource/*/*/*)
  305. LANGDATA = \
  306. $(wildcard espeak-ng-data/lang/*) \
  307. $(wildcard espeak-ng-data/lang/*/*) \
  308. $(wildcard espeak-ng-data/voices/*/*)
  309. EXTRA_DIST += $(filter-out phsource/phonemes.stamp,$(PHSOURCE)) \
  310. $(filter-out espeak-ng-data/voices/!v/Mr serious,$(LANGDATA))
  311. phsource/phonemes.stamp: \
  312. $(PHSOURCE) \
  313. src/espeak-ng
  314. ESPEAK_DATA_PATH=$(CURDIR) src/espeak-ng --compile-intonations && \
  315. ESPEAK_DATA_PATH=$(CURDIR) src/espeak-ng --compile-phonemes && \
  316. touch $@
  317. ##### android targets:
  318. apk-release: espeakdata
  319. cd android && $(GRADLE) assembleRelease
  320. apk-debug: espeakdata
  321. cd android && $(GRADLE) assembleDebug
  322. apk-check: espeakdata
  323. cd android && $(GRADLE) connectedCheck
  324. espeakdata: espeak-ng-data/phontab dictionaries
  325. ##### dictionaries:
  326. dictsource/%_emoji:
  327. @echo " EMOJI $@"
  328. @if test x"${CLDR_PATH}" = x ; then \
  329. touch $@ ; \
  330. else \
  331. tools/emoji \
  332. dictsource/en_emoji \
  333. `echo $@ | sed -e 's,dictsource/,,g' -e 's,_emoji,,g'` \
  334. ${CLDR_PATH} > $@ ; \
  335. fi
  336. dictsource/%_extra:
  337. touch $@
  338. # NOTE: % (pattern) rules are GNU make specific we can extract the 'stem' that
  339. # matched the % in the target ($@) using $(*F) (which isn't GNU make specific,
  340. # just this interpretation is.)
  341. #
  342. # The rm $@ stops espeak-ng trying to load the old dictionary when it is run
  343. # (at the cost of a spurious error message.)
  344. #
  345. # NOTE: keep in sync with 'espeak-ng-data/yue_dict' more specific rule.
  346. espeak-ng-data/%_dict: src/espeak-ng phsource/phonemes.stamp
  347. @echo " DICT $@"
  348. rm -f $@
  349. cd dictsource && ESPEAK_DATA_PATH=$(CURDIR) ../src/espeak-ng --compile="$(*F)"
  350. dictionaries: \
  351. espeak-ng-data/af_dict \
  352. espeak-ng-data/am_dict \
  353. espeak-ng-data/an_dict \
  354. espeak-ng-data/ar_dict \
  355. espeak-ng-data/as_dict \
  356. espeak-ng-data/az_dict \
  357. espeak-ng-data/ba_dict \
  358. espeak-ng-data/be_dict \
  359. espeak-ng-data/bg_dict \
  360. espeak-ng-data/bn_dict \
  361. espeak-ng-data/bpy_dict \
  362. espeak-ng-data/bs_dict \
  363. espeak-ng-data/ca_dict \
  364. espeak-ng-data/chr_dict \
  365. espeak-ng-data/cmn_dict \
  366. espeak-ng-data/cs_dict \
  367. espeak-ng-data/cv_dict \
  368. espeak-ng-data/cy_dict \
  369. espeak-ng-data/da_dict \
  370. espeak-ng-data/de_dict \
  371. espeak-ng-data/el_dict \
  372. espeak-ng-data/en_dict \
  373. espeak-ng-data/eo_dict \
  374. espeak-ng-data/es_dict \
  375. espeak-ng-data/et_dict \
  376. espeak-ng-data/eu_dict \
  377. espeak-ng-data/fa_dict \
  378. espeak-ng-data/fi_dict \
  379. espeak-ng-data/fo_dict \
  380. espeak-ng-data/fr_dict \
  381. espeak-ng-data/ga_dict \
  382. espeak-ng-data/gd_dict \
  383. espeak-ng-data/gn_dict \
  384. espeak-ng-data/grc_dict \
  385. espeak-ng-data/gu_dict \
  386. espeak-ng-data/hak_dict \
  387. espeak-ng-data/haw_dict \
  388. espeak-ng-data/he_dict \
  389. espeak-ng-data/hi_dict \
  390. espeak-ng-data/hr_dict \
  391. espeak-ng-data/ht_dict \
  392. espeak-ng-data/hu_dict \
  393. espeak-ng-data/hy_dict \
  394. espeak-ng-data/ia_dict \
  395. espeak-ng-data/id_dict \
  396. espeak-ng-data/io_dict \
  397. espeak-ng-data/is_dict \
  398. espeak-ng-data/it_dict \
  399. espeak-ng-data/ja_dict \
  400. espeak-ng-data/jbo_dict \
  401. espeak-ng-data/ka_dict \
  402. espeak-ng-data/kaa_dict \
  403. espeak-ng-data/kk_dict \
  404. espeak-ng-data/kl_dict \
  405. espeak-ng-data/kn_dict \
  406. espeak-ng-data/ko_dict \
  407. espeak-ng-data/kok_dict \
  408. espeak-ng-data/ku_dict \
  409. espeak-ng-data/ky_dict \
  410. espeak-ng-data/la_dict \
  411. espeak-ng-data/lb_dict \
  412. espeak-ng-data/lfn_dict \
  413. espeak-ng-data/lt_dict \
  414. espeak-ng-data/lv_dict \
  415. espeak-ng-data/mi_dict \
  416. espeak-ng-data/mk_dict \
  417. espeak-ng-data/ml_dict \
  418. espeak-ng-data/mr_dict \
  419. espeak-ng-data/ms_dict \
  420. espeak-ng-data/mt_dict \
  421. espeak-ng-data/mto_dict \
  422. espeak-ng-data/my_dict \
  423. espeak-ng-data/nci_dict \
  424. espeak-ng-data/ne_dict \
  425. espeak-ng-data/nl_dict \
  426. espeak-ng-data/no_dict \
  427. espeak-ng-data/nog_dict \
  428. espeak-ng-data/om_dict \
  429. espeak-ng-data/or_dict \
  430. espeak-ng-data/pa_dict \
  431. espeak-ng-data/pap_dict \
  432. espeak-ng-data/piqd_dict \
  433. espeak-ng-data/pl_dict \
  434. espeak-ng-data/ps_dict \
  435. espeak-ng-data/pt_dict \
  436. espeak-ng-data/py_dict \
  437. espeak-ng-data/qdb_dict \
  438. espeak-ng-data/qu_dict \
  439. espeak-ng-data/quc_dict \
  440. espeak-ng-data/qya_dict \
  441. espeak-ng-data/ro_dict \
  442. espeak-ng-data/ru_dict \
  443. espeak-ng-data/sd_dict \
  444. espeak-ng-data/shn_dict \
  445. espeak-ng-data/si_dict \
  446. espeak-ng-data/sjn_dict \
  447. espeak-ng-data/sk_dict \
  448. espeak-ng-data/sl_dict \
  449. espeak-ng-data/smj_dict \
  450. espeak-ng-data/sq_dict \
  451. espeak-ng-data/sr_dict \
  452. espeak-ng-data/sv_dict \
  453. espeak-ng-data/sw_dict \
  454. espeak-ng-data/ta_dict \
  455. espeak-ng-data/te_dict \
  456. espeak-ng-data/th_dict \
  457. espeak-ng-data/ti_dict \
  458. espeak-ng-data/tk_dict \
  459. espeak-ng-data/tn_dict \
  460. espeak-ng-data/tr_dict \
  461. espeak-ng-data/tt_dict \
  462. espeak-ng-data/uk_dict \
  463. espeak-ng-data/ug_dict \
  464. espeak-ng-data/ur_dict \
  465. espeak-ng-data/uz_dict \
  466. espeak-ng-data/vi_dict \
  467. espeak-ng-data/xex_dict \
  468. espeak-ng-data/yue_dict
  469. DICTSOURCE = \
  470. $(wildcard dictsource/*_emoji) \
  471. $(wildcard dictsource/*_extra) \
  472. $(wildcard dictsource/*_list) \
  473. $(wildcard dictsource/*_rules) \
  474. $(wildcard dictsource/extra/*) \
  475. dictsource/ar_listx \
  476. dictsource/bg_listx \
  477. dictsource/he_listx \
  478. dictsource/ia_listx \
  479. dictsource/it_listx \
  480. dictsource/tk_listx \
  481. dictsource/tr_listx
  482. EXTRA_DIST += $(DICTSOURCE)
  483. af: espeak-ng-data/af_dict
  484. espeak-ng-data/af_dict: dictsource/af_list dictsource/af_rules dictsource/af_extra dictsource/af_emoji
  485. am: espeak-ng-data/am_dict
  486. espeak-ng-data/am_dict: dictsource/am_list dictsource/am_rules dictsource/am_extra dictsource/am_emoji
  487. an: espeak-ng-data/an_dict
  488. espeak-ng-data/an_dict: dictsource/an_list dictsource/an_rules dictsource/an_extra
  489. ar: espeak-ng-data/ar_dict
  490. espeak-ng-data/ar_dict: dictsource/ar_list dictsource/ar_listx dictsource/ar_rules dictsource/ar_extra dictsource/ar_emoji
  491. as: espeak-ng-data/as_dict
  492. espeak-ng-data/as_dict: dictsource/as_list dictsource/as_rules dictsource/as_extra
  493. az: espeak-ng-data/az_dict
  494. espeak-ng-data/az_dict: dictsource/az_list dictsource/az_rules dictsource/az_extra dictsource/az_emoji
  495. ba: espeak-ng-data/ba_dict
  496. espeak-ng-data/ba_dict: dictsource/ba_list dictsource/ba_rules
  497. be: espeak-ng-data/be_dict
  498. espeak-ng-data/be_dict: dictsource/be_list dictsource/be_rules
  499. bg: espeak-ng-data/bg_dict
  500. espeak-ng-data/bg_dict: dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra dictsource/bg_emoji
  501. bn: espeak-ng-data/bn_dict
  502. espeak-ng-data/bn_dict: dictsource/bn_list dictsource/bn_rules dictsource/bn_extra dictsource/bn_emoji
  503. bpy: espeak-ng-data/bpy_dict
  504. espeak-ng-data/bpy_dict: dictsource/bpy_list dictsource/bpy_rules dictsource/bpy_extra
  505. bs: espeak-ng-data/bs_dict
  506. espeak-ng-data/bs_dict: dictsource/bs_list dictsource/bs_rules dictsource/bs_extra dictsource/bs_emoji
  507. ca: espeak-ng-data/ca_dict
  508. espeak-ng-data/ca_dict: dictsource/ca_list dictsource/ca_rules dictsource/ca_extra dictsource/ca_emoji
  509. chr: espeak-ng-data/chr_dict
  510. espeak-ng-data/chr_dict: dictsource/chr_list dictsource/chr_rules
  511. cs: espeak-ng-data/cs_dict
  512. espeak-ng-data/cs_dict: dictsource/cs_list dictsource/cs_rules dictsource/cs_extra dictsource/cs_emoji
  513. cv: espeak-ng-data/cv_dict
  514. espeak-ng-data/cv_dict: dictsource/cv_list dictsource/cv_rules dictsource/cv_extra
  515. cy: espeak-ng-data/cy_dict
  516. espeak-ng-data/cy_dict: dictsource/cy_list dictsource/cy_rules dictsource/cy_extra dictsource/cy_emoji
  517. da: espeak-ng-data/da_dict
  518. espeak-ng-data/da_dict: dictsource/da_list dictsource/da_rules dictsource/da_extra dictsource/da_emoji
  519. de: espeak-ng-data/de_dict
  520. espeak-ng-data/de_dict: dictsource/de_list dictsource/de_rules dictsource/de_extra dictsource/de_emoji
  521. el: espeak-ng-data/el_dict
  522. espeak-ng-data/el_dict: dictsource/el_list dictsource/el_rules dictsource/el_extra dictsource/el_emoji
  523. en: espeak-ng-data/en_dict
  524. espeak-ng-data/en_dict: dictsource/en_list dictsource/en_rules dictsource/en_extra dictsource/en_emoji
  525. eo: espeak-ng-data/eo_dict
  526. espeak-ng-data/eo_dict: dictsource/eo_list dictsource/eo_rules dictsource/eo_extra
  527. es: espeak-ng-data/es_dict
  528. espeak-ng-data/es_dict: dictsource/es_list dictsource/es_rules dictsource/es_extra dictsource/es_emoji
  529. et: espeak-ng-data/et_dict
  530. espeak-ng-data/et_dict: dictsource/et_list dictsource/et_rules dictsource/et_extra dictsource/et_emoji
  531. eu: espeak-ng-data/eu_dict
  532. espeak-ng-data/eu_dict: dictsource/eu_list dictsource/eu_rules dictsource/eu_extra dictsource/eu_emoji
  533. fa: espeak-ng-data/fa_dict
  534. espeak-ng-data/fa_dict: dictsource/fa_list dictsource/fa_rules dictsource/fa_extra dictsource/fa_emoji
  535. fi: espeak-ng-data/fi_dict
  536. espeak-ng-data/fi_dict: dictsource/fi_list dictsource/fi_rules dictsource/fi_extra dictsource/fi_emoji
  537. fo: espeak-ng-data/fo_dict
  538. espeak-ng-data/fo_dict: dictsource/fo_list dictsource/fo_rules dictsource/fo_extra dictsource/fo_emoji
  539. fr: espeak-ng-data/fr_dict
  540. espeak-ng-data/fr_dict: dictsource/fr_list dictsource/fr_rules dictsource/fr_extra dictsource/fr_emoji
  541. ga: espeak-ng-data/ga_dict
  542. espeak-ng-data/ga_dict: dictsource/ga_list dictsource/ga_rules dictsource/ga_extra dictsource/ga_emoji
  543. gd: espeak-ng-data/gd_dict
  544. espeak-ng-data/gd_dict: dictsource/gd_list dictsource/gd_rules dictsource/gd_extra dictsource/gd_emoji
  545. gn: espeak-ng-data/gn_dict
  546. espeak-ng-data/gn_dict: dictsource/gn_list dictsource/gn_rules dictsource/gn_extra
  547. grc: espeak-ng-data/grc_dict
  548. espeak-ng-data/grc_dict: dictsource/grc_list dictsource/grc_rules dictsource/grc_extra
  549. gu: espeak-ng-data/gu_dict
  550. espeak-ng-data/gu_dict: dictsource/gu_list dictsource/gu_rules dictsource/gu_extra dictsource/gu_emoji
  551. hak: espeak-ng-data/hak_dict
  552. espeak-ng-data/hak_dict: dictsource/hak_list dictsource/hak_rules dictsource/hak_extra
  553. haw: espeak-ng-data/haw_dict
  554. espeak-ng-data/haw_dict: dictsource/haw_list dictsource/haw_rules dictsource/haw_extra
  555. he: espeak-ng-data/he_dict
  556. espeak-ng-data/he_dict: dictsource/he_list dictsource/he_rules dictsource/he_extra
  557. hi: espeak-ng-data/hi_dict
  558. espeak-ng-data/hi_dict: dictsource/hi_list dictsource/hi_rules dictsource/hi_extra dictsource/hi_emoji
  559. hr: espeak-ng-data/hr_dict
  560. espeak-ng-data/hr_dict: dictsource/hr_list dictsource/hr_rules dictsource/hr_extra dictsource/hr_emoji
  561. ht: espeak-ng-data/ht_dict
  562. espeak-ng-data/ht_dict: dictsource/ht_list dictsource/ht_rules dictsource/ht_extra
  563. hu: espeak-ng-data/hu_dict
  564. espeak-ng-data/hu_dict: dictsource/hu_list dictsource/hu_rules dictsource/hu_extra dictsource/hu_emoji
  565. hy: espeak-ng-data/hy_dict
  566. espeak-ng-data/hy_dict: dictsource/hy_list dictsource/hy_rules dictsource/hy_extra dictsource/hy_emoji
  567. ia: espeak-ng-data/ia_dict
  568. espeak-ng-data/ia_dict: dictsource/ia_list dictsource/ia_listx dictsource/ia_rules dictsource/ia_extra
  569. id: espeak-ng-data/id_dict
  570. espeak-ng-data/id_dict: dictsource/id_list dictsource/id_rules dictsource/id_extra dictsource/id_emoji
  571. io: espeak-ng-data/io_dict
  572. espeak-ng-data/io_dict: dictsource/io_list dictsource/io_rules dictsource/io_extra
  573. is: espeak-ng-data/is_dict
  574. espeak-ng-data/is_dict: dictsource/is_list dictsource/is_rules dictsource/is_extra dictsource/is_emoji
  575. it: espeak-ng-data/it_dict
  576. espeak-ng-data/it_dict: dictsource/it_list dictsource/it_listx dictsource/it_rules dictsource/it_extra dictsource/it_emoji
  577. ja: espeak-ng-data/ja_dict
  578. espeak-ng-data/ja_dict: dictsource/ja_list dictsource/ja_rules dictsource/ja_extra dictsource/ja_emoji
  579. jbo: espeak-ng-data/jbo_dict
  580. espeak-ng-data/jbo_dict: dictsource/jbo_list dictsource/jbo_rules dictsource/jbo_extra
  581. ka: espeak-ng-data/ka_dict
  582. espeak-ng-data/ka_dict: dictsource/ka_list dictsource/ka_rules dictsource/ka_extra dictsource/ka_emoji
  583. kaa: espeak-ng-data/kaa_dict
  584. espeak-ng-data/kaa_dict: dictsource/kaa_list dictsource/kaa_rules dictsource/kaa_extra dictsource/kaa_emoji
  585. kk: espeak-ng-data/kk_dict
  586. espeak-ng-data/kk_dict: dictsource/kk_list dictsource/kk_rules dictsource/kk_extra dictsource/kk_emoji
  587. kl: espeak-ng-data/kl_dict
  588. espeak-ng-data/kl_dict: dictsource/kl_list dictsource/kl_rules dictsource/kl_extra
  589. kn: espeak-ng-data/kn_dict
  590. espeak-ng-data/kn_dict: dictsource/kn_list dictsource/kn_rules dictsource/kn_extra dictsource/kn_emoji
  591. ko: espeak-ng-data/ko_dict
  592. espeak-ng-data/ko_dict: dictsource/ko_list dictsource/ko_rules dictsource/ko_extra dictsource/ko_emoji
  593. kok: espeak-ng-data/kok_dict
  594. espeak-ng-data/kok_dict: dictsource/kok_list dictsource/kok_rules dictsource/kok_extra
  595. ku: espeak-ng-data/ku_dict
  596. espeak-ng-data/ku_dict: dictsource/ku_list dictsource/ku_rules dictsource/ku_extra
  597. ky: espeak-ng-data/ky_dict
  598. espeak-ng-data/ky_dict: dictsource/ky_list dictsource/ky_rules dictsource/ky_extra dictsource/ky_emoji
  599. la: espeak-ng-data/la_dict
  600. espeak-ng-data/la_dict: dictsource/la_list dictsource/la_rules dictsource/la_extra
  601. lb: espeak-ng-data/lb_dict
  602. espeak-ng-data/lb_dict: dictsource/lb_list dictsource/lb_rules dictsource/lb_emoji
  603. lfn: espeak-ng-data/lfn_dict
  604. espeak-ng-data/lfn_dict: dictsource/lfn_list dictsource/lfn_rules dictsource/lfn_extra
  605. lt: espeak-ng-data/lt_dict
  606. espeak-ng-data/lt_dict: dictsource/lt_list dictsource/lt_rules dictsource/lt_extra dictsource/lt_emoji
  607. lv: espeak-ng-data/lv_dict
  608. espeak-ng-data/lv_dict: dictsource/lv_list dictsource/lv_rules dictsource/lv_extra dictsource/lv_emoji
  609. mi: espeak-ng-data/mi_dict
  610. espeak-ng-data/mi_dict: dictsource/mi_list dictsource/mi_rules dictsource/mi_extra
  611. mk: espeak-ng-data/mk_dict
  612. espeak-ng-data/mk_dict: dictsource/mk_list dictsource/mk_rules dictsource/mk_extra dictsource/mk_emoji
  613. ml: espeak-ng-data/ml_dict
  614. espeak-ng-data/ml_dict: dictsource/ml_list dictsource/ml_rules dictsource/ml_extra dictsource/ml_emoji
  615. mr: espeak-ng-data/mr_dict
  616. espeak-ng-data/mr_dict: dictsource/mr_list dictsource/mr_rules dictsource/mr_extra dictsource/mr_emoji
  617. ms: espeak-ng-data/ms_dict
  618. espeak-ng-data/ms_dict: dictsource/ms_list dictsource/ms_rules dictsource/ms_extra dictsource/ms_emoji
  619. mt: espeak-ng-data/mt_dict
  620. espeak-ng-data/mt_dict: dictsource/mt_list dictsource/mt_rules dictsource/mt_extra
  621. mto: espeak-ng-data/mto_dict
  622. espeak-ng-data/mto_dict: dictsource/mto_list dictsource/mto_rules
  623. my: espeak-ng-data/my_dict
  624. espeak-ng-data/my_dict: dictsource/my_list dictsource/my_rules dictsource/my_extra dictsource/my_emoji
  625. nci: espeak-ng-data/nci_dict
  626. espeak-ng-data/nci_dict: dictsource/nci_list dictsource/nci_rules dictsource/nci_extra
  627. ne: espeak-ng-data/ne_dict
  628. espeak-ng-data/ne_dict: dictsource/ne_list dictsource/ne_rules dictsource/ne_extra dictsource/ne_emoji
  629. nl: espeak-ng-data/nl_dict
  630. espeak-ng-data/nl_dict: dictsource/nl_list dictsource/nl_rules dictsource/nl_extra dictsource/nl_emoji
  631. no: espeak-ng-data/no_dict
  632. espeak-ng-data/no_dict: dictsource/no_list dictsource/no_rules dictsource/no_extra
  633. no: espeak-ng-data/nog_dict
  634. espeak-ng-data/nog_dict: dictsource/nog_list dictsource/nog_rules dictsource/nog_extra
  635. om: espeak-ng-data/om_dict
  636. espeak-ng-data/om_dict: dictsource/om_list dictsource/om_rules dictsource/om_extra
  637. or: espeak-ng-data/or_dict
  638. espeak-ng-data/or_dict: dictsource/or_list dictsource/or_rules dictsource/or_extra dictsource/or_emoji
  639. pa: espeak-ng-data/pa_dict
  640. espeak-ng-data/pa_dict: dictsource/pa_list dictsource/pa_rules dictsource/pa_extra dictsource/pa_emoji
  641. pap: espeak-ng-data/pap_dict
  642. espeak-ng-data/pap_dict: dictsource/pap_list dictsource/pap_rules dictsource/pap_extra
  643. piqd: espeak-ng-data/piqd_dict
  644. espeak-ng-data/piqd_dict: dictsource/piqd_list dictsource/piqd_rules
  645. pl: espeak-ng-data/pl_dict
  646. espeak-ng-data/pl_dict: dictsource/pl_list dictsource/pl_rules dictsource/pl_extra dictsource/pl_emoji
  647. ps: espeak-ng-data/ps_dict
  648. espeak-ng-data/ps_dict: dictsource/ps_list dictsource/ps_rules dictsource/ps_extra dictsource/ps_emoji
  649. pt: espeak-ng-data/pt_dict
  650. espeak-ng-data/pt_dict: dictsource/pt_list dictsource/pt_rules dictsource/pt_extra dictsource/pt_emoji
  651. py: espeak-ng-data/py_dict
  652. espeak-ng-data/py_dict: dictsource/py_list dictsource/py_rules dictsource/py_extra
  653. qdb: espeak-ng-data/qdb_dict
  654. espeak-ng-data/qdb_dict: dictsource/qdb_list dictsource/qdb_rules
  655. qu: espeak-ng-data/qu_dict
  656. espeak-ng-data/qu_dict: dictsource/qu_list dictsource/qu_rules dictsource/qu_extra
  657. quc: espeak-ng-data/quc_dict
  658. espeak-ng-data/quc_dict: dictsource/quc_list dictsource/quc_rules dictsource/quc_extra dictsource/quc_emoji
  659. qya: espeak-ng-data/qya_dict
  660. espeak-ng-data/qya_dict: dictsource/qya_list dictsource/qya_rules
  661. ro: espeak-ng-data/ro_dict
  662. espeak-ng-data/ro_dict: dictsource/ro_list dictsource/ro_rules dictsource/ro_extra dictsource/ro_emoji
  663. ru: espeak-ng-data/ru_dict
  664. dictsource/ru_listx:
  665. ln -svf extra/ru_listx dictsource/
  666. if HAVE_RU_EXTENDED_DICTIONARY
  667. espeak-ng-data/ru_dict: dictsource/ru_list dictsource/ru_rules dictsource/ru_extra dictsource/ru_listx dictsource/ru_emoji
  668. else
  669. espeak-ng-data/ru_dict: dictsource/ru_list dictsource/ru_rules dictsource/ru_extra dictsource/ru_emoji
  670. endif
  671. sd: espeak-ng-data/sd_dict
  672. espeak-ng-data/sd_dict: dictsource/sd_list dictsource/sd_rules dictsource/sd_extra dictsource/sd_emoji
  673. shn: espeak-ng-data/shn_dict
  674. espeak-ng-data/shn_dict: dictsource/shn_list dictsource/shn_rules dictsource/shn_extra
  675. si: espeak-ng-data/si_dict
  676. espeak-ng-data/si_dict: dictsource/si_list dictsource/si_rules dictsource/si_extra dictsource/si_emoji
  677. sjn: espeak-ng-data/sjn_dict
  678. espeak-ng-data/sjn_dict: dictsource/sjn_list dictsource/sjn_rules
  679. sk: espeak-ng-data/sk_dict
  680. espeak-ng-data/sk_dict: dictsource/sk_list dictsource/sk_rules dictsource/sk_extra dictsource/sk_emoji
  681. sl: espeak-ng-data/sl_dict
  682. espeak-ng-data/sl_dict: dictsource/sl_list dictsource/sl_rules dictsource/sl_extra dictsource/sl_emoji
  683. smj: espeak-ng-data/smj_dict
  684. espeak-ng-data/smj_dict: dictsource/smj_list dictsource/smj_rules
  685. sq: espeak-ng-data/sq_dict
  686. espeak-ng-data/sq_dict: dictsource/sq_list dictsource/sq_rules dictsource/sq_extra dictsource/sq_emoji
  687. dictsource/sr_emoji:
  688. @echo " EMOJI $@"
  689. @if test x"${CLDR_PATH}" = x ; then \
  690. touch $@ ; \
  691. else \
  692. tools/emoji dictsource/en_emoji sr_Latn ${CLDR_PATH} > $@ ; \
  693. fi
  694. sr: espeak-ng-data/sr_dict
  695. espeak-ng-data/sr_dict: dictsource/sr_list dictsource/sr_rules dictsource/sr_extra dictsource/sr_emoji
  696. sv: espeak-ng-data/sv_dict
  697. espeak-ng-data/sv_dict: dictsource/sv_list dictsource/sv_rules dictsource/sv_extra dictsource/sv_emoji
  698. sw: espeak-ng-data/sw_dict
  699. espeak-ng-data/sw_dict: dictsource/sw_list dictsource/sw_rules dictsource/sw_extra dictsource/sw_emoji
  700. ta: espeak-ng-data/ta_dict
  701. espeak-ng-data/ta_dict: dictsource/ta_list dictsource/ta_rules dictsource/ta_extra dictsource/ta_emoji
  702. te: espeak-ng-data/te_dict
  703. espeak-ng-data/te_dict: dictsource/te_list dictsource/te_rules dictsource/te_extra dictsource/te_emoji
  704. ti: espeak-ng-data/ti_dict
  705. espeak-ng-data/ti_dict: dictsource/ti_list dictsource/ti_rules dictsource/ti_extra dictsource/ti_emoji
  706. th: espeak-ng-data/th_dict
  707. espeak-ng-data/th_dict: dictsource/th_list dictsource/th_rules dictsource/th_extra
  708. tk: espeak-ng-data/tk_dict
  709. espeak-ng-data/tk_dict: dictsource/tk_list dictsource/tk_listx dictsource/tk_rules dictsource/tk_extra
  710. tn: espeak-ng-data/tn_dict
  711. espeak-ng-data/tn_dict: dictsource/tn_list dictsource/tn_rules dictsource/tn_extra
  712. tr: espeak-ng-data/tr_dict
  713. espeak-ng-data/tr_dict: dictsource/tr_list dictsource/tr_rules dictsource/tr_extra dictsource/tr_emoji
  714. tt: espeak-ng-data/tt_dict
  715. espeak-ng-data/tt_dict: dictsource/tt_list dictsource/tt_rules dictsource/tt_extra
  716. ug: espeak-ng-data/ug_dict
  717. espeak-ng-data/ug_dict: dictsource/ug_list dictsource/ug_rules dictsource/ug_extra
  718. uk: espeak-ng-data/uk_dict
  719. espeak-ng-data/uk_dict: dictsource/uk_list dictsource/uk_rules dictsource/uk_extra
  720. ur: espeak-ng-data/ur_dict
  721. espeak-ng-data/ur_dict: dictsource/ur_list dictsource/ur_rules dictsource/ur_extra dictsource/ur_emoji
  722. uz: espeak-ng-data/uz_dict
  723. espeak-ng-data/uz_dict: dictsource/uz_list dictsource/uz_rules dictsource/uz_extra
  724. vi: espeak-ng-data/vi_dict
  725. espeak-ng-data/vi_dict: dictsource/vi_list dictsource/vi_rules dictsource/vi_extra dictsource/vi_emoji
  726. xex: espeak-ng-data/xex_dict
  727. espeak-ng-data/xex_dict: dictsource/xex_list dictsource/xex_rules
  728. cmn: espeak-ng-data/cmn_dict
  729. dictsource/cmn_listx:
  730. ln -svf extra/cmn_listx dictsource/
  731. if HAVE_CMN_EXTENDED_DICTIONARY
  732. espeak-ng-data/cmn_dict: dictsource/cmn_list dictsource/cmn_rules dictsource/cmn_listx dictsource/cmn_extra dictsource/cmn_emoji
  733. else
  734. espeak-ng-data/cmn_dict: dictsource/cmn_list dictsource/cmn_rules dictsource/cmn_extra dictsource/cmn_emoji
  735. endif
  736. yue: espeak-ng-data/yue_dict
  737. dictsource/yue_listx:
  738. ln -svf extra/yue_listx dictsource/
  739. # NOTE: keep in sync with espeak-ng-data/%_dict more generic rule.
  740. if HAVE_YUE_EXTENDED_DICTIONARY
  741. espeak-ng-data/yue_dict: src/espeak-ng phsource/phonemes.stamp dictsource/yue_list dictsource/yue_rules dictsource/yue_extra dictsource/yue_listx dictsource/yue_emoji
  742. else
  743. espeak-ng-data/yue_dict: src/espeak-ng phsource/phonemes.stamp dictsource/yue_list dictsource/yue_rules dictsource/yue_extra dictsource/yue_emoji
  744. endif
  745. @echo " DICT $@"
  746. rm -f $@
  747. cd dictsource && ESPEAK_DATA_PATH=$(CURDIR) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=yue && cd ..
  748. dictsource/yue_emoji:
  749. @echo " EMOJI $@"
  750. @if test x"${CLDR_PATH}" = x ; then \
  751. touch $@ ; \
  752. else \
  753. tools/emoji dictsource/en_emoji yue ${CLDR_PATH} > $@ ; \
  754. fi
  755. ##### mbrola:
  756. if OPT_MBROLA
  757. PHSOURCE_MBROLA = \
  758. $(wildcard phsource/mbrola/*)
  759. mbrola: \
  760. $(patsubst phsource/mbrola/%,espeak-ng-data/mbrola_ph/%_phtrans,$(PHSOURCE_MBROLA))
  761. espeak-ng-data/mbrola_ph/%_phtrans: phsource/mbrola/% src/espeak-ng
  762. mkdir -p espeak-ng-data/mbrola_ph
  763. ESPEAK_DATA_PATH=$(CURDIR) src/espeak-ng --compile-mbrola=phsource/mbrola/$*
  764. EXTRA_DIST += $(PHSOURCE_MBROLA)
  765. all-local: mbrola
  766. endif