Merge branch 'master' of ssh://repo.or.cz/srv/git/sgc2
[sgc2.git] / praat_module / makePraat.sh
blob4cdf112a3e30d0fe38555fc54a3e5d66884e4554
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 MAKECMD='xcodebuild -project praat.xcodeproj'
36 EXECPATH="./build/Configuration1/Praat.app"
37 TARGETNAME=${APPLICATIONNAME}.app
40 # Patch Praat
41 cd ${PRAATSOURCES}
42 if [[ -s ${CURRENTWORKINGDIR}/adaptPraat.patch ]]; then
43 patch --strip=1 < ${CURRENTWORKINGDIR}/adaptPraat.patch
46 # Add demopraatapplication.h
47 cd main/
48 rm -f demopraatapplication.h
49 if [[ ${1:-Normal} == "MinGW" && ${2:-Normal} == "XP" ]]; then
50 cat ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h | sed 's/\(\"build_SHA\$ \= \\\"[^\\]*\)/\1 XP/g' > ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h
51 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h ./demopraatapplication.h
52 else
53 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h ./demopraatapplication.h
56 # Get the manual into the tutorials manual
57 cp ../fon/manual_tutorials.cpp ../fon/manual_tutorials.cppORIGINAL
58 NUMLINES=$(grep -n '}' ../fon/manual_tutorials.cpp|tail -1|sed 's/\:.*//g'|perl -ane 'print $_-1;')
59 TAILLINES=$(wc -l ../fon/manual_tutorials.cpp|perl -ane "print \$_ - ${NUMLINES}")
60 head -n ${NUMLINES} ../fon/manual_tutorials.cppORIGINAL > ../fon/manual_tutorials.cpp
61 cat ${CURRENTWORKINGDIR}/manual_${APPLICATIONNAME}.cpp >> ../fon/manual_tutorials.cpp
62 tail -${TAILLINES} ../fon/manual_tutorials.cppORIGINAL >> ../fon/manual_tutorials.cpp
64 touch main_Praat.cpp
66 # Patch main_Praat
67 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
68 patch main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
71 cd ../
72 if [[ ${UNAME} == "Darwin" ]]; then
73 ${MAKECMD} OTHER_CFLAGS='$OTHER_CFLAGS -DDEMOAPP' 2>&1
74 else
75 ${MAKECMD} 2>&1
78 # Undo patches
79 if [[ -s ${CURRENTWORKINGDIR}/adaptPraat.patch ]]; then
80 patch -R --strip=1 < ${CURRENTWORKINGDIR}/adaptPraat.patch
83 cd main/
84 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
85 patch -R main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
87 cd -
89 # Move result to correct directory
90 if [[ -d ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
91 rm -r ${CURRENTWORKINGDIR}/${TARGETNAME}
93 mv ${EXECPATH} ${CURRENTWORKINGDIR}/${TARGETNAME}
96 cd ${CURRENTWORKINGDIR}
97 zip -r ${TARGETNAME}.zip ${TARGETNAME}
99 # Create MD5SUM
100 if [[ -n `which md5` ]] ; then
101 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
102 md5 ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
104 md5 ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5
106 if [[ -n `which md5sum` ]] ; then
107 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
108 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
110 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5