Adapted patch for makefile.defs.linux.alsa
[sgc2.git] / praat_module / makePraat.sh
blobd8001e09603b76b71b10281fe97e4b3bb4cfe119
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 praat.xcodeproj"
37 if [[ -n ${SDK} ]]; then
38 MAKECMD="xcodebuild -project praat.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
50 # Add demopraatapplication.h
51 cd main/
52 rm -f demopraatapplication.h
53 if [[ ${1:-Normal} == "MinGW" && ${2:-Normal} == "XP" ]]; then
54 cat ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h | sed 's/\(\"build_SHA\$ \= \\\"[^\\]*\)/\1 XP/g' > ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h
55 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expandedXP.h ./demopraatapplication.h
56 else
57 ln -s ${CURRENTWORKINGDIR}/${APPLICATIONNAME}expanded.h ./demopraatapplication.h
59 # Create a file containing the Build number
60 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
62 # Get the manual into the tutorials manual
63 cp ../fon/manual_tutorials.cpp ../fon/manual_tutorials.cppORIGINAL
64 NUMLINES=$(grep -n '}' ../fon/manual_tutorials.cpp|tail -1|sed 's/\:.*//g'|perl -ane 'print $_-1;')
65 TAILLINES=$(wc -l ../fon/manual_tutorials.cpp|perl -ane "print \$_ - ${NUMLINES}")
66 head -n ${NUMLINES} ../fon/manual_tutorials.cppORIGINAL > ../fon/manual_tutorials.cpp
67 cat ${CURRENTWORKINGDIR}/manual_${APPLICATIONNAME}.cpp >> ../fon/manual_tutorials.cpp
68 tail -${TAILLINES} ../fon/manual_tutorials.cppORIGINAL >> ../fon/manual_tutorials.cpp
70 touch main_Praat.cpp
72 # Patch main_Praat
73 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
74 patch main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
77 cd ../
78 if [[ ${UNAME} == "Darwin" ]]; then
79 ${MAKECMD} OTHER_CFLAGS='$OTHER_CFLAGS -DDEMOAPP' 2>&1
80 else
81 ${MAKECMD} 2>&1
84 # Undo patches
85 if [[ -s ${CURRENTWORKINGDIR}/adaptPraat.patch ]]; then
86 patch -R --strip=1 < ${CURRENTWORKINGDIR}/adaptPraat.patch
89 cd main/
90 rm -f demopraatapplication.h ../fon/manual_tutorials.cpp
91 mv ../fon/manual_tutorials.cppORIGINAL ../fon/manual_tutorials.cpp
92 if [[ -s ${CURRENTWORKINGDIR}/main_Praat.patch ]]; then
93 patch -R main_Praat.cpp ${CURRENTWORKINGDIR}/main_Praat.patch
95 cd -
97 # Move result to correct directory
98 if [[ -d ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
99 rm -r ${CURRENTWORKINGDIR}/${TARGETNAME}
101 mv ${EXECPATH} ${CURRENTWORKINGDIR}/${TARGETNAME}
104 cd ${CURRENTWORKINGDIR}
105 zip -r ${TARGETNAME}.zip ${TARGETNAME}
107 # Create MD5SUM
108 if [[ -n `which md5` ]] ; then
109 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
110 md5 ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
112 md5 ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5
114 if [[ -n `which md5sum` ]] ; then
115 if [[ -f ${CURRENTWORKINGDIR}/${TARGETNAME} ]]; then
116 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME} > ${CURRENTWORKINGDIR}/${TARGETNAME}.md5
118 md5sum ${CURRENTWORKINGDIR}/${TARGETNAME}.zip > ${CURRENTWORKINGDIR}/${TARGETNAME}.zip.md5