#
# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
# 
# Copyright (c) 2011-2012, Kornel Laskowski
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are permitted
# provided that the following conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice, this list of
#      conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this list of
#      conditions and the following disclaimer in the documentation and/or other materials provided
#      with the distribution.
#    * Neither the name of Sigtactica Research or of the Royal Institute of Technology (KTH) or of
#      Carnegie Mellon University nor the names of their contributors may be used to endorse or
#      promote products derived from this software without specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+== */

MSFURL=http://www.cs.cmu.edu/~kornel/software
MSFDIR=msf-0.3.2
MSFBIN=msf

TINT="0.011"
TEXT="0.009"
TSEP="0.014"
TFRA="0.008"
WINSHAPE="hann_hann"
TMEAN="0.5"
MSFOPTS="-tint ${TINT} -text ${TEXT} -tsep ${TSEP} -tfra ${TFRA} -winShape ${WINSHAPE} -rjustifiedmean ${TMEAN} -stdout"

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

LIBSNDFILEURL=http://www.mega-nerd.com/libsndfile/files
LIBSNDFILEDIR=libsndfile-1.0.25
LIBSNDFILELIB=libsndfile.a
LIBSNDFILEINCLUDE=sndfile.h

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

WEKAURL=http://sourceforge.net/projects/weka/files/weka-3-6/3.6.4
WEKADIR=weka-3-6-4

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

SIGFURL=http://www.nlpado.de/~sebastian/software/sigf
SIGFDIR=sigf

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

DATADIR=dealsnippets

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

TARGETS = \
	Figure1.eps \
	Table2.txt \
	Figure3.eps \
	Figure4.eps \
	Miscellanea.txt

INCIDENTALS = \
	\
	dev.msf \
	dev.all \
	dev.arff \
	dev.all.dur1.arff \
	dev.all.msf.arff \
	dev.all.dur1+msf.arff \
	dev.sub.dur2.arff \
	dev.sub.dur1.arff \
	dev.sub.dur1+dur2.arff \
	dev.sub.msf.arff \
	dev.sub.dur2+msf.arff \
	dev.sub.dur1+msf.arff \
	dev.sub.dur1+dur2+msf.arff \
	\
	eval.msf \
	eval.all \
	eval.arff \
	eval.all.dur1.arff \
	eval.all.msf.arff \
	eval.all.dur1+msf.arff \
	eval.sub.dur2.arff \
	eval.sub.dur1.arff \
	eval.sub.dur1+dur2.arff \
	eval.sub.msf.arff \
	eval.sub.dur2+msf.arff \
	eval.sub.dur1+msf.arff \
	eval.sub.dur1+dur2+msf.arff \
	\
	all.dur1.score \
	all.msf.score \
	all.dur1+msf.score \
	sub.dur2.score \
	sub.dur1.score \
	sub.dur1+dur2.score \
	sub.msf.score \
	sub.dur2+msf.score \
	sub.dur1+msf.score \
	sub.dur1+dur2+msf.score \
	\
	eval.all.ref.enum \
	eval.all.dur1.enum \
	eval.all.msf.enum \
	eval.all.dur1+msf.enum \
	eval.all.ref-dur1-msf.enum \
	eval.all.ref-dur1-dur1+msf.enum \
	eval.all.ref-msf-dur1+msf.enum \
	eval.all.dur1.pred \
	eval.all.msf.pred \
	eval.all.dur1+msf.pred \
	\
	parseWeka2.perl \
	parseWeka4.perl \
	parseWekaM.perl \
	prepareSigf.perl \
	\
	Figure1.m \
	Figure3.m \
	Figure4.m \
	Figure4_helper.sh \
	Table2_helper.sh \
	Miscellanea_helper.sh

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

all : ${TARGETS}

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# OBTAIN AND BUILD THE MSF SOURCE
#

${MSFDIR}.tar.gz :
	wget ${MSFURL}/$@

${MSFDIR}.tar : ${MSFDIR}.tar.gz
	gunzip $^

${MSFDIR} : | ${MSFDIR}.tar
	tar xvf $|

${MSFDIR}/${MSFBIN} : ${MSFDIR} ${LIBSNDFILEDIR}/src/.libs/${LIBSNDFILELIB}
	( \
		cp ${LIBSNDFILEDIR}/src/.libs/${LIBSNDFILELIB} ${MSFDIR}; \
		cp ${LIBSNDFILEDIR}/src/${LIBSNDFILEINCLUDE} ${MSFDIR}; \
		cd ${MSFDIR}; \
		make clean; \
		make ${MSFBIN}; \
		cd .. \
	)

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# OBTAIN AND BUILD THE LIBSNDFILE SOURCE
#

${LIBSNDFILEDIR}.tar.gz :
	wget ${LIBSNDFILEURL}/$@

${LIBSNDFILEDIR}.tar : ${LIBSNDFILEDIR}.tar.gz
	gunzip $^

${LIBSNDFILEDIR} : | ${LIBSNDFILEDIR}.tar
	tar xvf $|

${LIBSNDFILEDIR}/src/.libs/${LIBSNDFILELIB} : ${LIBSNDFILEDIR}
	(cd $^; ./configure; make; cd ..)

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# OBTAIN THE WEKA SOURCE
#

${WEKADIR}.zip :
	wget ${WEKAURL}/$@/download

