PROG=audfprint
VER=$(shell grep '^\s*VERSION' ${PROG}.m | sed -e 's/[^0-9.]*\([0-9.]*\)[^0-9.]*/\1/')
DST=${PROG}-v${VER}
#TAR=${DST}.tgz
ZIP=${DST}.zip

#ARCH=`${MATLAB} -nojvm -nodisplay -nosplash -r "disp(computer);quit" | tail -2 | head -1 | sed `
#ARCH=MACI64
ARCH=$(shell ./matlab_arch.sh)
arch=$(shell ./matlab_arch.sh 1)

MCR_NAME=${PROG}_${ARCH}
PRJ_NAME=${PROG}_${ARCH}
#PRJ_NAME=${PROG}_prj

MATLAB=/usr/bin/Matlab 
DEPLOYTOOL=/usr/bin/deploytool
#MATLAB=/Applications/MATLAB_R2009a.app/bin/matlab
# MacOS 64 bit (dpwe-macbook)
#DEPLOYTOOL=/Applications/MATLAB_R2010b.app/bin/deploytool
# Linux 64 bit (hog)
#DEPLOYTOOL=/usr/local/MATLAB/R2010b/bin/deploytool 
# Linux 32 bit (cherry)
#DEPLOYTOOL=${MATLAB} -r deploytool

# MCC
#MCC=/Applications/MATLAB_R2010b.app/bin/mcc

DEMOFILE=demo_${PROG}
MAINFILE=${PROG}.m

#THUMB=${PROG}_thumb.png

SRCS=audfprint.m add_tracks_byname.m match_query_byname.m match_query_hashes.m find_landmarks.m hash2landmark.m landmark2hash.m check_for_new_files.m alignhashes.m audioread.m mp3read.m m4aread.m wavread_downsamp.m listfileread.m process_options.m ht_clear.m ht_entropy.m ht_get_hits.m ht_load.m ht_match.m ht_name.m ht_save.m ht_hash.m ht_store.m ht_remove.m ht_repair.m ht_retrieve.m ht_lengths.m jenkinshash.c

DEMOSRCS=${DEMOFILE}.m

#DATA=${THUMB} query.mp3
DATA=query.mp3

EXTRABINS=jenkinshash.mex${arch}

FORCOMPILE=${PRJ_NAME}.prj run_prj_${ARCH}.sh README.txt Makefile matlab_arch.sh

DEMOHTML=html/${DEMOFILE}.html
DEMOINDEX=html/index.html

all: dist

${DEMOHTML}: ${DEMOSRCS} ${SRCS} ${DATA} 
	${MATLAB} -r "publish ${DEMOFILE}; exit"

${DEMOINDEX}: ${DEMOHTML}
	sed -e 's@<div class="content">@<a href="http://www.ee.columbia.edu/~dpwe/">Dan Ellis</a> : <a href="http://www.ee.columbia.edu/~dpwe/resources/">Resources</a>: <a href="http://www.ee.columbia.edu/~dpwe/resources/matlab/">Matlab</a>: <div class="content">@' -e 's/amp;auml;/auml;/g' -e 's/@VER@/${VER}/g' < ${DEMOHTML} > ${DEMOINDEX}
#	sed -e 's@<div class="content">@<a href="http://www.ee.columbia.edu/~dpwe/">Dan Ellis</a> : <a href="http://www.ee.columbia.edu/~dpwe/resources/">Resources</a>: <a href="http://www.ee.columbia.edu/~dpwe/resources/matlab/">Matlab</a>: <div class="content"> <IMG SRC="'${THUMB}'" ALIGN="LEFT" HSPACE="10">@' -e 's/amp;auml;/auml;/g' < ${DEMOHTML} > ${DEMOINDEX}

compile: ${MCR_NAME}.zip

# The later one will override on an actual A64 target
${PROG}_GLNXA64.zip: ${SRCS}
	rsync -avz ./*.m Makefile hog.ee.columbia.edu:projects/audfprint/
	ssh -Y hog.ee.columbia.edu "cd projects/audfprint; make compile"
	scp -p hog.ee.columbia.edu:projects/audfprint/audfprint_GLNXA64.zip .

${MCR_NAME}.zip: ${SRCS}
	-rm -rf ${PRJ_NAME}
	${DEPLOYTOOL} -build ${PRJ_NAME}
#	${MCC} -o ${PRJ_NAME} -W main:${PRJ_NAME} -T link:exe -d ${PRJ_NAME}/src -w enable:specified_file_mismatch -w enable:repeated_file -w enable:switch_ignored -w enable:missing_lib_sentinel -w enable:demo_license -v ${MAINFILE} $$x
	rm ${PRJ_NAME}/distrib/run_${PRJ_NAME}.sh
	cp run_prj_${ARCH}.sh ${PRJ_NAME}/distrib/${PROG}
	cp README.txt ${PRJ_NAME}/distrib/readme.txt
	mv ${PRJ_NAME}/distrib ${PRJ_NAME}/${MCR_NAME}
	cd ${PRJ_NAME} && zip -r ${MCR_NAME}.zip ${MCR_NAME} && cd ..
	mv ${PRJ_NAME}/${MCR_NAME} ${PRJ_NAME}/distrib
	mv ${PRJ_NAME}/${MCR_NAME}.zip .

dist: ${SRCS} ${DEMOSRCS} ${DATA} ${DEMOINDEX} ${EXTRABINS} ${FORCOMPILE} ${PROG}_MACI64.zip ${PROG}_GLNXA64.zip
	rm -rf ${PROG}
	rm -rf ${DST}
	mkdir ${DST}
	cp -pr html/* ${DST}
	rm ${DST}/${DEMOFILE}.html
	cp -p ${SRCS} ${DEMOSRCS} ${DATA} ${EXTRABINS} ${FORCOMPILE} ${DST}
	rm -f ${DST}/*~
	-rm-extended-attribs.sh ${DST}
#	tar cfz ${TAR} ${DST}
	zip -r ${ZIP} ${DST}
# needs to be called PROG (no ver number) not DST on server
	mv ${DST} ${PROG}
	cp -p ${ZIP} ${PROG}
#	cp -p ${PROG}_${ARCH}.zip ${PROG}
	cp -p ${PROG}_MACI64.zip ${PROG}
	cp -p ${PROG}_GLNXA64.zip ${PROG}
	scp -pr ${PROG} hog.ee.columbia.edu:public_html/resources/matlab/
#	scp -pr ${PROG} wool.ee.columbia.edu:wool-public_html/resources/matlab/
	scp -pr ${PROG} fac1.ee.columbia.edu:/q/www/www-h1/dpwe/resources/matlab/
	scp -pr ${PROG} labrosa.ee.columbia.edu:/var/www/dpwe/resources/matlab/

sync:
	rsync -avz ./*.m Makefile hog.ee.columbia.edu:projects/audfprint/

buildonhog: sync
	ssh -Y hog.ee.columbia.edu "cd projects/audfprint; make compile"
	scp -p hog.ee.columbia.edu:projects/audfprint/audfprint_GLNXA64.zip .

