default: make_dir bin/test bin/exemple bin/affichage

make_dir:
	@mkdir -p obj bin

bin/affichage : obj/Pixel.o obj/Image.o obj/ImageViewer.o obj/mainAffichage.o
	g++ -o $@ obj/Pixel.o obj/Image.o obj/ImageViewer.o obj/mainAffichage.o -lSDL2 -lSDL2_image

bin/test : obj/Pixel.o obj/Image.o obj/mainTest.o
	g++ -o $@ obj/Pixel.o obj/Image.o obj/mainTest.o

bin/exemple : obj/Pixel.o obj/Image.o obj/mainExemple.o
	g++ -o $@ obj/Pixel.o obj/Image.o obj/mainExemple.o

obj/mainAffichage.o : src/Image.h src/ImageViewer.h src/mainAffichage.cpp
	g++ -Wall -c src/mainAffichage.cpp -o obj/mainAffichage.o

obj/ImageViewer.o : src/ImageViewer.cpp src/ImageViewer.h src/Image.h
	g++ -Wall -c src/ImageViewer.cpp -o obj/ImageViewer.o

obj/mainExemple.o : src/mainExemple.cpp src/Image.h
	g++ -Wall -c src/mainExemple.cpp -o obj/mainExemple.o

obj/mainTest.o : src/mainTest.cpp src/Image.h
	g++ -Wall -c src/mainTest.cpp -o obj/mainTest.o

obj/Image.o : src/Image.cpp src/Image.h src/Pixel.h
	g++ -Wall -c src/Image.cpp -o obj/Image.o

obj/Pixel.o : src/Pixel.cpp src/Pixel.h
	g++ -Wall -c src/Pixel.cpp -o obj/Pixel.o

doc: doc/Doxyfile
	doxygen doc/Doxyfile

clean : 
	rm -rf obj/*.o 
	rm -rf bin/*

veryclean : 
	rm -rf data/*.ppm

archive : 
	tar -czvf module-image.tgz ../module-image/