${WEKADIR} : | ${WEKADIR}.zip
	unzip $|

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# OBTAIN THE SIGF SOURCE
#

${SIGFDIR}-v2.tgz :
	wget ${SIGFURL}/$@

${SIGFDIR}-v2.tar : ${SIGFDIR}-v2.tgz
	gunzip $^

${SIGFDIR} : | ${SIGFDIR}-v2.tar
	tar xvf $|
	(cd ${SIGFDIR}; make; cd ..)

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# OBTAIN THE DEAL DATA
#

${DATADIR}.tar.gz :
	@echo ""
	@echo "--------------------------------------------------------------------------------"
	@echo ""
	@echo "You must obtain $@ from Anna Hjalmarsson (annah@speech.kth.se)."
	@echo ""
	@echo "--------------------------------------------------------------------------------"
	@echo ""

${DATADIR}.tar : ${DATADIR}.tar.gz
	gunzip -c $^ > $@

${DATADIR} : | ${DATADIR}.tar
	tar xvf $|

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# PARSE WEKA OUTPUT
#

parseWeka2.perl :
	rm -f $@
	echo "while ( <> )" >> $@
	echo "{" >> $@
	echo "  if ( /^=== Error on training data ===\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag = 1;" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^=== Error on test data ===\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag = 3;" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^Correctly Classified Instances\s+\d+\s+([0-9.]+)\s+\%\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo -n "err = $$" >> $@
	echo "1;" >> $@
	echo -n "    if ( $$" >> $@
	echo "flag == 1 )" >> $@
	echo "    {" >> $@
	echo -n "      $$" >> $@
	echo -n "devACC = $$" >> $@
	echo "err;" >> $@
	echo "    }" >> $@
	echo -n "    elsif ( $$" >> $@
	echo "flag == 3 )" >> $@
	echo "    {" >> $@
	echo -n "      $$" >> $@
	echo -n "evalACC = $$" >> $@
	echo "err;" >> $@
	echo "    }" >> $@
	echo "    else" >> $@
	echo "    {" >> $@
	echo "      die;" >> $@
	echo "    }" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^=== Detailed Accuracy By Class ===\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag += 1;" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^Weighted Avg.\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+([0-9.]+)\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo -n "auc = $$" >> $@
	echo "1;" >> $@
	echo -n "    if ( $$" >> $@
	echo "flag == 2 )" >> $@
	echo "    {" >> $@
	echo -n "      $$" >> $@
	echo -n "devAUC = $$" >> $@
	echo "auc;" >> $@
	echo "    }" >> $@
	echo -n "    elsif ( $$" >> $@
	echo "flag == 4 )" >> $@
	echo "    {" >> $@
	echo -n "      $$" >> $@
	echo -n "evalAUC = $$" >> $@
	echo "auc;" >> $@
	echo "    }" >> $@
	echo "    else" >> $@
	echo "    {" >> $@
	echo "      die;" >> $@
	echo "    }" >> $@
	echo "  }" >> $@
	echo "}" >> $@
	echo "" >> $@
	echo -n "printf \"DEV ACC: %4.1f   DEV AUC: %4.1f   EVALACC: %4.1f   EVALAUC: %4.1f\n\", $$" >> $@
	echo -n "devACC, 100*$$" >> $@
	echo -n "devAUC, $$" >> $@
	echo -n "evalACC, 100*$$" >> $@
	echo "evalAUC;" >> $@
	echo "exit;" >> $@

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

