#
#	This is Main Makefile for mrcImageFourierNeighborCorrelation.
#

#### Root Makefile ####
MAKE_ROOT=mrcImageFourierNeighborCorrelation
TOOLS_CLASS=mrcImage
TOOLS_COMMAND=$(MAKE_ROOT)
OBJECTS_GROUP=DataManip
OBJECTS_CLASS=mrcImage
OBJECTS_COMMAND=l$(MAKE_ROOT)

#### Input extention ####
INI=mrc
MASK=mask
MASKBACK=maskback
FNC=txt

#### Suffixes rule ####
# Defined at Sub

#### INCLUDE ####
# Help-include-file must always be put on top.
-include ${EOS_HOME}/tutorial/TIPS/Help/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/Debugger/Makefile/Makefile-lib
-include Makefile-lib

#### Definition ####
# Path of Input File
#INPUT_PATH=${EOS_HOME}/tutorial/SampleData/1VOM.mrc
INPUT_PATH=${EOS_HOME}/tutorial/SampleData/1VOM-N.mrc

### SN or NS for Input file
#INI_SN=0.3 1 3 10 100
INI_NS=

### FileData
INI_FILE_NAME=Input

### ForMask
MASK_F_MODE=4
MASK_VALUE=0.05

# MaskSize
MASK_SIZE_X=256
MASK_SIZE_Y=256
MASK_SIZE_Z=256

# FNC Graph Image
GRAPH_STYLE=lines
X_SIZE_GRAPH=360
Y_SIZE_GRAPH=240
S_DATA=5
E_DATA=2

#### Rules of the list created ####
# Defined at Sub

##### Commands #####
# Defined at Sub basically
Initial::
	make InitialData;
	if [ ! -z "$(INI_SN)" ] ; then \
		for snratio in $(INI_SN) ; \
		do \
			export snratio; \
			export FILE_NAME="$(INI_FILE_NAME)-SN$$snratio"; \
			echo $$FILE_NAME; \
			make Initial-one; \
		done; \
	fi;
	if [ ! -z "$(INI_NS)" ] ; then \
		for nsratio in $(INI_NS) ; \
		do \
			export nsratio; \
			export FILE_NAME="$(INI_FILE_NAME)-NS$$nsratio"; \
			echo $$FILE_NAME; \
			make Initial-one; \
		done; \
	fi;
	if [ -z "$(INI_SN)" -a -z "$(INI_NS)" ] ; then \
		export FILE_NAME="$(INI_FILE_NAME)"; \
		echo $$FILE_NAME; \
		make Initial-one; \
	fi;

Initial-one::
	make InitialDataNoiseAdd;
	make InputInfo;
	make MaskBackImage;
	make InputBackImage;
	make InputMaskImage;

Exe::
	if [ ! -z "$(INI_SN)" ] ; then \
		for snratio in $(INI_SN) ; \
		do \
			export FILE_NAME="$(INI_FILE_NAME)-SN$$snratio"; \
			echo $$FILE_NAME; \
			make Exe-one; \
		done; \
	fi;
	if [ ! -z "$(INI_NS)" ] ; then \
		for nsratio in $(INI_NS) ; \
		do \
			export FILE_NAME="$(INI_FILE_NAME)-NS$$nsratio"; \
			echo $$FILE_NAME; \
			make Exe-one; \
		done; \
	fi;
	if [ -z "$(INI_SN)" -a -z "$(INI_NS)" ] ; then \
		export FILE_NAME="$(INI_FILE_NAME)"; \
		echo $$FILE_NAME; \
		make Exe-one; \
	fi;

Exe-one::
	make $(FILE_NAME).$(FNC);

all::
	make Initial;
	make Exe;
	make Final;

Final::
	if [ ! -z "$(INI_SN)" ] ; then \
		for snratio in $(INI_SN) ; \
		do \
			export FILE_NAME="$(INI_FILE_NAME)-SN$$snratio"; \
			echo $$FILE_NAME; \
			make Final-one; \
		done; \
	fi;
	if [ ! -z "$(INI_NS)" ] ; then \
		for nsratio in $(INI_NS) ; \
		do \
			export FILE_NAME="$(INI_FILE_NAME)-NS$$nsratio"; \
			echo $$FILE_NAME; \
			make Final-one; \
		done; \
	fi;
	if [ -z "$(INI_SN)" -a -z "$(INI_NS)" ] ; then \
		export FILE_NAME="$(INI_FILE_NAME)"; \
		echo $$FILE_NAME; \
		make Final-one; \
	else \
		export FILE_NAME="$(INI_FILE_NAME)"; \
		make FNCGnuplotList; \
	fi;

Final-one::
	make FNCInputProjection;
	make FNCGnudata;
	make FNCGnuplot;

help_mrcImageFourierNeighborCorrelation::
	@echo
	@echo "Makefile for mrcImageFourierNeighborCorrelation"
	@echo "This is Main Makefile for mrcImageFourierNeighborCorrelation."
	@echo
	@echo "	(Command):"
	@echo "		Initial:		Create Initial File for execution."
	@echo "			(Setting Data):"
	@echo "			INI:		input extention for Initial"
	@echo "			INIpad:		for -i"
	@echo "			MASK:		for -mask"
	@echo "			MASKBACK:	for -maskBack"
	@echo "		FNC:			Sample of execution."
	@echo "		Final:			Create graph images for output file."
	@echo
	@echo "	(Setting Data):"
	@echo "		INI_FILE_NAME:		filename of input"
	@echo "		MASK_SIZE_X:		size x of covering whole image"
	@echo "		MASK_SIZE_Y:		size y of covering whole image"
	@echo "		MASK_SIZE_Z:		size z of covering whole image"
	@echo "		MASK_VALUE:		value of outer image"
	@echo "		MASK_F_MODE:		low pass filter mode for mask"

##### Commands(Input to Output) #####
# Defined at Sub
ifdef MASK
ifdef FNC
.$(MASK).$(FNC):
	mrcImageFourierNeighborCorrelation -i $*.$(INI)pad -o $*.$(FNC) \
										-FSC -mask $*.$(MASK) -maskBack $*.$(MASKBACK) \
										-NoiseWeighted -100 -FSCfull -Cref;
endif #FNC
endif #MASK
