Adapted feedback to longer utterrances
[sgc2.git] / praat_module / makePraat.sh
blobd247f1c82e90a62e5b3e8832ff7c4855bd9c8feb
1 #!/bin/bash
3 APPLICATIONNAME=SpeakGoodChinese2
4 CURRENTWORKINGDIR=$(pwd)
5 UNAME=$(uname -s)
6 MAKECMD=make
7 EXECPATH=./praat
8 TARGETNAME=${APPLICATIONNAME}
10 PRAATSOURCES=./praat_sources
11 if [[ ${1:-Normal} == "MinGW" ]]; then
12 PRAATSOURCES=../../praat_mingw
13 if [[ ! -d ${PRAATSOURCES} ]]; then
14 exit
16 # Temporary cludge to recompile this file without -O2
17 touch ${PRAATSOURCES}/dwsys/regularExp.cpp
18 elif [[ -d ../praat_sources ]]; then
19 PRAATSOURCES=../praat_sources
20 elif [[ -d ../../demo_praat_sources ]]; then
21 PRAATSOURCES=../../demo_praat_sources
22 elif [[ -d ../../praat_sources ]]; then
23 PRAATSOURCES=../../praat_sources
26 if [[ -e ${PRAATSOURCES}/makefile.defs && -n `grep -l mingw32 ${PRAATSOURCES}/makefile.defs` ]]; then
27 EXECPATH=./Praat.exe
28 if [[ ${1:-Normal} == "MinGW" && ${2:-Normal} == "XP" ]]; then
29 TARGETNAME=${APPLICATIONNAME}XP.exe
30 else
31 TARGETNAME=${APPLICATIONNAME}.exe
33 UNAME=MinGW
34 elif [[ ${UNAME} == "Darwin" ]]; then
35 SDK=`ls -1d /Developer/SDKs/*|tail -1`
36 MAKECMD="xcodebuild -project praat32.xcodeproj"
37 if [[ -n ${SDK} ]]; then
38 MAKECMD="xcodebuild -project praat32.xcodeproj -sdk ${SDK}"
40 EXECPATH="./build/Configuration1/Praat.app"
41 TARGETNAME=${APPLICATIONNAME}.app
44 # Patch Praat
45 cd ${PRAATSOURCES}
46 if [[ -s ${CURRENTWORKINGDIR}/adaptPraat.patch ]]; then
47 patch --strip=1 < ${CURRENTWORKINGDIR}/adaptPraat.patch
49 if [[ -s ${CURRENTWORKINGDIR}/sys_praat_name.patch ]]; then
50 patch --strip=1 < ${CURRENTWORKINGDIR}/sys_praat_name.patch
53 # Add demopraatapplication.h
54 cd main/
55 rm -f demopraatapplication.h
56 if [[ ${1:-Normal} == "MinGW" && ${2:-Normal} == "XP" ]]; then
57 cat ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h | sed 's/\(\"build_SHA\$ \= \\\"[^\\]*\)/\1 XP/g' > ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h
58 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h ./demopraatapplication.h
59 else
60 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h ./demopraatapplication.h
62 # Create a file containing the Build number
63 grep 'build_SHA$ = "' ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.praat | grep ':' | perl -ane '/\"([A-F0-9]+)\s+([\d\-]+)(.*)\"/;print "<i>$1</i> <b>$2</b>$3\n";' > ${CURRENTWORKINGDIR}/Build_SHA.html
65 # Get the manual into the tutorials manual
66 cp ../fon/manual_tutorials.cpp ../fon/manual_tutorials.cppORIGINAL
67 NUMLINES=$(grep -n '}' ../fon/manual_tutorials.cpp|tail -1|sed 's/\:.*//g'|perl -ane 'print $_-1;')
68 TAILLINES=$(wc -l ../fon/manual_tutorials.cpp|perl -ane "print \$_ - ${NUMLINES}")
69 head -n ${NUMLINES} ../fon/manual_tutorials.cppORIGINAL > ../fon/manual_tutorials.cpp
70 cat ${CURRENTWORKINGDIR}/manual_${APPLICATIONNAME}.cpp >> ../fon/manual_tutorials.cpp
71 tail -${TAILLINES} ../fon/manual_tutorials.cppORIGINAL >> ../fon/manual_tutorials.cpp
73 touch main_Praat.cpp
75 # Patch main_Praat
76 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
77 patch main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
80 cd ../
81 if [[ ${UNAME} == "Darwin" ]]; then
82 ${MAKECMD} OTHER_CFLAGS='$OTHER_CFLAGS -DDEMOAPP' 2>&1
83 else
84 ${MAKECMD} 2>&1
87 # Undo patches
88 if [[ -s ${CURRENTWORKINGDIR}/adaptPraat.patch ]]; then
89 patch -R --strip=1 < ${CURRENTWORKINGDIR}/adaptPraat.patch
91 if [[ -s ${CURRENTWORKINGDIR}/sys_praat_name.patch ]]; then
92 patch -R --strip=1 < ${CURRENTWORKINGDIR}/sys_praat_name.patch
95 cd main/
96 rm -f demopraatapplication.h ../fon/manual_tutorials.cpp
97 mv ../fon/manual_tutorials.cppORIGINAL ../fon/manual_tutorials.cpp
98 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
99 patch -R main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
101 cd -
103 # Move result to correct directory
104 if [[ -d ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
105 rm -r ${CURRENTWORKINGDIR}/${TARGETNAME}
107 mv ${EXECPATH} ${CURRENTWORKINGDIR}/${TARGETNAME}
110 cd ${CURRENTWORKINGDIR}
111 zip -r ${TARGETNAME}.zip ${TARGETNAME}
113 # Create MD5SUM
114 if [[ -n `which md5` ]] ; then
115 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
116 md5 ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
118 md5 ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5
120 if [[ -n `which md5sum` ]] ; then
121 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
122 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
124 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5