xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDESCRIPTION = "eSpeak is a compact open source software speech synthesizer"
2*4882a593SmuzhiyunSECTION = "base"
3*4882a593SmuzhiyunLICENSE = "GPL-3.0-only"
4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
7*4882a593Smuzhiyun           file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \
8*4882a593Smuzhiyun           file://0002-tr_languages-cast-string_ordinal-init-values.patch \
9*4882a593Smuzhiyun"
10*4882a593SmuzhiyunSRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
11*4882a593SmuzhiyunSRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunS = "${WORKDIR}/espeak-${PV}-source"
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunDEPENDS = "portaudio-v19 qemu-helper-native"
16*4882a593Smuzhiyuninherit siteinfo qemu
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunCXXFLAGS += "-DUSE_PORTAUDIO"
20*4882a593SmuzhiyunTARGET_CC_ARCH += "${LDFLAGS}"
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunFILES:${PN} += "${datadir}/espeak-data"
23*4882a593Smuzhiyun
24*4882a593Smuzhiyundo_configure() {
25*4882a593Smuzhiyun    #  "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19
26*4882a593Smuzhiyun    install -m 0644 "${S}/src/portaudio19.h" "${S}/src/portaudio.h"
27*4882a593Smuzhiyun}
28*4882a593Smuzhiyun
29*4882a593Smuzhiyundo_compile() {
30*4882a593Smuzhiyun    cd src
31*4882a593Smuzhiyun    oe_runmake
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun    cd "${S}/platforms/big_endian"
34*4882a593Smuzhiyun    qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${S}/platforms/big_endian', '${STAGING_DIR_TARGET}${base_libdir}'])}"
35*4882a593Smuzhiyun    cat >qemuwrapper <<EOF
36*4882a593Smuzhiyun#!/bin/sh
37*4882a593Smuzhiyun$qemu_binary "\$@"
38*4882a593SmuzhiyunEOF
39*4882a593Smuzhiyun    chmod +x qemuwrapper
40*4882a593Smuzhiyun    sed -i '/^ *CC *=/d' Makefile
41*4882a593Smuzhiyun    # Fixing byte order of phoneme data files
42*4882a593Smuzhiyun    if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then
43*4882a593Smuzhiyun        sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
44*4882a593Smuzhiyun    else
45*4882a593Smuzhiyun        sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER LITTLE_ENDIAN\n\1/' espeak-phoneme-data.c
46*4882a593Smuzhiyun    fi
47*4882a593Smuzhiyun    oe_runmake
48*4882a593Smuzhiyun    ./qemuwrapper ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest"
49*4882a593Smuzhiyun    cp -f phondata phonindex phontab "${S}/espeak-data"
50*4882a593Smuzhiyun}
51*4882a593Smuzhiyun
52*4882a593Smuzhiyundo_install() {
53*4882a593Smuzhiyun    install -d ${D}${bindir}
54*4882a593Smuzhiyun    install -d ${D}${libdir}
55*4882a593Smuzhiyun    install -d ${D}${includedir}/espeak
56*4882a593Smuzhiyun    install -d ${D}${datadir}/espeak-data
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun    # we do not ship "speak" binary though.
59*4882a593Smuzhiyun    install -m 0755 ${S}/src/espeak ${D}${bindir}
60*4882a593Smuzhiyun    install -m 0644 ${S}/src/speak_lib.h ${D}${includedir}/espeak/
61*4882a593Smuzhiyun    ln -sf espeak/espeak.h ${D}${includedir}/
62*4882a593Smuzhiyun    oe_libinstall -so -C src libespeak ${D}${libdir}
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun    cp -R --no-dereference --preserve=mode,links ${S}/espeak-data/* ${D}${datadir}/espeak-data
65*4882a593Smuzhiyun}
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunRDEPENDS:${PN} = "portaudio-v19"
68