diff options
Diffstat (limited to 'tools/configure')
-rwxr-xr-x | tools/configure | 172 |
1 files changed, 171 insertions, 1 deletions
diff --git a/tools/configure b/tools/configure index e7562f824b..60dc49cbc8 100755 --- a/tools/configure +++ b/tools/configure | |||
@@ -366,6 +366,154 @@ if [ -z "$simver" ]; then | |||
366 | fi | 366 | fi |
367 | } | 367 | } |
368 | 368 | ||
369 | voiceconfig () { | ||
370 | echo "Building voice for $archos" | ||
371 | echo "" | ||
372 | |||
373 | if [ `which flite` ]; then | ||
374 | FLITE="F(l)ite " | ||
375 | FLITE_OPTS="FLITE_OPTS=\"\"" | ||
376 | DEFAULT_TTS="flite" | ||
377 | DEFAULT_TTS_OPTS=$FLITE_OPTS | ||
378 | DEFAULT_NOISEFLOOR="500" | ||
379 | DEFAULT_CHOICE="L" | ||
380 | fi | ||
381 | if [ `which speak` ]; then | ||
382 | ESPEAK="(e)Speak " | ||
383 | ESPEAK_OPTS="ESPEAK_OPTS=\"\"" | ||
384 | DEFAULT_TTS="espeak" | ||
385 | DEFAULT_TTS_OPTS=$ESPEAK_OPTS | ||
386 | DEFAULT_NOISEFLOOR="500" | ||
387 | DEFAULT_CHOICE="e" | ||
388 | fi | ||
389 | if [ `which festival` ]; then | ||
390 | FESTIVAL="(F)estival " | ||
391 | FESTIVAL_OPTS="FLITE_OPTS=\"\"" | ||
392 | DEFAULT_TTS="festival" | ||
393 | DEFAULT_TTS_OPTS=$FESTIVAL_OPTS | ||
394 | DEFAULT_NOISEFLOOR="500" | ||
395 | DEFAULT_CHOICE="F" | ||
396 | fi | ||
397 | |||
398 | if [ "$FESTIVAL" == "$FLITE" ] && [ "$FLITE" == "$ESPEAK" ]; then | ||
399 | echo "You need Festival, eSpeak or Flite in your path to build voice files" | ||
400 | exit | ||
401 | fi | ||
402 | |||
403 | echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}(${DEFAULT_CHOICE})?" | ||
404 | option=`input` | ||
405 | case "$option" in | ||
406 | [Ll]) | ||
407 | TTS_ENGINE="flite" | ||
408 | NOISEFLOOR="500" # TODO: check this value | ||
409 | TTS_OPTS=$FLITE_OPTS | ||
410 | ;; | ||
411 | [Ee]) | ||
412 | TTS_ENGINE="espeak" | ||
413 | NOISEFLOOR="500" | ||
414 | TTS_OPTS=$ESPEAK_OPTS | ||
415 | ;; | ||
416 | [Ff]) | ||
417 | TTS_ENGINE="festival" | ||
418 | NOISEFLOOR="500" | ||
419 | TTS_OPTS=$FESTIVAL_OPTS | ||
420 | ;; | ||
421 | *) | ||
422 | TTS_ENGINE=$DEFAULT_TTS | ||
423 | TTS_OPTS=$DEFAULT_TTS_OPTS | ||
424 | NOISEFLOOR=$DEFAULT_NOISEFLOOR | ||
425 | esac | ||
426 | echo "Using $TTS_ENGINE for TTS" | ||
427 | |||
428 | echo "" | ||
429 | |||
430 | if [ `which oggenc` ]; then | ||
431 | OGGENC="(O)ggenc " | ||
432 | DEFAULT_ENC="oggenc" | ||
433 | VORBIS_OPTS="VORBIS_OPTS=\"-q0 --downmix\"" | ||
434 | DEFAULT_ENC_OPTS=$VORBIS_OPTS | ||
435 | DEFAULT_CHOICE="O" | ||
436 | fi | ||
437 | if [ `which speexenc` ]; then | ||
438 | SPEEXENC="(S)peexenc " | ||
439 | DEFAULT_ENC="speexenc" | ||
440 | SPEEX_OPTS="" # TODO: find appropriate options for speex | ||
441 | DEFAULT_ENC_OPTS=$SPEEX_OPTS | ||
442 | DEFAULT_CHOICE="S" | ||
443 | fi | ||
444 | if [ `which lame` ]; then | ||
445 | LAME="(L)ame " | ||
446 | DEFAULT_ENC="lame" | ||
447 | LAME_OPTS="LAME_OPTS=\"--resample 12 -t -m m -h -V 9 -S\"" | ||
448 | DEFAULT_ENC_OPTS=$LAME_OPTS | ||
449 | DEFAULT_CHOICE="L" | ||
450 | fi | ||
451 | |||
452 | if [ "$LAME" == "" ]; then | ||
453 | echo "You need to have Lame installed to build voice files" | ||
454 | fi | ||
455 | |||
456 | echo "Encoder to use: ${LAME}${OGGENC}${SPEEXENC}(${DEFAULT_CHOICE})?" | ||
457 | echo "" | ||
458 | echo "Note: Use Lame - the other options won't work" | ||
459 | option=`input` | ||
460 | case "$option" in | ||
461 | [Oo]) | ||
462 | ENCODER="oggenc" | ||
463 | ENC_OPTS=$VORBIS_OPTS | ||
464 | ;; | ||
465 | [Ss]) | ||
466 | ENCODER="speexenc" | ||
467 | ENC_OPTS=$SPEEX_OPTS | ||
468 | ;; | ||
469 | [Ll]) | ||
470 | ENCODER="lame" | ||
471 | ENC_OPTS=$LAME_OPTS | ||
472 | ;; | ||
473 | *) | ||
474 | ENCODER=$DEFAULT_ENC | ||
475 | ENC_OPTS=$DEFAULT_ENC_OPTS | ||
476 | esac | ||
477 | echo "Using $ENCODER for encoding voice clips" | ||
478 | |||
479 | cat > voicesettings.sh <<EOF | ||
480 | TTS_ENGINE="${TTS_ENGINE}" | ||
481 | ENCODER="${ENCODER}" | ||
482 | TEMPDIR="${pwd}" | ||
483 | NOISEFLOOR="${NOISEFLOOR}" | ||
484 | ${TTS_OPTS} | ||
485 | ${ENC_OPTS} | ||
486 | EOF | ||
487 | } | ||
488 | |||
489 | picklang() { | ||
490 | # figure out which languages that are around | ||
491 | for file in $rootdir/apps/lang/*.lang; do | ||
492 | clean=`echo $file | sed -e 's:.*/::g' | cut "-d." -f1` | ||
493 | langs="$langs $clean" | ||
494 | done | ||
495 | |||
496 | num=1 | ||
497 | for one in $langs; do | ||
498 | echo "$num. $one" | ||
499 | num=`expr $num + 1` | ||
500 | done | ||
501 | |||
502 | read pick | ||
503 | return $pick; | ||
504 | } | ||
505 | |||
506 | whichlang() { | ||
507 | num=1 | ||
508 | for one in $langs; do | ||
509 | if [ "$num" = "$pick" ]; then | ||
510 | echo $one | ||
511 | return | ||
512 | fi | ||
513 | num=`expr $num + 1` | ||
514 | done | ||
515 | } | ||
516 | |||
369 | target=$1 | 517 | target=$1 |
370 | 518 | ||
371 | if test "$target" = "--help"; then | 519 | if test "$target" = "--help"; then |
@@ -1144,7 +1292,7 @@ fi | |||
1144 | esac | 1292 | esac |
1145 | 1293 | ||
1146 | echo "" | 1294 | echo "" |
1147 | echo "Build (N)ormal, (D)evel, (S)imulator, (B)ootloader, $gdbstub(M)anual? (N)" | 1295 | echo "Build (N)ormal, (D)evel, (S)imulator, (B)ootloader, $gdbstub(M)anual, (V)oice? (N)" |
1148 | 1296 | ||
1149 | option=`input`; | 1297 | option=`input`; |
1150 | 1298 | ||
@@ -1202,6 +1350,11 @@ fi | |||
1202 | apps="manual" | 1350 | apps="manual" |
1203 | echo "Manual build selected" | 1351 | echo "Manual build selected" |
1204 | ;; | 1352 | ;; |
1353 | [Vv]) | ||
1354 | echo "Voice build selected" | ||
1355 | voiceconfig | ||
1356 | voice="yes" | ||
1357 | ;; | ||
1205 | *) | 1358 | *) |
1206 | debug="" | 1359 | debug="" |
1207 | echo "Normal build selected" | 1360 | echo "Normal build selected" |
@@ -1238,6 +1391,20 @@ echo "Using source code root directory: $rootdir" | |||
1238 | # this was once possible to change at build-time, but no more: | 1391 | # this was once possible to change at build-time, but no more: |
1239 | language="english" | 1392 | language="english" |
1240 | 1393 | ||
1394 | # Ask about language if building voice | ||
1395 | if [ "yes" == "$voice" ]; then | ||
1396 | echo "Select a number for the language to use (default is english)" | ||
1397 | |||
1398 | picklang | ||
1399 | language=`whichlang` | ||
1400 | |||
1401 | if [ -z "$language" ]; then | ||
1402 | # pick a default | ||
1403 | language="english" | ||
1404 | fi | ||
1405 | echo "Language set to $language" | ||
1406 | fi | ||
1407 | |||
1241 | uname=`uname` | 1408 | uname=`uname` |
1242 | 1409 | ||
1243 | if [ "yes" = "$simulator" ]; then | 1410 | if [ "yes" = "$simulator" ]; then |
@@ -1516,6 +1683,9 @@ clean: | |||
1516 | @ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip \ | 1683 | @ARCHOSROM@ @FLASHFILE@ UI256.bmp rockbox-full.zip \ |
1517 | html txt rockbox-manual*.zip | 1684 | html txt rockbox-manual*.zip |
1518 | 1685 | ||
1686 | voice: tools | ||
1687 | \$(TOOLSDIR)/genvoice.sh \$(ROOTDIR) \$(LANGUAGE) \$(ARCHOS) voicesettings.sh | ||
1688 | |||
1519 | tools: | 1689 | tools: |
1520 | \$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) @TOOLSET@ | 1690 | \$(SILENT)\$(MAKE) -C \$(TOOLSDIR) CC=\$(HOSTCC) @TOOLSET@ |
1521 | 1691 | ||