parseWeka4.perl :
	rm -f $@
	echo "while ( <> )" >> $@
	echo "{" >> $@
	echo "  if ( /^=== Stratified cross-validation ===\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag = 1;" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^=== Detailed Accuracy By Class ===\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    if ( $$" >> $@
	echo "flag == 1 )" >> $@
	echo "    {" >> $@
	echo -n "      $$" >> $@
	echo "flag = 2;" >> $@
	echo "    }" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^Weighted Avg.\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+[0-9.]+\s+([0-9.]+)\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    if ( $$" >> $@
	echo "flag == 2 )" >> $@
	echo "    {" >> $@
	echo -n "      print $$" >> $@
	echo "1;" >> $@
	echo "    }" >> $@
	echo "  }" >> $@
	echo "}" >> $@
	echo "exit;" >> $@

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

parseWekaM.perl :
	rm -f $@
	echo "while ( <> )" >> $@
	echo "{" >> $@
	echo "  if ( /^\s*inst#/ )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag = 1;" >> $@
	echo "  }" >> $@
	echo "  elsif ( /^\s*(\d+)\s*\d:(\d)\s*\d:(\d)\s*/ )" >> $@
	echo "  {" >> $@
	echo -n "    my($$" >> $@
	echo -n "id) = $$" >> $@
	echo "1;" >> $@
	echo -n "    my($$" >> $@
	echo -n "ref) = $$" >> $@
	echo "2;" >> $@
	echo -n "    my($$" >> $@
	echo -n "hyp) = $$" >> $@
	echo "3;" >> $@
	echo -n "    if ( $$" >> $@
	echo "flag == 1 )" >> $@
	echo "    {" >> $@
	echo -n "      printf \"%s %s %s\n\", $$" >> $@
	echo -n "id, $$" >> $@
	echo -n "ref, $$" >> $@
	echo "hyp;" >> $@
	echo "    }" >> $@
	echo "  }" >> $@
	echo -n "  elsif ( ( /^\s*$$" >> $@
	echo -n "/ ) && ( $$" >> $@
	echo "flag == 1 ) )" >> $@
	echo "  {" >> $@
	echo -n "    $$" >> $@
	echo "flag = 0;" >> $@
	echo "  }" >> $@
	echo "}" >> $@
	echo "exit;" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# PREPARE SIGF INPUT
#

prepareSigf.perl :
	rm -f $@
	echo -n "die if $$" >> $@
	echo "#ARGV != 2;" >> $@
	echo -n "$$" >> $@
	echo -n "key = $$" >> $@
	echo "ARGV[0];" >> $@
	echo -n "$$" >> $@
	echo -n "out1FileName = $$" >> $@
	echo "ARGV[1];" >> $@
	echo -n "$$" >> $@
	echo -n "out2FileName = $$" >> $@
	echo "ARGV[2];" >> $@
	echo -n "open FH1, \">>$$" >> $@
	echo -n "out1FileName\" or die \"open >>$$" >> $@
	echo -n "out1FileName: $$" >> $@
	echo "!\n\";" >> $@
	echo -n "open FH2, \">>$$" >> $@
	echo -n "out2FileName\" or die \"open >>$$" >> $@
	echo -n "out2FileName: $$" >> $@
	echo "!\n\";" >> $@
	echo "while ( <STDIN> )" >> $@
	echo "{" >> $@
	echo "  if ( /(\d+)\s+(\d)\s+(\d)\s+(\d)\s*$$/ )" >> $@
	echo "  {" >> $@
	echo -n "    my($$" >> $@
	echo -n "id) = $$" >> $@
	echo "1;" >> $@
	echo -n "    my($$" >> $@
	echo -n "ref) = $$" >> $@
	echo "2;" >> $@
	echo -n "    my($$" >> $@
	echo -n "hyp1) = $$" >> $@
	echo "3;" >> $@
	echo -n "    my($$" >> $@
	echo -n "hyp2) = $$" >> $@
	echo "4;" >> $@
	echo -n "    my($$" >> $@
	echo "model1_11) = 0;" >> $@
	echo -n "    my($$" >> $@
	echo "model1_10) = 0;" >> $@
	echo -n "    my($$" >> $@
	echo "model1_01) = 0;" >> $@
	echo -n "    my($$" >> $@
	echo "model2_11) = 0;" >> $@
	echo -n "    my($$" >> $@
	echo "model2_10) = 0;" >> $@
	echo -n "    my($$" >> $@
	echo "model2_01) = 0;" >> $@
	echo -n "    if ( $$" >> $@
	echo -n "ref eq $$" >> $@
	echo "key )" >> $@
	echo "    {" >> $@
	echo -n "      if ( $$" >> $@
	echo -n "hyp1 eq $$" >> $@
	echo "key )" >> $@
	echo "      {" >> $@
	echo -n "        $$" >> $@
	echo "model1_11 ++;" >> $@
	echo "      }" >> $@
	echo "      else" >> $@
	echo "      {" >> $@
	echo -n "        $$" >> $@
	echo "model1_10 ++;" >> $@
	echo "      }" >> $@
	echo -n "      if ( $$" >> $@
	echo -n "hyp2 eq $$" >> $@
	echo "key )" >> $@
	echo "      {" >> $@
	echo -n "        $$" >> $@
	echo "model2_11 ++;" >> $@
	echo "      }" >> $@
	echo "      else" >> $@
	echo "      {" >> $@
	echo -n "        $$" >> $@
	echo "model2_10 ++;" >> $@
	echo "      }" >> $@
	echo "    }" >> $@
	echo "    else" >> $@
	echo "    {" >> $@
	echo -n "      if ( $$" >> $@
	echo -n "hyp1 eq $$" >> $@
	echo "key )" >> $@
	echo "      {" >> $@
	echo -n "        $$" >> $@
	echo "model1_01 ++;" >> $@
	echo "      }" >> $@
	echo -n "      if ( $$" >> $@
	echo -n "hyp2 eq $$" >> $@
	echo "key )" >> $@
	echo "      {" >> $@
	echo "        $$" >> $@
	echo "model2_01 ++;" >> $@
	echo "      }" >> $@
	echo "    }" >> $@
	echo -n "    printf FH1 \"%d %d %d\n\", $$" >> $@
	echo -n "model1_11, ($$" >> $@
	echo -n "model1_11 + $$" >> $@
	echo -n "model1_01), ($$" >> $@
	echo -n "model1_11 + $$" >> $@
	echo "model1_10);" >> $@
	echo -n "    printf FH2 \"%d %d %d\n\", $$" >> $@
	echo -n "model2_11, ($$" >> $@
	echo -n "model2_11 + $$" >> $@
	echo -n "model2_01), ($$" >> $@
	echo -n "model2_11 + $$" >> $@
	echo "model2_10);" >> $@
	echo "  }" >> $@
	echo "  else" >> $@
	echo "  {" >> $@
	echo "    die;" >> $@
	echo "  }" >> $@
	echo "}" >> $@
	echo "close(FH1);" >> $@
	echo "close(FH2);" >> $@
	echo "exit;" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# Figure 1 ON PAGE 2 (2066 as published by ISCA)
#

Figure1.eps : Figure1.m
	matlab -nodisplay < $^ > /dev/null

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

Figure1.m : ${DATADIR}
	rm -f $@
	echo "raw0 = [" >> $@
	grep er0 $^/syldur/dev.txt | cut -d' ' -f2 >> $@
	echo "];" >> $@
	echo "" >> $@
	echo "raw1 = [" >> $@
	grep er1 $^/syldur/dev.txt | cut -d' ' -f2 >> $@
	echo "];" >> $@
	echo "" >> $@
	echo "a0 = log(raw0);" >> $@
	echo "a1 = log(raw1);" >> $@
	echo "" >> $@
	echo "a = [a0;a1];" >> $@
	echo "[dummy,x] = hist(a,20);" >> $@
	echo "h0 = hist(a0,x);" >> $@
	echo "h1 = hist(a1,x);" >> $@
	echo "clf; hold on;" >> $@
	echo "plot(x,h1,'ko-','MarkerFaceColor','k');" >> $@
	echo "plot(x,h0,'ko-','MarkerFaceColor','w');" >> $@
	echo "box on" >> $@
	echo "grid on" >> $@
	echo "legend({'SC','\neg SC'},2)" >> $@
	echo "print -depsc2 Figure1.eps" >> $@
	echo "exit" >> $@
	
# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# Figure 3 ON PAGE 3 (2067 as published by ISCA)
#

Figure3.eps : Figure3.m
	matlab -nodisplay < $^ > /dev/null

# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

Figure3.m : ${MSFDIR}/${MSFBIN} ${DATADIR}
	echo "a0 = [" >> $@
	rm -f Figure3_helper.sh
	echo "for FILENAME in ${DATADIR}/audio/dev/*er0*.wav;" >> Figure3_helper.sh
	echo "do" >> Figure3_helper.sh
	echo -n "  ${MSFDIR}/${MSFBIN} ${MSFOPTS} $$" >> Figure3_helper.sh
	echo -n "{FILENAME}" >> Figure3_helper.sh
	echo -n " | grep -v \"nan\"" >> Figure3_helper.sh
	echo -n " | sed \"s/^ +//g\"" >> Figure3_helper.sh
	echo -n " | cut -d' ' -f3" >> Figure3_helper.sh
	echo " | tail -1" >> Figure3_helper.sh
	echo "done" >> Figure3_helper.sh
	echo "exit" >> Figure3_helper.sh
	bash Figure3_helper.sh >> $@
	rm -f Figure3_helper.sh
	echo "];" >> $@
	echo "" >> $@
	echo "a1 = [" >> $@
	rm -f Figure3_helper.sh
	echo "for FILENAME in ${DATADIR}/audio/dev/*er1*.wav;" >> Figure3_helper.sh
	echo "do" >> Figure3_helper.sh
	echo -n "  ${MSFDIR}/${MSFBIN} ${MSFOPTS} $$" >> Figure3_helper.sh
	echo -n "{FILENAME}" >> Figure3_helper.sh
	echo -n " | grep -v \"nan\"" >> Figure3_helper.sh
	echo -n " | sed \"s/^ +//g\"" >> Figure3_helper.sh
	echo -n " | cut -d' ' -f3" >> Figure3_helper.sh
	echo " | tail -1" >> Figure3_helper.sh
	echo "done" >> Figure3_helper.sh
	echo "exit" >> Figure3_helper.sh
	bash Figure3_helper.sh >> $@
	rm -f Figure3_helper.sh
	echo "];" >> $@
	echo "" >> $@
	echo "a = [a0;a1];" >> $@
	echo "[dummy,x] = hist(a,20);" >> $@
	echo "h0 = hist(a0,x);" >> $@
	echo "h1 = hist(a1,x);" >> $@
	echo "clf; hold on;" >> $@
	echo "plot(x,h1,'ko-','MarkerFaceColor','k');" >> $@
	echo "plot(x,h0,'ko-','MarkerFaceColor','w');" >> $@
	echo "box on" >> $@
	echo "grid on" >> $@
	echo "legend({'SC','\neg SC'},2)" >> $@
	echo "print -depsc2 Figure3.eps" >> $@
	echo "exit" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# Figure 4 ON PAGE 3 (2067 as published by ISCA)
#

Figure4.eps : Figure4.m
	matlab -nodisplay < $^ > /dev/null

Figure4.m : Figure4_helper.sh ${MSFDIR}/${MSFBIN} ${DATADIR} ${WEKADIR} parseWeka4.perl
	@echo "a = [];" >> $@
	bash Figure4_helper.sh 0.011 0.009 0.014  32ms >> $@
	@echo "a1 = a;" >> $@
	@echo "a = [];" >> $@
	bash Figure4_helper.sh 0.022 0.018 0.028  64ms >> $@
	@echo "a2 = a;" >> $@
	@echo "a = [];" >> $@
	bash Figure4_helper.sh 0.044 0.036 0.056 128ms >> $@
	@echo "a3 = a;" >> $@
	@echo "" >> $@
	@echo "clf; hold on;" >> $@
	@echo "plot(a1(:,2),a1(:,3),'kv-','MarkerFaceColor','w');" >> $@
	@echo "plot(a2(:,2),a2(:,3),'k^-','MarkerFaceColor','w');" >> $@
	@echo "plot(a3(:,2),a3(:,3),'ks-','MarkerFaceColor','w');" >> $@
	@echo "set(gca,'XTick',[0.0 0.2 0.4 0.6 0.8 1.0]);" >> $@
	@echo "set(gca,'XTickLabel',{'1.0','0.8','0.6','0.4','0.2','0.0'});" >> $@
	@echo "box on" >> $@
	@echo "grid on" >> $@
	@echo "legend({'8ms/32ms','8ms/64ms','8ms/128ms'},2);" >> $@
	@echo "print -depsc2 Figure4.eps" >> $@
	@echo "exit" >> $@

Figure4_helper.sh :
	@echo ""
	@echo -n "TINT=$$" >> $@
	@echo "1" >> $@
	@echo -n "TEXT=$$" >> $@
	@echo "2" >> $@
	@echo -n "TSEP=$$" >> $@
	@echo "3" >> $@
	@echo -n "TSIZ=$$" >> $@
	@echo "4" >> $@
	@echo "" >> $@
	@echo "CLASSPATH=\"${WEKADIR}/weka.jar\"" >> $@
	@echo "export CLASSPATH" >> $@
	@echo "" >> $@
	@echo "for TMEAN in 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8;" >> $@
	@echo "do" >> $@
	@echo -n "  ARFFFILENAME=\"feats_$$" >> $@
	@echo -n "{TMEAN}_$$" >> $@
	@echo "{TSIZ}.arff\"" >> $@
	@echo -n "  rm -f $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo "" >> $@
	@echo -n "  echo \"@relation dummy\" >> $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo -n "  echo \"@ATTRIBUTE msf NUMERIC\" >> $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo -n "  echo \"@ATTRIBUTE class {0,1}\" >> $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo -n "  echo \"@data\" >> $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo "" >> $@
	@echo -n "  VAROPTS=\"-tint $$" >> $@
	@echo -n "{TINT} -text $$" >> $@
	@echo -n "{TEXT} -tsep $$" >> $@
	@echo "{TSEP}\"" >> $@
	@echo -n "  MSFOPTS=\"$$" >> $@
	@echo -n "{VAROPTS} -tfra ${TFRA} -winShape ${WINSHAPE} -ljustifiedmean $$" >> $@
	@echo "{TMEAN}\"" >> $@
	@echo "  for CLASS in 0 1; do" >> $@
	@echo -n "    for WAVFILENAME in ${DATADIR}/audio/dev/*er$$" >> $@
	@echo "{CLASS}*.wav;" >> $@
	@echo "    do" >> $@
	@echo -n "      OUTPUT=\`${MSFDIR}/msf $$" >> $@
	@echo -n "{MSFOPTS} $$" >> $@
	@echo "{WAVFILENAME} -stdout \\" >> $@
	@echo "        | grep -v \"nan\" \\" >> $@
	@echo "        | sed \"s/^ +//g\" \\" >> $@
	@echo "        | cut -d' ' -f2,3 \\" >> $@
	@echo "        | tail -1\`" >> $@
	@echo -n "      TAU=\`echo $$" >> $@
	@echo "{OUTPUT} | cut -d' ' -f1\`" >> $@
	@echo -n "      MSF=\`echo $$" >> $@
	@echo "{OUTPUT} | cut -d' ' -f2\`" >> $@
	@echo -n "      echo \"$$" >> $@
	@echo -n "{MSF},$$" >> $@
	@echo -n "{CLASS}\" >> $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo "    done" >> $@
	@echo "  done" >> $@
	@echo "" >> $@
	@echo -n "  AUC=\`java -Xmx1024m weka.classifiers.functions.Logistic -t \"$$" >> $@
	@echo "{ARFFFILENAME}\" -i -k | perl parseWeka4.perl\`" >> $@
	@echo -n "  rm -f $$" >> $@
	@echo "{ARFFFILENAME}" >> $@
	@echo "" >> $@
	@echo -n "  echo \"a = [a; $$" >> $@
	@echo -n "{TMEAN} $$" >> $@
	@echo -n "{TAU} $$" >> $@
	@echo "{AUC}];\"" >> $@
	@echo "done" >> $@
	@echo "" >> $@
	@echo "exit" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
#
# Table 2 ON PAGE 3 (2067 as published by ISCA)
#       

dev.all : ${DATADIR} dev.msf
	@rm -f $@ temp.1 temp.2
	sort -k 1b,1 ${DATADIR}/syldur/dev.txt > temp.1
	sort -k 1b,1 dev.msf > temp.2
	join -j 1 temp.1 temp.2 > $@
	@rm -f temp.1 temp.2

eval.all : ${DATADIR} eval.msf
	@rm -f $@ temp.1 temp.2
	sort -k 1b,1 ${DATADIR}/syldur/eval.txt > temp.1
	sort -k 1b,1 eval.msf > temp.2
	join -j 1 temp.1 temp.2 > $@
	@rm -f temp.1 temp.2

%.all.dur1.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | cut -d' ' -f2,5 >> $@

%.all.msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE msf NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | cut -d' ' -f4,5 >> $@

%.all.dur1+msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@
	echo "@ATTRIBUTE msf NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | cut -d' ' -f2,4,5 >> $@

%.sub.dur2.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur2 NUMERIC" >> $@ 
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f3,5 >> $@

%.sub.dur1.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@ 
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f2,5 >> $@

%.sub.dur1+dur2.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@ 
	echo "@ATTRIBUTE dur2 NUMERIC" >> $@ 
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f2,3,5 >> $@

%.sub.msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE msf NUMERIC" >> $@ 
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f4,5 >> $@

%.sub.dur2+msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur2 NUMERIC" >> $@ 
	echo "@ATTRIBUTE msf NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f3,4,5 >> $@

%.sub.dur1+msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@ 
	echo "@ATTRIBUTE msf NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f2,4,5 >> $@

%.sub.dur1+dur2+msf.arff : %.all
	rm -f $@
	echo "@relation dummy" >> $@
	echo "@ATTRIBUTE dur1 NUMERIC" >> $@ 
	echo "@ATTRIBUTE dur2 NUMERIC" >> $@ 
	echo "@ATTRIBUTE msf NUMERIC" >> $@
	echo "@ATTRIBUTE class {0,1}" >> $@
	echo "@data" >> $@
	cat $^ | grep -v "XXX" | cut -d' ' -f2,3,4,5 >> $@

dev.msf eval.msf : Table2_helper.sh ${MSFDIR}/${MSFBIN}
	bash Table2_helper.sh

all.dur1.score : dev.all.dur1.arff eval.all.dur1.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.dur1.arff" -T "eval.all.dur1.arff" -i -k | perl parseWeka2.perl >> $@

all.msf.score : dev.all.msf.arff eval.all.msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.msf.arff" -T "eval.all.msf.arff" -i -k | perl parseWeka2.perl >> $@

all.dur1+msf.score : dev.all.dur1+msf.arff eval.all.dur1+msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.dur1+msf.arff" -T "eval.all.dur1+msf.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur2.score : dev.sub.dur2.arff eval.sub.dur2.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur2.arff" -T "eval.sub.dur2.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur1.score : dev.sub.dur1.arff eval.sub.dur1.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur1.arff" -T "eval.sub.dur1.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur1+dur2.score : dev.sub.dur1+dur2.arff eval.sub.dur1+dur2.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur1+dur2.arff" -T "eval.sub.dur1+dur2.arff" -i -k | perl parseWeka2.perl >> $@

sub.msf.score : dev.sub.msf.arff eval.sub.msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.msf.arff" -T "eval.sub.msf.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur2+msf.score : dev.sub.dur2+msf.arff eval.sub.dur2+msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur2+msf.arff" -T "eval.sub.dur2+msf.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur1+msf.score : dev.sub.dur1+msf.arff eval.sub.dur1+msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur1+msf.arff" -T "eval.sub.dur1+msf.arff" -i -k | perl parseWeka2.perl >> $@

sub.dur1+dur2+msf.score : dev.sub.dur1+dur2+msf.arff eval.sub.dur1+dur2+msf.arff ${WEKADIR} parseWeka2.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.sub.dur1+dur2+msf.arff" -T "eval.sub.dur1+dur2+msf.arff" -i -k | perl parseWeka2.perl >> $@

Table2.txt : all.dur1.score all.msf.score all.dur1+msf.score sub.dur2.score sub.dur1.score sub.dur1+dur2.score sub.msf.score sub.dur2+msf.score sub.dur1+msf.score sub.dur1+dur2+msf.score
	echo -n "all DUR1           " >> $@
	cat all.dur1.score >> $@
	echo -n "all MSF            " >> $@
	cat all.msf.score >> $@
	echo -n "all MSF+DUR1       " >> $@
	cat all.dur1+msf.score >> $@
	echo -n "sub DUR2           " >> $@
	cat sub.dur2.score >> $@
	echo -n "sub DUR1           " >> $@
	cat sub.dur1.score >> $@
	echo -n "sub DUR1+DUR2      " >> $@
	cat sub.dur1+dur2.score >> $@
	echo -n "sub MSF            " >> $@
	cat sub.msf.score >> $@
	echo -n "sub MSF+DUR2       " >> $@
	cat sub.dur2+msf.score >> $@
	echo -n "sub MSF+DUR1       " >> $@
	cat sub.dur1+msf.score >> $@
	echo -n "sub MSF+DUR1+DUR2  " >> $@
	cat sub.dur1+dur2+msf.score >> $@

Table2_helper.sh :
	echo "MYDIR=\`pwd\`" >> $@
	echo "" >> $@
	echo "MSFOPTS=\"-tint 0.022 -text 0.018 -tsep 0.028 -tfra 0.008 -winShape hann_hann -centeredmean 0.4\"" >> $@
	echo "for DATASET in \"dev\" \"eval\";" >> $@
	echo "do" >> $@
	echo -n "  cd $$" >> $@
	echo "{MYDIR}" >> $@
	echo -n "  cd ${DATADIR}/audio/$$" >> $@
	echo "{DATASET}" >> $@
	echo "" >> $@
	echo -n "  MSFFILENAME=\"$$" >> $@
	echo -n "{MYDIR}/$$" >> $@
	echo "{DATASET}.msf\"" >> $@
	echo -n "  rm -f $$" >> $@
	echo "{MSFFILENAME}" >> $@
	echo "" >> $@
	echo "  for CLASS in 0 1;" >> $@
	echo "  do" >> $@
	echo -n "    for WAVFILENAME in *er$$" >> $@
	echo "{CLASS}*.wav;" >> $@
	echo "    do" >> $@
	echo -n "      ID=\`echo $$" >> $@
	echo "{WAVFILENAME} | sed \"s/\.wav//\"\`" >> $@
	echo -n "      OUTPUT=\`$$" >> $@
	echo -n "{MYDIR}/${MSFDIR}/${MSFBIN} $$" >> $@
	echo -n "{MSFOPTS} $$" >> $@
	echo "{WAVFILENAME} -stdout \\" >> $@
	echo "        | grep -v \"nan\" \\" >> $@
	echo "        | sed \"s/^ +//g\" \\" >> $@
	echo "        | cut -d' ' -f2,3 \\" >> $@
	echo "        | tail -1\`" >> $@
	echo -n "      TAU=\`echo $$" >> $@
	echo "{OUTPUT} | cut -d' ' -f1\`" >> $@
	echo -n "      MSF=\`echo $$" >> $@
	echo "{OUTPUT} | cut -d' ' -f2\`" >> $@
	echo "" >> $@
	echo -n "      echo \"$$" >> $@
	echo -n "{ID} $$" >> $@
	echo -n "{MSF} $$" >> $@
	echo -n "{CLASS}\" >> $$" >> $@
	echo "{MSFFILENAME}" >> $@
	echo "    done" >> $@
	echo "  done" >> $@
	echo "done" >> $@
	echo "" >> $@
	echo -n "cd $$" >> $@
	echo "{MYDIR}" >> $@
	echo "" >> $@
	echo "exit" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0
# 
# Miscellanea
#      

eval.all.dur1.pred : dev.all.dur1.arff eval.all.dur1.arff ${WEKADIR} parseWekaM.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.dur1.arff" -T "eval.all.dur1.arff" -i -k -p first-last \
		| perl parseWekaM.perl > $@

eval.all.msf.pred : dev.all.msf.arff eval.all.msf.arff ${WEKADIR} parseWekaM.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.msf.arff" -T "eval.all.msf.arff" -i -k -p first-last \
		| perl parseWekaM.perl > $@

eval.all.dur1+msf.pred : dev.all.dur1+msf.arff eval.all.dur1+msf.arff ${WEKADIR} parseWekaM.perl
	java -Xmx1024m -cp ${WEKADIR}/weka.jar weka.classifiers.functions.Logistic \
		-t "dev.all.dur1+msf.arff" -T "eval.all.dur1+msf.arff" -i -k -p first-last \
		| perl parseWekaM.perl > $@

eval.all.ref.enum : eval.all.dur1.pred
	cat $^ | cut -d' ' -f1,2 > $@

eval.all.dur1.enum : eval.all.dur1.pred
	cat $^ | cut -d' ' -f1,3 > $@

eval.all.msf.enum : eval.all.msf.pred
	cat $^ | cut -d' ' -f1,3 > $@

eval.all.dur1+msf.enum : eval.all.dur1+msf.pred
	cat $^ | cut -d' ' -f1,3 > $@

eval.all.ref-dur1-msf.enum : eval.all.ref.enum eval.all.dur1.enum eval.all.msf.enum
	join -j 1 eval.all.dur1.enum eval.all.msf.enum > eval.all.dur1-msf.enum
	join -j 1 eval.all.ref.enum eval.all.dur1-msf.enum > $@
	rm -f eval.all.dur1-msf.enum

eval.all.ref-dur1-dur1+msf.enum : eval.all.ref.enum eval.all.dur1.enum eval.all.dur1+msf.enum
	join -j 1 eval.all.dur1.enum eval.all.dur1+msf.enum > eval.all.dur1-dur1+msf.enum
	join -j 1 eval.all.ref.enum eval.all.dur1-dur1+msf.enum > $@
	rm -f eval.all.dur1-dur1+msf.enum

eval.all.ref-msf-dur1+msf.enum : eval.all.ref.enum eval.all.msf.enum eval.all.dur1+msf.enum
	join -j 1 eval.all.msf.enum eval.all.dur1+msf.enum > eval.all.msf-dur1+msf.enum
	join -j 1 eval.all.ref.enum eval.all.msf-dur1+msf.enum > $@
	rm -f eval.all.msf-dur1+msf.enum

Miscellanea.txt : Miscellanea_helper.sh eval.all.ref-dur1-msf.enum  eval.all.ref-dur1-dur1+msf.enum eval.all.ref-msf-dur1+msf.enum prepareSigf.perl ${SIGFDIR}
	bash Miscellanea_helper.sh >> $@
	echo -n "  Detection of nSC, DUR1 vs MSF     , " >> $@
	rm -f dur.0.txt msf.0.txt
	cat eval.all.ref-dur1-msf.enum | perl prepareSigf.perl 0 dur.0.txt msf.0.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../dur.0.txt ../../msf.0.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f dur.0.txt msf.0.txt
	echo -n "  Detection of nSC, DUR1 vs DUR1+MSF, " >> $@
	rm -f dur.0.txt two.0.txt
	cat  eval.all.ref-dur1-dur1+msf.enum | perl prepareSigf.perl 0 dur.0.txt two.0.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../dur.0.txt ../../two.0.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f dur.0.txt two.0.txt
	echo -n "  Detection of nSC, MSF  vs DUR1+MSF, " >> $@
	rm -f msf.0.txt two.0.txt
	cat eval.all.ref-msf-dur1+msf.enum | perl prepareSigf.perl 0 msf.0.txt two.0.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../msf.0.txt ../../two.0.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f msf.0.txt two.0.txt
	echo -n "  Detection of  SC, DUR1 vs MSF     , " >> $@
	rm -f dur.1.txt msf.1.txt
	cat eval.all.ref-dur1-msf.enum | perl prepareSigf.perl 1 dur.1.txt msf.1.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../dur.1.txt ../../msf.1.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f dur.1.txt msf.1.txt
	echo -n "  Detection of  SC, DUR1 vs DUR1+MSF, " >> $@
	rm -f dur.1.txt two.1.txt
	cat  eval.all.ref-dur1-dur1+msf.enum | perl prepareSigf.perl 1 dur.1.txt two.1.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../dur.1.txt ../../two.1.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f dur.1.txt two.1.txt
	echo -n "  Detection of  SC, MSF  vs DUR1+MSF, " >> $@
	rm -f msf.1.txt two.1.txt
	cat eval.all.ref-msf-dur1+msf.enum | perl prepareSigf.perl 1 msf.1.txt two.1.txt
	(cd ${SIGFDIR}/class; java de/pado/sigf/FScoreART ../../msf.1.txt ../../two.1.txt 10000 | grep "p-value" >> ../../$@; cd ../..)
	rm -f msf.1.txt two.1.txt
	
Miscellanea_helper.sh :
	echo "DevSet_NnSC=\`ls ${DATADIR}/audio/dev/*er0*.wav | wc -l\`" >> $@
	echo "DevSet_NSC=\`ls ${DATADIR}/audio/dev/*er1*.wav | wc -l\`" >> $@
	echo "EvalSet_NnSC=\`ls ${DATADIR}/audio/eval/*er0*.wav | wc -l\`" >> $@
	echo "EvalSet_NSC=\`ls ${DATADIR}/audio/eval/*er1*.wav | wc -l\`" >> $@
	echo "echo \"\"" >> $@
	echo "echo \"Table 1\"" >> $@
	echo "echo \"\"" >> $@
	echo -n "echo \"Number of notSC in  DevSet: $$" >> $@
	echo "{DevSet_NnSC}\"" >> $@
	echo -n "echo \"Number of    SC in  DevSet: $$" >> $@
	echo "{DevSet_NSC}\"" >> $@
	echo -n "echo \"Number of notSC in EvalSet: $$" >> $@
	echo "{EvalSet_NnSC}\"" >> $@
	echo -n "echo \"Number of    SC in EvalSet: $$" >> $@
	echo "{EvalSet_NSC}\"" >> $@
	echo -n "if [[ $$" >> $@
	echo -n "{DevSet_NnSC} > $$" >> $@
	echo "{DevSet_NSC} ]]" >> $@
	echo "then" >> $@
	echo "  DevSet_Majority=\"NnSC\";" >> $@
	echo -n "  DevSet_Accuracy=\`perl -e \"print (100 * $$" >> $@
	echo -n "{DevSet_NnSC} / ($$" >> $@
	echo -n "{DevSet_NnSC} + $$" >> $@
	echo "{DevSet_NSC}))\"\`" >> $@
	echo -n "  EvalSet_Accuracy=\`perl -e \"print (100 * $$" >> $@
	echo -n "{EvalSet_NnSC} / ($$" >> $@
	echo -n "{EvalSet_NnSC} + $$" >> $@
	echo "{EvalSet_NSC}))\"\`" >> $@
	echo "else" >> $@
	echo "  DevSet_Majority=\"NSC\";" >> $@
	echo -n "  DevSet_Accuracy=\`perl -e \"print (100 * $$" >> $@
	echo -n "{DevSet_NSC} / ($$" >> $@
	echo -n "{DevSet_NnSC} + $$" >> $@
	echo "{DevSet_NSC}))\"\`" >> $@
	echo -n "  EvalSet_Accuracy=\`perl -e \"print (100 * $$" >> $@
	echo -n "{EvalSet_NSC} / ($$" >> $@
	echo -n "{EvalSet_NnSC} + $$" >> $@
	echo "{EvalSet_NSC}))\"\`" >> $@
	echo "fi" >> $@
	echo "echo \"\"" >> $@
	echo "echo \"Section 5.1 (last sentence of paragraph 1)\"" >> $@
	echo "echo \"\"" >> $@
	echo -n "echo \"Majority class in DevSet                              : $$" >> $@
	echo "{DevSet_Majority}\"" >> $@
	echo -n "echo \"Accuracy by guessing DevSet majority class in  DevSet : $$" >> $@
	echo "{DevSet_Accuracy}\"" >> $@
	echo -n "echo \"Accuracy by guessing DevSet majority class in EvalSet : $$" >> $@
	echo "{EvalSet_Accuracy}\"" >> $@
	echo "echo \"\"" >> $@

# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0

clean :
	@rm -rf ${INCIDENTALS}

cleanall :
	@rm -rf ${INCIDENTALS} ${TARGETS} \
		${MSFDIR} ${MSFDIR}.tar ${MSFDIR}.tar.gz \
		${LIBSNDFILEDIR} ${LIBSNDFILEDIR}.tar ${LIBSNDFILEDIR}.tar.gz \
		${WEKADIR} ${WEKADIR}.zip \
		${SIGFDIR} ${SIGFDIR}-v2.tar ${SIGFDIR}-v2.tgz \
		${DATADIR} ${DATADIR}.tar


# ==+====1====+====2====+====3====+====4====+====5====+====6====+====7====+====8====+====9====+====0

