aboutsummaryrefslogtreecommitdiffstats
path: root/audio/festival/Makefile
blob: 553273c2c7b86b8ce69617984bf05eb8d2236941 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Created by: trevor
# $FreeBSD$

PORTNAME=   festival
PORTVERSION=    2.1
PORTREVISION=   1
CATEGORIES= audio accessibility
MASTER_SITES=   FESTIVAL
DISTFILES=  ${DISTNAME}-release.tar.gz  \
        speech_tools-${PORTVERSION}-release.tar.gz

PATCHFILES= src_modules_diphone_diphone.h.diff?id=b58a836:debian    \
        src_modules_diphone_di_io.cc.diff?id=b58a836:debian \
        src_modules_diphone_diphone.cc.diff?id=b58a836:debian   \
        src_modules_donovan_t2s.h.diff?id=b58a836:debian        \
        src_modules_UniSyn_diphone_UniSyn_diphone.cc.diff?id=b58a836:debian \
        festival_el_utf8.diff?id=b58a836:debian \
        lintianspellpatch.diff?id=b58a836:debian    \
        hts21compat.diff?id=b58a836:debian  \
        languagespatch.diff?id=b58a836:debian \
        ${SPT_PATCHES:C/.*/patch-speech__tools_\0:netbsd/}
PATCH_SITES=    ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/audio/festival/patches/:netbsd   \
        http://anonscm.debian.org/cgit/tts/festival.git/plain/debian/patches/:debian

MAINTAINER= mi@aldan.algebra.com
COMMENT=    Multi-lingual speech synthesis system

OPTIONS_DEFINE= NAS ESD
OPTIONS_DEFAULT=NAS ESD
ESD_DESC=   ${ESOUND_DESC}

DIST_SUBDIR=    festival

CXXFLAGS+=  -DFTLIBDIR=${LOCALBASE}/share/festival/lib
CONFIGURE_WRKSRC=   ${WRKDIR}/festival
USES=       gmake
SPEECHTOOLS=    ${WRKSRC}/speech_tools
FESTIVAL=   ${WRKSRC}/festival
MAKE_ARGS+= CC="${CC}" GCC="${CC}" \
        CXX="${CXX}" GXX="${CXX}" \
        EST_HOME=${SPEECHTOOLS}
WRKSRC=     ${WRKDIR}

SPT_PATCHES=    base__class_EST__TVector.cc \
        base__class_inst__tmpl_vector__dmatrix__t.cc    \
        base__class_inst__tmpl_vector__dvector__t.cc    \
        base__class_inst__tmpl_vector__fmatrix__t.cc    \
        config_compilers_gcc__defaults.mak  \
        include_EST__Ngrammar.h \
        include_EST__SCFG.h \
        include_EST__String.h   \
        include_EST__error.h    \
        include_ling__class_EST__FeatureFunctionPackage.h   \
        include_unix_EST__socket__unix.h    \
        stats_dynamic__program.cc   \
        utils_EST__ServiceTable.cc

do-build:
.for d in speech_tools festival
    ${MAKE_CMD} -C ${WRKDIR}/$d ${MAKE_FLAGS} Makefile ${MAKE_ARGS}
.endfor

# Can not make test in `festival', because the voices may not be installed
# XXX: this should fail, if the verdict is not "CORRECT"...
post-build test:
    ${MAKE_CMD} -C ${WRKDIR}/speech_tools test

# The below is needed, because Debian's patches expect a different
# directory-name
pre-patch:
    ${LN} -s festival ${WRKSRC}/festival-2.1~release
    ${LN} -s festival ${WRKSRC}/b

post-patch::
    ${REINPLACE_CMD} -e 's,/usr/X11R6,${LOCALBASE},g'   \
        ${WRKSRC}/*/config/systems/default.mak

.for m in nas esd
${m:tu}_LIB_DEPENDS=    lib${m:nas=audio}.so:${PORTSDIR}/audio/${m:esd=esound}
post-patch-${m:tu}-on:
    ${REINPLACE_CMD} -e 's,# INCLUDE_MODULES += ${m:tu}_AUDIO,INCLUDE_MODULES += ${m:tu}_AUDIO,' \
        ${WRKDIR}/*/config/config.in
