LATEX   = latex
DVIPS   = dvips
GV      = gv
GNUPLOT = gnuplot

# Nazov vystupneho PostScriptoveho suboru
OUTPUT = plazma5.ps
OTHERS = katodovy_spad.txt

# meno programu na vygenerovanie arc1sk.dat
PROG = ./convert

# Vstupne data, z ktorych sa na zaklade *.gp suborov generuju grafy
DATA = arc1sk.dat UI-histogram.dat figure5.dat

# Grafy, ktore sa maju vytvorit z *.gp suborov (mazane pri make clean !!)
GRAPHS = UI-histogram.eps figure5.eps

# Dalsie pridavne obrazky alebo vstupne subory, ktore sa nijako nevytvaraju
IMG = histogram-contour.eps \
	  histogram3D-3.eps
#	  histogram3D-2.eps \
#	  histogram3D-4.eps \
#	  histogram3D-5.eps

# Toto popisuje zavislosti
DEPEND = labak.sty Makefile $(IMG) $(DATA) $(GRAPHS)


## END of user setup
####################

all: $(OUTPUT) $(OTHERS)

# spravenie vsetkeho v podadresaroch
all-recurse:
	for dir in `find . -type d -print`; do \
		cd $$dir && make ; \
	done

katodovy_spad.txt: compute-cathode-fall.sh figure5.gp
	./compute-cathode-fall.sh > $@
	cat $@

$(OUTPUT): $(DEPEND)

%.ps: %.dvi $(DEPEND)
	$(DVIPS) -o $@ $<

view: $(OUTPUT)
	$(GV) $(OUTPUT) &

%.dvi: %.tex $(DEPEND)
	$(LATEX) $<
	$(LATEX) $< > /dev/null
	$(LATEX) $< > /dev/null

# data vygenerovane programom:
arc1sk.dat: $(PROG) arc1sk.dat.bin
	$(PROG) arc1sk.dat.bin > $@

# program:
$(PROG): $(PROG).c
	$(CC) -Wall -pedantic -o $@ $<

histogram: UI-histogram.eps

histogram.R: histogram.pm arc1sk.dat.bin convert-notscaled
	./convert-notscaled arc1sk.dat.bin | ./histogram.pm > $@

UI-histogram.dat: UI-histogram.sh ./histogram.pm-old-universal
	./UI-histogram.sh

figure5.gp: linear-aprox.sh figure5.gp.preprocess figure5.dat
	./linear-aprox.sh

figure5.dat: arc1sk.dat figure5.awk integral.awk histogram.pm-old-universal Makefile
	awk -f figure5.awk arc1sk.dat | ./histogram.pm-old-universal | sort -g -r | tee U-distrib.dat |\
		awk -f integral.awk >> $@
	NAQ=`grep NAQ $@ | awk '{print $$4}'`; \
	TIME_STEP=`grep TIME_STEP $@ | awk '{print $$4}'`; \
	mv $@ $@.tmp; \
	awk "BEGIN{ NAQ=$$NAQ; TIME_STEP=$$TIME_STEP;} /^#/{ print; next;} ! /^#/ { printf \"%6g\t%6g\n\", -\$$2*TIME_STEP/NAQ, \$$1 ; next;}" $@.tmp > $@
	rm -f $@.tmp
		
# Vytvaranie grafov programom gnuplot
%.eps: %.gp $(DATA)
	$(GNUPLOT) $<

# v ostatnych Makefiloch $(IMG) nezavisi od nicoho, ale tuto je to nutne
$(IMG): histogram.R Run.R
	-./Run.R || cat Run.Rout

# zmazanie docasnych suborov
clean: clean-tex-logs clean-graphs
	rm -f *.Rout .*.Rout $(OTHERS) figure5.gp


# vycistenenie vsetkych podadresarov
clean-recurse:
	for dir in `find . -type d -print`; do \
		cd $$dir && make clean ; \
	done

# zmazanie docasnych suborov vytvorenych programom latex
clean-tex-logs:
	@for OUT in $(OUTPUT); \
	do \
		for i in $${OUT%.ps}{.aux,.dvi,.log,.toc,.lof,.lot,.ps} ; \
		do \
			echo "rm -f $$i"; rm -f $$i; \
		done \
	done

# zmazanie vytvorenych grafov
clean-graphs:
	@test -z "$(GRAPHS)" || \
	for i in "$(GRAPHS)" ; \
	do \
		echo "rm -f $$i"; rm -f $$i; \
	done \

# upload labaku na web
html:
	make clean-recurse && \
	HTML_DIR="$$HOME/public_html" && \
	DIR=`pwd | sed "s@^$$HOME@$$HTML_DIR@g;"` && \
	umask 072 && cp -uvR * $$DIR && \
	umask 077 &&  make && umask 072 && \
	cp $(OUTPUT) $$DIR && \
	find $$DIR \( -type d -exec chmod 705 {} \; \) -o \( -type f -exec chmod 604 {} \; \)
	
