# -*- Mode:Makefile; Coding:us-ascii-unix; fill-column:132 -*-
####################################################################################################################################
# @file      makefile
# @author    Mitch Richling <http://www.mitchr.me/>
# @Copyright Copyright 1994,1995,1997,2001,2014 by Mitch Richling.  All rights reserved.
# @Revision  $Revision: 1.7 $
# @SCMdate   $Date: 2014/10/11 14:55:27 $
# @brief     Make images and movies.@EOL
# @Keywords  
# @Std       GNUmake
#
#            
#            

#-----------------------------------------------------------------------------------------------------------------------------------


SQUAL = -Q11
#SQUAL = -Q0

SSIZE = -W3840 -H2160
#SSIZE = -W1920 -H1080
#SSIZE = -W960  -H540
#SSIZE = -W480  -H270


MQUAL = -Q11
#MQUAL = -Q5
MSIZE = -W960  -H540
#MSIZE = -W480  -H270
#MSIZE = -W240  -H135

TARGET_L1S = lorenz1_c_s1.png lorenz1_c_s2.png lorenz1_pl_s1.png lorenz1_pl_s2.png lorenz1_pov_s1.png lorenz1_pov_s2.png

TARGET_L2S = lorenz2_c_s1.png lorenz2_c_s2.png lorenz2_pl_s1.png lorenz2_pl_s2.png lorenz2_pl_s3.png lorenz2_pl_s4.png 

TARGET_L2M = lorenz2_pl_s1_movie.mp4 lorenz2_pl_s2_movie.mp4 lorenz2_pl_s3_movie.mp4

TARGET_L2MS = lorenz2_pl_s1_movie_240x135.gif lorenz2_pl_s1_movie_480x270.gif lorenz2_pl_s2_movie_240x135.gif lorenz2_pl_s2_movie_480x270.gif lorenz2_pl_s3_movie_240x135.gif lorenz2_pl_s3_movie_480x270.gif

TARGET_ALL = $(TARGET_L1S) $(TARGET_L2S) $(TARGET_L2M)

################################################################################################################################################################################################################################################################

l1s : $(TARGET_L1S)

l2s : $(TARGET_L2S)

l2m : $(TARGET_L2M)

l2ms : $(TARGET_L2MS)

all : $(TARGET_ALL)

################################################################################################################################################################################################################################################################

lorenz1_c : lorenz1.c
	gcc lorenz1.c -o lorenz1_c

lorenz1_c.inc : lorenz1_c
	lorenz1_c > lorenz1_c.inc

lorenz1_c_s1.png : lorenz1_c.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s1.pov -Ilorenz1_c.inc -Olorenz1_c_s1.png

lorenz1_c_s2.png : lorenz1_c.inc lorenz_s2.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s2.pov -Ilorenz1_c.inc -Olorenz1_c_s2.png

lorenz1_pl.inc : lorenz1.pl
	perl lorenz1.pl > lorenz1_pl.inc

lorenz1_pl_s1.png : lorenz1_pl.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s1.pov -Ilorenz1_pl.inc -Olorenz1_pl_s1.png

lorenz1_pl_s2.png : lorenz1_pl.inc lorenz_s2.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s2.pov -Ilorenz1_pl.inc -Olorenz1_pl_s2.png

lorenz1_pov_s1.png : lorenz1.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s1.pov -Ilorenz1.inc -Olorenz1_pov_s1.png

lorenz1_pov_s2.png : lorenz1.inc lorenz_s2.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s2.pov -Ilorenz1.inc -Olorenz1_pov_s2.png

################################################################################################################################################################################################################################################################

lorenz2_c : lorenz2.c
	gcc -lm lorenz2.c -o lorenz2_c

lorenz2_c.inc : lorenz2_c
	lorenz2_c > lorenz2_c.inc

lorenz2_c_s1.png : lorenz2_c.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s1.pov -Ilorenz2_c.inc -Olorenz2_c_s1.png

lorenz2_c_s2.png : lorenz2_c.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s2.pov -Ilorenz2_c.inc -Olorenz2_c_s2.png

lorenz2_pl.inc : lorenz2.pl
	perl lorenz2.pl > lorenz2_pl.inc

lorenz2_pl_s1.png : lorenz2_pl.inc lorenz_s1.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s1.pov -Ilorenz2_pl.inc -Olorenz2_pl_s1.png

lorenz2_pl_s2.png : lorenz2_pl.inc lorenz_s2.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s2.pov -Ilorenz2_pl.inc -Olorenz2_pl_s2.png

