#
#	This is Sub Makefile for mrcImageFourierNeighborCorrelation.
#

#### Input extention ####
# Defined at Main

#### Suffixes rule ####
.SUFFIXES: .$(INI) .$(INI)info .$(FNC)

#### INCLUDE ####
-include ${EOS_HOME}/tutorial/TIPS/MaskImage/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/BackImage/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/ASCII/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/Gnuplot/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/Projection3DImage/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/NoiseAdd/Makefile/Makefile-lib

#### Definition ####
# Defined at Main

# For ../NulImage/Makefile.config
MASK_FILE_NAME=$(FILE_NAME)
BACK_FILE_NAME=$(FILE_NAME)
BACK_SIZE_X=$(MASK_SIZE_X)
BACK_SIZE_Y=$(MASK_SIZE_Y)
BACK_SIZE_Z=$(MASK_SIZE_Z)
BACK_IN_VALUE=1
BACK_VALUE=0

#### Rules of the list created ####


##### Commands #####
InitialData::
	$(RM) $(INI_FILE_NAME).$(INI);
	ln -s $(INPUT_PATH) $(INI_FILE_NAME).$(INI);

InitialDataNoiseAdd::
	@export NOISE_IN_FILE_NAME=$(INI_FILE_NAME); \
	export NOISE_OUT_FILE_NAME=$(FILE_NAME); \
	export IN_NOISE=$(INI); \
	if [ ! -z "$(snratio)" ] ; then \
		echo "Add Noise SN=$(snratio)"; \
		export NOISE_SN=$(snratio); \
		make NoiseAdd; \
	elif [ ! -z "$(nsratio)" ] ; then \
		echo "Add Noise NS=$(nsratio)"; \
		export NOISE_NS=$(nsratio); \
		make NoiseAdd; \
	else \
		echo "Not Add Noise."; \
	fi;

InputInfo::
	make $(FILE_NAME).$(INI)info;
	
InputBackImage::
	export IN_BACK=$(INI); \
	export BACK=$(INI)pad; \
	make BackImage;

InputMaskImage::
	export IN_MASK=$(INI)pad; \
	make MaskImage;

MaskBackImage::
	export BACK_IN_SIZE_X=$$(head -1 $(FILE_NAME).$(INI)info | awk '{printf("%d", $$4)}'); \
	export BACK_IN_SIZE_Y=$$(head -1 $(FILE_NAME).$(INI)info | awk '{printf("%d", $$5)}'); \
	export BACK_IN_SIZE_Z=$$(head -1 $(FILE_NAME).$(INI)info | awk '{printf("%d", $$6)}'); \
	export BACK_LENGTH=$$(tail -1 $(FILE_NAME).$(INI)info | awk '{printf("%f", $$4)}'); \
	export IN_BACK=$(MASKBACK)ini; \
	export BACK=$(MASKBACK); \
	make IniBackImage; \
	make BackImage;

FNCInputProjection::
	export PRJ_FILE_NAME=$(FILE_NAME); \
	for ext in $(INI) $(INI)pad $(MASK) $(MASKBACK) ; \
	do \
		export IN_PRJ=$$ext; \
		export PRJ=$$ext'2d'; \
		export OUT_PRJ=$$ext'.tiff'; \
		make Projection3DImage; \
	done;

