Noticed build failure on NixOS when built package with 'make -j16':
build flags: -j16 -l16 SHELL=bash
Makefile:2844: warning: ignoring prerequisites on suffix rule definition
make all-am
make[1]: Entering directory '/build/espeak-ng'
Makefile:2844: warning: ignoring prerequisites on suffix rule definition
touch dictsource/az_extra
...
touch dictsource/yue_extra
cd dictsource && ESPEAK_DATA_PATH=/build/espeak-ng LD_LIBRARY_PATH=../src: ../src/espeak-ng --compile=yue && cd ..
bash: line 1: ../src/espeak-ng: No such file or directory
make[1]: *** [Makefile:3546: espeak-ng-data/yue_dict] Error 127
make[1]: Leaving directory '/build/espeak-ng'
make: *** [Makefile:831: all] Error 2
The fix is to add dependency on 'espeak-ng' similar to other rules.
mbrola: Fix portuguese and french voices priorities
- We want to use br* voices in priority for Brazilian Portugues, but not
for general Portuguese.
- We want to use ca* and Belgian voices for Canadian and Belgian French,
but rather not for general French.
Use ESPEAKNG_DEFAULT_VOICE instead of hard coded "en".
This will make it easier to set a default voice other than
English. This is important for cases when a language will fall back to
the default voice.
Some references to L('e', 'n') still need to be changed.
Found by parsing the results from this bash script:
for define in $(grep define *.h | awk'{print $2}');
do if ! grep -q $define *.c
then
echo "$define not found";
fi
done
code cleanup: don't add a \0 to voices_language in LoadVoice().
This is unnecessary since the string is already null terminated in the
V_LANGUAGE switch case. sscanf creates a null terminated string in
language_name, which is then copied to voice_language by strcpy (keeping
the \0).
It's probably unnecessary code and could be removed. However, it would
break tests. This is a temporary solution.
The solution is to do it once in VoiceReset() and then if the "formant"
keyword changes voice->width.