lorenz2_pl_s3.png : lorenz2_pl.inc lorenz_s3.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s3.pov -Ilorenz2_pl.inc -Olorenz2_pl_s3.png

lorenz2_pl_s4.png : lorenz2_pl.inc lorenz_s4.pov
	povray $(SSIZE) $(SQUAL) +A +AM2 -K0.0 +R4 +J3 -P +D  -HIlorenz_s4.pov -Ilorenz2_pl.inc -Olorenz2_pl_s4.png

################################################################################################################################################################################################################################################################

lorenz2_pl_s2_frame120.png : lorenz_s2.pov lorenz2_pl.inc
	povray $(MSIZE) $(MQUAL) +A +R4 +J3 -P +D -KFI1 -KFF120 -KI0 -KF1 -HIlorenz_s2.pov -Ilorenz2_pl.inc -Olorenz2_pl_s2_frame.png

lorenz2_pl_s2_movie.gif : lorenz2_pl_s2_frame120.png
	convert lorenz2_pl_s2_frame*.png lorenz2_pl_s2_movie.gif

lorenz2_pl_s2_movie.mp4 : lorenz2_pl_s2_movie.gif
	avconv -i lorenz2_pl_s2_frame%3d.png lorenz2_pl_s2_movie.mp4

lorenz2_pl_s1_frame120.png : lorenz_s1.pov lorenz2_pl.inc
	povray $(MSIZE) $(MQUAL) +A +R4 +J3 -P +D -KFI1 -KFF120 -KI0 -KF1 -HIlorenz_s1.pov -Ilorenz2_pl.inc -Olorenz2_pl_s1_frame.png

lorenz2_pl_s1_movie.gif : lorenz2_pl_s1_frame120.png
	convert lorenz2_pl_s1_frame*.png lorenz2_pl_s1_movie.gif

lorenz2_pl_s1_movie.mp4 : lorenz2_pl_s1_movie.gif
	avconv -i lorenz2_pl_s1_frame%3d.png lorenz2_pl_s1_movie.mp4

lorenz2_pl_s3_frame120.png : lorenz_s3.pov lorenz2_pl.inc
	povray $(MSIZE) $(MQUAL) +A +R4 +J3 -P +D -KFI1 -KFF120 -KI0 -KF1 -HIlorenz_s3.pov -Ilorenz2_pl.inc -Olorenz2_pl_s3_frame.png

lorenz2_pl_s3_movie.gif : lorenz2_pl_s3_frame120.png
	convert lorenz2_pl_s3_frame*.png lorenz2_pl_s3_movie.gif

lorenz2_pl_s3_movie.mp4 : lorenz2_pl_s3_movie.gif
	avconv -i lorenz2_pl_s3_frame%3d.png lorenz2_pl_s3_movie.mp4

lorenz2_pl_s1_movie_480x270.gif : lorenz2_pl_s1_movie.gif
	convert -sample 480x270 lorenz2_pl_s1_movie.gif lorenz2_pl_s1_movie_480x270.gif 

lorenz2_pl_s2_movie_480x270.gif : lorenz2_pl_s2_movie.gif
	convert -sample 480x270 lorenz2_pl_s2_movie.gif lorenz2_pl_s2_movie_480x270.gif 

lorenz2_pl_s3_movie_480x270.gif : lorenz2_pl_s3_movie.gif
	convert -sample 480x270 lorenz2_pl_s3_movie.gif lorenz2_pl_s3_movie_480x270.gif 

lorenz2_pl_s1_movie_240x135.gif : lorenz2_pl_s1_movie.gif
	convert -sample 240x135 lorenz2_pl_s1_movie.gif lorenz2_pl_s1_movie_240x135.gif 

lorenz2_pl_s2_movie_240x135.gif : lorenz2_pl_s2_movie.gif
	convert -sample 240x135 lorenz2_pl_s2_movie.gif lorenz2_pl_s2_movie_240x135.gif 

lorenz2_pl_s3_movie_240x135.gif : lorenz2_pl_s3_movie.gif
	convert -sample 240x135 lorenz2_pl_s3_movie.gif lorenz2_pl_s3_movie_240x135.gif 

################################################################################################################################################################################################################################################################

clean_intr : 
	rm -rf lorenz1_c lorenz1_c.inc lorenz1_pl.inc lorenz2_c lorenz2_c.inc lorenz2_pl.inc lorenz2_pl_s2_frame*.png lorenz2_pl_s1_frame*.png lorenz2_pl_s3_frame*.png *~ *.pov-state

clean_targets : 
	rm -rf $(TARGET_ALL)

cleanall : clean_targets clean_intr