FNCGnudata::
	export IN_ASCII_FILE_NAME=$(FILE_NAME); \
	export IN_ASCII=$(FNC); \
	export OUT_ASCII_FILE_NAME=$(FILE_NAME); \
	export OUT_ASCII=cut; \
	export ASCII_S_LINE=$(S_DATA); \
	export ASCII_E_LINE=$(E_DATA); \
	make ExtractLine;
	export IN_ASCII_FILE_NAME=$(FILE_NAME); \
	export IN_ASCII=cut; \
	export OUT_ASCII_FILE_NAME=$(FILE_NAME); \
	export OUT_ASCII=FNC; \
	echo $$OUT_ASCII; \
	export ASCII_CLMN="1 2"; \
	make ExtractColumn; \
	num=4; \
	OUT_ASCII=$$(head -1 $(FILE_NAME).cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	while [ ! -z "$$OUT_ASCII" ] ; \
	do \
		echo $$OUT_ASCII; \
		export ASCII_CLMN="1 `expr $$num + 1`"; \
		make ExtractColumn; \
		num=`expr $$num + 2`; \
		OUT_ASCII=$$(head -1 $(FILE_NAME).cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	done;

FNCGnuplot::
	export IN_GNU_FILE_NAME=$(FILE_NAME); \
	export OUT_GNU=png; \
	export GNU_STYLE=$(GRAPH_STYLE); \
	export GNU_X_SIZE=$(X_SIZE_GRAPH); \
	export GNU_Y_SIZE=$(Y_SIZE_GRAPH); \
	data=FNC; \
	echo $$data; \
	export IN_GNU=$$data; \
	export OUT_GNU_FILE_NAME="$(FILE_NAME)-$$data"; \
	export VIEW_GNU_FILE_NAME=$$data; \
	make gnuplot2D; \
	num=4; \
	data=$$(head -1 $(FILE_NAME).cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	while [ ! -z "$$data" ] ; \
	do \
		echo $$data; \
		export IN_GNU=$$data; \
		export OUT_GNU_FILE_NAME="$(FILE_NAME)-$$data"; \
		export VIEW_GNU_FILE_NAME="$$data"; \
		make gnuplot2D; \
		num=`expr $$num + 2`; \
		data=$$(head -1 $(FILE_NAME).cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	done;

FNCGnuplotList::
	export OUT_GNU=png; \
	export GNU_STYLE=$(GRAPH_STYLE); \
	export GNU_X_SIZE=$(X_SIZE_GRAPH); \
	export GNU_Y_SIZE=$(Y_SIZE_GRAPH); \
	data=FNC; \
	echo $$data; \
	export IN_GNU=$$data; \
	export OUT_GNU_FILE_NAME="$(FILE_NAME)-$$data"; \
	IN_GNU_FILE_NAME= ; \
	VIEW_GNU_FILE_NAME= ; \
	if [ ! -z "$(INI_SN)" ] ; then \
		for snratio in $(INI_SN) ; \
		do \
			export IN_GNU_FILE_NAME="$${IN_GNU_FILE_NAME} $(INI_FILE_NAME)-SN$${snratio}"; \
			export VIEW_GNU_FILE_NAME="$${VIEW_GNU_FILE_NAME} SN$${snratio}"; \
		done; \
	fi; \
	if [ ! -z "$(INI_NS)" ] ; then \
		for nsratio in $(INI_NS) ; \
		do \
			export IN_GNU_FILE_NAME="$${IN_GNU_FILE_NAME} $(INI_FILE_NAME)-NS$${nsratio}"; \
			export VIEW_GNU_FILE_NAME="$${VIEW_GNU_FILE_NAME} NS$${nsratio}"; \
		done; \
	fi; \
	make gnuplot2D; \
	num=4; \
	if [ ! -z "$(INI_SN)" ] ; then \
		first=$$(echo "$(INI_SN)" | awk '{printf("%s", $$1)}'); \
		filename="$(FILE_NAME)-SN$${first}"; \
	elif [ ! -z "$(INI_NS)" ] ; then \
		first=$$(echo "$(INI_NS)" | awk '{printf("%s", $$1)}'); \
		filename="$(FILE_NAME)-NS$${first}"; \
	else \
		filename=$(FILE_NAME); \
	fi; \
	data=$$(head -1 $${filename}.cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	while [ ! -z "$$data" ] ; \
	do \
		echo $$data; \
		export IN_GNU=$$data; \
		export OUT_GNU_FILE_NAME="$(FILE_NAME)-$$data"; \
		IN_GNU_FILE_NAME= ; \
		VIEW_GNU_FILE_NAME= ; \
		if [ ! -z "$(INI_SN)" ] ; then \
			for snratio in $(INI_SN) ; \
			do \
				export IN_GNU_FILE_NAME="$$IN_GNU_FILE_NAME $(INI_FILE_NAME)-SN$$snratio"; \
				export VIEW_GNU_FILE_NAME="$$VIEW_GNU_FILE_NAME SN$$snratio"; \
			done; \
		fi; \
		if [ ! -z "$(INI_NS)" ] ; then \
			for nsratio in $(INI_NS) ; \
			do \
				export IN_GNU_FILE_NAME="$$IN_GNU_FILE_NAME $(INI_FILE_NAME)-NS$$nsratio"; \
				export VIEW_GNU_FILE_NAME="$$VIEW_GNU_FILE_NAME NS$$nsratio"; \
			done; \
		fi; \
		make gnuplot2D; \
		num=`expr $$num + 2`; \
		data=$$(head -1 $${filename}.cut | awk -v v=$$num '{printf("%s", $$v)}'); \
	done;

##### Commands(Input to Output) #####
ifdef INI
.$(INI).$(INI)info:
	mrcInfo -i $*.$(INI) | head -5 > $*.$(INI)info;
endif #INI