${m:tu}_CONFIGURE_ENABLE=${m}
.endfor

do-configure:
.for d in speech_tools festival
    @cd ${WRKDIR}/$d && \
        if ! ${SETENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \
        CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \
        ${CONFIGURE_ENV} ./configure ${CONFIGURE_ARGS}; then \
        ${ECHO_CMD} "===>  configuration script for $d failed."; \
        ${FALSE}; \
    fi
    # This step helps non-i386 systems and is harmless on i386
    -${LN} -s ix86_FreeBSD.mak ${WRKDIR}/$d/config/systems/${ARCH:S/armv6/arm/}_unknown.mak
.endfor
    ${REINPLACE_CMD} \
        -e '/^CFLAGS *=/s|$$| ${CFLAGS}|' \
        -e '/^CXXFLAGS *=/s|$$| ${CXXFLAGS}|' \
        -e 's,^OPTIMI,#OPTIMI,' \
        ${WRKSRC}/speech_tools/config/compilers/gcc*.mak
    # This step helps to use a compiler, the vendor has not seen before:
    ${TEST} -e ${WRKDIR}/speech_tools/config/compilers/${CC}.mak || \
        ${LN} -s gcc_defaults.mak ${WRKDIR}/speech_tools/config/compilers/${CC}.mak

do-install:
    @${MKDIR} ${STAGEDIR}${DATADIR}
    ${CHMOD} -R u+w,a+r,og-w ${FESTIVAL}/lib
    ${FIND} ${FESTIVAL}/lib -type d -print0 | ${XARGS} -0 ${CHMOD} 755
    ${FIND} ${FESTIVAL} -type f -name *.orig -delete
    ${CP} -pPR ${FESTIVAL}/lib ${FESTIVAL}/examples ${STAGEDIR}${DATADIR}
    ${RM} -rf ${STAGEDIR}${DATADIR}/lib/etc/Makefile ${STAGEDIR}${DATADIR}/lib/etc/*FreeBSD* \
        ${STAGEDIR}${DATADIR}/lib/etc/*unknown
    ${INSTALL_PROGRAM} ${FESTIVAL}/lib/etc/*/audsp ${STAGEDIR}${PREFIX}/libexec
    ${INSTALL_PROGRAM} ${FESTIVAL}/src/main/festival ${STAGEDIR}${PREFIX}/libexec/festival.naked
    ${INSTALL_PROGRAM} ${FESTIVAL}/src/main/festival_client ${STAGEDIR}${PREFIX}/libexec/festival_client.naked
    for n in festival.sh festival_client.sh sitevars.scm; \
    do {\
      ${SED} "s%@PKG_FESTIVAL_LOCATION@%${DATADIR}%; \
           s%@PKG_PREFIX@%${PREFIX}%" <${FILESDIR}/$$n > ${WRKDIR}/$$n ;} \
    done
    ${INSTALL_SCRIPT} ${WRKDIR}/festival.sh ${STAGEDIR}${PREFIX}/bin/festival
    ${INSTALL_SCRIPT} ${WRKDIR}/festival_client.sh ${STAGEDIR}${PREFIX}/bin/festival_client
    ${INSTALL_DATA} ${WRKDIR}/sitevars.scm ${STAGEDIR}${DATADIR}/lib/sitevars.scm
    ${INSTALL_MAN} ${FESTIVAL}/doc/festival.1 ${STAGEDIR}${PREFIX}/man/man1/festival.1
    ${INSTALL_MAN} ${FESTIVAL}/doc/festival_client.1 ${STAGEDIR}${PREFIX}/man/man1/festival_client.1

.include <bsd.port.mk>