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.

configure.ac 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. AC_PREREQ([2.63])
  2. AC_INIT([eSpeak NG], [1.49.3-dev], [https://github.com/espeak-ng/espeak-ng/issues], [espeak-ng], [https://github.com/espeak-ng/espeak-ng])
  3. AM_INIT_AUTOMAKE()
  4. LT_INIT
  5. m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES])
  6. AM_SILENT_RULES([yes])
  7. AC_CONFIG_SRCDIR([src])
  8. AC_CONFIG_MACRO_DIR([m4])
  9. AC_CONFIG_HEADERS([config.h])
  10. dnl ================================================================
  11. dnl Program checks.
  12. dnl ================================================================
  13. AC_PROG_CC
  14. AC_PROG_MAKE_SET
  15. AC_PROG_LIBTOOL
  16. AC_PROG_LN_S
  17. AC_CHECK_PROG(NDKBUILD_CHECK,[ndk-build],yes)
  18. dnl ================================================================
  19. dnl gradle checks.
  20. dnl ================================================================
  21. AC_ARG_WITH([gradle],
  22. [AS_HELP_STRING([--with-gradle], [specify the gradle program to use @<:@default=gradle@:>@])],
  23. [GRADLE=$with_gradle],
  24. [GRADLE=gradle])
  25. AC_MSG_CHECKING([for gradle])
  26. if test -e ${GRADLE} ; then
  27. AC_MSG_RESULT([${GRADLE}])
  28. AM_CONDITIONAL(HAVE_GRADLE, [1])
  29. else
  30. AC_MSG_RESULT([no])
  31. AM_CONDITIONAL(HAVE_GRADLE, [0])
  32. fi
  33. AC_SUBST(GRADLE)
  34. dnl ================================================================
  35. dnl C99 compiler checks.
  36. dnl ================================================================
  37. AC_LANG_PUSH(C)
  38. AC_MSG_CHECKING([if $CC supports C99 without any flags])
  39. AC_COMPILE_IFELSE(
  40. [AC_LANG_PROGRAM(
  41. [[static inline int c99_restrict(int *restrict c99_restrict) {}]],
  42. [[]])],
  43. [AC_MSG_RESULT([yes])
  44. have_c99_native=yes],
  45. [AC_MSG_RESULT([no])
  46. have_c99_native=no])
  47. AC_LANG_POP(C)
  48. AC_LANG_PUSH(C)
  49. TEMP_CFLAGS="$CFLAGS"
  50. CFLAGS="$CFLAGS -std=c99"
  51. AC_MSG_CHECKING([if $CC supports C99 with the -std=c99 flag])
  52. AC_COMPILE_IFELSE(
  53. [AC_LANG_PROGRAM(
  54. [[static inline int c99_restrict(int *restrict c99_restrict) {}]],
  55. [[]])],
  56. [AC_MSG_RESULT([yes])
  57. have_c99_c99=yes],
  58. [AC_MSG_RESULT([no])
  59. have_c99_c99=no])
  60. CFLAGS="$TEMP_CFLAGS"
  61. AC_LANG_POP(C)
  62. AC_MSG_CHECKING([if $CC supports C99])
  63. if test "$have_c99_c99" = yes ; then
  64. AC_MSG_RESULT([-std=c99])
  65. CFLAGS="$CFLAGS -std=c99"
  66. elif test "$have_c99_native" = yes ; then
  67. AC_MSG_RESULT([yes])
  68. else
  69. AC_MSG_RESULT([no])
  70. AC_MSG_ERROR([C99 is not supported by $CC.])
  71. fi
  72. dnl ================================================================
  73. dnl FreeBSD check.
  74. dnl ================================================================
  75. AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
  76. #if ! defined(__FreeBSD__)
  77. #error macro not defined
  78. #endif
  79. ]])], [FREEBSD_FOUND="yes"], [FREEBSD_FOUND="no"])
  80. AC_MSG_CHECKING([if targeting FreeBSD])
  81. if test "$FREEBSD_FOUND" = "yes" ; then
  82. AC_MSG_RESULT([-D__BSD_VISIBLE])
  83. CFLAGS="$CFLAGS -D__BSD_VISIBLE"
  84. else
  85. AC_MSG_RESULT([no])
  86. fi
  87. dnl ================================================================
  88. dnl library checks.
  89. dnl ================================================================
  90. AC_CHECK_HEADERS([endian.h]) dnl Linux
  91. AC_CHECK_HEADERS([fcntl.h]) dnl POSIX
  92. AC_CHECK_HEADERS([getopt.h]) dnl POSIX
  93. AC_CHECK_HEADERS([locale.h]) dnl C89
  94. AC_CHECK_HEADERS([stddef.h]) dnl C89
  95. AC_CHECK_HEADERS([stdbool.h]) dnl C99
  96. AC_CHECK_HEADERS([sys/endian.h]) dnl BSD
  97. AC_CHECK_HEADERS([sys/time.h]) dnl POSIX
  98. AC_CHECK_HEADERS([wchar.h]) dnl C89
  99. AC_CHECK_HEADERS([wctype.h]) dnl C89
  100. AC_TYPE_SIZE_T
  101. AC_TYPE_SSIZE_T
  102. AC_TYPE_UINT16_T
  103. AC_TYPE_UINT32_T
  104. AC_TYPE_UINT64_T
  105. AC_FUNC_FORK
  106. AC_FUNC_STRCOLL
  107. AC_FUNC_ERROR_AT_LINE
  108. AC_CHECK_FUNCS([dup2])
  109. AC_CHECK_FUNCS([getopt_long])
  110. AC_CHECK_FUNCS([gettimeofday])
  111. AC_CHECK_FUNCS([malloc]) dnl Avoid "Undefined reference to rpl_malloc" when using AC_FUNC_MALLOC.
  112. AC_CHECK_FUNCS([memchr])
  113. AC_CHECK_FUNCS([memmove])
  114. AC_CHECK_FUNCS([memset])
  115. AC_CHECK_FUNCS([mkdir])
  116. AC_CHECK_FUNCS([mkstemp])
  117. AC_CHECK_FUNCS([pow])
  118. AC_CHECK_FUNCS([realloc]) dnl Avoid "Undefined reference to rpl_malloc" when using AC_FUNC_REALLOC.
  119. AC_CHECK_FUNCS([setlocale])
  120. AC_CHECK_FUNCS([sqrt])
  121. AC_CHECK_FUNCS([strchr])
  122. AC_CHECK_FUNCS([strdup])
  123. AC_CHECK_FUNCS([strerror])
  124. AC_CHECK_FUNCS([strrchr])
  125. AC_CHECK_FUNCS([strstr])
  126. dnl ================================================================
  127. dnl PCAudioLib checks.
  128. dnl ================================================================
  129. AC_ARG_WITH([pcaudiolib],
  130. [AS_HELP_STRING([--with-pcaudiolib], [use the pcaudiolib library for audio output @<:@default=yes@:>@])],
  131. [])
  132. if test "$with_pcaudiolib" = "no"; then
  133. echo "Disabling audio output support via pcaudiolib"
  134. have_pcaudiolib=no
  135. else
  136. AC_CHECK_HEADERS([pcaudiolib/audio.h],
  137. [
  138. have_pcaudiolib=yes
  139. PCAUDIOLIB_CFLAGS=
  140. PCAUDIOLIB_LIBS=-lpcaudio
  141. ],[
  142. have_pcaudiolib=no
  143. ])
  144. fi
  145. AC_SUBST(PCAUDIOLIB_CFLAGS)
  146. AC_SUBST(PCAUDIOLIB_LIBS)
  147. dnl ================================================================
  148. dnl Optional compilation checks.
  149. dnl ================================================================
  150. AC_ARG_WITH([klatt],
  151. [AS_HELP_STRING([--with-klatt], [enable the Klatt formant synthesizer @<:@default=yes@:>@])],
  152. [])
  153. if test "$with_klatt" = "no" ; then
  154. have_klatt=no
  155. else
  156. have_klatt=yes
  157. fi
  158. AC_ARG_WITH([mbrola],
  159. [AS_HELP_STRING([--with-mbrola], [enable the MBROLA speech synthesizer @<:@default=yes@:>@])],
  160. [])
  161. if test "$with_mbrola" = "no" ; then
  162. have_mbrola=no
  163. else
  164. have_mbrola=yes
  165. fi
  166. AC_ARG_WITH([sonic],
  167. [AS_HELP_STRING([--with-sonic], [enable the sonic library to speed up the audio @<:@default=yes@:>@])],
  168. [])
  169. if test "$with_sonic" = "no" ; then
  170. have_sonic=no
  171. else
  172. AC_CHECK_HEADERS([sonic.h],
  173. [
  174. AC_CHECK_LIB([sonic], [sonicCreateStream])
  175. have_sonic=yes
  176. ],[
  177. have_sonic=no
  178. ])
  179. fi
  180. AC_ARG_WITH([async],
  181. [AS_HELP_STRING([--with-async], [enable support for async command processing @<:@default=yes@:>@])],
  182. [])
  183. if test "$with_async" = "no" ; then
  184. have_async=no
  185. else
  186. have_async=yes
  187. fi
  188. AM_CONDITIONAL(OPT_KLATT, [test x"$have_klatt" = xyes])
  189. AM_CONDITIONAL(OPT_MBROLA, [test x"$have_mbrola" = xyes])
  190. AM_CONDITIONAL(OPT_ASYNC, [test x"$have_async" = xyes])
  191. dnl ================================================================
  192. dnl ronn checks.
  193. dnl ================================================================
  194. AC_CHECK_PROG(RONN, ronn, ronn, no)
  195. AM_CONDITIONAL(HAVE_RONN, [test ! x"$RONN" = xno])
  196. dnl ================================================================
  197. dnl Extended dictionary checks.
  198. dnl ================================================================
  199. AC_ARG_WITH([extdict-ru],
  200. [AS_HELP_STRING([--with-extdict-ru], [use the extended Russian Dictionary file @<:@default=no@:>@])],
  201. [])
  202. if test "$with_extdict_ru" = "yes" ; then
  203. have_extdict_ru=yes
  204. else
  205. have_extdict_ru=no
  206. fi
  207. AC_ARG_WITH([extdict-zh],
  208. [AS_HELP_STRING([--with-extdict-zh], [use the extended Mandarin Chinese Dictionary file @<:@default=no@:>@])],
  209. [])
  210. if test "$with_extdict_zh" = "yes" ; then
  211. have_extdict_zh=yes
  212. else
  213. have_extdict_zh=no
  214. fi
  215. AC_ARG_WITH([extdict-zhy],
  216. [AS_HELP_STRING([--with-extdict-zhy], [use the extended Cantonese Chinese Dictionary file @<:@default=no@:>@])],
  217. [])
  218. if test "$with_extdict_zhy" = "yes" ; then
  219. have_extdict_zhy=yes
  220. else
  221. have_extdict_zhy=no
  222. fi
  223. AM_CONDITIONAL(HAVE_RU_EXTENDED_DICTIONARY, [test x"$have_extdict_ru" = xyes])
  224. AM_CONDITIONAL(HAVE_ZH_EXTENDED_DICTIONARY, [test x"$have_extdict_zh" = xyes])
  225. AM_CONDITIONAL(HAVE_ZHY_EXTENDED_DICTIONARY, [test x"$have_extdict_zhy" = xyes])
  226. dnl ================================================================
  227. dnl Compiler warnings.
  228. dnl
  229. dnl Reference: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
  230. dnl ================================================================
  231. AX_CHECK_COMPILE_FLAG([-Wunused-function], [CFLAGS="-Wunused-function $CFLAGS"])
  232. dnl ================================================================
  233. dnl Generate output.
  234. dnl ================================================================
  235. AC_CONFIG_FILES([Makefile espeak-ng.pc])
  236. AC_OUTPUT
  237. AC_MSG_NOTICE([
  238. Configuration for eSpeak NG complete.
  239. Source code location: ${srcdir}
  240. C99 Compiler: ${CC}
  241. C99 Compiler flags: ${CFLAGS}
  242. Sonic: ${have_sonic}
  243. PCAudioLib: ${have_pcaudiolib}
  244. gradle (Android): ${GRADLE}
  245. ndk-build (Android): ${NDKBUILD_CHECK}
  246. Klatt: ${have_klatt}
  247. MBROLA: ${have_mbrola}
  248. Async: ${have_async}
  249. Extended Dictionaries:
  250. Russian: ${have_extdict_ru}
  251. Chinese (Mandarin): ${have_extdict_zh}
  252. Chinese (Cantonese): ${have_extdict_zhy}
  253. ])