all: compile

download:
	wget http://www.ipol.im/pub/art/2012/gjmr-lsd/lsd_1.6.zip -O lsd.zip
	wget http://www.ipol.im/pub/art/2015/137/NN.tar.gz -O nn.tar.gz
	wget http://www.ipol.im/pub/art/2011/g_zwld/src.tar.gz -O zw.tar.gz

unpack: download
	unzip lsd.zip && mv lsd_1.6 lsd_src && rm -f lsd.zip
	mkdir nn_src && tar xfz nn.tar.gz -C nn_src --strip-components=1 && rm -f nn.tar.gz
	mkdir zw_src && tar xfz zw.tar.gz -C zw_src --strip-components=1 && rm -f zw.tar.gz

mex: unpack
	cp ./modif/lsd_mex.c lsd_src/ && cp ./modif/makefile.lsd lsd_src/Makefile && cd lsd_src/ && make mex
	cp ./modif/zw_mex.c zw_src/ && cp ./modif/makefile.zw zw_src/makefile && cd zw_src/ && make mex
	cp ./modif/io_png.c ./modif/appl.cpp ./modif/appl.hpp ./modif/nn_mex.cpp nn_src/ && cp ./modif/makefile.nn nn_src/makefile && cd nn_src/ && make mex
	mkdir mex && mv *_src mex/
	ln -s ./modif/matlab_scripts/test.m test.m

compile: mex
	cp ./modif/matlab_scripts/gauss.m gauss.m
	rm -f *.mexa64
	ln -s ./mex/nn_src/nn_mex.mexa64 nn_mex.mexa64 
	ln -s ./mex/zw_src/zw_mex.mexa64 zw_mex.mexa64 
	ln -s ./mex/lsd_src/lsd_mex.mexa64 lsd_mex.mexa64
	mcc -m gauss.m -a ./modif/matlab_scripts/ -R -nodisplay
run:
	./run_gauss.sh /usr/local/matlab/R2015b ./pngs/fence.png 4

clean:
	rm -rf *mexa64 *png test.m *gauss* mex/

pack: clean
	mkdir pack
	cp -rf makefile modif/ readme pngs/ pack/
	tar cfz pack.tar.gz pack/
	rm -rf pack/	
