rhdunn / espeak

eSpeak NG is an open source speech synthesizer that supports 101 languages and accents.
http://reecedunn.co.uk/espeak-for-android
GNU General Public License v3.0
386 stars 16 forks source link

Make Error #78

Open rotexhawk opened 9 years ago

rotexhawk commented 9 years ago

I followed the instructions and it went good until i ran "make". This doesn't create the apk in the designated folder or anywhere for that matter.

Main Error: src/event.cpp:412:16: error: use of undeclared identifier 'sem_timedwait'

Full Log: src/debug.h:44:21: warning: variadic macros are a C99 feature [-Wvariadic-macros]

define SHOW(format,...)

                ^

src/debug.h:45:21: warning: variadic macros are a C99 feature [-Wvariadic-macros]

define LOGI(format,...)

                ^

src/debug.h:46:21: warning: variadic macros are a C99 feature [-Wvariadic-macros]

define LOGE(format,...)

                ^

src/event.cpp:95:16: warning: 'sem_init' is deprecated [-Wdeprecated-declarations] assert(-1 != sem_init(&my_sem_start_is_required, 0, 0)); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert' (builtin_expect(!(e), 0) ? __assert_rtn(__func, FILE, LINE, #e) : (void)0) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:55:5: note: 'sem_init' has been explicitly marked deprecated here int sem_init(semt , int, unsigned int) deprecated; ^ src/event.cpp:96:16: warning: 'sem_init' is deprecated [-Wdeprecated-declarations] assert(-1 != sem_init(&my_sem_stop_is_required, 0, 0)); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert' (builtin_expect(!(e), 0) ? __assert_rtn(func, FILE, LINE, #e) : (void)0) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:55:5: note: 'sem_init' has been explicitly marked deprecated here int sem_init(sem_t , int, unsigned int) deprecated; ^ src/event.cpp:97:16: warning: 'sem_init' is deprecated [-Wdeprecated-declarations] assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0)); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert' (builtin_expect(!(e), 0) ? __assert_rtn(func, FILE, LINE, #e) : (void)0) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:55:5: note: 'sem_init' has been explicitly marked deprecated here int sem_init(sem_t , int, unsigned int) deprecated; ^ src/event.cpp:412:16: error: use of undeclared identifier 'sem_timedwait' while ((err = sem_timedwait(&my_sem_stop_is_required, &ts)) == -1 ^ src/event.cpp:508:14: warning: 'sem_getvalue' is deprecated [-Wdeprecated-declarations] a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); // NOTE: may set a_stop_is_required to -1 ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:54:5: note: 'sem_getvalue' has been explicitly marked deprecated here int sem_getvalue(sem_t * restrict, int * restrict) deprecated; ^ src/event.cpp:569:16: warning: 'sem_getvalue' is deprecated [-Wdeprecated-declarations] a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:54:5: note: 'sem_getvalue' has been explicitly marked deprecated here int sem_getvalue(sem_t * restrict, int * restrict) deprecated; ^ src/event.cpp:597:15: warning: 'sem_getvalue' is deprecated [-Wdeprecated-declarations] a_status = sem_getvalue(&my_sem_stop_is_required, &a_stop_is_required); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:54:5: note: 'sem_getvalue' has been explicitly marked deprecated here int sem_getvalue(sem_t * restrict, int * restrict) __deprecated; ^ src/event.cpp:725:3: warning: 'sem_destroy' is deprecated [-Wdeprecated-declarations] sem_destroy(&my_sem_start_is_required); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:53:5: note: 'sem_destroy' has been explicitly marked deprecated here int sem_destroy(sem_t *) deprecated; ^ src/event.cpp:726:3: warning: 'sem_destroy' is deprecated [-Wdeprecated-declarations] sem_destroy(&my_sem_stop_is_required); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:53:5: note: 'sem_destroy' has been explicitly marked deprecated here int sem_destroy(sem_t ) __deprecated; ^ src/event.cpp:727:3: warning: 'sem_destroy' is deprecated [-Wdeprecated-declarations] sem_destroy(&my_sem_stop_is_acknowledged); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:53:5: note: 'sem_destroy' has been explicitly marked deprecated here int sem_destroy(sem_t ) _deprecated; ^ 12 warnings and 1 error generated. make[1]: ** [src/src_libespeak_la-event.lo] Error 1 make: *\ [all] Error 2

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26719231-make-error?utm_campaign=plugin&utm_content=tracker%2F254964&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254964&utm_medium=issues&utm_source=github).
rhdunn commented 8 years ago

NOTE: As you are not intending on using the event logic, you can run:

./configure --without-async

The espeak program does not currently support Mac OSX. The build error is because Mac OSX does not support sem_timedwait. There are various options:

  1. add a configure check for sem_timedwait and either use different code for those platforms, or include a compatible implementation of sem_timedwait;
  2. rework the code to use pthread_cond_timedwait.

Given that Apple have started deprecating sem_destroy and friends, it may make more sense to rework that code in espeak, or just disable the event code by default when sem_timedwait is not available.